xml、xsd相关

1. xml概念:

https://www.w3school.com.cn/xml/index.asp

XML 被设计用来传输和存储数据。
HTML 被设计用来显示数据。

<?xml version="1.0" encoding="ISO-8859-1"?>
<note>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>

<bookstore>
<book category="CHILDREN">
  <title>Harry Potter</title> 
  <author>J K. Rowling</author> 
  <year>2005</year> 
  <price>29.99</price> 
</book>
<book category="WEB">
  <title>Learning XML</title> 
  <author>Erik T. Ray</author> 
  <year>2003</year> 
  <price>39.95</price> 
</book>
</bookstore> 

 

2. xml属性:

XML 属性必须加引号。在 HTML 中,属性用起来很便利,但是在 XML 中,您应该尽量避免使用属性。如果信息感觉起来很像数据,那么请使用子元素吧。

 

3. xml的命名空间、xmlns:

xmlns:namespace-prefix="namespaceURI"

<h:table xmlns:h="http://www.w3.org/TR/html4/">
   <h:tr>
   <h:td>Apples</h:td>
   <h:td>Bananas</h:td>
   </h:tr>
</h:table>

默认的命名空间:
<table xmlns="http://www.w3.org/TR/html4/">
   <tr>
   <td>Apples</td>
   <td>Bananas</td>
   </tr>
</table>

4. xsd定义:

XML Schema 语言也可作为 XSD(XML Schema Definition)来引用。
XML Schema 可保护数据通信:使数据理解起来,没有歧义。
xsd:
<?xml version="1.0"?>
 
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.w3school.com.cn"
xmlns="http://www.w3school.com.cn"
elementFormDefault="qualified">

...
...
</xs:schema>

说明:
xmlns:xs="http://www.w3.org/2001/XMLSchema"
显示 schema 中用到的元素和数据类型来自命名空间 "http://www.w3.org/2001/XMLSchema"。同时它还规定了来自命名空间 "http://www.w3.org/2001/XMLSchema" 的元素和数据类型应该使用前缀 xs:
targetNamespace="http://www.w3school.com.cn" 
显示被此 schema 定义的元素 (note, to, from, heading, body) 来自命名空间: "http://www.w3school.com.cn"。
xmlns="http://www.w3school.com.cn" 
指出默认的命名空间是 "http://www.w3school.com.cn"。
elementFormDefault="qualified" 
指出任何 XML 实例文档所使用的且在此 schema 中声明过的元素必须被命名空间限定。

xml:

<?xml version="1.0"?>

<note xmlns="http://www.w3school.com.cn"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.w3school.com.cn note.xsd">

<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>

说明:
xmlns="http://www.w3school.com.cn" 
规定了默认命名空间的声明。此声明会告知 schema 验证器,在此 XML 文档中使用的所有元素都被声明于 "http://www.w3school.com.cn" 这个命名空间。
一旦您拥有了可用的 XML Schema 实例命名空间:
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
您就可以使用 schemaLocation 属性了。此属性有两个值。第一个值是需要使用的命名空间。第二个值是供命名空间使用的 XML schema 的位置:
xsi:schemaLocation="http://www.w3school.com.cn note.xsd"

5. xsd语法:

元素:
<xs:element name="xxx" type="yyy"/>
此处 xxx 指元素的名称,yyy 指元素的数据类型。XML Schema 拥有很多内建的数据类型。

最常用的类型是:
    xs:string
    xs:decimal
    xs:integer
    xs:boolean
    xs:date
    xs:time

例如:
<lastname>Smith</lastname>
<age>28</age>
<dateborn>1980-03-27</dateborn>
-----------------------
<xs:element name="lastname" type="xs:string"/>
<xs:element name="age" type="xs:integer"/>
<xs:element name="dateborn" type="xs:date"/> 

简易元素的默认值和固定值:
<xs:element name="color" type="xs:string" default="red"/>
<xs:element name="color" type="xs:string" fixed="red"/>
属性:
<xs:attribute name="xxx" type="yyy"/>

最常用的类型是:
xs:string
xs:decimal
xs:integer
xs:boolean
xs:date
xs:time

<lastname lang="EN">Smith</lastname>
<xs:attribute name="lang" type="xs:string"/>

