0

私は次の要素を持っています(構文を許してください):-

<xs:complexType name="shop_T">
  <xs:element name="city" type="xs:string" />
  <xs:element name="other_info" type="other_info_T" />
</xs:complexType>

ここで、この complexType を 2 つの方法で参照したいと思います

<xs:element name="list_shops_in_city">
  <xs:element name="city" type="xs:string" />
  <xs:element name="shop" type="shop_T" maxOccurs="unbounded"/>
</xs:element>

<xs:element name="order">
  <xs:element name="shop" type="shop_T" />
</xs:element>

shop_T が都市全体のショップ リストで使用されている場合、その子要素「city」の値はリスト自体の値と同じでなければならないという制約を適用できますか。単独で使用する場合、city は何でもかまいません。?

これが XML スキーマで実行できない場合、標準の検証テクノロジを使用してそれを行う別の方法はありますか (たとえば、DTD を使用します。私は XML スキーマしか知らないので、別のテクノロジを読んでこれを行うことができます)。それとも、アプリケーション ロジックでこれをコーディングする必要がありますか?

4

1 に答える 1

0

これは XML スキーマを使用して実行できますが、数週間前に勧告になった XSD 1.1 の新しいアサーション機能を使用する必要があります。XSD 1.1 のサポートは、Xerces と Saxon で利用できます。

于 2012-04-12T08:25:59.223 に答える