0

顧客から受け取った XML を検証するための XSD を作成しようとしています。XML は次のようになります。

<someElement>
   <items>
      <item1 name=”abc” />
      <item2 name =”def” />
      <item3 name =”ghi” />
   </items>
</someElement>

何らかの理由で項目名にも数字が含まれていることに注意してください。アイテムの数は指定されておらず、ファイルによって異なります。

要素名の行番号のため、次のようなものは機能しません。

<xs:sequence>
   <xs:element name="items" type="item" maxOccurs="unbounded" minOccurs="0" />
</xs:sequence>

これを検証するための適切な XSD は何でしょうか?

4

2 に答える 2

3

スキーマの検証であれ、クラス モデルへのバインディングであれ、不適切な設計の XML を機械的に処理しなければならなかった以前のケースでは、XSL 変換を使用して XML を前処理することが、多くの場合、適切な出発点であることがわかりました。この前処理により、多くの場合、不適切に設計された XML をより優れたものに変えることができます。

あなたの場合、次の変換を書くことができます

<item1 name="abc"/>

の中へ

<item num="1" name="abc"/>

これにより、スキーマの設計がはるかに簡単になります。指定された XML 入力がそのパターンに準拠していない場合、XSLT はそのままにしておく必要があり、検証に失敗します。

于 2012-05-11T16:03:38.583 に答える
0

ばかげた質問: type="item" の代わりに type="xs:string" を試しましたか? これを使ってインスピレーションを得ることができると思います。

于 2012-05-11T09:23:42.483 に答える