C++ XSD:值不在枚举中

C++ XSD:值不在枚举中,c++,compiler-errors,xsd,xerces,codesynthesis,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() <&l

我尝试通过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;
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>

对于每个
现在,我得到的错误
值“”不在枚举中

但是XML中的值在限制枚举中?还是我误解了什么?

把我的评论变成了答案

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


第二个可能意味着该限制适用于
元素的内容(其开头
和结尾
标记之间的文本),它的属性名为
value
)。

它报告的错误在XML文件本身中-其中写入了类似
&D
的内容,但没有终止
。你能把文件拿出来吗?我没想过。未正确引用.xsd文件。但现在我得到了下一个错误,请看编辑后的帖子,我猜XML文件又坏了。我不知道XSD,但我猜元素的内容受枚举的限制,而不是它的属性
value
的值。注意,它应该是
225.0/220.5
。您可能还需要重新标记并重新表述您的问题。看来,编写XML以匹配一个设置标准,而不是用C++代码解析XML.THX的建议,已经重新编写了。我不明白他为什么抱怨,即使有完全相同的价值观,也没有道理
<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>