好吧,所以我的任务是从供应商提供给我们的
XML文档中编写XSD.这个供应商没有他们可以提供的XSD,所以我是逆向工程的.以下是此xml形成方式的示例:
<field name="id">1</field> <field name="Sport">Football</field> <field name="Position">Quarterback</field> <field name="Touchdowns">7</field> <field name="Interceptions">2</field> <field name="Yardage">2000</field>
因此,由于所有元素都被命名为“field”,因此我无法为此创建架构.这是我到目前为止:
<xs:element name="field" type="xs:int"> <xs:simpletype> <xs:attribute name="name" type="xs:string" default="id"/> </xs:string> </xs:element>
我遇到的问题是所有元素都具有相同的名称.我用来编写xsd的软件遇到了问题.我在这里有正确的方法吗?
谢谢你的帮助.
解决方法
field元素的maxOccurs的默认值是1(因此尝试将其设置为unbounded),simpleType也可能不包含属性或子元素.
我相信以下示例正在运行:
XSD:
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> <xs:element name="fields"> <xs:complexType> <xs:sequence> <xs:element maxOccurs="unbounded" ref="field"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="field"> <xs:complexType> <xs:attribute name="name" type="xs:string" use="required"/> </xs:complexType> </xs:element> </xs:schema>
XML:
<?xml version="1.0" ?> <fields xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="fields.xsd"> <field name="id">1</field> <field name="Sport">Football</field> <field name="Position">Quarterback</field> <field name="Touchdowns">7</field> <field name="Interceptions">2</field> <field name="Yardage">2000</field> </fields>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。