2009-08-26 33 views
23

Tôi đang cố gắng để viết một schema xml mà sẽ xác nhận điều này mảnh xml:Có cả một thuộc tính và hạn chế trên một phần tử trong schema xml

<date isodate="2007-03-14">14 march 2007</date> 

Thuộc tính isodate nên có nó loại thiết lập để xs : ngày và nội dung phải dài tối đa 50 ký tự.

Tôi tự hỏi nếu nó có thể viết định nghĩa schema xml trong một khối, một cái gì đó giống như có lẽ đây:

<xs:element name="date" minOccurs="0" maxOccurs="1"> 
    <xs:complexType> 
    <xs:simpleContent> 
     <xs:restriction base="xs:string"> 
     <xs:minLength value="0"/> 
     <xs:maxLength value="50"/> 
     </xs:restriction> 
     <xs:attribute name="isodate" type="xs:date" use="required"/> 
    </xs:simpleContent> 
    </xs:complexType> 
</xs:element> 

Đoạn mã trên không làm việc, và tôi có thể không thực sự hiểu tại sao. Chỉ workaround tôi đã tìm thấy là để thoát ra khỏi phần hạn chế thành một loại riêng biệt, và liên kết đó như thế này:

<xs:simpleType name="reviewDate"> 
    <xs:restriction base="xs:string"> 
     <xs:minLength value="0"/> 
     <xs:maxLength value="50"/> 
    </xs:restriction> 
</xs:simpleType> 

<xs:element name="date" minOccurs="0" maxOccurs="1"> 
    <xs:complexType> 
     <xs:simpleContent> 
      <xs:extension base="reviewDate"> 
       <xs:attribute name="isodate" type="xs:date" use="required"/> 
      </xs:extension> 
     </xs:simpleContent> 
    </xs:complexType> 
</xs:element> 

Câu hỏi tôi có là làm thế nào để viết định nghĩa trong một khối để schema là một chút dễ đọc hơn và không tham chiếu các loại trong các phần khác của lược đồ.

+0

@Alexander: để định dạng đúng các phần XML của bạn, hãy đánh dấu XML và nhấp vào nút "mã" (101 010) trên thanh công cụ. Điều đó giúp bạn có được kết quả tốt - sử dụng backtick chỉ giúp cho một từ hoặc một cụm từ ngắn - không bao gồm nhiều dòng tốt. –

Trả lời

15

Bạn không thể hợp nhất cả hạn chế và tiện ích mở rộng thành một khối XSD. Giải pháp mà bạn có với loại đơn giản "ReviewDate" là giải pháp tốt nhất mà tôi biết.

Marc

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