Да.
Обернуть (глобальный) элемент xs:attribute
в элемент xs:attributeGroup
.
В элементе xs:element
см. Элемент xs:attributeGroup
.
Атрибут name
элемента xs:attributeGroup
может иметь то же значение, что и атрибут name
элемента xs:attribute
.
Схема
<?xml version="1.0" encoding="utf-8"?>
<xs:schema targetNamespace="http://tempuri.org/XMLSchema.xsd"
elementFormDefault="qualified"
xmlns="http://tempuri.org/XMLSchema.xsd"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:attributeGroup name="sample-attribute">
<xs:attribute name="sample-attribute" type="xs:string" use="required"/>
</xs:attributeGroup>
<xs:element name="sample-element">
<xs:complexType>
<xs:attributeGroup ref="sample-attribute" />
</xs:complexType>
</xs:element>
</xs:schema>
Информацияне имеет прямого отношения к вопросу
Это не расширение вышеупомянутого ответа и не альтернативный ответ, а просто связанная информация, которая может оказаться вам полезной (это не входит в рамки вашего вопроса).
Вы можете оставить исходную схему нетронутой и явно указать (добавить префикс пространства имен) имя атрибута в экземпляре документа, например так:
<?xml version="1.0" encoding="utf-8"?>
<t:sample-element
xmlns:t="http://tempuri.org/XMLSchema.xsd"
t:sample-attribute="test"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://tempuri.org/XMLSchema.xsd sample.xsd"/>
(обратите внимание на префикс пространства имен t:
накак имя корневого элемента, так и имя атрибута.)