0

条件付きタグの作成方法は、次の例では、どちらかまたはタグが必要です。に両方が存在することはできません。それらの1つだけ。このような XML スキーマを作成するにはどうすればよいですか?

Ex:
  <tool>
     <tool_name>xyz</tool_name>
  </tool>

  or 

 <tool>
    <tool_file>xyz.xml</tool_file>
 </tool>
4

2 に答える 2

1

要素ツールの要素宣言を作成します。その型は、toolType と呼ばれる複合型です。これは、xs:element name="tool_name" と xs:element name="tool_file" の 2 つの子を持つ xs:choice であるコンテンツ モデルを持つ複合型である必要があります。

于 2013-07-24T22:01:36.370 に答える
0

あなたの例に名前空間を導入しました (おそらくあなたが望むよりも複雑ですが、良い習慣です): スキーマ:

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  xmlns="http://example.com/tools"
  targetNamespace="http://example.com/tools"
  elementFormDefault="qualified">

  <xsd:element name="tool">
    <xsd:complexType>
      <xsd:choice>
        <xsd:element name="tool_name" type="xsd:string" />
        <xsd:element name="tool_file" type="xsd:string" />
      </xsd:choice>
    </xsd:complexType>
  </xsd:element>
</xsd:schema>

これは有効です:

<tool xmlns="http://example.com/tools">
  <tool_name>hammer</tool_name>
</tool>

これではありません:

<tool xmlns="http://example.com/tools">
  <tool_name>hammer</tool_name>
  <tool_file>hammer.png</tool_file>
</tool>
于 2013-07-24T22:28:14.087 に答える