我正在尝试为 XML 文件定义一个架构,如下所示:
<?xml version="1.0" encoding="UTF-8" ?>
<traverse xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="test.xsd">
<cp>1.0 2.0</cp>
<cp>3.0 -2.0</cp>
<cp>-1.365575 0</cp>
<cp>4 1.3</cp>
</traverse>
它必须是至少 3 个 cp(控制点)的序列,每个由两个双精度定义。我试过这个(没有必须至少有 3 个控制点的限制):
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:element name="traverse">
<xs:complexType>
<xs:sequence>
<xs:element name="cp" type="control-point" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:simpleType name="listOfValues">
<xs:list itemType="xs:double"/>
</xs:simpleType>
<xs:simpleType name="control-point">
<xs:restriction base="listOfValues">
<xs:length value="2"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>
当我尝试验证上面的 XML 文件时,XMLSpy 告诉我在 traverse-tag 中不允许使用 cp-tags。谁能帮我?谢谢!