Я далМогу ли я создать схему XSD, которая помещает атрибут на определенный сложный тип?
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema
targetNamespace="AdditionalAttribute.OtherXSD"
xmlns:o="AdditionalAttribute.OtherXSD"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
>
<xs:element name="Tag" type="o:TagType" />
<xs:complexType name="TagType" />
</xs:schema>
, и я хочу написать
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema
targetNamespace="AdditionalAttribute.MyXSD"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
>
<!-- ? -->
</xs:schema>
так это становится действительным XML:
<?xml version="1.0" encoding="UTF-8"?>
<o:Tag
xmlns:o="AdditionalAttribute.OtherXSD"
xmlns:m="AdditionalAttribute.MyXSD"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
AdditionalAttribute.OtherXSD AdditionalAttribute.OtherXSD.xsd
AdditionalAttribute.MyXSD AdditionalAttribute.MyXSD.xsd
"
m:AdditionalAttribute="Value"
/>
Я знаю о similar question, that asks how to place an additional attribute to all complex types в другой XSD. Ответ на это - нет. Тем не менее, я не эксперт в этом и из ответов, которые я не могу получить, если бы это было возможно для определенного сложного типа. Я пробовал несколько вещей без успеха, и кажется, что это возможно только для xsd: extension'ing или xsd: ограничение сложного типа, таким образом, отбрасывая новый, что не то, что я хочу. Я хочу «объединить» атрибуты по одному и тому же тегу:
<o:Tag o:...=... />
+ <o:Tag m:...=... />
= <o:Tag o:...=... m:...=... />
Это возможно и как?
Я думаю, что это не делает то, что я хочу. Я обменял пространства имен «MyXSD» и «OtherXSD» здесь, потому что это MyXSD, который я могу редактировать, и который может импортировать OtherXSD. Я хочу добавить дополнительный (новый) атрибут в другой тег. С этим здесь XMLLint дает мне: 'AdditionalAttribute.MyXSD.xsd: 11: атрибут элемента: ошибка парсера схемы: использование атрибута (неизвестно), атрибут 'ref': значение QName '{AdditionalAttribute.OtherXSD} AdditionalAttribute' не разрешает (n) объявление атрибута. Схема WXS AdditionalAttribute.MyXSD.xsd не удалось скомпилировать ' – Max