Импорт в файл XSD
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:aid="http://ns.adobe.com/AdobeInDesign/4.0/">
<xs:import namespace="http://ns.adobe.com/AdobeInDesign/4.0/"
schemaLocation="aid.xsd"/>
<xs:element name="Table">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" ref="Cell"/>
</xs:sequence>
<xs:attribute ref="aid:table" use="required"/>
<xs:attribute ref="aid:tcols" use="required"/>
<xs:attribute ref="aid:trows" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="Cell">
<xs:complexType mixed="true">
<xs:sequence>
<xs:element minOccurs="0"
maxOccurs="unbounded"
ref="mathImage"/>
</xs:sequence>
<xs:attribute ref="aid:ccols" use="required"/>
<xs:attribute ref="aid:ccolwidth" use="required"/>
<xs:attribute ref="aid:crows" use="required"/>
<xs:attribute ref="aid:table" use="required"/>
<xs:attribute ref="aid:theader"/>
</xs:complexType>
</xs:element>
<xs:element name="mathImage">
<xs:complexType>
<xs:attribute name="href"
use="required"
type="xs:anyURI"/>
</xs:complexType>
</xs:element>
</xs:schema>
Проблема, с которой я сталкиваюсь, заключается в том, что пространство имен для Adobe InDesign является недопустимым, равно как и расположение схемы. У кого-нибудь есть альтернатива этой ситуации?
Вот суть моей проблемы: я пытаюсь проверить Таблицы из Adobe InDesign в схеме, которую я написал. Мы решили экспортировать таблицы как таблицы InDesign, а не как CALS, из-за необходимости сбора информации о стилях. Я уже написал проверенную оставшуюся часть моей схемы, но эта часть доставляет мне проблемы.
1 ответ
Если я правильно понимаю описание вашей проблемы, вы пытаетесь построить схему из трех документов схемы:
- ваш основной документ схемы (не показан), который включает или импортирует документ схемы, показанный в описании вашей проблемы.
- документ схемы, показанный в описании проблемы, который
- объявляет элементы Table, Cell и mathImage, которые он не привязывает к пространству имен
- импортирует пространство имен
http://ns.adobe.com/AdobeInDesign/4.0/
и указывает на локальный документ схемыaid.xsd
как место для поиска соответствующих объявлений
- документ схемы aid.xsd, который не показан, но на который ссылаются из документа схемы 2. Из объявлений в документе схемы 2 можно сделать вывод, что этот документ схемы
- должен быть расположен локально (в том же каталоге, что и документ схемы 2, если для его указания используется относительная ссылка)
- должен объявить
http://ns.adobe.com/AdobeInDesign/4.0/
в качестве целевого пространства имен - должны объявить атрибуты верхнего уровня с именами table, tcol, trows, ccol, ccolwidth, crows и theader
Ваши сообщения об ошибках указывают на проблемы с чтением документа схемы с именем "Table_ASVAB.xsd"; из вашего описания мне не ясно, обозначает ли это имя файла документ схемы 1 или документ схемы 2.
Если Table_ASVAB.xsd является документом схемы, показанным в описании вашей проблемы, то возможными причинами проблемы являются те, которые приведены в сообщении об ошибке, за исключением тех, которые мы видим, но это не так:
не смог найти документ. Вполне возможно: разные валидаторы ищут документы схемы в разных местах, и вам нужно будет обратиться к документации вашего валидатора, чтобы узнать, как указать, где найти документы схемы. Из вашего описания неясно, как вы в настоящее время говорите или пытаетесь сообщить валидатору, где найти документы схемы.
документ не может быть прочитан. Также возможно: проверить, что процесс, выполняющий валидатор, имеет разрешения на чтение для документа схемы.
корневым элементом документа не является схема xsd: Не причина этого сообщения об ошибке; мы видим, что корневым элементом документа схемы, показанного в описании проблемы, является схема, и он находится в пространстве имен XSD.
Если Table_ASVAB.xsd - это не документ схемы, показанный в описании проблемы, а документ основной схемы, то применимы те же возможные причины (и вам также следует убедиться, что у него есть правильная привязка пространства имен и имя для его корневого элемента).
Пара замечаний по побочным вопросам:
Если вы предоставляете документ схемы aid.xsd
самостоятельно, не имеет значения, поддерживает ли Adobe продукт или нет: средство проверки схемы будет читать документ схемы для заданного пространства имен так же счастливо с вашего жесткого диска, как и с URI на adobe.com. Если вы не предоставляете файл aid.xsd самостоятельно, у вас есть две проблемы (по крайней мере): вам нужно найти существующий документ схемы для этого пространства имен и предоставить соответствующий URI для него в атрибуте schemaLocation при импорте.,
Разница между импортом и включением проста: include
извлекает документы схемы, которые объявляют дополнительные компоненты в целевом пространстве имен документа вызывающей схемы; import
объявляет, что импортируемый документ схемы зависит от компонентов в импортируемом пространстве имен (эта зависимость обычно принимает форму ссылок на эти компоненты; в случае показанного вами документа схемы это ссылки на атрибуты aid:table
и т. д. Ошибка включать документы схемы, в которых указано другое целевое пространство имен; Ошибка импортировать пространства имен, которые совпадают с целевым пространством имен текущего документа схемы. Если вы страдаете от путаницы в этом вопросе, вам может быть полезно проконсультироваться с хорошим руководством по XSD.