2013-10-24 147 views
1

我想从下面XSD生成JAXB类文件从含元素名称命名空间XSD生成JAXB类

 <xsd:schema attributeFormDefault="unqualified" elementFormDefault="qualified" version="1.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
     <xsd:element name="comp:myItems"> 
      <xsd:complexType> 
       <xsd:sequence> 
       <xsd:element name="style" type="xsd:string" /> 
       </xsd:sequence> 
      </xsd:complexType> 
     </xsd:element> 
     </xsd:schema> 

但是我得到以下错误而产生的JAXB类文件

C: \ JAVA \ jdk1.6.0_26 \ BIN> xjc.exe myFile.xsd

解析模式... [ERROR] S4S-ATT-无效值:在元件的 'type''属性值无效元件'。记录的原因:UndeclaredPrefix:无法将'comp:myItems'解析为QName:未声明前缀'comp'。 线文件的2:/ C:/JAVA/jdk1.6.0_26/bin/myFile.xsd

解析失败的模式。

错误我得到,因为元素名称是comp:myItems

有没有什么办法可以从上面的XSD生成JAXB类文件?
任何帮助将非常感激。

回答

0

在XML模式中指定的元素名称不能包含冒号(:)。如果您希望该元素是名称空间限定的,则需要在schema元素上指定targetNamespace。你还需要声明这个名字空间。

<xsd:schema 
    ... 
    targetNamespace="http://www.example.com/foo" 
    xmlns:comp="http://www.example.com/foo"> 
+1

谢谢!我试着编辑我的XSD文件,它工作:) – sun2