请求协助完成XML Schema编写(附XML示例及现有Schema片段)
为你的XML编写对应的XML Schema
没问题,我来帮你完成适配这个XML结构的Schema文件。先回顾一下你提供的XML示例:
<information xmlns:xlink="http://www.w3.org/1999/xlink"> <fact> <header>some text</header> <text>some text</text> </fact> </information>
你已经写了Schema的开头部分,下面是完整的、完全匹配上述XML结构的Schema代码:
<?xml version="1.0" encoding="UTF-8" ?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xlink="http://www.w3.org/1999/xlink" elementFormDefault="qualified"> <!-- 定义根元素information --> <xs:element name="information"> <xs:complexType> <!-- 兼容XML中声明的xlink命名空间,允许该命名空间下的属性 --> <xs:anyAttribute namespace="http://www.w3.org/1999/xlink" processContents="lax"/> <xs:sequence> <!-- 定义fact子元素,默认出现1次,可按需调整次数 --> <xs:element name="fact"> <xs:complexType> <xs:sequence> <!-- header和text均为字符串类型,严格匹配XML结构 --> <xs:element name="header" type="xs:string"/> <xs:element name="text" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:schema>
关键细节说明:
- 我补充了
xlink命名空间的声明,确保和你的XML中命名空间定义对应;xs:anyAttribute节点用来兼容XML里的命名空间声明,即使暂时没用到xlink属性,也能保证XML验证通过。 - 所有元素的层级和类型都严格匹配你的XML结构,如果之后需要调整元素出现次数(比如允许多个
fact),只需要给fact元素加上maxOccurs="unbounded";如果要让某个元素可选,修改minOccurs="0"即可。
内容的提问来源于stack exchange,提问作者A6784
相关产品推荐
相关产品推荐