<xs:attribute name="lang" type="xs:string" default="EN"/>
<xs:attribute name="lang" type="xs:string" fixed="EN"/>
<xs:attribute name="lang" type="xs:string" use="required"/>  # 属性为必选
限定:
1.限定且名为 "age" 的元素。age 的值不能低于 0 或者高于 120<xs:element name="age">

<xs:simpleType>
  <xs:restriction base="xs:integer">
    <xs:minInclusive value="0"/>
    <xs:maxInclusive value="120"/>
  </xs:restriction>
</xs:simpleType>

</xs:element> 

2.限定的名为 "car" 的元素。可接受的值只有:Audi, Golf, BMW:
<xs:element name="car">

<xs:simpleType>
  <xs:restriction base="xs:string">
    <xs:enumeration value="Audi"/>
    <xs:enumeration value="Golf"/>
    <xs:enumeration value="BMW"/>
  </xs:restriction>
</xs:simpleType>

</xs:element> 

3.名为 "letter" 的元素。可接受的值只有小写字母 a - z 其中的一个:
<xs:element name="letter">

<xs:simpleType>
  <xs:restriction base="xs:string">
    <xs:pattern value="[a-z]"/>
  </xs:restriction>
</xs:simpleType>

</xs:element> 

4.名为 "initials" 的元素。可接受的值是大写字母 A - Z 其中的三个:
<xs:element name="initials">

<xs:simpleType>
  <xs:restriction base="xs:string">
    <xs:pattern value="[A-Z][A-Z][A-Z]"/>
  </xs:restriction>
</xs:simpleType>

</xs:element> 

5.名为 "initials" 的元素。可接受的值是大写或小写字母 a - z 其中的三个:
<xs:element name="initials">

<xs:simpleType>
  <xs:restriction base="xs:string">
    <xs:pattern value="[a-zA-Z][a-zA-Z][a-zA-Z]"/>
  </xs:restriction>
</xs:simpleType>

</xs:element> 

6.名为 "choice 的元素。可接受的值是字母 x, y 或 z 中的一个:
<xs:element name="choice">

<xs:simpleType>
  <xs:restriction base="xs:string">
    <xs:pattern value="[xyz]"/>
  </xs:restriction>
</xs:simpleType>

</xs:element> 

7.名为 "prodid" 的元素。可接受的值是五个阿拉伯数字的一个序列,且每个数字的范围是 0-9<xs:element name="prodid">

<xs:simpleType>
  <xs:restriction base="xs:integer">
    <xs:pattern value="[0-9][0-9][0-9][0-9][0-9]"/>
  </xs:restriction>
</xs:simpleType>

</xs:element> 

8.名为 "letter" 的元素。可接受的值是 a - z 中零个或多个字母:
<xs:element name="letter">

<xs:simpleType>
  <xs:restriction base="xs:string">
    <xs:pattern value="([a-z])*"/>
  </xs:restriction>
</xs:simpleType>

</xs:element> 

9.名为 "letter" 的元素。可接受的值是一对或多对字母,每对字母由一个小写字母后跟一个大写字母组成。举个例子,"sToP"将会通过这种模式的验证,但是 "Stop"、"STOP" 或者 "stop" 无法通过验证:
<xs:element name="letter">

<xs:simpleType>
  <xs:restriction base="xs:string">
    <xs:pattern value="([a-z][A-Z])+"/>
  </xs:restriction>
</xs:simpleType>

</xs:element> 

10.名为 "gender" 的元素。可接受的值是 male 或者 female:
<xs:element name="gender">

<xs:simpleType>
  <xs:restriction base="xs:string">
    <xs:pattern value="male|female"/>
  </xs:restriction>
</xs:simpleType>

</xs:element> 

11.名为 "password" 的元素。可接受的值是由 8 个字符组成的一行字符,这些字符必须是大写或小写字母 a - z 亦或数字 0 - 9<xs:element name="password">

<xs:simpleType>
  <xs:restriction base="xs:string">
    <xs:pattern value="[a-zA-Z0-9]{8}"/>
  </xs:restriction>
</xs:simpleType>

</xs:element> 

12.名为 "address" 的元素。这个 whiteSpace 限定被设置为 "preserve",这意味着 XML 处理器不会移除任何空白字符:
<xs:element name="address">

<xs:simpleType>
  <xs:restriction base="xs:string">
    <xs:whiteSpace value="preserve"/>
  </xs:restriction>
