【问题标题】:Get default value for element from schema using xerces (C++)使用 xerces (C++) 从模式中获取元素的默认值
【发布时间】:2011-03-16 03:51:52
【问题描述】:

假设我有一个定义如下元素的架构:

<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 元素,我知道如何通过遍历给定WidgetDOMElement 的所有子元素并在找到Description 元素时使用DOMElement::getTextContent() 来读取它。

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

感谢您的回复, 阿什什

【问题讨论】:

    标签: c++ xsd xerces xerces-c


    【解决方案1】:

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

    【讨论】:

    • 我必须相信你的话,从未尝试过 XPath 或 XQuery。但是 +1 回答 :-)
    猜你喜欢
    • 2010-10-23
    • 2012-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-09
    • 2020-07-01
    • 1970-01-01
    相关资源
    最近更新 更多