У меня есть несколько небольших файлов xsd, которые я удалил из-за повторения.Я думал, что смогу сократить расходы на техническое обслуживание, если тип поменялся.Итак, вот один пример:
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:simpleType name="StartCodeType">
<xs:restriction base="xs:integer">
<xs:pattern value="99[0-9]{3,6}"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>
Теперь у меня есть xsd, который пытается включить этот файл следующим образом:
<?xml version="1.0"?>
<xs:schema
xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.quikq.com/xsd/unlukupRequest"
xmlns="http://www.quikq.com/xsd/unlukupRequest"
elementFormDefault="qualified" >
<xs:include schemaLocation="TrimmedStringType.xsd" />
<xs:include schemaLocation="StartCodeType.xsd" />
<xs:include schemaLocation="AscendDescendFlag.xsd" />
(и т. Д.)
MyПрограмма использует Xerces SAX2 для разбора XML.Вот ошибка, которую я получаю:
Ошибка в файле "/home/dfcuser/unlukupRequest.xsd", строка = 32, столбец = 69, элемент XML =, тип не найден в http://www.quikq.com/xsd/unlukupRequest:StartCodeType
Ошибка в файле "/home/dfcuser/unlukupRequest.xsd", строка = 34, столбец = 87, элемент XML =, тип не найден в http://www.quikq.com/xsd/unlukupRequest:TrimmedStringType
Ошибка в файле "/ home /dfcuser / unlukupRequest.xsd ", строка = 38, столбец = 68, элемент XML =, базовый тип не найден: TrimmedStringType
Ошибка в файле" /home/dfcuser/unlukupRequest.xsd ", строка = 50, column = 108, XML element =, SimpleType (http://www.quikq.com/xsd/unlukupRequest:AscendDescendFlag) для атрибута: ad_flag не найден
В любом случае, я решил, что это сработает, так как моим типам не определено пространство имен.
Вот XSD
<?xml version="1.0"?>
<xs:schema
xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.quikq.com/xsd/unlukupRequest"
xmlns="http://www.quikq.com/xsd/unlukupRequest"
elementFormDefault="qualified" >
<!--
Homebrewed data types for more strict checking on different fields
-->
<xs:include schemaLocation="StartCodeType.xsd" />
<xs:include schemaLocation="TrimmedStringType.xsd" />
<xs:include schemaLocation="AscendDescendFlag.xsd" />
<!--
Describes the root element
-->
<xs:element name="unlukupRequest">
<xs:complexType>
<xs:sequence>
<xs:element ref="transaction" />
</xs:sequence>
</xs:complexType>
</xs:element>
<!--
Describes the response element, which is the child to the authNotifyResponse root
-->
<xs:element name="transaction">
<xs:complexType>
<xs:sequence>
<xs:element name="startCode" type="StartCodeType" />
<xs:element name="ununit" type="xs:string" minOccurs="0" />
<xs:element name="exception" type="TrimmedStringType" minOccurs="0" />
<xs:element name="opt" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="TrimmedStringType">
<xs:attribute name="name" type="xs:NMTOKEN" use="required" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="orderBy" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="field" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="name" type="xs:NMTOKEN" use="required" />
<xs:attribute name="ad_flag" type="AscendDescendFlag" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="rangeLower" type="xs:integer" minOccurs="0" />
<xs:element name="rangeUpper" type="xs:integer" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>