Web Service學習總結(2) XML
阿新 • • 發佈:2018-12-09
Web Service學習總結(2) XML
理解xml是為了能更好的使用.net相關的xml類。碰到很多人都是對知識不求甚解,有的時候也不知道自己的堅持是對還是錯。知識懂,但是境界大概上還是會有差別。
轉載自:
xml基礎概念:https://www.cnblogs.com/zhengcheng/p/4278764.html
xml名稱空間:https://www.cnblogs.com/zhengcheng/p/4278787.html
dtd驗證:https://www.cnblogs.com/zhengcheng/p/4278899.html
xsd驗證:https://www.cnblogs.com/zhengcheng/p/4279092.html
列出xml,dtd,xsd的例子如下程式碼,也可在資源中下載:https://download.csdn.net/download/qq_37326058/10835504
pencil圖可以去相應網址下載檢視。
https://download.csdn.net/download/qq_37326058/10835704
1,XML例子
<?xml version="1.0" encoding="UTF-8"?> <!--宣告部分-->
<studentlist> <!--根節點-->
<student id="10086"> <!--子節點,id節點屬性-->
<name>張三</name>
<age>20</age>
<description>
<![CDATA[個人說明:<title></title>]]>
</description>
</student>
<student id="10087">
<name>李四</name>
<age>22</age>
</student>
</studentlist>
2.DTD例子
<?xml version="1.0" encoding="UTF-8"?> <!ELEMENT studentlist (school,teacher,student*,address)> <!ELEMENT school EMPTY> <!ELEMENT teacher (#PCDATA)> <!ELEMENT student (name?, age+,age1*,sex(男人|女人))> <!ELEMENT address ANY> <!ELEMENT name (#PCDATA)> <!ELEMENT age (#PCDATA)> <!ELEMENT age1 (#PCDATA)> <!ELEMENT sex (#PCDATA)> <!ATTLIST name value CDATA #REQUIRED id ID #IMPLIED sex(男|女) Default 男 > <!ENTITY writer "testDTD"> <!ENTITY copyright "testDTD">
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE studentlist SYSTEM "testDTD.dtd" [
<!ENTITY writer2 "Bill Gates">
<!ENTITY copyright2 "Copyright W3School.com.cn">
<!ENTITY writer SYSTEM "testDTD.dtd">
<!ENTITY copyright SYSTEM "testDTD.dtd"> ] >
<studentlist>
<school></school>
<teacher> PCDATA </teacher>
<student>
<name value="" id="" sex="女" ></name>
<age>22</age>
<age1>234</age1>
<age1>234</age1>
<age1>234</age1>
<sex>男</sex>
</student>
<address>隨意取值&writer;©right;&writer2;©right2;</address>
</studentlist>
3.XSD例子
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.w3school.com.cn"
elementFormDefault="qualified"
attributeFormDefault="qualified"><!--unqualified-->
<xs:element name="students">
<xs:complexType>
<!--complexType型別的四種約束 choice、list、sequence、restriction-->
<!--表示元素必須按照規定的序列進行顯示。-->
<xs:sequence>
<xs:element name="student" maxOccurs="unbounded">
<xs:complexType>
<!--屬性 attribute-->
<xs:attribute name="name" type="xs:string" user="required" default="york" />
<xs:attribute name="age" type="xs:byte" user="required" default="11" />
<!--引用屬性組-->
<xs:complexType>
<xs:attributeGroup ref="Astuattgroup"></xs:attributeGroup>
</xs:complexType>
<!--元素 element-->
<xs:element name="name" type="xs:string" minOccurs="1" maxOccurs="unbounded"></xs:element>
<xs:element name="age" type="xs:byte" minOccurs="1" maxOccurs="unbounded"></xs:element>
<!--元素 element組 引用元素分組-->
<xs:group ref="Estuinfo" maxOccurs="unbounded"></xs:group>
</xs:complexType>
</xs:element>
<!--choise XML中只能出現限定選項中的一個元素-->
<!--設定交通工具只能是自行車,小汽車,摩托車中的一項-->
<xs:element name="T">
<xs:complexType>
<xs:choice>
<xs:element name="T1" type="xs:string"></xs:element>
<xs:element name="T2" type="xs:string"></xs:element>
<xs:element name="T3" type="xs:string"></xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<!--定義一個分組標記-->
<xs:group name="Estuinfo">
<xs:sequence>
<!--自定義的子元素:name和age,name型別為string,age型別為byte,只能出現1次-->
<xs:element name="Gname" type="xs:string" ></xs:element>
<xs:element name="Gage" type="xs:byte" ></xs:element>
<xs:element name="scores" type="stuScore"></xs:element>
</xs:sequence>
</xs:group>
<!--定義屬性組:stuattgroup-->
<xs:attributeGroup name="Astuattgroup">
<xs:attribute name="GAname" type="xs:string" user="required" default="york"/>
<xs:attribute name="GAage" type="xs:byte" user="required" fixed="11"/>
<!--引用定義簡單型別:simpleType restriction約束 將原來的xs:int換位age型別-->
<xs:attribute name="GAage1" type="age1"/>
</xs:attributeGroup>
<!--擴充套件int型別,設定int取值只能是18到100,包含18和100-->
<xs:simpleType name="age1">
<xs:restriction base="xs:int">
<xs:minInclusive value="18" />
<xs:maxInclusive value="100" />
</xs:restriction>
</xs:simpleType>
<!--定義列表資料,其每項子元素為自定義擴充套件型別-->
<xs:simpleType name="stuScore">
<xs:list itemType="stuScoreItem"></xs:list>
</xs:simpleType>
<!--定義擴充套件型別限定0-100之間-->
<xs:simpleType name="stuScoreItem">
<xs:restriction base="xs:int">
<xs:minInclusive value="0" />
<xs:maxInclusive value="100" />
</xs:restriction>
</xs:simpleType>
</xs:schema>
<?xml version="1.0" encoding="UTF-8"?>
<students
xmlns="http://www.w3school.com.cn"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="testXSD.xsd">
<student name="zhangsan" age="29" GAname="york1" GAage="11" GAage1="19">
<name>張三</name>
<age>33</age>
<Gname>張三</Gname>
<Gage>100</Gage>
<scores>33 33 33 3 3</scores>
</student>
<T>
<T1>自行車</T1>
</T>
</students>
根據上面4篇文章,貼出知識總結如下: