2017-10-30 12 views
1

グループを作成し、そのグループの要素を参照できますか?XSDモデルグループの特定の要素を参照してください。

<xs:element name="custBrief"> 
    <xs:sequence> 
    <xs:element name="customerId" type="xs:string"/> 
    <xs:element name="mobile" type="xs:string"/> 
    </xs:sequence> 
</xs:element> 

だから、私はcustGroupを参照することができるはずです。

たとえば、私たちはグループを持っているが

<xs:group name="custGroup"> 
    <xs:sequence> 
    <xs:element name="customerId" type="xs:string"/> 
    <xs:element name="customerName" type="xs:string"/> 
    <xs:element name="Address1" type="xs:string"/> 
    <xs:element name="Address2" type="xs:string"/> 
    <xs:element name="mobile" type="xs:string"/> 
    </xs:sequence> 
</xs:group> 

は私だけcustomerIdmobileを持っている別の要素を作成するとしますと言います。

答えて

0

オプション1:あなたのグループの再使用部品参照によってではなく名前で構成要素宣言によって:

<xs:group name="custGroup"> 
    <xs:sequence> 
    <xs:element ref="customerId"/> 
    <xs:element ref="customerName"/> 
    <xs:element ref="Address1"/> 
    <xs:element ref="Address2"/> 
    <xs:element ref="mobile"/> 
    </xs:sequence> 
</xs:group> 

<xs:element name="customerId" type="xs:string"/> 
<xs:element name="customerName" type="xs:string"/> 
<xs:element name="Address1" type="xs:string"/> 
<xs:element name="Address2" type="xs:string"/> 
<xs:element name="mobile" type="xs:string"/> 

をこのように、2番目の、同様のグループは、少なくともグローバル宣言を共有することができ

<xs:element name="custBrief"> 
    <xs:sequence> 
    <xs:element ref="customerId"/> 
    <xs:element ref="mobile"/> 
    </xs:sequence> 
</xs:element> 

オプション2:使用サブグループ:

参照される要素の
<xs:group name="custGroup"> 
    <xs:sequence> 
    <xs:group ref="custBriefGroup"/> 
    <xs:element ref="customerName"/> 
    <xs:element ref="Address1"/> 
    <xs:element ref="Address2"/> 
    </xs:sequence> 
</xs:group> 

<xs:group name="custBriefGroup"> 
    <xs:sequence> 
    <xs:element name="customerId" type="xs:string"/> 
    <xs:element name="mobile" type="xs:string"/> 
    </xs:sequence> 
</xs:group> 

<xs:element name="custBrief"> 
    <xs:sequence> 
    <xs:group ref="custBriefGroup"/> 
    </xs:sequence> 
</xs:element> 

このようにして、custBriefGroupが1つの場所で再定義されています。

私は要素の順序を並べ替えて自由を取ったことに注意してください。

も参照してください:あなたがここに二つの異なるスキーマ建築モデルを混合しているThe difference between <all> <sequence> <choice> and <group> in XSD?

+0

確かにモデルグループには他のモデルグループを含めることはできますか? –

+0

@MichaelKay:BNFを 'group'のために急いで見ましたが、' group'は直接的には許可されませんが、介入する 'sequence'、' all'、 'choice'を介して間接的に許可されます。ありがとう。私は答えを修正します... – kjhughes

0

モデルグループを使用して、ビルディングブロックのセットからタイプをアセンブルできます。

制限によって導出を使用して型を「サブセット化」することができます。

しかし、試みている方法で2つを混在させることはできません。

関連する問題