假设我有一个定义元素的模式,如下所示:
<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
元素存在,我知道如何通过迭代给定DOMElement
的{{1}}的所有子元素并在找到{Widget
时使用DOMElement::getTextContent()
来阅读它{1}}元素。
但是,如果特定的Description
元素没有Widget
子元素(模式允许),我该如何从中获取默认值(Description
)模式?
感谢您的回复, 阿希什
答案 0 :(得分:1)
您应该能够使用XPath或XQuery查询架构文档以从架构文档中获取任何值。 Xerces网站称它具有部分XPath支持,并且如果您需要更多功率,则列出Xalan和XQilla。