2

次のように要素を定義するスキーマがあるとします。

<xsd:element name="Widget" type="tns:WidgetType" />

<xsd:complexType name="WidgetType">
  <xsd:sequence>

    <xsd:element name="Name" type="xsd:normalizedString" maxOccurs="1" minOccurs="1" />
    <xsd:element name="Description" type="xsd:normalizedString" default="Unknown" maxOccurs="1" minOccurs="0" />

  </xsd:sequence>
</xsd:complexType>

Xerces-C++ を使用して、このスキーマに対して検証された XML ファイルを解析 (DOM パーサー) しています。要素が存在する場合、指定された for のDescriptionすべての子要素を反復処理し、要素を見つけたときに使用することで、それを読み取る方法を知っています。DOMElementWidgetDOMElement::getTextContent()Description

しかし、特定の要素に (スキーマで許可されている) 子要素Widgetがない場合、スキーマからDescription既定値 ( Unknown) を取得するにはどうすればよいでしょうか?

ご回答ありがとうございます、Ashish

4

1 に答える 1

1

XPath または XQuery を使用してスキーマ ドキュメントにクエリを実行し、スキーマ ドキュメントから任意の値を取得できる必要があります。Xerces サイトには、XPath が部分的にサポートされているとあり、さらに強力な機能が必要な場合は Xalan と XQilla がリストされています。

于 2011-06-29T00:21:05.243 に答える