Вот файл схемы, midi.xsd
, который определяет тип, note
, используемый для хранения значений MIDI-ноты:Включая/импорт локальных схем, которые имеют пространство имен
<?xml version="1.0" encoding="utf-8"?>
<xs:schema elementFormDefault="qualified"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:simpleType name="note">
<xs:restriction base="xs:integer">
<xs:minInclusive value="0"/>
<xs:maxInclusive value="127"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>
Вот другой файл схемы, octaves.xsd
, который использует midi.xsd
для помочь определить расположение должно быть исполнено на файл XML, содержащий данные о октав:
<?xml version="1.0" encoding="utf-8"?>
<xs:schema elementFormDefault="qualified"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:include schemaLocation="midi.xsd"/>
<xs:element name="octaves">
<xs:complexType>
<xs:sequence>
<xs:element name="octave">
<xs:complexType>
<xs:sequence>
<xs:element name="name" type="xs:string" />
<xs:element name="midi">
<xs:complexType>
<xs:sequence>
<xs:element name="value" type="xs:integer" />
<xs:element name="from" type="note" />
<xs:element name="to" type="note" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="index" type="xs:integer" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
Это нормально, и работает точно так же, как вы бы ожидать, что она, кроме того, что у меня есть еще одно требование: я хочу note
быть в своем собственном пространстве имен, midi
, так что
<xs:element name="from" type="note" />
становится
<xs:element name="from" type="midi:note" />
Try как я мог, я не могу получить эту работу. Мои попытки включали использование атрибута targetNamespace
в разных местах, элемент import
и либеральное использование xmlns:midi="..."
, но безрезультатно. Я бы поставил одну из этих попыток здесь, если бы она не была такой съедобной.
Может ли какая-то душа указать мне в правильном направлении? Я уверен, что проблема связана с тем, что midi.xsd
является локальным файлом; он никогда не был и никогда не будет размещен на веб-сервере.