Я использую расширение типа, и я пытаюсь добавить еще один атрибут, который должен быть определенного типа. К сожалению, я могу заставить одного из них работать одновременно.Расширение XSD с дополнительным атрибутом
Пример кода (это только текущее состояние многих вещей, которые я пробовал):
<xs:complexType name="buttonBaseType">
<xs:complexContent>
<xs:attribute name="text" type="nonEmptyString"/>
<xs:extension base="elementCommonInfo"/>
</xs:complexContent>
</xs:complexType>
elementCommonInfo
определяет некоторые атрибуты, позволяет сказать, что 2, то, что имеет значение по умолчанию, и один, который не имеет такой вещь.
Таким образом, в этой версии код <button text="e"/>
создает ошибку base-frame.xml:7:27: attribute 'text' is not declared for element 'button'
. Если я переведу xs:attribute
с xs:complexType
на один уровень выше (до или после xs:complexType
), документ проходит проверку, даже если есть атрибуты от elementCommonInfo
, которые должны быть там, которых нет.
TL; DR: Как получить все атрибуты из расширения вместе с новыми атрибутами, которые я определяю в «расширяющемся» типе?
при условии, что 'elementCommonInfo' имеет простой тип. – Kachna