我尝试通过 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>
该文件确实存在那里,也检查了这个但没有帮助
也许有人对此有解决方案或如何从 XML 文件中读取的另一种方式?
->解决了。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 中的值在限制枚举中?还是我误解了什么?