我尝试通过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是在限制枚举中吗?还是我想念一些东西?
答案 0 :(得分:1)
将我的评论转化为答案
您列出的两个问题似乎都是XML文件本身的问题,而不是解析代码。第一个看起来像是一个实体引用&D
,没有匹配的;
或其他东西。
第二个可能意味着限制适用于Item
元素的内容(其开头<Item>
和结束</Item>
标记之间的文字) ,而不是名为value
)的属性。