</xs:simpleType>

</xs:element> 

13.名为 "address" 的元素。这个 whiteSpace 限定被设置为 "replace",这意味着 XML 处理器将移除所有空白字符(换行、回车、空格以及制表符):
<xs:element name="address">

<xs:simpleType>
  <xs:restriction base="xs:string">
    <xs:whiteSpace value="replace"/>
  </xs:restriction>
</xs:simpleType>

</xs:element> 

14.名为 "address" 的元素。这个 whiteSpace 限定被设置为 "collapse",这意味着 XML 处理器将移除所有空白字符(换行、回车、空格以及制表符会被替换为空格,开头和结尾的空格会被移除,而多个连续的空格会被缩减为一个单一的空格):
<xs:element name="address">

<xs:simpleType>
  <xs:restriction base="xs:string">
    <xs:whiteSpace value="collapse"/>
  </xs:restriction>
</xs:simpleType>

</xs:element> 

15.名为 "password" 的元素。其值必须精确到 8 个字符:
<xs:element name="password">

<xs:simpleType>
  <xs:restriction base="xs:string">
    <xs:length value="8"/>
  </xs:restriction>
</xs:simpleType>

</xs:element> 

16.名为 "password" 的元素。其值最小为 5 个字符,最大为 8 个字符:
<xs:element name="password">

<xs:simpleType>
  <xs:restriction base="xs:string">
    <xs:minLength value="5"/>
    <xs:maxLength value="8"/>
  </xs:restriction>
</xs:simpleType>

</xs:element> 

补充:

 

 

 

 

复合元素
1.
<employee>
<firstname>John</firstname>
<lastname>Smith</lastname>
</employee>

<xs:element name="employee">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="firstname" type="xs:string"/>
      <xs:element name="lastname" type="xs:string"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>

说明:
<xs:sequence>。它意味着被定义的元素必须按上面的次序出现在 "person" 元素中。

or:若干元素均可引用相同的复合类型;
<xs:element name="employee" type="personinfo"/>
<xs:complexType name="personinfo">
  <xs:sequence>
    <xs:element name="firstname" type="xs:string"/>
    <xs:element name="lastname" type="xs:string"/>
  </xs:sequence>
</xs:complexType>

2.
多个时:
<xs:element name="employee" type="personinfo"/>
<xs:element name="student" type="personinfo"/>
<xs:element name="member" type="personinfo"/>

<xs:complexType name="personinfo">
  <xs:sequence>
    <xs:element name="firstname" type="xs:string"/>
    <xs:element name="lastname" type="xs:string"/>
  </xs:sequence>
</xs:complexType>

or:
<xs:element name="employee" type="fullpersoninfo"/>

<xs:complexType name="personinfo">
  <xs:sequence>
    <xs:element name="firstname" type="xs:string"/>
    <xs:element name="lastname" type="xs:string"/>
  </xs:sequence>
</xs:complexType>

<xs:complexType name="fullpersoninfo">
  <xs:complexContent>
    <xs:extension base="personinfo">
      <xs:sequence>
        <xs:element name="address" type="xs:string"/>
        <xs:element name="city" type="xs:string"/>
        <xs:element name="country" type="xs:string"/>
      </xs:sequence>
    </xs:extension>
  </xs:complexContent>
</xs:complexType>

3.
<shoesize country="france">35</shoesize>

<xs:element name="shoesize">
  <xs:complexType>
    <xs:simpleContent>
      <xs:extension base="xs:integer">
        <xs:attribute name="country" type="xs:string" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
</xs:element>

or
<xs:element name="shoesize" type="shoetype"/>

<xs:complexType name="shoetype">
  <xs:simpleContent>
    <xs:extension base="xs:integer">
      <xs:attribute name="country" type="xs:string" />
    </xs:extension>
  </xs:simpleContent>
</xs:complexType>

4.
<letter>
Dear Mr.<name>John Smith</name>.
Your order <orderid>1032</orderid>
will be shipped on <shipdate>2001-07-13</shipdate>.
</letter>

<xs:element name="letter">
  <xs:complexType mixed="true">
    <xs:sequence>
      <xs:element name="name" type="xs:string"/>
      <xs:element name="orderid" type="xs:positiveInteger"/>
      <xs:element name="shipdate" type="xs:date"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>

