我开始使用XML和XSD;我有一个名为 narrative.xsd 的简单 xsd 文件和另一个名为 goal.xsd 的文件,其中包含叙述内容。
问题是在 goal.xsd 中Timescale
类型我收到此错误:
the http://mdmw.co.uk:Timescale is not declared.
如果我省略命名空间,那么它正在工作。
如何让它与名称空间一起使用?
提前致谢。
这是 narrative.xsd :
<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="narrative"
elementFormDefault="qualified"
targetNamespace="http://mdmw.co.uk"
xmlns="http://mdmw.co.uk"
xmlns:xs="http://www.w3.org/2001/XMLSchema" >
<xs:element name="Timescale">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="1 Month" />
<xs:enumeration value="2 Months" />
<xs:enumeration value="3 Months" />
<xs:enumeration value="6 Months" />
<xs:enumeration value="9 Months" />
<xs:enumeration value="1 Year" />
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:schema>
这是 goal.xsd :
<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="goal"
elementFormDefault="qualified"
targetNamespace="http://mdmw.co.uk"
xmlns="http://mdmw.co.uk"
xmlns:xs="http://www.w3.org/2001/XMLSchema" >
<xs:include schemaLocation="narrative.xsd"/>
<xs:element name="goals">
<xs:complexType>
<xs:sequence>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="goalType" type="xs:string" />
<xs:element name="timeScale" type="Timescale" />
<xs:element name="currentResult" type="xs:decimal"/>
<xs:element name="currentResultDate" type="xs:date"/>
<xs:element name="comments" type="xs:string"/>
</xs:choice>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
答案 0 :(得分:1)
timeScale
元素声明引用类型Timescale
,但Timescale
是元素,而不是类型。
如果Timescale
元素中的匿名简单类型在 narrative.xsd 中变为顶级简单类型,则该错误应该消失。
<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="narrative"
elementFormDefault="qualified"
targetNamespace="http://mdmw.co.uk"
xmlns="http://mdmw.co.uk"
xmlns:xs="http://www.w3.org/2001/XMLSchema" >
<xs:simpleType name="Timescale">
<xs:restriction base="xs:string">
<xs:enumeration value="1 Month" />
<xs:enumeration value="2 Months" />
<xs:enumeration value="3 Months" />
<xs:enumeration value="6 Months" />
<xs:enumeration value="9 Months" />
<xs:enumeration value="1 Year" />
</xs:restriction>
</xs:simpleType>
</xs:schema>