web-dev-qa-db-ja.com

XSDの要素のref属性は何をしますか?

ドキュメントはスキーマ内の別の要素を参照していると言っているようですが、どのようにそれを使用できますか-私が作業したスキーマでは見たことがありません。

ニースのユースケースや、その使用方法をさらに説明できるものがありますか?

基本的に、他の場所で宣言されている別の要素を参照します。これは同じスキーマドキュメントである場合とそうでない場合があります。たとえば、異なる名前空間の外部参照スキーマから取得できます。いくつかの異なるスキーマでitem要素を頻繁に使用すると仮定し、commonスキーマでそれ(および他の一般的なタイプと属性)を宣言してから、他のすべてのスキーマ。 commonスキーマを名前空間cで参照する場合、item elemntのインスタンスを単独で、または型の一部として宣言できます次のように:

<xs:element ref="c:item" /><!-- reference here -->
<xs:complexType name="something">
    <xs:sequence>
        <xs:element ref="c:item" /><!-- and here -->
    </xs:sequence>
    <xs:element name="other" type="xs:Name" />
</xs:complexType>

データスキーマの定義は次のようになります。

<xs:element name="item" type="itemType" /><!-- referenced element -->
<xs:complexType name="itemType">
    <xs:sequence>
        <xs:element name="code" type="xs:Name" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
    <xs:attribute name="description" type="xs:normalizedString" use="required" />
</xs:complexType>
69
grkvlt

たとえば、深くネストされているように見えるが、インスタンスドキュメントの最上位要素としても表示できる要素タイプを宣言する場合。

XML Schema Primerにはこの例があります。 http://www.w3.org/TR/xmlschema-0/

5
zedoo