【问题标题】:generate class from xsd with xjc使用 xjc 从 xsd 生成类
【发布时间】:2011-07-22 08:13:27
【问题描述】:

我尝试从 xsd 生成类,但第二行出现问题

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:saqcc="urn:saq:cct:cct-3.5.xsd" xmlns:flx="urn:saq:mtl:grey:flux:04489:rep-1.0.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:saq:mtl:grey:flux:04489:rep-1.0.xsd"  elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.1">

...

我收到了这个错误:

[错误] prolog 中不允许有内容。 所以 xjc 似乎有架构问题

这个 xsd 有一个导入,在这个导入中还有另一个导入...所以我不知道如果 xjc 能够管理该错误何时会被删除...

【问题讨论】:

    标签: java jaxb xjc


    【解决方案1】:

    我遇到了这个问题,结果发现是编码问题:

    &lt;?xml version="1.0" encoding="utf-8"?&gt;

    有效但

    &lt;?xml version="1.0" encoding="utf-16"?&gt;

    没有(至少在我的 Windows7/64 位操作系统上)。

    【讨论】:

    • 我遇到了同样的问题,这解决了问题,谢谢。但我仍然不明白原因。为什么它不适用于 utf-16?
    【解决方案2】:

    当我在使用任何类型的 XML 文档时收到此错误时,通常是因为 &lt;?xml 之前的一些(不可见)内容。更具体地说,这是由于某些编辑器添加了 BOM (byte order mark)。就我而言,主要是由于这个 BOM:

    检查您的文件中是否有此类内容。如果这样做,请将其删除。 XML 文件不需要 BOM,因为它们可以像这样在 prolog 中正式指定编码:

    <?xml version="1.0" encoding="utf-8"?>
    

    更新:序言必须是格式良好的 XML 的第一部分,由 w3c 在此处定义:

    http://www.w3.org/TR/2008/REC-xml-20081126/#sec-well-formed

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-13
    • 2010-09-20
    • 2011-01-16
    相关资源
    最近更新 更多