在XML里的XSD和DTD以及standalone的使用3----具体使用详解

本人亲自写的一个简单的测试例子

1、xsd定义

<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="LONGTWNG"
targetNamespace="http://tempuri.org/LONGTWNG.xsd"
elementFormDefault="qualified"
xmlns="http://tempuri.org/LONGTWNG.xsd"
xmlns:mstns="http://tempuri.org/LONGTWNG.xsd"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
>
<xs:element name="WLJ">
<xs:complexType>
<xs:sequence>
<xs:element name ="Satart" type="xs:string"></xs:element>
<xs:element ref="Middlez中间数字" maxOccurs="unbounded">
</xs:element>
<xs:element name="End" type="xs:string"></xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Middlez中间数字">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="d{3}-d{8}"></xs:pattern>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:schema>

2、xml文件中使用XSD

(1)第一种使用方法

<?xml version="1.0" encoding="utf-8" ?>
<WLJ xmlns="http://tempuri.org/LONGTWNG.xsd" xmlns:xsi="http://tempuri.org/LONGTWNG.xsd-instance">
<Satart>jajj</Satart>
<Middlez中间数字>098-66666666</Middlez中间数字>
<End>3333</End>
</WLJ>

(2)第二种使用方法

<?xml version="1.0" encoding="utf-8" ?>
<WLJ xmlns="http://tempuri.org/LongtengGenesAndSupreme.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://tempuri.org/LongtengGenesAndSupreme.xsd LongtengGenesAndSupreme.xsd">
<Satart>123</Satart>
<Middle>456</Middle>
<End>789</End>
</WLJ>

3、XML中直接使用xsd 

<?xml version="1.0" encoding="utf-8" ?>
<LONGTWNG>
<xs:schema id="LONGTWNG" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-data"
>
<xs:element name="WLJ">
<xs:complexType>
<xs:sequence>
<xs:element name ="Satart" type="xs:string"></xs:element>
<xs:element ref="Middlez中间数字" maxOccurs="unbounded">
</xs:element>
<xs:element name="End" type="xs:string"></xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Middlez中间数字">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="d{3}-d{8}"></xs:pattern>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:schema>
<WLJ>
<Satart>eeeee</Satart>
<Middlez中间数字>087-22222222</Middlez中间数字>
<End>dddd</End>
</WLJ>
</LONGTWNG>

4、XML中直接使用DTD

<?xml version="1.0" encoding="utf-8" ?>
<!--内部的 DOCTYPE 声明-->
<!--DTD 被包含在 XML 源文件中,它应当通过下面的语法包装在一个 DOCTYPE 声明中:-->
<!--<!DOCTYPE 根元素 [元素声明]>-->
<!DOCTYPE WLJ [
<!ELEMENT WLJ (start,middle,end)>
<!ELEMENT start (#PCDATA)>
<!ELEMENT middle (#PCDATA)>
<!ELEMENT end (#PCDATA)>]>
<WLJ>
<start>hhee</start>
<middle>123</middle>
<end>hhhh</end>
</WLJ>

<!--以上 DTD 解释如下:
!DOCTYPE note (第二行)定义此文档是 note 类型的文档。
!ELEMENT note (第三行)定义 note 元素有四个元素:"to、from、heading,、body"
!ELEMENT to (第四行)定义 to 元素为 "#PCDATA" 类型
!ELEMENT from (第五行)定义 from 元素为 "#PCDATA" 类型
!ELEMENT heading (第六行)定义 heading 元素为 "#PCDATA" 类型
!ELEMENT body (第七行)定义 body 元素为 "#PCDATA" 类型-->

5、DTD定义

<?xml version="1.0" encoding="utf-8"?>
<!ELEMENT WLJ (start,middle,end)>
<!--<!ATTLIST WLJ version CDATA #REQUIRED>-->
<!ELEMENT start (#PCDATA)>
<!ELEMENT middle (#PCDATA)>
<!ELEMENT end (#PCDATA)>

6、XML中使用DTD文件

<?xml version="1.0" encoding="utf-8" ?>
<!--外部文档声明-->
<!--假如 DTD 位于 XML 源文件的外部,那么它应通过下面的语法被封装在一个 DOCTYPE 定义中:-->
<!--<!DOCTYPE 根元素 SYSTEM "文件名">-->
<!--<!DOCTYPE WLJ SYSTEM "E:Programme工作MyPraticeWorkWLJToolWLJTLongtengGenesAndSupremeTestXSDAndDTDDTD.dtd">-->
<!DOCTYPE WLJ SYSTEM "DTD.dtd">
<WLJ>
<start>hhee</start>
<middle>123</middle>
<end>hhhh</end>
</WLJ>

原文地址:https://www.cnblogs.com/1175429393wljblog/p/5607762.html