or:
<xs:element name="letter" type="lettertype"/>

<xs:complexType name="lettertype" mixed="true">
  <xs:sequence>
    <xs:element name="name" type="xs:string"/>
    <xs:element name="orderid" type="xs:positiveInteger"/>
    <xs:element name="shipdate" type="xs:date"/>
  </xs:sequence>
</xs:complexType>

5. group 定义完毕以后,就可以在另一个定义中引用它了:
<xs:group name="persongroup">
  <xs:sequence>
    <xs:element name="firstname" type="xs:string"/>
    <xs:element name="lastname" type="xs:string"/>
    <xs:element name="birthday" type="xs:date"/>
  </xs:sequence>
</xs:group>

<xs:element name="person" type="personinfo"/>

<xs:complexType name="personinfo">
  <xs:sequence>
    <xs:group ref="persongroup"/>
    <xs:element name="country" type="xs:string"/>
  </xs:sequence>
</xs:complexType>

6.定义完毕属性组之后,就可以在另一个定义中引用它了.
<xs:attributeGroup name="personattrgroup">
  <xs:attribute name="firstname" type="xs:string"/>
  <xs:attribute name="lastname" type="xs:string"/>
  <xs:attribute name="birthday" type="xs:date"/>
</xs:attributeGroup>

<xs:element name="person">
  <xs:complexType>
    <xs:attributeGroup ref="personattrgroup"/>
  </xs:complexType>
</xs:element>

7.元素替代
<xs:element name="name" type="xs:string"/>
<xs:element name="navn" substitutionGroup="name"/>

<xs:complexType name="custinfo">
  <xs:sequence>
    <xs:element ref="name"/>
  </xs:sequence>
</xs:complexType>

<xs:element name="customer" type="custinfo"/>
<xs:element name="kunde" substitutionGroup="customer"/>

<customer>
  <name>John Smith</name>
</customer>

or
<kunde>
  <navn>John Smith</navn>
</kunde>

8.阻止元素替换
<xs:element name="name" type="xs:string" block="substitution"/>
<xs:element name="navn" substitutionGroup="name"/>

<xs:complexType name="custinfo">
  <xs:sequence>
    <xs:element ref="name"/>
  </xs:sequence>
</xs:complexType>

<xs:element name="customer" type="custinfo" block="substitution"/>
<xs:element name="kunde" substitutionGroup="customer"/>

<customer>
  <name>John Smith</name>
</customer>

不再合法:
<kunde>
  <navn>John Smith</navn>
</kunde>
 

6. xsd实例:

xml:
<?xml version="1.0" encoding="ISO-8859-1"?>

<shiporder orderid="889923"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="shiporder.xsd">
 <orderperson>George Bush</orderperson>
 <shipto>
  <name>John Adams</name>
  <address>Oxford Street</address>
  <city>London</city>
  <country>UK</country>
 </shipto>
 <item>
  <title>Empire Burlesque</title>
  <note>Special Edition</note>
  <quantity>1</quantity>
  <price>10.90</price>
 </item>
 <item>
  <title>Hide your heart</title>
  <quantity>1</quantity>
  <price>9.90</price>
 </item>
</shiporder>
说明:
上面的XML文档包括根元素 "shiporder",其中包含必须名为 "orderid" 的属性。"shiporder" 元素包含三个不同的子元素:"orderperson"、"shipto" 以及 "item"。"item" 元素出现了两次,它含有一个 "title"、一个可选 "note" 元素、一个 "quantity" 以及一个 "price" 元素。
 
上面这一行 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance",告知XML解析器根据某个 schema 来验证此文档。这一行:xsi:noNamespaceSchemaLocation="shiporder.xsd" 规定了 schema 的位置(在这里,它与 "shiporder.xml" 处于相同的文件夹)。
xsd:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

<xs:element name="shiporder">
 <xs:complexType>
  <xs:sequence>
   <xs:element name="orderperson" type="xs:string"/>
   <xs:element name="shipto">
    <xs:complexType>
     <xs:sequence>
      <xs:element name="name" type="xs:string"/>
      <xs:element name="address" type="xs:string"/>
      <xs:element name="city" type="xs:string"/>
      <xs:element name="country" type="xs:string"/>
     </xs:sequence>
    </xs:complexType>
   </xs:element>
   <xs:element name="item" maxOccurs="unbounded">
    <xs:complexType>
     <xs:sequence>
      <xs:element name="title" type="xs:string"/>
      <xs:element name="note" type="xs:string" minOccurs="0"/>
      <xs:element name="quantity" type="xs:positiveInteger"/>
      <xs:element name="price" type="xs:decimal"/>
     </xs:sequence>
    </xs:complexType>
   </xs:element>
  </xs:sequence>
  <xs:attribute name="orderid" type="xs:string" use="required"/>
 </xs:complexType>
