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>

我正在解析(DOM 解析器)一个已使用 Xerces-C++ 对此模式进行验证的 XML 文件。如果Description元素存在,我知道如何通过遍历DOMElement给定的所有子元素WidgetDOMElement::getTextContent()在找到Description元素时使用来读取它。

但是,如果特定Widget元素没有Description子元素(架构允许),我如何Unknown从架构中获取默认值 ( )?

感谢您的回复,阿希什

4

1 回答 1

1

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

于 2011-06-29T00:21:05.243 回答