Я пытаюсь разработать схему, которая допускает атрибуты из смешанных пространств имен.
Вот xxx_schema2.xsd:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified"
attributeFormDefault="qualified"
targetNamespace="http://www.mrbouffant.com/schema2"
xmlns:xxx="http://www.mrbouffant.com/schema2">
<xs:attributeGroup name="schema2AttributeGroup">
<xs:attribute name="schema2Attribute1 " type="xs:string"/>
<xs:attribute name="schema2Attribute2 " type="xs:string"/>
</xs:attributeGroup>
</xs:schema>
Вот xxx_schema1.xsd, который импортирует xxx_schema2:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified"
xmlns:xxx="http://www.mrbouffant.com/schema2">
<xs:import namespace="http://www.mrbouffant.com/schema2" schemaLocation="xxx_schema2.xsd"/>
<!-- ROOT ELEMENT -->
<xs:element name="rootElement" type="rootElementType" />
<!-- COMPLEX TYPES -->
<xs:complexType name="rootElementType">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attributeGroup ref="xxx:schema2AttributeGroup"/>
<xs:attribute name="schema1Attribute1" type="xs:string"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:schema>
Вот XML-документ, который я хотел бы проверить по xxx_schema1.xsd:
<?xml version="1.0" encoding="UTF-8"?>
<rootElement xmlns:xxx='http://www.mrbouffant.com/schema2/'
schema1Attribute1="foo"
xxx:schema2Attribute1="bar"
xxx:schema2Attribute2="far" />
Когда синтаксический анализатор Saxon-EE пытается проверить XML-документ на соответствие схеме, генерируемые ошибки буквально:
Engine name: Saxon-EE 9.3.0.5
Severity: error
Description: Attribute @xxx:schema2Attribute1 is not allowed on element <rootElement>
(it would be allowed in namespace http://www.mrbouffant.com/schema2)
И
Engine name: Saxon-EE 9.3.0.5
Severity: error
Description: Attribute @xxx:schema2Attribute2 is not allowed on element <rootElement>
(it would be allowed in namespace http://www.mrbouffant.com/schema2)
Не могли бы вы помочь мне понять, что я сделал неправильно в моих определениях схемы или XML-документе, которые препятствуют успешной проверке? Спасибо.