</xs:element>

</xs:schema>

or:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

<!-- 简易元素的定义 -->
<xs:element name="orderperson" type="xs:string"/>
<xs:element name="name" type="xs:string"/>
<xs:element name="address" type="xs:string"/>
<xs:element name="city" type="xs:string"/>
<xs:element name="country" type="xs:string"/>
<xs:element name="title" type="xs:string"/>
<xs:element name="note" type="xs:string"/>
<xs:element name="quantity" type="xs:positiveInteger"/>
<xs:element name="price" type="xs:decimal"/>

<!-- 属性的定义 -->
<xs:attribute name="orderid" type="xs:string"/>

<!-- 复合元素的定义 -->
<xs:element name="shipto">
 <xs:complexType>
  <xs:sequence>
   <xs:element ref="name"/>
   <xs:element ref="address"/>
   <xs:element ref="city"/>
   <xs:element ref="country"/>
  </xs:sequence>
 </xs:complexType>
</xs:element>
<xs:element name="item">
 <xs:complexType>
  <xs:sequence>
   <xs:element ref="title"/>
   <xs:element ref="note" minOccurs="0"/>
   <xs:element ref="quantity"/>
   <xs:element ref="price"/>
  </xs:sequence>
 </xs:complexType>
</xs:element>

<xs:element name="shiporder">
 <xs:complexType>
  <xs:sequence>
   <xs:element ref="orderperson"/>
   <xs:element ref="shipto"/>
   <xs:element ref="item" maxOccurs="unbounded"/>
  </xs:sequence>
  <xs:attribute ref="orderid" use="required"/>
 </xs:complexType>
</xs:element>

</xs:schema>

or:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

<xs:simpleType name="stringtype">
 <xs:restriction base="xs:string"/>
</xs:simpleType>

<xs:simpleType name="inttype">
 <xs:restriction base="xs:positiveInteger"/>
</xs:simpleType>

<xs:simpleType name="dectype">
 <xs:restriction base="xs:decimal"/>
</xs:simpleType>

<xs:simpleType name="orderidtype">
 <xs:restriction base="xs:string">
  <xs:pattern value="[0-9]{6}"/>
 </xs:restriction>
</xs:simpleType>

<xs:complexType name="shiptotype">
 <xs:sequence>
  <xs:element name="name" type="stringtype"/>
  <xs:element name="address" type="stringtype"/>
  <xs:element name="city" type="stringtype"/>
  <xs:element name="country" type="stringtype"/>
 </xs:sequence>
</xs:complexType>

<xs:complexType name="itemtype">
 <xs:sequence>
  <xs:element name="title" type="stringtype"/>
  <xs:element name="note" type="stringtype" minOccurs="0"/>
  <xs:element name="quantity" type="inttype"/>
  <xs:element name="price" type="dectype"/>
 </xs:sequence>
</xs:complexType>

<xs:complexType name="shipordertype">
 <xs:sequence>
  <xs:element name="orderperson" type="stringtype"/>
  <xs:element name="shipto" type="shiptotype"/>
  <xs:element name="item" maxOccurs="unbounded" type="itemtype"/>
 </xs:sequence>
 <xs:attribute name="orderid" type="orderidtype" use="required"/>
</xs:complexType>

<xs:element name="shiporder" type="shipordertype"/>

</xs:schema>
    

7. xsd数据类型:

1.字符串
<xs:element name="customer" type="xs:string"/>
<xs:element name="customer" type="xs:normalizedString"/>
<xs:element name="customer" type="xs:token"/>

2.日期
<xs:element name="start" type="xs:date"/>
"YYYY-MM-DD"
<start>2002-09-24</start>

<xs:element name="start" type="xs:time"/>
"hh:mm:ss"
<start>09:00:00</start>

