2011-07-22 238 views
0

我嘗試生成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"> 

有問題......

我得到這個錯誤:

[ERROR] Content is not allowed in prolog. so xjc seem to have problem with schema

這個xsd有一個導入,並且在這個導入中有另一個導入...所以我不知道什麼時候如果xjc能夠管理這個錯誤將會被刪除...

回答

2

當我收到任何類型的XML文檔的錯誤時,通常是因爲<?xml之前的一些(不可見)內容。更具體地說,這是由於某個編輯器添加了BOM(byte order mark)。在我的情況下,這主要是由於這個BOM:

檢查你的文件中是否有這樣的內容。如果你這樣做,刪除它。 XML文件不需要一個BOM,因爲他們可以正式在序言中這樣指定編碼:

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

UPDATE:序言MUST是格式良好的XML的第一部分,定義由W3C在這裏:

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

+0

不僅隱形字符我有crlf(回車,換行) – redfox26

+0

這也是不允許的。 '<?xml'必須是XML文件中的第一個字符,如下所示:http://www.w3.org/TR/2008/REC-xml-20081126/#sec-well-formed –

+0

我有沒有任何之前<?xml crlf它的每一行結束(像任何其他文件...) – redfox26

4

我有這個問題,它原來的編碼是問題:

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

的作品,但

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

沒有(至少在我的Windows7/64位操作系統)。

+0

這解決了我的問題,謝謝 –

+0

我有同樣的問題,這解決了這個問題,謝謝。但我仍然不明白原因。爲什麼它不適用於utf-16? –