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> 注释:合法的布尔值是 true、false、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>