2017-12-26 22 views
0

私は事実の後に私が作成したすべての私のXMLのためのXSDスキーマを設計しています。私はこれを最初にやるべきだと知っていますが、私はちょっと新しいです。これまで私のXMLのすべてが私のアプリに不思議に思っています。私のXMLスキーマの別のタグを参照してください

ここに私が行っていることの簡単な例があります。

<xs:sequence> 
 
    <xs:element name="fields" minOccurs="1" maxOccurs="1"> 
 
    <xs:complexType> 
 
     <xs:sequence> 
 
     <xs:element name="field" type="fieldType" 
 
      minOccurs="1" maxOccurs="unbounded"> 
 
     </xs:element> 
 
     </xs:sequence> 
 
    </xs:complexType> 
 
    </xs:element> 
 
    <xs:element name="forms" maxOccurs="1" minOccurs="1"> 
 
    <xs:complexType> 
 
     <xs:sequence> 
 
     <xs:element name="form" minOccurs="0" maxOccurs="unbounded"> 
 
      <xs:complexType> 
 
      <xs:sequence> 
 
       <xs:element name="widgets" minOccurs="1" maxOccurs="1"> 
 
       <xs:complexType> 
 
        <xs:sequence> 
 
        <xs:element name="widget" minOccurs="1" maxOccurs="unbounded"> 
 
         <!-- What do I put here to reference a field? --> 
 
        </xs:element> 
 
        </xs:sequence> 
 
       </xs:complexType> 
 
       </xs:element> 
 
      </xs:sequence> 
 
      </xs:complexType> 
 
     </xs:element> 
 
     </xs:sequence> 
 
    </xs:complexType> 
 
    </xs:element> 
 
</xs:sequence>

が私の主な質問は、私はXSDスキーマどのように教えてくださいされています。ここでは

<fields> 
 
    <field id="name" type="text"> 
 
    \t <display>Somethings Name</display> 
 
    \t <description>The name of the something.</description> 
 
    </field> 
 
</fields> 
 
<forms> 
 
    <form id="custom_form"> 
 
    <widgets> 
 
     <widget type="text-input"> 
 
     <field id="name"/> 
 
     </widget> 
 
    </widgets> 
 
    </form> 
 
</forms>
は、私が持っているXSDの単純化した例であります要素は、フィールドdefiのいずれかへの参照ですその上の fieldsノードのned?今、私はこのバリデーションにコードを使用しています。

このシナリオでフィールドノードを定義する方法を教えてください。 fieldノードを2回、メイン定義用とウィジェットノード内のフィールド参照用に2回定義するだけでいいですか?

また、XSDのノードを再定義するオプションもあります。メインのfield定義を定義し、それをウィジェットの参照スタイルノードとして再定義する必要がありますか?どうすればこのことができますか?

このシナリオで一般的で一般的な情報は何ですか?

答えて

1

XMLスキーマのkey/keyref構文を使用して、属性の可能な値をドキュメント内の他の属性のセットで使用される値に制限することができます。 JAXBの仕様を無視して、XML Schema key/keyref - how to use them?とその使用例の解答のリンクを参照してください。

+0

私が探していたものです。奇妙なことはW3SchoolsでもeclipseでもあるXSDツールにはkey/keyrefの言及がありません。そのようなXSD機能がかなりあるようです。 –

関連する問題