2012-04-05 10 views
6

誰でもこのスキーマファイル(OwnerEnglishName用)に制限を追加できますか?私は単純なタイプでそれを行う方法を知っていますが、複雑なタイプではそれをやる方法がわかりません。誰も助けることができますか?XML(XSD)スキーマの複合型に制限を追加するにはどうすればよいですか?

ありがとうございます。

オリジナルXML:

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

スキーマ(制限なし):

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

制限コード:

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

答えて

5

これはそれを行います: -

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

このスキーマを使用できるXMLの例を示します。

<?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> 
関連する問題