0

次のような XML があるとします。

<foo ...>
   <bar a="s1" b="s2" />
   <bar a="s3" />
</foo>

XSD で定義したいのは、 attribute のデフォルト値が attributebの値であることですa。それは可能ですか?

前もって感謝します!

4

1 に答える 1

3

短い答え:いいえ。

"XML Schema Part 1: Structures Second Edition" のセクション "3.2.1 The Attribute Declaration Schema Component" によると、中程度の回答です。属性が実際に存在しない場合に使用される指定された値"

長くて実用的な答え: 鍵は「スキーマ検証後の情報セット」です。では、何のためにスキーマ ドキュメントが必要なのか自問してみてください。

  • 着信 XML ドキュメントを検証するために必要な場合は、use="required"for 属性を使用してくださいb
  • オブジェクトを構築するために必要な場合 (たとえば、Java の JAXB や .NET などの (非) マーシャリング技術を使用する場合XmlSerializer)、この「スキーマ検証後の情報セット」という用語を満たす後処理を明示的に追加する必要があります。の値がb設定されていないかどうかを検出し、自分で設定します-それがビジネス要件です
  • 意図を伝える必要がある場合 (*私/私のアプリは emptybを と同じ値として扱いますa)、ドキュメントを追加します。XML スキーマにはそのような概念はありません。外挿を使用する - これは「の値が現在の USD/EUR 比率になる」と同じ要件になりますb- それは単に計算された値です
于 2012-10-16T09:55:22.007 に答える