<xs:element name="startdate" type="xs:dateTime"/>
"YYYY-MM-DDThh:mm:ss"
<startdate>2002-05-30T09:00:00</startdate>

<xs:element name="period" type="xs:duration"/>
"PnYnMnDTnHnMnS"
5 年的周期。
<period>P5Y</period>
5 年、2 个月及 10 天的周期。
<period>P5Y2M10D</period>
 5 年、2 个月、10 天及 15 小时的周期。
<period>P5Y2M10DT15H</period>

3.数值
<xs:element name="prize" type="xs:decimal"/>
<prize>999.50</prize>

<xs:element name="prize" type="xs:integer"/>
<prize>999</prize>

4.杂项
<xs:attribute name="disabled" type="xs:boolean"/>
<prize disabled="true">999</prize>
注释:合法的布尔值是 truefalse、1(表示 true) 以及 0(表示 false)。

<xs:element name="blobsrc" type="xs:hexBinary"/>
<xs:attribute name="src" type="xs:anyURI"/>
<pic src="http://www.w3school.com.cn/images/smiley.gif" />
注释:假如某个 URI 含有空格,请用 %20 替换它们。

 

 

 

 

 

8. xml、xsd实例:

xmlns:
1. xmlns:namespace-prefix="namespaceURI"。其中namespace-prefix为自定义前缀,只要在这个XML文档中保证前缀不重复即可;namespaceURI是这个前缀对应的XML Namespace的定义。
2. xmlns表示默认的Namespace。
3. xmlns:xsi表示使用xsi作为前缀的Namespace.
xsi:schemaLocation属性其实是Namespace为http://www.w3.org/2001/XMLSchema-instance里的schemaLocation属性。
4. 它定义了XML Namespace和对应的XSD(Xml Schema Definition)文档的位置的关系。它的值由一个或多个URI引用对组成,两个URI之间以空白符分隔(空格和换行均可)。第一个URI是定义的XML Namespace的值,第二个URI给出Schema文档的位置,Schema处理器将从这个位置读取Schema文档,该文档的targetNamespace必须与第一个URI相匹配。
5. 后者与前者仅仅使用不同前缀,我们为 <table> 标签添加了一个 xmlns 属性,这样就为前缀赋予了一个与某个命名空间相关联的限定名称。此时再把它们放在一起,XML解析器就不会报错了。

 

xml:
<?xml version="1.0" encoding="UTF-8" ?>
<VTTSEventS xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xsi:noNamespaceSchemaLocation="2012-bj.xsd">
    <VTTSEvent>
        <datasetName>ImportWareHouseIn</datasetName>
        <eventBodyList>
            <eventBody>
                <recTime>2019-08-08 13:40:00</recTime>
                <eventID>12344566</eventID>
                <evtBasic>
                    <RKDBH>入库单编号</RKDBH>
                </evtBasic>
                <itemList>
                    <itemDetail>
                        <TYSHXYDMJKYMDLQY>统一社会信用代码(进口疫苗代理企业)</TYSHXYDMJKYMDLQY>
                        <JKYMDLQYMC>进口疫苗代理企业名称</JKYMDLQYMC>
                        <TYSHXYDMFBZC>统一社会信用代码(分包装厂)</TYSHXYDMFBZC>
                        <FBZCMC>分包装厂名称</FBZCMC>
                        <YPTYMC>重组乙型肝炎疫苗(酿酒酵母)</YPTYMC>
                        <GJYPBSM>8806089</GJYPBSM>
                        <YMSCPH>19041901</YMSCPH>
                        <SCRQ>20190808</SCRQ>
                        <YMYXQJZRQ>20190808</YMYXQJZRQ>
                        <JKSL>100</JKSL>
                    </itemDetail>
                </itemList>
            </eventBody>
            <eventBody>
                <recTime>2019-08-08 13:40:00</recTime>
                <eventID>12344566</eventID>
                <evtBasic>
                    <RKDBH>入库单编号</RKDBH>
                </evtBasic>
                <itemList>
                    <itemDetail>
                        <TYSHXYDMJKYMDLQY>统一社会信用代码(进口疫苗代理企业)</TYSHXYDMJKYMDLQY>
                        <JKYMDLQYMC>进口疫苗代理企业名称</JKYMDLQYMC>
                        <TYSHXYDMFBZC>统一社会信用代码(分包装厂)</TYSHXYDMFBZC>
                        <FBZCMC>分包装厂名称</FBZCMC>
                        <YPTYMC>重组乙型肝炎疫苗(酿酒酵母)</YPTYMC>
                        <GJYPBSM>00509000502</GJYPBSM>
                        <YMSCPH>19041901</YMSCPH>
                        <SCRQ>20190808</SCRQ>
                        <YMYXQJZRQ>20190808</YMYXQJZRQ>
                        <JKSL>100</JKSL>
                    </itemDetail>
                    <itemDetail>
                        <TYSHXYDMJKYMDLQY>统一社会信用代码(进口疫苗代理企业)</TYSHXYDMJKYMDLQY>
                        <JKYMDLQYMC>进口疫苗代理企业名称</JKYMDLQYMC>
                        <TYSHXYDMFBZC>统一社会信用代码(分包装厂)</TYSHXYDMFBZC>
                        <FBZCMC>分包装厂名称</FBZCMC>
                        <YPTYMC>重组乙型肝炎疫苗(酿酒酵母)</YPTYMC>
                        <GJYPBSM>00509000502</GJYPBSM>
                        <YMSCPH>19041901</YMSCPH>
                        <SCRQ>20190808</SCRQ>
                        <YMYXQJZRQ>20190808</YMYXQJZRQ>
                        <JKSL>100</JKSL>
                    </itemDetail>
                </itemList>
            </eventBody>
        </eventBodyList>
    </VTTSEvent>

