У меня есть проект, в который загружается документ xsd, и на основании этого для каждого элемента создается редактор. И затем XML, который реализует эту схему, загружается в редактор. Это может быть простое текстовое поле для строки, средство выбора даты для даты или более сложные данные, такие как глава со связанными метаданными.
Редактор является универсальным, поэтому он создается на основе схемы. Для простых типов (таких как строка и дата) мы можем использовать атрибут type
. Но для более сложных пользовательских типов нам нужно добавить в документ xsd атрибут, определяющий, какой подэлемент редактора использовать.
Итак, я добавил пользовательский атрибут с именем UIType
, но это не разрешено схемой схемы w3. Можно ли как-то расширить схему схемы w3, предпочтительно, не создавая ее копию и не добавляя то, что мне нужно, а фактически расширяя ее? Или есть еще более разумный способ сделать это?
Спасибо.
Просто чтобы прояснить; Я не хочу добавлять атрибут к фактическим данным XML, но к схеме.
Вот пример схемы:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" attributeFormDefault="unqualified" elementFormDefault="qualified">
<xs:element name="PublishDate" type="xs:date" />
<xs:element name="Chapters">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="Chapter" UIType="ChapterPicker" >
<xs:complexType>
<xs:sequence>
<xs:element name="ID" type="xs:int" />
<xs:element name="FileID" type="xs:int" />
<xs:element name="Title" type="xs:string" />
<xs:element name="Artist" type="xs:string" />
<xs:element name="Year" type="xs:int" />
<xs:element name="Timestamp" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>