我尝试在包级别使用注释,但我从 Eclipse 中得到编译错误。
我有一个类 Head
具有以下包/注释:
@javax.xml.bind.annotation.XmlSchema (
xmlns = {
@javax.xml.bind.annotation.XmlNs(prefix = "com",
namespaceURI="http://es.indra.transporte.common"),
@javax.xml.bind.annotation.XmlNs( namespaceURI="http://www.w3.org/2001/XMLSchema")
},
namespace = "http://es.indra.transporte.common",
elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED,
attributeFormDefault = javax.xml.bind.annotation.XmlNsForm.UNQUALIFIED
)
package es.indra.transporte.central.thalesinterface.common.beans;
我用上面的代码在 es.indra.transporte.central.thalesinterface.common.beans
文件夹中创建了一个 package-info.java
但我仍然得到编译错误
Package annotations must be in file
package-info.java
在 Head
类中。我正在使用 jdk6。
最佳答案
我在尝试编译您的包信息时遇到的唯一问题是@XmlNs 注释缺少前缀属性。
这个:
@javax.xml.bind.annotation.XmlNs( namespaceURI="http://www.w3.org/2001/XMLSchema")
应该是:
@javax.xml.bind.annotation.XmlNs(prefix="xsd", namespaceURI="http://www.w3.org/2001/XMLSchema")
应编译以下更正后的代码:
@javax.xml.bind.annotation.XmlSchema (
xmlns = {
@javax.xml.bind.annotation.XmlNs(prefix = "com",
namespaceURI="http://es.indra.transporte.common"),
@javax.xml.bind.annotation.XmlNs(prefix="xsd", namespaceURI="http://www.w3.org/2001/XMLSchema")
},
namespace = "http://es.indra.transporte.common",
elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED,
attributeFormDefault = javax.xml.bind.annotation.XmlNsForm.UNQUALIFIED
)
package es.indra.transporte.central.thalesinterface.common.beans;
例子见:
关于java - @xmlschema jaxb package-info.java 编译错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4828131/