Расширение схемы XML с помощью кода Visual Studio - PullRequest
0 голосов
/ 31 августа 2018

Я сейчас работаю над проектом, где у меня есть базовая XML-схема, которую я должен расширить. Я пытался следовать решениям https://www.w3schools.com/xml/el_include.asp и Как расширить xml-схему из другой xml-схемы? .

Я использую инструменты XML 2.3.2 в коде Visual Studio, которые работают должным образом при проверке xml на xsd. Однако, когда я пытаюсь расширить схему, как показано ниже:

node.xsd

<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
 <xs:element name="node" type="nodeType"></xs:element>
...
</xs:schema>

nodeextenstion.xsd

<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
 <xs:include schemaLocation="node.xsd"/>
</xs:schema>

Код Visual Studio выдает мне эту ошибку:

Visual Studio Code XSD Extension Error

Кто-нибудь сталкивался с таким поведением и может мне помочь.

Ценю каждый намек:)

1 Ответ

0 голосов
/ 02 февраля 2019

Поскольку schemaLocation не является частью текущего "xmlns", его невозможно распознать.

«Пожалуйста, попробуйте»:

<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.w3.org/2001/XMLSchema-instance" >
    <xs:include schemaLocation="node.xsd"/>
</xs:schema>

... добавить xmlns="http://www.w3.org/2001/XMLSchema-instance" в иерархию узлов (см. Выше), где используется schemaLocation.

В качестве альтернативы:

<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >
    <xs:include xsi:schemaLocation="node.xsd"/>
</xs:schema>

.. введите prefix для "http://www.w3.org/2001/XMLSchema-instance" и используйте его как prefix:schemaLocation.


см. Также: Проверка схемы XML: не удается найти объявление элемента

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