java xml SchemaFactory—使用具有不同名称空间的导入加载模式

java xml SchemaFactory—使用具有不同名称空间的导入加载模式,java,xsd,xml-namespaces,Java,Xsd,Xml Namespaces,我有一个xsd模式,具有以下头定义 <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="vdv453ger" xmlns="vdv453ger" xmlns:siri="http://www.siri.org.uk/siri" elementFormDefault="unqualified"

我有一个xsd模式,具有以下头定义

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
            targetNamespace="vdv453ger" 
            xmlns="vdv453ger" 
            xmlns:siri="http://www.siri.org.uk/siri" 
            elementFormDefault="unqualified" 
            attributeFormDefault="unqualified" 
            version="2.3e">
将引发异常:

org.xml.sax.SAXParseException
src include.2.1
:引用架构的targetNamespace,当前为
http://www.siri.org.uk/siri
,必须与包含架构的相同,当前为
vdv453ger


它抱怨名称空间不同。如何修复此问题?

错误消息向我建议存在一个xsd:include元素,您还没有告诉我们。使用xsd:import导入不同命名空间的架构文档,使用xsd:include导入相同命名空间的架构文档

<xsd:import namespace="http://www.siri.org.uk/siri" 
            schemaLocation="siri-1.3/siri/siri_all-v1.2.xsd"/>
<xsd:schema xmlns="http://www.siri.org.uk/siri" 
            xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
            xmlns:acsb="http://www.ifopt.org.uk/acsb" 
            xmlns:ns1="http://datex2.eu/schema/1_0/1_0" 
            targetNamespace="http://www.siri.org.uk/siri" 
            elementFormDefault="qualified" 
            attributeFormDefault="unqualified" 
            version="1.2" 
            id="siri_all">
SchemaFactory sf = SchemaFactory.newInstance(W3C_XML_SCHEMA_NS_URI);
mySchema = sf.newSchema( fileUrla );