создать класс из xsd с помощью xjc

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


person redfox26    schedule 22.07.2011    source источник


Ответы (2)


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

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

работает, но

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

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

person sdoca    schedule 23.08.2011
comment
У меня была такая же проблема, и это решило проблему, спасибо. Но все равно не понимаю причины. Почему это не работает с utf-16? - person Hakan Serce; 28.03.2014

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

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

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

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

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

person Lukas Eder    schedule 22.07.2011
comment
нет только невидимого символа, у меня есть crlf (возврат каретки, перевод строки) - person redfox26; 22.07.2011
comment
Это тоже не разрешено. <?xml ДОЛЖНЫ быть первыми символами в файле XML, как вы можете видеть здесь: w3.org/TR/2008/REC-xml-20081126/#sec-well-formed - person Lukas Eder; 22.07.2011
comment
у меня ничего нет до ‹?xml crlf это для каждого конца строки (как и любой другой документ...) - person redfox26; 22.07.2011