Home >Backend Development >XML/RSS Tutorial >Detailed introduction to XML DTD and XML Schema sample code (picture and text)
XML(eXtensible Markup Language) extensible markup language. xml is particularly important in web service programming. It can be used as a carrier to transmit data in network transmission. As a metalanguage, xml can be used to mark data and define data types. It is a metalanguage that allows users to define their own markup languages. It is ideally suited for network transport, providing a unified approach to describing and exchanging structured data independent of applications or vendors. Interaction between heterogeneous languages and heterogeneous platforms can be realized. XML document definition methods include: document type definition (DTD) and XML Schema. DTD (Document Type Definition) defines the overall structure of the document and the syntax of the document (there are corresponding examples below for understanding). It is widely used and has rich tool support. XML Schema is more powerful and is used to define more powerful and richer features such as management information. XML can declare content in a more fine-grained manner, define constraints, and facilitate more meaningful transmission of content across multiple platforms. It provides a format for describing structured data, simplifies data exchange and representation in the network, separates code, data and representation, and serves as a standard format for data exchange, so it is often called an intelligent data document. DTD can be compared to a shovel, while XML Schema can be said to be an excavator, which is more powerful. Although XML is called a markup language, it is different from HTML (Hypertext Markup Language) in that its format is stricter, tags must be closed, and display and content are separated. XML describes the content and semantics of the document rather than how the document should be displayed. HTML has fixed tags, the display and content are together, and you cannot create your own tags, while XML is extensible, and the content and display are separated. Each element appears in pairs, and the beginning and end of XML elements are embedded. The nesting relationship must be kept correct (the tags that start later in the nesting must end first, and the tags that start first must end last). There is only one root element (Root Element) in each XML document, and the root element contains all other elements. An XML document that conforms to XML syntax is called well-formed when it is not verified by DTD or XML Schema. If a well-formed XML document is verified by DTD or XML Schema, this kind of XML document is called valid (Valid). of.
The following uses the xml of a student roster as an example
<?xml version="1.0" encoding="utf-8"?> <学生名册> <学生 学号="A1"> <姓名>CIACs</姓名> <性别>男</性别> <年龄>22</年龄> </学生> <学生 学号="A2"> <姓名>zhihao</姓名> <性别>男</性别> <年龄>23</年龄> </学生> </学生名册>
For a well-formatted xml document, the XMLSpy output window will output the following results
The first line of xml must be dc55d8f1b8d0d15e8e0c4fca7640a4b5Processing instructions, and there must be no blank space between "a5ea0a7932c5174cc19b550c5c2f8922
The ID value here seems to start with a character. If it is just a number, it will not pass the verification.
Gender in student information, I define it as an entity, and then reference its value through the entity . Please note that the syntax of entity reference is "&entity name;".
The following is used to verify the XML Schema method
The xml document to be verified
<?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 verification document
<?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>
The output result of the XMLSpy output window
The xml document to be verified is associated with the XML Schema document by adding the following information to the root element start tag
1 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="学生名册.xsd"
The above document They are all placed in the same path, so just quote the file name directly.
From the above two verification methods, we can clearly see the difference between DTD and XML Schema verification. Both of them also verify xml documents. XML Schema provides more powerful features than DTD. functions and more fine-grained data types, and Schema can also customize data types. It itself is an xml file, but the syntax of dtd is different from the syntax of xml. Although Schema is larger than DTD in terms of code size, once you learn Schema you will prefer to use Schema.
Learning xml and its verification methods well is very important for learning web service programming later.
The above is the detailed content of Detailed introduction to XML DTD and XML Schema sample code (picture and text). For more information, please follow other related articles on the PHP Chinese website!