</VTTSEventS>

 

xsd:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified"
           xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="VTTSEventS" type="VTTSEventSType"/>
    <xs:complexType name="evtBasicType">
        <xs:sequence>
            <xs:element type="xs:string" name="RKDBH"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="itemDetailType">

        <xs:all>
            <xs:element name="TYSHXYDMJKYMDLQY">
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:maxLength value="18"/>
                        <xs:minLength value="1"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:element>
            <xs:element name="JKYMDLQYMC">
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:maxLength value="200"/>
                        <xs:minLength value="1"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:element>
            <xs:element name="TYSHXYDMFBZC">
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:maxLength value="18"/>
                        <xs:minLength value="0"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:element>
            <xs:element name="FBZCMC">
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:maxLength value="200"/>
                        <xs:minLength value="0"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:element>

            <xs:element name="YPTYMC">
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:maxLength value="100"/>
                        <xs:minLength value="1"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:element>

            <xs:element name="GJYPBSM">
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:maxLength value="20"/>
                        <xs:minLength value="1"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:element>

            <xs:element name="YMSCPH">
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:maxLength value="20"/>
                        <xs:minLength value="1"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:element>

            <xs:element name="SCRQ">
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:maxLength value="8"/>
                        <xs:minLength value="8"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:element>
            <xs:element name="YMYXQJZRQ">
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:maxLength value="8"/>
                        <xs:minLength value="8"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:element>
            <xs:element name="JKSL">
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:maxLength value="10"/>
                        <xs:minLength value="1"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:element>

        </xs:all>

    </xs:complexType>
    <xs:complexType name="itemListType">
        <xs:sequence>
            <xs:element type="itemDetailType" name="itemDetail" maxOccurs="unbounded" minOccurs="0"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="eventBodyType">
        <xs:sequence>
            <xs:element name="recTime">
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:maxLength value="256"/>
                        <xs:minLength value="1"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:element>

            <xs:element name="eventID">
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:maxLength value="256"/>
                        <xs:minLength value="1"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:element>
            <xs:element type="evtBasicType" name="evtBasic"/>

            <xs:element type="itemListType" name="itemList"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="eventBodyListType">
        <xs:sequence>
            <xs:element type="eventBodyType" name="eventBody" maxOccurs="unbounded" minOccurs="0"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="VTTSEventType">
        <xs:sequence>
            <xs:element name="datasetName">
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:maxLength value="256"/>
                        <xs:minLength value="1"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:element>
            <xs:element type="eventBodyListType" name="eventBodyList"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="VTTSEventSType">
        <xs:sequence>
            <xs:element type="VTTSEventType" name="VTTSEvent"/>
        </xs:sequence>
    </xs:complexType>
</xs:schema>

 

 

posted @ 2020-07-16 23:53  Alice的小屋  阅读(148)  评论(0编辑  收藏  举报