We can see that the syntax of DTD is quite complex, and it does not conform to the standards of XML files and forms a system of its own. In other words, the DTD document itself is not a well-formed XML document. The above introduction to DTD is only an Introduction, the purpose is to help everyone understand the DTD file and create simple DTD file, because many XML applications are now built on DTD.
Another alternative to DTD is Schema defined by W3C. Schema can be translated into patterns, outlines, plans, plans, etc. literally. Its basic meaning is to develop a schema for XML documents.
The obvious advantage of Schema over DTD is that the XML Schema document itself is also an XML document, rather than using a self-contained syntax like DTD. This is convenient for users and developers because the same tools can be used to process XML Schema and other XML information without having to use special tools specifically for Schema. Schema is simple and easy to understand, and anyone who understands XML syntax and rules can understand it immediately. The concept of Schema has been proposed for a long time, but the W3C standard has only recently come out, and the corresponding application support is not yet complete. However, the adoption of Schema has become a trend in XML development.
First of all, let’s start with the simplest example to learn the grammatical structure of Schema:
For example, a simple XML document is as follows:
<书本> <名称>天涯明月刀 <作者>古龙
If it is defined in the form of DTD The XML document structure can be as follows:
<!ELEMENT 书本 (名称, 作者)> <!ELEMENT 名称 (#PCDATA)> <!ELEMENT 作者 (#PCDATA)>
So how to define it in Schema form? See the code below:
<element name='书本' type='书本类型'/> <complexType name='书本类型'> <element name='名称' type='string'/> <element name='作者' type='string'/> </complexType>
One thing to note is that in Schema, the definition of the nature and content of the entire document is also achieved through the definition of elements and the definition of element relationships. At the same time, it should be noted that in Schema, an element is determined by its name and content Model. The name is the name of the element. Everyone can understand this, and the content model actually represents the element. type. Just like in C++, we can define a variable at will, but we must define the type of the variable . The type of the variable may have many forms, it can be a simple variable ( Such as the type specified internally in C++, bool, int, double, char, etc.), or it can be a very complex type (such as a struct or class), the same is true in Schema, type (type ) can be divided into two forms, one is a very simple type, called simple, and the other is a complex type, called complex. Simple types cannot contain elements and attributes (note that in Schema and DTD, there are elements and attributes, which are the same). Complex types can not only contain attributes, but can also have other elements nested within them, or can be associated with attributes in other elements.
The above is the detailed content of A simple example of XML Schema. For more information, please follow other related articles on the PHP Chinese website!