генерировать класс из xsd с помощью xjc - PullRequest
0 голосов
/ 22 июля 2011

я пытаюсь сгенерировать класс из 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">

...

Я получил эту ошибку:

[ОШИБКА] Содержимое запрещено в прологе. так что у xjc, похоже, есть проблема со схемой

этот xsd имеет импорт, и в этом импорте есть другой импорт ... так что я не знаю, когда ошибка будет удалена, если xjc сможет управлять этим ...

Ответы [ 2 ]

4 голосов
/ 23 августа 2011

У меня была эта проблема, и оказалось, что проблема была в кодировке:

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

работает, но

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

нет (по крайней мере, на моей Windows7 / 64-битной ОС).

2 голосов
/ 22 июля 2011

Когда я получаю эту ошибку с любым видом XML-документа, обычно это происходит из-за некоторого (невидимого) содержимого до <?xml.Более конкретно, это связано с тем, что спецификация ( знак порядка байтов ) добавлена ​​некоторым редактором.В моем случае это было в основном из-за этой спецификации: 

Проверьте, есть ли у вас такой контент в вашем файле.Если вы это сделаете, удалите его.XML-файлам не требуется спецификация, поскольку они могут формально указывать кодировку в прологе следующим образом:

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

ОБНОВЛЕНИЕ : пролог ДОЛЖЕН бытьпервая часть правильно сформированного XML, как определено здесь w3c:

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

...