详细介绍XML DTD于XML Schema学习的示例代码(图文)
XML(eXtensible Markup Language)可扩展的标记语言。xml在web service编程中尤为重要。在网络传输中可以作为传输数据的载体。xml作为元语言,它可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的元语言。 它非常适合网络传输,提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据。可以实现异构语言、异构平台之间的交互。XML 文档定义方式有:文档类型定义(DTD)和XML Schema。DTD(Document Type Definition)定义了文档的整体结构以及文档的语法(下面会有相应的例子用于理解)应用广泛并有丰富的工具支持。XML Schema的功能更强大,用于定义管理信息等更强大、更丰富的特征。XML能够更细粒度地声明内容,定义约束,方便跨越多种平台的更有意义的传输内容。它提供了一种描述结构数据的格式,简化了网络中数据交换和表示,使得代码、数据和表示分离,并作为数据交换的标准格式,因此它常被称为智能数据文档。可以把DTD比作铁铲,而XML Schema就可以说是挖掘机,功能更强大。 XML虽然称作标记语言,但与HTML(超文本标记语言)不同,它的格式更严格,标签必须封闭,显示与内容分离,XML描述的是文档的内容与语义而不是文档该如何显示。HTML有固定的标签,显示跟内容是一起的,不能创建自己的标签,而XML是可扩展的,内容与显示分离,每个元素都成对出现,又开始就有结束,而且XML元素的嵌套关系要保持正确(嵌套中后开始的标记要先结束,先开始的标记要后结束),每一个XML文档中只有一个根元素(Root Element),根元素包含了其他所有的元素。符合XML语法的XML文档在未被DTD或XML Schema验证时叫做良构(well form)的,如果良构的xml文档被DTD或XML Schema验证,这种xml文档称为有效(Valid)的。
下面以一个学生名册的xml作为例子
<?xml version="1.0" encoding="utf-8"?> <学生名册> <学生 学号="A1"> <姓名>CIACs</姓名> <性别>男</性别> <年龄>22</年龄> </学生> <学生 学号="A2"> <姓名>zhihao</姓名> <性别>男</性别> <年龄>23</年龄> </学生> </学生名册>
格式良好的xml文档,XMLSpy的输出窗口会输出如下结果
xml的首行一定要是处理指令,且”xml元素严格区分大小写,文档编码格式默认为“UTF-8”,版本只有1.0。上面的xml文档只能说是格式良好的xml文档,不能说是有效的(Vaild)xml文档。下面我们用两种方式去验证它。
首先是通过DTD来对它进行验证
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE 学生名册 [ <!ELEMENT 学生名册 (学生+)> <!ELEMENT 学生 (名字,性别,年龄)> <!ELEMENT 名字 (#PCDATA)> <!ELEMENT 性别 (#PCDATA)> <!ELEMENT 年龄 (#PCDATA)> <!ATTLIST 学生 学号 ID #REQUIRED> <!ENTITY sex "男"> ]> <学生名册> <学生 学号="A1"> <名字>CIACs</名字> <性别>&sex;</性别> <年龄>22</年龄> </学生> <学生 学号="A2"> <名字>zhihao</名字> <性别>&sex;</性别> <年龄>23</年龄> </学生> </学生名册>
如果验证通过的话,XMLSpy输出窗口会有如下的结果显示
否则就算是多了一个空格都不会通过验证。这里我把dtd的验证写到了xml中,当然你也可以把它写到另一个文件中,该文件的后缀名为“.dtd”,然后把它关联到要验证的xml文档中,语法如下
1 DOCTYPE 根元素名 SYSTEM "*.dtd">
此处ID值好像要以字符开头,如果只是数字通不过验证。
学生信息中的性别,我把它定义为实体,然后通过实体引用它的值,要注意实体引用的语法是"&实体名;"。
下面通过XML Schema方式来验证
要验证的xml文档
<?xml version="1.0" encoding="utf-8"?> <学生名册 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="学生名册.xsd"> <学生 学号="A1"> <姓名>CIACs</姓名> <性别>男</性别> <年龄>22</年龄> </学生> <学生 学号="A2"> <姓名>zhihao</姓名> <性别>男</性别> <年龄>23</年龄> </学生> </学生名册>
XML Schema验证文档
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xs:element name="学生名册"> <xs:complexType> <xs:sequence minOccurs="1" maxOccurs="unbounded"> <xs:element ref="学生"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="学生"> <xs:complexType> <xs:sequence> <xs:element name="姓名" type="xs:string"/> <xs:element name="性别"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="男"/> <xs:enumeration value="女"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="年龄"> <xs:simpleType> <xs:restriction base="xs:integer"> <xs:minExclusive value="0"/> <xs:maxExclusive value="120"/> </xs:restriction> </xs:simpleType> </xs:element> </xs:sequence> <xs:attribute name="学号" type="xs:string" use="required"/> </xs:complexType> </xs:element> </xs:schema>
XMLSpy输出窗口的输出结果
要验证的xml的文档通过在根元素开始标签中加入下面的信息关联XML Schema文档
1 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="学生名册.xsd"
以上的文档都是放在同一路径下的,所以直接引用文件名就行了。
从上面的两种验证方式我们可以很清楚的看出DTD跟XML Schema验证的区别,两者同样是进行xml文档验证的,XML Schema提供了比DTD更为强大的功能和更细粒度的数据类型,而且Schema还可以自定义数据类型,其本身就是xml文件,但dtd的语法跟xml的语法不同。虽然从代码量来看Schema大于dtd,但是当你学过Schema后你就会更喜欢用Schema。
学好xml和它的验证方式,对于后面学习web service编程很重要。
Atas ialah kandungan terperinci 详细介绍XML DTD于XML Schema学习的示例代码(图文). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Bolehkah fail XML dibuka dengan PPT? XML, Extensible Markup Language (Extensible Markup Language), ialah bahasa markup universal yang digunakan secara meluas dalam pertukaran data dan penyimpanan data. Berbanding dengan HTML, XML lebih fleksibel dan boleh menentukan tag dan struktur datanya sendiri, menjadikan penyimpanan dan pertukaran data lebih mudah dan bersatu. PPT, atau PowerPoint, ialah perisian yang dibangunkan oleh Microsoft untuk membuat pembentangan. Ia menyediakan cara yang komprehensif untuk

Melaksanakan penapisan dan pengisihan data XML menggunakan Python Pengenalan: XML ialah format pertukaran data yang biasa digunakan yang menyimpan data dalam bentuk teg dan atribut. Apabila memproses data XML, kami selalunya perlu menapis dan mengisih data. Python menyediakan banyak alat dan perpustakaan yang berguna untuk memproses data XML. Artikel ini akan memperkenalkan cara menggunakan Python untuk menapis dan mengisih data XML. Membaca fail XML Sebelum kita mula, kita perlu membaca fail XML. Python mempunyai banyak perpustakaan pemprosesan XML,

Tukar data XML dalam Python kepada format CSV XML (ExtensibleMarkupLanguage) ialah bahasa penanda boleh diperluas yang biasa digunakan untuk penyimpanan dan penghantaran data. CSV (CommaSeparatedValues) ialah format fail teks dipisahkan koma yang biasa digunakan untuk import dan eksport data. Semasa memproses data, kadangkala data XML perlu ditukar kepada format CSV untuk analisis dan pemprosesan yang mudah. Python adalah yang kuat

Menggunakan Python untuk menggabungkan dan menyahduplikasi data XML XML (eXtensibleMarkupLanguage) ialah bahasa penanda yang digunakan untuk menyimpan dan menghantar data. Apabila memproses data XML, kadangkala kita perlu menggabungkan berbilang fail XML menjadi satu, atau mengalih keluar data pendua. Artikel ini akan memperkenalkan cara menggunakan Python untuk melaksanakan penggabungan dan penyahduplikasian data XML, dan memberikan contoh kod yang sepadan. 1. Penggabungan data XML Apabila kita mempunyai berbilang fail XML, kita perlu menggabungkannya

Python melaksanakan penukaran antara XML dan JSON Pengenalan: Dalam proses pembangunan harian, kita selalunya perlu menukar data antara format yang berbeza. XML dan JSON ialah format pertukaran data biasa Dalam Python, kita boleh menggunakan pelbagai perpustakaan untuk menukar antara XML dan JSON. Artikel ini akan memperkenalkan beberapa kaedah yang biasa digunakan, dengan contoh kod. 1. Untuk menukar XML kepada JSON dalam Python, kita boleh menggunakan modul xml.etree.ElementTree

Mengendalikan Ralat dan Pengecualian dalam XML Menggunakan Python XML ialah format data yang biasa digunakan untuk menyimpan dan mewakili data berstruktur. Apabila kami menggunakan Python untuk memproses XML, kadangkala kami mungkin menghadapi beberapa ralat dan pengecualian. Dalam artikel ini, saya akan memperkenalkan cara menggunakan Python untuk mengendalikan ralat dan pengecualian dalam XML, dan menyediakan beberapa kod sampel untuk rujukan. Gunakan pernyataan cuba-kecuali untuk menangkap ralat penghuraian XML Apabila kami menggunakan Python untuk menghuraikan XML, kadangkala kami mungkin menghadapi beberapa

Mengimport data XML ke dalam pangkalan data menggunakan PHP Pengenalan: Semasa pembangunan, kita sering perlu mengimport data luaran ke dalam pangkalan data untuk pemprosesan dan analisis selanjutnya. Sebagai format pertukaran data yang biasa digunakan, XML sering digunakan untuk menyimpan dan menghantar data berstruktur. Artikel ini akan memperkenalkan cara menggunakan PHP untuk mengimport data XML ke dalam pangkalan data. Langkah 1: Menghuraikan fail XML Mula-mula, kita perlu menghuraikan fail XML dan mengekstrak data yang diperlukan. PHP menyediakan beberapa cara untuk menghuraikan XML, yang paling biasa digunakan ialah menggunakan Mudah

Memproses dan memaparkan data geolokasi dan peta menggunakan PHP dan Gambaran Keseluruhan XML: Memproses dan memaparkan data geolokasi dan peta adalah keperluan biasa semasa membangunkan aplikasi web. PHP ialah bahasa pengaturcaraan sebelah pelayan yang popular yang boleh berinteraksi dengan data dalam format XML. Artikel ini menerangkan cara menggunakan PHP dan XML untuk memproses dan memaparkan data geolokasi dan peta serta menyediakan beberapa kod sampel. 1. Penyediaan: Sebelum memulakan, anda perlu memastikan bahawa PHP dan sambungan yang berkaitan, seperti Simple, dipasang pada pelayan
