2012-04-05 6 views
6

Kann mir jemand helfen, eine Einschränkung zu dieser Schemadatei hinzuzufügen (für OwnerEnglishName)? Ich weiß, wie man es mit einem einfachen Typ macht, während ich in einem komplexen Typ nicht weiß, wie es geht. Kann jemand helfen?Wie kann ich eine Einschränkung für einen komplexen Typ im XML (XSD) -Schema hinzufügen?

Vielen Dank.

Original-XML:

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

Schema (ohne Einschränkung):

<?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> 

Der Beschränkungscode:

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

Antwort

5

Dies wird es tun: -

<?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> 

Hier ist ein Beispiel für ein akzeptables XML mit diesem Schema

<?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>