2010-08-05 23 views
15

Trong khi viết một lược đồ XML, tôi đang cố gắng làm một cái gì đó như thế nàySử dụng xs: extension & xs: restriction cùng nhau?

<xs:complexType name="ValueWithUnits"> 
    <xs:simpleContent> 
     <xs:extension base="xs:double"> 
      <xs:attribute name="uom" fixed="second"/> 
      <xs:minInclusive="0"/> 
      <xs:maxInclusive="10"/> 
     </xs:extension> 
    </xs:simpleContent> 
</xs:complexType> 

Thật không may, xs: attribute được phép trên xs: mở rộng trong khi xs: minInclusive & xs: maxInclusive được phép trên xs: hạn chế, nhưng không cùng nhau.

Cách tốt nhất để cấu trúc này là gì? Tôi có phải xác định phần mở rộng với các đơn vị thích hợp & sau đó hạn chế nó với giá trị tối thiểu & tối thiểu của tôi không?

Trả lời

15

Bạn cần phải xác định những hạn chế trên separatley đôi

<?xml version="1.0" encoding="utf-8" ?> 
<!--Created with Liquid XML Studio Developer Edition 8.1.4.2482 (http://www.liquid-technologies.com)--> 
<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
    <xs:simpleType name="RestrictedDouble"> 
     <xs:restriction base="xs:double"> 
      <xs:minInclusive value="0" /> 
      <xs:maxInclusive value="10" /> 
     </xs:restriction> 
    </xs:simpleType> 
    <xs:complexType name="ValueWithUnits"> 
     <xs:simpleContent> 
      <xs:extension base="RestrictedDouble"> 
       <xs:attribute name="uom" fixed="second" /> 
      </xs:extension> 
     </xs:simpleContent> 
    </xs:complexType> 
</xs:schema> 
+0

Ok, tôi đã tự hỏi nếu đây là những gì tôi phải làm & hy vọng tôi sẽ không. Tôi quyết định lật thứ tự xung quanh để tôi có DoubleSecondsType và triển khai cụ thể hạn chế cài đặt đó. – oconnor0

+0

Tôi đã thử điều này, nó cho tôi một lỗi tại nói rằng 'complexType' đã tồn tại trong mô hình nội dung. Cách khắc phục điều đó? – Srini

Các vấn đề liên quan