加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

奇怪的XML架构

发布时间:2020-12-16 23:08:21 所属栏目:百科 来源:网络整理
导读:好吧,所以我的任务是从供应商提供给我们的 XML文档中编写XSD.这个供应商没有他们可以提供的XSD,所以我是逆向工程的.以下是此xml形成方式的示例: field name="id"1/fieldfield name="Sport"Football/fieldfield name="Position"Quarterback/fieldfield name=
好吧,所以我的任务是从供应商提供给我们的 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>

我在名称类型中使用了xs:string,但我想你可以定义一个新的数据类型来强制只使用某些关键字……

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读