2012-03-29 3 views
0

次のxmlのスキーマを作成しようとしています。XMLスキーマタグ名を強制することなく子要素を適用する

<root> 
    <allow_any_name id="string"> 
     <required_tag_1>string</required_tag_1> 
     <required_tag_2>string</required_tag_2> 
     <required_tag_3>string</required_tag_3> 
    </allow_any_name> 

    <name1 id="string"> 
     <required_tag_1>string</required_tag_1> 
     <required_tag_2>string</required_tag_2> 
     <required_tag_3>string</required_tag_3> 
    </name1> 

    <name2 id="string"> 
     <required_tag_1>string</required_tag_1> 
     <required_tag_2>string</required_tag_2> 
     <required_tag_3>string</required_tag_3> 
    </name2> 

</root> 

主な問題は、タグ名を指定して子要素を指定する方法が見つからないということです。上記のxmlでは、allow_any_nameタグには任意の名前を使用できます。

私は<xs:any processContents="lax"></xs:any>を試しましたが、タグ名は許可されていますが、子供を指定することはできません。

私も子要素を施行したが、私は(私はそうでない)使用されるすべてのタグ名を知っているしなければならないことを意味<xs:any processContents="strict" namespace="##local"></xs:any>を使用してみました

おかげ

答えて

1

それは、XSD 1.0にはできません。

XSD 1.1では、アサーションを使用して行うことができます。

0

私は、これはXMLスキーマでは不可能だと思います。 私はあなたがこのような何かに

<allow_any_name id="string"> 
    <required_tag_1>string</required_tag_1> 
    <required_tag_2>string</required_tag_2> 
    <required_tag_3>string</required_tag_3> 
</allow_any_name> 

からあなたの構造を変更しなければならないと思う:

<fixed_tag_name id="string" name="allow_any_name"> 
    <required_tag_1>string</required_tag_1> 
    <required_tag_2>string</required_tag_2> 
    <required_tag_3>string</required_tag_3> 
</fixed_tag_name> 

HTH

関連する問題