所以我有这个 data.xml 架构代码:
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://example.com" elementFormDefault="qualified">
<xs:element name="data">
<xs:complexType>
<xs:sequence>
<xs:element name="item" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="title" type="xs:string" minOccurs="0" maxOccurs="1">
</xs:element>
<xs:element name="type" minOccurs="0" maxOccurs="1">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="header"/>
<xs:enumeration value="normal"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="backgroundcolor" minOccurs="0" maxOccurs="1">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="#[0-9A-Fa-f]+"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="fontcolor" minOccurs="0" maxOccurs="1">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="#[0-9A-Fa-f]+"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
我有 test.xml 文件:
<?xml version="1.0" encoding="UTF-8"?>
<j:data xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jeresapp.dk data.xsd" xmlns:j="http://example.com">
<j:item>
<j:title>test title</j:title>
<j:backgroundcolor>#aaf8941e</j:backgroundcolor>
<j:fontcolor>#ffffff</j:fontcolor>
<j:type>header</j:type>
</j:item>
</j:data>
我想要无限数量的项目
每个项可以包含每个定义的每个子元素的0-1(例如标题和 fontcolor )
虽然我已经完成了一些rrros(我是模式的新手,所以我一直在接受)我在各种XSD验证工具中遇到了一个奇怪的错误:
从元素'j:type'开始发现无效内容。没有孩子 在这一点上预期元素。
答案 0 :(得分:0)
使用<all>
代替<sequence>
来允许子元素的混合顺序。