2010-03-01 4 views
0

Если я определяю в XSD main.xsd и sub.xsdКак обеспечить относительную SchemaLocation в XSD

Теперь, если я хочу, чтобы импортировать sub.xsd в main.xsd, как я могу это сделать.

<xsd:import 
namespace="http://localhost:8080/my-app"; 
schemaLocation="main.xsd"/> 

если оба находятся в одной папке .. но я хочу дать относительный url, как мне это сделать.

ответ

0

Сначала я хотел бы сказать, что атрибут «SchemaLocation» описывается как «являющийся подсказкой». В спецификации нет ничего, что заставляет разрешать этот атрибут в синтаксических машинах XML.

При этом, если вы используете подход, основанный на файлах, способ определить «в том же месте» будет schemaLocation = «. \ Main.xsd».

Однако, это будет работать или не зависит от конкретной реализации анализатора XML, который вы используете.

Если вы используете .Net, я хочу посоветовать вам загрузить обе схемы в XmlSchemaSet. Этого будет достаточно для проверки/создания элементов кода с использованием этого набора схем. Затем выполняется разрешение в пространстве имен-uri.

Если вы используете .Net, вы также можете подключить XmlResolver к своему приложению, которое принимает решение этих элементов.

Посмотрите MSDN для получения более подробной информации об этом подходе

Надежда это помогает,

Смежные вопросы