【问题标题】:XSD : value not in enumerationXSD:值不在枚举中
【发布时间】:2013-06-03 07:55:26
【问题描述】:

我尝试通过 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&lt;C&gt; 抛出

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

也许有人可以解决这个问题或如何从 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>

对于每个&lt;Info&gt;,现在我得到错误value "" not in enumeration

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

【问题讨论】:

  • 它报告的错误是在 XML 文件本身中 - 里面写了类似 &amp;D 的内容,但没有终止 ;。可以出示文件吗?
  • 没有想过这个。 .xsd 文件没有正确引用。但现在我遇到了下一个错误,请参阅编辑后的帖子
  • 我又猜想是坏的 XML 文件。我不知道 XSD,但我猜元素的 contents 受枚举限制,而不是其属性 value 的值。 IOW,应该是&lt;Info&gt;225.0/220.5&lt;/Info&gt;
  • 您可能还想重新标记并重新表述您的问题。您似乎在编写 XML 以匹配设定的条件时遇到问题,而不是使用 C++ 代码来解析 XML。
  • 感谢您的建议,已重新制定。我不明白为什么他抱怨即使有完全相同的价值观,没有意义

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


【解决方案1】:

把我的 cmets 变成答案

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

第二个可能意味着该限制适用于 Item 元素的 contents(其开始 &lt;Item&gt; 和结束 &lt;/Item&gt; 标记之间的文本),而不是其名为的属性value)。

【讨论】:

    猜你喜欢
    • 2015-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-10
    • 1970-01-01
    • 2020-08-21
    • 1970-01-01
    相关资源
    最近更新 更多