2

XML のサンプルを次に示します。

<Search ID="Blah"
        input="Some search"
        line1="first line of result"
        line2="second line of result"
        line3="third line of result"
        />

line1 から line3 という名前の属性はオプションであり、バインドされていません。特定の検索要素は、line99 または何かまで (現実的には 2 桁を超えることはありません) の line 属性を持つことができます。XML スキーマで許容可能な属性名のパターンを指定して、実際に使用するものまですべてのオプションの属性名を手動で指定せずに、これを検証できるようにする方法はありますか?

理想的には、次のようなものが欲しいです:

<xs:attribute name="line[0-9][0-9]" type="xs:string" use="optional" />

スキーマ定義で。

これは不可能だと思いますが、確実に見つけるために私が行うすべての検索は、属性の名前ではなく、属性の実際の値でパターンを使用する方法を見つけることになるので、誰かがこれが可能かどうかを確認してくださいそうでなくても、それは素晴らしいことです。

4

1 に答える 1

1

いいえ、それはできません。属性宣言に関する XML 仕様を読むと、属性名がNCName[型であり、および]文字が除外されていることがわかります。

別の注意点として、クエリの結果を伝えるために属性を使用するのは非常に奇妙です。より自然なフォーマットは

<search id="..." input="...">
    <result>
       <line nr="1">bla bla</line>
       <line nr="2">more bla bla</line>
       ...
       <line nr="99">extra bla</line>
    </result>
</search>
于 2012-12-04T10:46:18.433 に答える