У меня есть схема 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">
Этот файл импортирует другой файл xsd:
<xsd:import namespace="http://www.siri.org.uk/siri" schemaLocation="siri-1.3/siri/siri_all-v1.2.xsd"/>
Импортированная схема 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 );
Исключение выдается:
org.xml.sax.SAXParseException: src-include.2.1: targetNamespace ссылочной схемы, в настоящее время http://www.siri.org.uk/siri, должно совпадать с таковым для включающей схемы, в настоящее время vdv453ger.
org.xml.sax.SAXParseException
src-include.2.1
http://www.siri.org.uk/siri
vdv453ger
Он жалуется, что пространства имен разные. Как это исправить?
Сообщение об ошибке подсказывает мне, что существует элемент xsd: include, о котором вы нам не сообщили.Используйте xsd: import для импорта документа схемы для другого пространства имен, xsd: include для документа схемы для того же пространства имен.