XSD: Как им импортировать тип данных из другого XSD?
-
01-10-2019 - |
Вопрос
У меня есть следующие запуска XSD:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:no="http://www.sychophants.com">
<xs:import namespace="http://www.sychophants.com" schemaLocation="current_obs.xsd"/>
... а потом некоторые другие определения ...
<xs:element name="noInDatPletd" ref="no:in_dat"/>
Где in_dat существует в схеме, написанной другой организацией. То, что я, по сути хочу сделать, создать схему, которая будет содержать элемент типа in_dat, который определяется в XSD других обгаризации.
Я даже близко к этому правильно? Я довольно новичок в XML.
Я продолжаю получать
http://location_of_my_xsd/temp.xsd:79:9: Invalid: Undefined element
no{http://www.sychophants.com}:in_dat referenced from content model
от http://www.w3.org/2001/03/webdata/xsv., который является валидатором схемы.
Спасибо.
Редактировать: Благодаря двум из вас, кто ответил. Похоже, что проблема заключается в том, что другая организация не определяла атрибут на целевой реакцию в их схеме. Результатом заключается в том, что я не могу импортировать пространство имен в мою схему, что означает, что я не могу использовать прилагаемый тип.
Мне пришлось скопировать / вставить код, который я хотел избежать ... но вы не можете иметь все, что вы хотите, я думаю.
Решение
Я вижу только одну очевидную ошибку: вы используете ref="no:in_dat"
для ссылки на тип. Вы должны использовать type="no:in_dat"
там. ref
будет ссылаться на глобальный элемент (и не должен использоваться вместе сname
атрибут).
Кроме того, вы проходили внешнюю схему к валидатору рядом с собственной схемыми? Это, конечно, нужно, чтобы проверить с вашей схемой.
Другие советы
Кроме меняется ref =. к тип =, Ваше определение схемы выглядит правильно. Из сообщения об ошибке я предполагаю, что вариатор схемы не может загрузить current_obs.xsd. Из приставок схемы, который бы имел смысл. Валидатор не будет иметь возможности подтвердить, есть ли тип называется in_dat. Так как он не мог импортировать схему.