2016-08-19 5 views
0

maxLengthの制限をこの複合型に追加しようとしています。ここに私のオリジナルコードがあります:属性を持つxsd:complexTypeのコンテンツを制限する方法は?

  <xs:element minOccurs="0" name="Division"> 
      <xs:complexType> 
       <xs:sequence> 
       <xs:element minOccurs="0" maxOccurs="unbounded" name="ID"> 
        <xs:complexType> 
        <xs:simpleContent> 
         <xs:extension base="xs:string"> 
         <xs:attribute ref="wd:type" use="optional" /> 
         </xs:extension> 
        </xs:simpleContent> 
        </xs:complexType> 
       </xs:element> 
       </xs:sequence> 
       <xs:attribute ref="wd:Descriptor" use="optional" /> 
      </xs:complexType> 
      </xs:element> 

私はこの制限を追加したいと思いますが、その方法はわかりません。

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

私はシンプルタイプでこれを行う方法を知っていますが、複雑なタイプではどのように行うのか分かりません。誰も助けることができますか?

+0

私はそれが部門要素であるべきだと思います。 – user2148983

+0

「Division」要素は、すでにそのコンテンツモデルに 'ID'要素を持っています。あなたの質問を編集し、サンプルの有効なXMLを表示すると助けになります。 – kjhughes

+0

あなたとあなたの前の質問があなたを助けてくれたときに[**承認**](http://meta.stackoverflow.com/q/5234/234215)の回答をお願いします。 [私の答え](http://stackoverflow.com/a/39045446/290085)が役に立たない場合は、コメントのフォローアップで説明してください。 [あなたの質問なし](http://stackoverflow.com/users/2148983/user2148983?tab=questions)が本当に受け入れ可能な回答を受け取っている場合は[ask]を読んでください。ありがとう。 – kjhughes

答えて

1

xs:simpleTypeを定義して名前を付け、それをxs:complexTypeに拡張する必要があります。ここで

は(その例は、独自の上に立つことができ、一時的なxs:attribute/@namesに置き換えxs:attribute/@ref出現をダングリング付き)完全な実施例である:

<?xml version="1.0" encoding="UTF-8"?> 
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 
      version="1.0"> 
    <xs:element name="Division"> 
    <xs:complexType> 
     <xs:sequence> 
     <xs:element minOccurs="0" maxOccurs="unbounded" name="ID"> 
      <xs:complexType> 
      <xs:simpleContent> 
       <xs:extension base="IDType"> 
       <xs:attribute name="attr1" use="optional" /> 
       </xs:extension> 
      </xs:simpleContent> 
      </xs:complexType> 
     </xs:element> 
     </xs:sequence> 
     <xs:attribute name="attr2" use="optional" /> 
    </xs:complexType> 
    </xs:element> 
    <xs:simpleType name="IDType"> 
    <xs:restriction base="xs:string"> 
     <xs:minLength value="0"/> 
     <xs:maxLength value="100"/> 
    </xs:restriction> 
    </xs:simpleType> 
</xs:schema> 
関連する問題