XSD:值不在枚举中

时间:2013-06-03 07:55:26

标签: c++ compiler-errors xsd xerces codesynthesis

我尝试通过CodeSynthesis XSD生成的文件(.cxx / .hxx)从XML文档中读取并使用以下代码:

1-> char* xmlFile = "C:\\Work\\MPRawDataExample.xml";       
2-> auto_ptr<MPRawDataFile> f = MPRawDataFile_(xmlFile);
3-> cout << f->MPRawDataFileMeta().PatientID() << endl;

现在第2行出现以下错误:

unterminated entity reference "D"

中抛出

xsd::cxx::tree::error_handler<C>

该文件确实存在,也检查了this但没有帮助

是否有人可以通过这种或其他方式解决如何从XML文件中读出的问题?

- &GT;的解决即可。 xSD文件在xml文件中没有正确引用,但现在在下面:


更新

XML文件中的错误部分:

    <AdditionalInformation>
        <Info name="Ag" value="225.0/220.5"></Info>
        <Info name="Vel" value="24.0/22.1"></Info>
        <Info name="CC" value="0.999"></Info>
        <Info name="AUC" value="1026/1159"></Info>
        <Info name="Abbr. from mean" value="1.987"></Info>
        <Info name="Base" value="1484/1501"></Info>
        <Info name="End" value="1787/1795"></Info>
    </AdditionalInformation>
来自xsd的

限制:

<xs:simpleType name="ST_Info">
    <xs:restriction base="xs:string">
        <xs:enumeration value="0.999"/>
        <xs:enumeration value="1.987"/>
        <xs:enumeration value="1026/1159"/>
        <xs:enumeration value="1484/1501"/>
        <xs:enumeration value="1787/1795"/>
        <xs:enumeration value="225.0/220.5 "/>
        <xs:enumeration value="24.0/22.1"/>
    </xs:restriction>
</xs:simpleType>

每个<Info>现在我收到错误value "" not in enumeration

但是XML中的Value是在限制枚举中吗?还是我想念一些东西?

1 个答案:

答案 0 :(得分:1)

将我的评论转化为答案

您列出的两个问题似乎都是XML文件本身的问题,而不是解析代码。第一个看起来像是一个实体引用&D,没有匹配的;或其他东西。

第二个可能意味着限制适用于Item元素的内容(其开头<Item>和结束</Item>标记之间的文字) ,而不是名为value)的属性。