Переопределить элемент xsd - PullRequest
3 голосов
/ 18 ноября 2010

Я пытаюсь переопределить определение элемента, содержащегося в external xsd (который я не могу изменить), которое выглядит следующим образом:

<xsd:element name="view-controller">
    <xsd:complexType>
        <xsd:attribute name="path" type="xsd:string" use="required" />
        <xsd:attribute name="view-name" type="xsd:string" />
    </xsd:complexType>
</xsd:element>

Это определяет такие элементы, как:

<mvc:view-controller path="/path" view-name="server/view/etc" />

Как мне расширить его, чтобы я мог создавать элементы с 2 дополнительными атрибутами (foo и bar)?
Смотрите конечный результат, который мне нужен:*

<mvc:view-controller path="/path" view-name="server/view/etc" foo="stuff" bar="more stuff" />

То, что я пробовал:

<xsd:redefine schemaLocation="http://www.domain.org/schema/correct-path.xsd">
    <xsd:simpleType name="view-controller">
        <xsd:complexContent>
            <xsd:extension base="view-controller">
                <xsd:attribute name="foo" type="xsd:string" />
                <xsd:attribute name="bar" type="xsd:string" />
            </xsd:extension>
        </xsd:complexContent>
    </xsd:simpleType>
</xsd:redefine>

Однако это не работает.
Не могу найти какой-либо ресурс, подробно описывающий, как переопределить xsd:element содержащие атрибуты, которые яПоверьте, здесь проблема.

Пожалуйста, прокомментируйте, если требуется дополнительная информация.

Ответы [ 2 ]

2 голосов
/ 19 ноября 2010

Вы не можете иметь complexContent внутри simpleType, это не имеет смысла.

Кроме того, вы можете переопределить только одно: simpleType, complexType, group, attributeGroup. Таким образом, вы не можете переопределить элемент. Вы можете изменить его тип только в том случае, если у него есть именованный тип, что, по-видимому, не так в вашем примере.

Подробнее см. http://www.w3.org/TR/xmlschema-0/#Redefine.

0 голосов
/ 19 ноября 2010

@ Razor, вы имеете в виду, что вы не хотите изменять существующий xsd, но хотите создать еще один xsd, который изменяет свойства элемента ??

если это так, то я думаю, что это почти невозможно!ошибки типа definition already exists проблемы ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...