Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 本地部分不能是“;空”;创建QName时_Java_Apache_Xsd_Qnames - Fatal编程技术网

Java 本地部分不能是“;空”;创建QName时

Java 本地部分不能是“;空”;创建QName时,java,apache,xsd,qnames,Java,Apache,Xsd,Qnames,我使用它来解析XSD模式。我有以下模式: <?xml version="1.0" encoding="UTF-8"?> <xs:schema targetNamespace="http://www.example.com/aigu" xmlns="http://www.example.com/aigu" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:jxb="http://java.

我使用它来解析XSD模式。我有以下模式:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema targetNamespace="http://www.example.com/aigu"
       xmlns="http://www.example.com/aigu"
       xmlns:xs="http://www.w3.org/2001/XMLSchema"
       xmlns:jxb="http://java.sun.com/xml/ns/jaxb" jxb:version="2.0">
    <xs:attribute name="label" type="xs:string" />
    <xs:element name="object">
        <xs:complexType>
            <xs:attribute ref="label" form="unqualified"/>
        </xs:complexType>
    </xs:element>
</xs:schema>
堆栈跟踪:

Exception in thread "main" java.lang.IllegalArgumentException: local part cannot be "null" when creating a QName
    at javax.xml.namespace.QName.<init>(QName.java:244)
    at javax.xml.namespace.QName.<init>(QName.java:188)
    at org.apache.ws.commons.schema.utils.XmlSchemaNamedWithFormImpl.setName(XmlSchemaNamedWithFormImpl.java:117)
    at org.apache.ws.commons.schema.utils.XmlSchemaNamedWithFormImpl.setForm(XmlSchemaNamedWithFormImpl.java:105)
    at org.apache.ws.commons.schema.XmlSchemaAttribute.setForm(XmlSchemaAttribute.java:170)
    at org.apache.ws.commons.schema.SchemaBuilder.handleAttribute(SchemaBuilder.java:959)
    at org.apache.ws.commons.schema.SchemaBuilder.handleAttribute(SchemaBuilder.java:923)
    at org.apache.ws.commons.schema.SchemaBuilder.handleComplexType(SchemaBuilder.java:307)
    at org.apache.ws.commons.schema.SchemaBuilder.handleElement(SchemaBuilder.java:420)
    at org.apache.ws.commons.schema.SchemaBuilder.handleSchemaElementChild(SchemaBuilder.java:1512)
    at org.apache.ws.commons.schema.SchemaBuilder.handleXmlSchemaElement(SchemaBuilder.java:659)
    at org.apache.ws.commons.schema.SchemaBuilder.build(SchemaBuilder.java:157)
    at org.apache.ws.commons.schema.XmlSchemaCollection.read(XmlSchemaCollection.java:508)
    at org.apache.ws.commons.schema.XmlSchemaCollection.read(XmlSchemaCollection.java:717)
    at org.apache.ws.commons.schema.XmlSchemaCollection.read(XmlSchemaCollection.java:565)
    at com.netcracker.mediation.transition.model.xmltojava.Aigu.main(Aigu.java:23)
线程“main”java.lang.IllegalArgumentException中的异常:创建QName时本地部分不能为“null” 位于javax.xml.namespace.QName.(QName.java:244) 位于javax.xml.namespace.QName.(QName.java:188) 位于org.apache.ws.commons.schema.utils.XmlSchemaNamedWithFormImpl.setName(XmlSchemaNamedWithFormImpl.java:117) 位于org.apache.ws.commons.schema.utils.XmlSchemaNamedWithFormImpl.setForm(XmlSchemaNamedWithFormImpl.java:105) 位于org.apache.ws.commons.schema.XmlSchemaAttribute.setForm(XmlSchemaAttribute.java:170) 位于org.apache.ws.commons.schema.schemabilder.handleAttribute(schemabilder.java:959) 位于org.apache.ws.commons.schema.schemabilder.handleAttribute(schemabilder.java:923) 位于org.apache.ws.commons.schema.schemabilder.handleComplexType(schemabilder.java:307) 位于org.apache.ws.commons.schema.schemabilder.handleElement(schemabilder.java:420) 位于org.apache.ws.commons.schema.schemabilder.handleSchemaElementChild(schemabilder.java:1512) 位于org.apache.ws.commons.schema.schemabilder.handleXmlSchemaElement(schemabilder.java:659) 位于org.apache.ws.commons.schema.schemabilder.build(schemabilder.java:157) 位于org.apache.ws.commons.schema.XmlSchemaCollection.read(XmlSchemaCollection.java:508) 位于org.apache.ws.commons.schema.XmlSchemaCollection.read(XmlSchemaCollection.java:717) 位于org.apache.ws.commons.schema.XmlSchemaCollection.read(XmlSchemaCollection.java:565) 位于com.netcracker.mediation.transition.model.xmltojava.Aigu.main(Aigu.java:23)
这是Apache代码中的错误还是我的架构无效?

属性
表单
不能用于具有
ref
的属性使用(如中第3.2点所述)

此外,由于引用的目标是具有目标命名空间的模式中的顶级属性声明,因此如果允许它显式地放置它,那么它的
表单必须是
限定的

它可以解释错误,因为跟踪似乎表明它发生在那里

这将是正确的模式:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema targetNamespace="http://www.example.com/aigu"
    xmlns="http://www.example.com/aigu"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns:jxb="http://java.sun.com/xml/ns/jaxb" jxb:version="2.0">
    <xs:attribute name="label" type="xs:string" />
    <xs:element name="object">
        <xs:complexType>
            <xs:attribute ref="label"/>
        </xs:complexType>
    </xs:element>
</xs:schema>

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema targetNamespace="http://www.example.com/aigu"
    xmlns="http://www.example.com/aigu"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns:jxb="http://java.sun.com/xml/ns/jaxb" jxb:version="2.0">
    <xs:attribute name="label" type="xs:string" />
    <xs:element name="object">
        <xs:complexType>
            <xs:attribute ref="label"/>
        </xs:complexType>
    </xs:element>
</xs:schema>