C++ 使用xerces(C+;+;)从架构中获取元素的默认值

C++ 使用xerces(C+;+;)从架构中获取元素的默认值,c++,xsd,xerces,xerces-c,C++,Xsd,Xerces,Xerces C,假设我有一个模式,它定义了一个元素,如下所示: <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="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>

我正在解析(DOM解析器)一个XML文件,该文件已经使用Xerces-C++根据该模式进行了验证。如果存在
Description
元素,我知道如何通过迭代给定
Widget
domeElement
的所有子元素,并在找到
Description
元素后使用
domeElement::getTextContent()
来读取它

但是,如果特定的
小部件
元素没有
描述
子元素(架构允许),如何从架构中获取默认值(
未知

谢谢你的回复,
Ashish

您应该能够使用XPath或XQuery查询模式文档,从模式文档中获取任何值。Xerces网站说它有部分XPath支持,如果您需要更多功能,它会列出Xalan和XQilla。

我必须相信您的话,从来没有尝试过XPath或XQuery。但回答时+1:-)