我有幾個小的xsd文件因剝離而重複出現。我認爲如果類型改變,我可以減少維護。因此,這裏是一個例子: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" />
(ETC)
我的程序使用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, column = 68,XML element =,無法找到基本類型:TrimmedStringType
文件「/ home/dfcuser/unlukupR」 equest.xsd」,線= 50,列= 108,XML元素=,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>
我不認爲您向我們顯示了錯誤所在的行號。 – 2011-03-23 22:29:59
我已經爲此示例添加了XSD文件。感謝您能給我的任何指示。我已經絞盡腦汁在這一個,所以謝謝! – 2011-03-31 15:57:49
你的問題是什麼? – skaffman 2011-03-31 16:14:17