Имя файла схемы не определяет пространство имен - PullRequest
0 голосов
/ 14 ноября 2018

У меня много XSD, который включен в один XSD-файл, и все файлы становятся действительными, и соответствующий XML-файл также становится действительным по отношению к соответствующему XSD с помощью кислородного XML-редактора.Но при загрузке файла XML против файла XSD в продукте.Я получаю следующую ошибку:

Ошибка разрешения компонента Definition.attrib.Было обнаружено, что у «Definition.attrib» нет пространства имен, но компоненты без целевого пространства имен не доступны из документа схемы

Когда я открыл соответствующий файл, он показывает проверенный в кислородном редакторе XML.Вот код для соответствующего файла:

<?xml version="1.0" encoding="UTF-8"?>

<xs:schema 
  xmlns:xs="http://www.w3.org/2001/XMLSchema"
  xmlns="http://www.w3.org/1998/Math/MathML"
  targetNamespace="http://www.w3.org/1998/Math/MathML"
  elementFormDefault="qualified"
 >

<xs:include schemaLocation="common-attrib.xsd"></xs:include>
<xs:include schemaLocation="../common/common-attribs.xsd"></xs:include>

<xs:attributeGroup name="mean.attlist">
  <xs:attributeGroup ref="Definition.attrib"/>
  <xs:attributeGroup ref="Common.attrib"/>
</xs:attributeGroup>


<xs:complexType name="mean.type">
  <xs:attributeGroup ref="mean.attlist"/>
</xs:complexType>

<xs:element name="mean" type="mean.type"/>

<xs:attributeGroup name="sdev.attlist">
  <xs:attributeGroup ref="Definition.attrib"/>
  <xs:attributeGroup ref="Common.attrib"/>
</xs:attributeGroup>

<xs:complexType name="sdev.type">
  <xs:attributeGroup ref="sdev.attlist"/>
</xs:complexType>

<xs:element name="sdev" type="sdev.type"/>

<!-- "variance" -->

<xs:attributeGroup name="variance.attlist">
  <xs:attributeGroup ref="Definition.attrib"/>
  <xs:attributeGroup ref="Common.attrib"/>
</xs:attributeGroup>

<xs:complexType name="variance.type">
  <xs:attributeGroup ref="variance.attlist"/>
</xs:complexType>

<xs:element name="variance" type="variance.type"/>

<!-- "median" -->

<xs:attributeGroup name="median.attlist">
  <xs:attributeGroup ref="Definition.attrib"/>
  <xs:attributeGroup ref="Common.attrib"/>
</xs:attributeGroup>

<xs:complexType name="median.type">
  <xs:attributeGroup ref="median.attlist"/>
</xs:complexType>

<xs:element name="median" type="median.type"/>

<!-- "mode" -->

<xs:attributeGroup name="mode.attlist">
  <xs:attributeGroup ref="Definition.attrib"/>
  <xs:attributeGroup ref="Common.attrib"/>
</xs:attributeGroup>

<xs:complexType name="mode.type">
  <xs:attributeGroup ref="mode.attlist"/>
</xs:complexType>

<xs:element name="mode" type="mode.type"/>

<!-- "moment" -->

<xs:attributeGroup name="moment.attlist">
  <xs:attributeGroup ref="Definition.attrib"/>
  <xs:attributeGroup ref="Common.attrib"/>
</xs:attributeGroup>

<xs:complexType name="moment.type">
  <xs:attributeGroup ref="moment.attlist"/>
</xs:complexType>

<xs:element name="moment" type="moment.type"/>

<!-- "momentabout" -->

<xs:attributeGroup name="momentabout.attlist">
  <xs:attributeGroup ref="Definition.attrib"/>
  <xs:attributeGroup ref="Common.attrib"/>
</xs:attributeGroup>

<xs:group name="momentabout.content">
  <xs:sequence>
    <xs:group ref="Content-statistics.class"/>
  </xs:sequence>
</xs:group>

<xs:complexType name="momentabout.type">
  <xs:group ref="momentabout.content"  minOccurs="1" maxOccurs="unbounded"/>
  <xs:attributeGroup ref="momentabout.attlist"/>
</xs:complexType>

<xs:element name="momentabout" type="momentabout.type"/>

<!-- And the group of everything -->

<xs:group name="Content-statistics.class">
  <xs:choice>
    <xs:element ref="mean"/>
    <xs:element ref="sdev"/>
    <xs:element ref="variance"/>
    <xs:element ref="median"/>
    <xs:element ref="mode"/>
    <xs:element ref="moment"/>
    <xs:element ref="momentabout"/>
  </xs:choice>
</xs:group>


</xs:schema>

соответствующий XML-файл находится здесь:

<?xml version="1.0" encoding="UTF-8"?>
<document xmlns:CORE="http://www.reallysi.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:m="http://www.w3.org/1998/Math/MathML" xsi:noNamespaceSchemaLocation="oup.xsd">
<documentinfo publisher="OUPAustralia" title="Test Title - HE" titlenumber="1" isbn13="9780190311360" edition="4" author="Reynolds"/>
<chapter no="2">
<title><num>2</num><head>Inquiry Pedagogy</head></title>
<intro>
<para fo="Y"><txt><b>Good pedagogy</b></txt></para>
<para><txt><b>Research</b></txt></para>
</intro>
</document>

Может кто-нибудь помочь мне в этом, почему эта ошибка происходит.Пожалуйста, предоставьте мне предложение для этого.

1 Ответ

0 голосов
/ 14 ноября 2018

Вы еще не выяснили, доступен ли документ схемы, определяющий Definition.attrib, из документа схемы верхнего уровня или нет. Кажется, есть две возможности: либо (а) нет объявления этой группы атрибутов, либо (б) есть объявление, но оно находится в неправильном пространстве имен. В любом случае, у вас есть свисающая ссылка.

Я подозреваю, что причина, по которой вы видите различные эффекты в разных средах, заключается в том, что спецификация XSD дает некоторую гибкость процессорам при наличии таких висячих ссылок. Спецификация побуждает процессор продолжать работу независимо от тех пор, пока ссылка на компонент, который на самом деле не нужен для проверки этого экземпляра документа. Но правила несколько нечеткие.

...