XSD: Как им импортировать тип данных из другого XSD?

StackOverflow https://stackoverflow.com/questions/3153256

  •  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. Так как он не мог импортировать схему.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top