首页 > 解决方案 > xsdcxx 如何抑制某些类型的解析?

问题描述

我正在使用代码合成 xsd自动生成 c++ 代码来解析 xml。

我有一些这样的xsd:

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" xmlns:mml="http://www.w3.org/1998/Math/MathML">
    <xs:import namespace="http://www.w3.org/1998/Math/MathML" schemaLocation="mathml3/mathml3.xsd"/>
    <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="xml.xsd"/>
    <xs:group name="text">
        <xs:sequence>
            <xs:choice minOccurs="0">
                <xs:element ref="b"/>
                <xs:element ref="i"/>
                <xs:element ref="sup"/>
                <xs:element ref="sub"/>
                <xs:element ref="u"/>
            </xs:choice>
        </xs:sequence>
    </xs:group>
    <xs:element name="AbstractText">
        <xs:complexType mixed="true">
            <xs:choice minOccurs="0" maxOccurs="unbounded">
                <xs:group ref="text"/>
                <xs:element ref="mml:math"/>
            </xs:choice>
        </xs:complexType>
    </xs:element>

mml:math 的结构非常复杂,我不想处理它,只想返回原始字符串。与文本组相同,我不想处理元素:b/i/sup/sub/u,我只想返回文本节点的原始字符串,其中包含类似<b>xx</b>的内容。有没有办法告诉 xsdcxx 这样做?

标签: c++xmlxsdxml-parsing

解决方案


推荐阅读