2012-04-05 27 views
6

Có ai có thể giúp tôi thêm hạn chế đối với tệp lược đồ này (dành cho OwnerEnglishName) không? Tôi biết làm thế nào để làm điều đó với một loại đơn giản, trong khi trong một complextype tôi không biết làm thế nào để làm điều đó. Có ai giúp được không?Làm cách nào để thêm hạn chế vào một kiểu phức trong lược đồ XML (XSD)?

Cảm ơn rất nhiều.

gốc XML:

<PACIDemoSignedDoc PaciSDocID="HouseOwnerSignedEndorsement"> 
    <OwnerEnglishName OENID="Name"></OwnerEnglishName> 
</PACIDemoSignedDoc> 

Schema (không hạn chế):

<?xml version="1.0" encoding="utf-8"?> 
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
    <xs:element name="PACIDemoSignedDoc" type="PACIDemoSignedDocType" /> 
    <xs:complexType name="PACIDemoSignedDocType"> 
    <xs:sequence> 
     <xs:element name="OwnerEnglishName" type="OwnerEnglishNameType" /> 
    </xs:sequence> 
    <xs:attribute name="PaciSDocID" type="xs:string" /> 
    </xs:complexType> 
    <xs:complexType name="OwnerEnglishNameType"> 
    <xs:attribute name="OENID" type="xs:string" /> 
    </xs:complexType> 
</xs:schema> 

Các restriction code:

<xs:restriction base="xs:string"> 
    <xs:minLength value="5"/> 
    <xs:maxLength value="100"/> 
</xs:restriction> 

Trả lời

5

này sẽ làm điều đó: -

<?xml version="1.0" encoding="utf-8"?> 
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
    <xs:element name="PACIDemoSignedDoc" type="PACIDemoSignedDocType" /> 
    <xs:complexType name="PACIDemoSignedDocType"> 
     <xs:sequence> 
      <xs:element name="OwnerEnglishName" type="OwnerEnglishNameType" /> 
     </xs:sequence> 
     <xs:attribute name="PaciSDocID" type="xs:string" /> 
    </xs:complexType> 
    <xs:complexType name="OwnerEnglishNameType"> 
     <xs:simpleContent> 
      <xs:restriction base="NameType"> 
       <xs:minLength value="5"/> 
       <xs:maxLength value="10"/> 
      </xs:restriction> 
     </xs:simpleContent> 
    </xs:complexType> 
    <xs:complexType name="NameType"> 
     <xs:simpleContent> 
      <xs:extension base="xs:string"> 
       <xs:attribute name="OENID" type="xs:string" /> 
      </xs:extension> 
     </xs:simpleContent> 
    </xs:complexType> 
</xs:schema> 

Đây là mẫu XML có thể chấp nhận được với lược đồ này

<?xml version="1.0" encoding="UTF-8"?> 
<PACIDemoSignedDoc xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" PaciSDocID="gggg"> 
    <OwnerEnglishName OENID="9999">GGGGG</OwnerEnglishName> 
</PACIDemoSignedDoc>