绑定声明命名空间" http://annox.dev.java.net"将被忽略,因为它不是由jaxb:extensionBindingPrefixes属性指定的

时间:2017-10-30 07:19:16

标签: java xml xsd jaxb

我正在尝试使用jaxb2 maven插件从xsd生成Java类。

在生成类时,它提供以下异常:

  

SAXParseException绑定声明命名空间   " http://annox.dev.java.net"将被忽略,因为它不是   由jaxb:extensionBindingPrefixes属性指定。

这是xsd:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns="http://www.emc.com/concerto/v2.0"
           xmlns:val="http://annox.dev.java.net/javax.validation.constraints"
           xmlns:annox="http://annox.dev.java.net"
           xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.emc.com/concerto/v2.0" elementFormDefault="qualified" version="2.0">
    <xs:complexType name="ValueType">
        <xs:annotation>
            <xs:documentation xml:lang="en">
                Represents the value in a key-value pair.
            </xs:documentation>
        </xs:annotation>
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attribute name="vType" type="xs:string" use="required">
                    <xs:annotation>
                        <xs:documentation source="modifiable">always</xs:documentation>
                        <xs:documentation xml:lang="en">
                            Value type. Could be String, Number, DateTime or Boolean.
                        </xs:documentation>
                        <xs:documentation source="required">true</xs:documentation>
                        <xs:appinfo>
                            <annox:annotate target="field">
                                <val:NotNull/>
                            </annox:annotate>
                        </xs:appinfo>
                    </xs:annotation>
                </xs:attribute>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
</xs:schema>

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

您需要将命名空间http://annox.dev.java.net的命名空间前缀添加到属性jaxb:extensionBindingPrefixes,如错误消息所示:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns="http://www.emc.com/concerto/v2.0"
           xmlns:val="http://annox.dev.java.net/javax.validation.constraints"
           xmlns:annox="http://annox.dev.java.net"
           jaxb:extensionBindingPrefixes="annox"
           xmlns:xs="http://www.w3.org/2001/XMLSchema"
           targetNamespace="http://www.emc.com/concerto/v2.0"
           elementFormDefault="qualified"
           version="2.0">