Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/355.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 检索到src resolve时出错:无法解析名称';ah:AppHdr';到a(n)和"x27 ;;元素声明';成分_Java_Xml_Xsd_Jaxb - Fatal编程技术网

Java 检索到src resolve时出错:无法解析名称';ah:AppHdr';到a(n)和"x27 ;;元素声明';成分

Java 检索到src resolve时出错:无法解析名称';ah:AppHdr';到a(n)和"x27 ;;元素声明';成分,java,xml,xsd,jaxb,Java,Xml,Xsd,Jaxb,我有一组5个xsd,其中1是父项,其余是导入的子项 所有xsd都在一个位置,我使用maven插件生成pojo类 这是我的示例GenerateXML类 MainMsg1 mmsrMessage = new MainMsg1(); //JAXBContext context = JAXBContext.newInstance(MainMsg1.class); JAXBContext context = JAXBContext.newInstance(MainMsg1.

我有一组5个xsd,其中1是父项,其余是导入的子项 所有xsd都在一个位置,我使用maven插件生成pojo类

这是我的示例GenerateXML类

        MainMsg1 mmsrMessage = new MainMsg1();
    //JAXBContext context = JAXBContext.newInstance(MainMsg1.class);
    JAXBContext context = JAXBContext.newInstance(MainMsg1.class, ObjectFactory.class,
            com.mypackage.appheader.ObjectFactory.class,
            com.mypackage.doc1.ObjectFactory.class,
            com.mypackage.doc2.ObjectFactory.class,
            com.mypackage.doc3.ObjectFactory.class,
            com.mypackage.doc4.ObjectFactory.class);
    Marshaller jaxbMarshaller = context.createMarshaller();
    jaxbMarshaller.setProperty(Marshaller.JAXB_ENCODING, "UTF-8");
    jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
    jaxbMarshaller.setProperty(Marshaller.JAXB_FRAGMENT, Boolean.TRUE);
    //Document doc = objf.createDocument();
    SchemaFactory schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
    InputStream is = new FileInputStream(
            new File("C:\\xsd\\main.xsd"));
    StreamSource source = new StreamSource(is);
    Schema schema = schemaFactory.newSchema(source); // This is where error occurs
    jaxbMarshaller.setSchema(schema);
Main.xsd

<xs:schema xmlns="head.003.001.01" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ah="urn:random:xsd:head.001.001.01" xmlns:doc1="urn:random:xsd:doc1.1.1" xmlns:doc2="urn:random:xsd:doc2.2.2" xmlns:doc3="urn:random:xsd:doc3.3.3" xmlns:doc4="urn:random:xsd:doc4.4.4" targetNamespace="head.003.001.01" elementFormDefault="qualified">
<xs:import namespace="urn:random:xsd:head.001.001.01" schemaLocation="appHdr.xsd"/>
<xs:import namespace="urn:random:xsd:doc1.1.1" schemaLocation="doc1.1.1.xsd"/>
<xs:import namespace="urn:random:xsd:doc2.2.2" schemaLocation="doc2.2.2.xsd"/>
<xs:import namespace="urn:random:xsd:doc3.3.3" schemaLocation="doc3.3.3.xsd"/>
<xs:import namespace="urn:random:xsd:doc4.4.4" schemaLocation="doc4.4.4.xsd"/>
<xs:element name="MainMsg" type="MainMsg1"/>
<xs:complexType name="MainMsg1">
    <xs:sequence>
        <xs:element ref="ah:AppHdr"/>
        <xs:choice>
            <xs:element ref="doc1:Document"/>
            <xs:element ref="doc2:Document"/>
            <xs:element ref="doc3:Document"/>
            <xs:element ref="doc4:Document"/>
        </xs:choice>
    </xs:sequence>
</xs:complexType>

您应该发布完整的模式。其中一个导入的架构中可能有错误。例如,在GitHub项目中创建一个共享。以前从未尝试过这个-让我试试这个,然后给你回电话
src-resolve: Cannot resolve the name 'ah:AppHdr' to a(n) 'element declaration' component