Home  >  Article  >  Backend Development  >  Crazy XML study notes (7) -----------XML Schema

Crazy XML study notes (7) -----------XML Schema

黄舟
黄舟Original
2017-02-21 14:34:591432browse


XML Schema is an XML-based replacement for DTD.

XML Schema describes the structure of an XML document.

The XML Schema language can also be referenced as XSD (XML Schema Definition).

Basic knowledge you should have

Before you continue, You will need a basic understanding of:

  • HTML / XHTML

  • XML and XML namespaces

  • Basic understanding of DTD

If you want to first To learn about these projects, please visit these tutorials at 首页.

#What is XML Schema?

The role of XML Schema is to define the legal building blocks of XML documents, similar to DTD.

XML Schema:

  • Define the elements that can appear in the document

  • Define the attributes that can appear in the document

  • Define which element is a child element

  • Define the order of sub-elements

  • Define the number of sub-elements

  • Define whether the element is empty, or whether it can contain text

  • Define the data type of elements and attributes

  • Define default and fixed values ​​for elements and attributes

XML Schema is the successor of DTD

We believe that XML Schema will soon replace DTD in most web applications.

The reasons are as follows:

  • XML Schema can be extended for future needs

  • XML Schema is more complete and more powerful

  • ##XML Schema is written based on XML

  • XML Schema supports data types

  • XML Schema supports namespaces

Why use XML Schema?


##XML Schema is more powerful than DTD.

XML Schema supports data types

The most important capabilities of XML Schema One is support for data types.

Make it easier to describe allowed document content

# through support for data types:

  • ## makes it easier to verify the correctness of data
  • makes it easier to interact with data from a database Working together
  • makes it easier to define data facets
  • Make it easier to define data models (or data formats)
  • # Make it easier to convert data between different data types
  • Editor's note: Data constraints, or facets, are a term in the XML Schema prototype. They can be translated as "faces" in Chinese and are used to constrain the allowed values ​​of data types.

XML Schema Using XML syntax

Another important feature about XML Schema is , they are written in XML.

Writing XML Schema from XML has many benefits:

    No need to learn a new language
  • You can use the XML editor to edit the Schema file
  • You can use the XML parser to parse the Schema file
  • Schema can be processed through XML DOM
  • Schema can be converted through XSLT
  • XML Schema protects data communication

    When data is sent from the sender to the recipient, the main point is that both parties should know about the content the same "expected value".

    With XML Schema, the sender can describe the data in a way that the recipient can understand.

    A type of data, such as "03-11-2004", is interpreted as November 3rd in some countries, and as March 11th in other countries.

    But an XML element with a data type, such as: 349a8bdc82a4be11e111653760fb49d72004-03-11fa78126cab04dbaa4bc5e7d79b5cd99e, can ensure consistent content Understand, this is because the XML data type "date" requires the format "YYYY-MM-DD".

    XML Schema is extensible

    XML Schema is extensible because they are XML writing.

    With extensible schema definitions, you can:

    • Reuse your schema in other schemas

    • Create your own data types derived from standard types

    • In the same Documents referencing multiple Schemas

    Good form is not enough

    We call a document that conforms to XML syntax a well-formed XML document, such as:

    • It must start with an XML declaration

    • It must have a unique root element

    • ##The opening tag must match the closing tag

    • Elements are case sensitive

    • All elements must be closed

    • All elements must be nested correctly

    • Entities must be used for special characters

    Even if documents are in good form, there is no guarantee that they will not contain errors, and these errors can have serious consequences.

    Consider the following scenario: You ordered 5 dozen laser printers, not 5 units. With XML Schema, most of these errors will be caught by your validation software.

    How to use XML Schema


    XML documents can reference DTD or XML Schema.

    A simple XML document:

    Please see this file named XML document of "note.xml":

    <?xml version="1.0"?>
    <note>
    <to>George</to>
    <from>John</from>
    <heading>Reminder</heading>
    <body>Don&#39;t forget the meeting!</body>
    </note>

    DTD file

    The following one The example is a DTD file named "note.dtd", which defines the elements of the XML document above:

    <!ELEMENT note (to, from, heading, body)>
    <!ELEMENT to (#PCDATA)>
    <!ELEMENT from (#PCDATA)>
    <!ELEMENT heading (#PCDATA)>
    <!ELEMENT body (#PCDATA)>

    Line 1 defines that the note element has four child elements: " to, from, heading, body".

    Lines 2-5 define the type of to, from, heading, body elements as "#PCDATA".

    XML Schema

    ##The following example is a file named "note.xsd" XML Schema file, which defines the elements of the above XML document:

    <?xml version="1.0"?>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
    targetNamespace="http://www.w3school.com.cn"
    xmlns="http://www.w3school.com.cn"
    elementFormDefault="qualified">
    
    <xs:element name="note">
        <xs:complexType>
          <xs:sequence>
    	<xs:element name="to" type="xs:string"/>
    	<xs:element name="from" type="xs:string"/>
    	<xs:element name="heading" type="xs:string"/>
    	<xs:element name="body" type="xs:string"/>
          </xs:sequence>
        </xs:complexType>
    </xs:element>
    
    </xs:schema>

    note element is a composite type because it contains other child elements. Other elements (to, from, heading, body) are simple types because they contain no other elements. You'll learn more about compound and simple types in the following chapters.

    Reference to DTD

    This file contains a reference to the DTD:

    <?xml version="1.0"?><!DOCTYPE note SYSTEM "http://www.w3school.com.cn/dtd/note.dtd"><note>
    <to>George</to>
    <from>John</from>
    <heading>Reminder</heading>
    <body>Don&#39;t forget the meeting!</body>
    </note>

    Reference to XML Schema

    This file contains a reference to XML Schema:

    <?xml version="1.0"?>
    <note
    xmlns="http://www.w3school.com.cn"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.w3school.com.cn note.xsd">
    
    <to>George</to>
    <from>John</from>
    <heading>Reminder</heading>
    <body>Don&#39;t forget the meeting!</body>
    </note>

    The above are the crazy XML study notes (7)-------- ---XML Schema content, please pay attention to the PHP Chinese website (www.php.cn) for more related content!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn