2012-03-14 9 views
6

Điều gì sẽ là đúng XML Schema 1.0 tuyên bố cho mộtLược đồ XML cho một phần tử cố định có thuộc tính cố định?

<notice xml:lang="en">Banana banana banana</notice> 

nơi:

  1. Các xml: lang thuộc tính là bắt buộc
  2. Giá trị "en" là cố định và bắt buộc
  3. Nội dung thông báo là văn bản đơn giản.
  4. Nội dung thông báo là cố định (như trên) và bắt buộc?

tốt nhất (nhưng sai) Nỗ lực của tôi là đoạn sau đây:

<xs:element name="notice" use="required" fixed="Banana banana banana"> 
    <xs:complexType> 
    <xs:simpleContent> 
     <xs:extension> 
     <xs:attribute ref="xml:lang" use="required" fixed="en"/> 
     </xs:extension> 
    </xs:simpleContent> 
    </xs:complexType> 
</xs:element> 

Trả lời

8
<?xml version="1.0" encoding="utf-8"?> 
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
    <xs:import namespace="http://www.w3.org/XML/1998/namespace" /> 
    <xs:element name="notice" type="notice"/> 
    <xs:complexType name="notice"> 
     <xs:simpleContent> 
     <xs:extension base="CONTENT"> 
      <xs:attribute ref="xml:lang" use="required" fixed="en"/> 
     </xs:extension> 
     </xs:simpleContent> 
    </xs:complexType> 
    <xs:simpleType name="CONTENT"> 
    <xs:restriction base="xs:string"> 
     <xs:enumeration value="Banana banana banana"/> 
    </xs:restriction> 
    </xs:simpleType> 
</xs:schema> 
+0

Cảm ơn. Chỉ có một điều sai trái với điều này là nó không thực thi "vi" như xml: lang. Tôi nghĩ rằng điều này có thể đạt được bằng cách thêm thuộc tính fixed = "en" vào nút xs: attribute của giải pháp của bạn. –

+0

Có bạn đã đúng! Vui mừng nó có thể giúp đỡ. :) –