Проблема XML с <attribute ref = "..."> - PullRequest
1 голос
/ 13 августа 2010

у меня есть XML-схема

<xs:complexType>
...
<xs:attribute ref="unaryOperator"></xs:attribute>
</xs:complexType>


<xs:attribute name="unaryOperator">

я пытаюсь использовать его в моем XML-файле как это

  <inv_constraint unaryOperator="not">

Редактор выдает мне эту ошибку:

Описание Путь к ресурсу Тип местоположения [Xerces] cvc-complex-type.3.2.2: Атрибут «unaryOperator» не может появляться в элементе «inv_constraint». @see: http://www.w3.org/TR/xmlschema-1/#cvc-complex-type abc.xml / prova line 28 Проблема XML

редактор предлагает мне сделать это так

<inv_constraint xmlns:ns1="http://abc/abcd" ns1:unaryOperator="not" >

если я не использую ссылку в схеме XML и просто копирую, вставляю атрибут вместо ссылки на него, тогда мой файл XML работает,

поэтому мой вопрос заключается в том, как я могу сделать допустимым мой xml без этого странного тега и сохранить ссылку в схеме xml?

1 Ответ

0 голосов
/ 14 августа 2010

Я не вижу здесь никаких проблем.Для меня хорошо работает следующее:

schema.xsd:

<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:complexType name="ct">
    <xs:attribute ref="unaryOperator"/>
</xs:complexType>

<xs:attribute name="unaryOperator"/>

<xs:element name="inv_constraint" type="ct"/>

</xs:schema>

file.xml:

<?xml version="1.0"?>
<inv_constraint unaryOperator="non" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="schema.xsd"></inv_constraint>

Я проверял это на: Xerces, Saxon, XSV и некоторых других валидаторах.

Итак, если у вас все еще есть эта проблема:

  1. Предоставьте полный пример - файл упрощенной схемыXML-файл, в котором мы можем воспроизвести эту проблему.
  2. Какой редактор вы используете?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...