2014-10-09 70 views
2

我們如何從具有模式版本1.1的XSD中創建jaxb類。 「XS:覆蓋」 給我,當我試圖創建Java類驗證錯誤XML模式1.1的Jaxb類

樣品XSD:

<?xml version="1.0" encoding="ISO-8859-1"?> 
<xs:schema targetNamespace="{target namespace}" 
    xmlns="{xmlns}" 
    xmlns:xs="http://www.w3.org/2001/XMLSchema" 
    xmlns:xlink="http://www.w3.org/1999/xlink" 
    elementFormDefault="qualified" 
    attributeFormDefault="unqualified" 
    xmlns:vc="http://www.w3.org/2007/XMLSchema-versioning" vc:minVersion="1.1"> 

<xs:override schemaLocation="o1_3_2/o1.xsd"> 
     <xs:group name="ReferenceDataElementExtension"> 
     <xs:sequence> 
      <xs:element name="USERPROF" type="xs:string"/> 
      <xs:element name="FACLPROF" type="xs:string"/> 
      <xs:element name="STDYPROF" type="xs:string"/> 
      <xs:element name="TRAINING" type="xs:string"/> 
     <xs:sequence> 
    <xs:group name="ReferenceDataElementExtension"> 
</xs:override> 
</xs:schema> 

但在使用XJC命令生成的類它給驗證錯誤:

s4s-elt-invalid-content.1: The content of 'schema' is invalid. Element 'override' is invalid, misplaced, or occurs too often. 

回答

1

我不認爲XJC(JAXB的模式編譯器)支持XML Schema 1.1。

XJC使用名爲XSOM的庫來處理XML模式。但XSOM似乎不支持xs:override。看看這裏:

https://svn.java.net/svn/xsom~sources/trunk/src/xmlschema.rng

沒有override,對不起。

+1

感謝您的回覆。有沒有解決這個問題的方法。如果我們不能使用XJC,那麼我們如何才能從這個xsd中創建java類 – Ajay 2014-10-10 14:02:58