Home  >  Article  >  Backend Development  >  A detailed introduction to XML processing of whitespace in code

A detailed introduction to XML processing of whitespace in code

黄舟
黄舟Original
2017-03-10 19:40:332075browse

This article mainly introduces XML's processing of whitespace in the code. The article introduces the distinction between valid whitespace and invalid whitespace in XML writing. Friends in need can refer to the following

1. In the XML specification , whitespace includes spaces, tabs and blank lines. When editing XML documents, we often use whitespace to separate tags to obtain better readability. However, in interactive blank documents, these whitespaces are not needed, but sometimes they need to be retained. For example, whitespace in poetry and program code,
2. The XML processor always passes all characters in the document that are not tags to the application. An XML processor that performs validation will notify the application that any of these characters Which of the elements make up the white space that appears in the element's content.
3. In XML documents, you can use a special attribute xml:space in an element to notify the application to retain the blank space in this element.
4. In a valid document, this attribute, like any other attribute, must be declared when used. Xml: The space attribute must be declared as an Enumerated type, and its value must be one of "default" and "preserve", or both.
For example:

<!ATTLIST poem xml:space (default preserve)’preserve’>

means to declare the xml:space attribute on the poem element. Its type is an enumeration type and can take the values ​​"default" and "preserve", and this The default value of the attribute is preserve'

<!ATTLIST pre xml:space (preserve)#FIXED ‘preserve’>

, which means that the xml:space attribute is declared on the element pre. The type is also an enumeration type, but it has only one value "preserve", and uses The FIXED keyword declares this attribute by default. Declaring that it has an implicit default value of "default" indicates to use the application's default whitespace handling mode for this element, and "preserve" instructs the application to preserve all whitespace.
5. If an element uses the xml:space attribute, it will apply to all elements in the content of the element unless overridden by another instance of the xml:space attribute.

XML documents contain two types of whitespace (a) valid whitespace and (b) invalid whitespace. The following examples explain these two types of whitespace.

Valid whitespace
Valid whitespace usually occurs when an element contains both text and markup. For example:

<name>TanmayPatil</name>

and

<name>Tanmay Patil</name>

The two elements above are different because the space between Tanmay and Patil is different. Any program that reads such elements in an XML file must maintain their distinction.

Invalid whitespace
Invalid whitespace means that it is only allowed within the element content. For example:

<address.categoryaddress.category="residence">

or

<address....categoryaddress....category="..residence">

The above two examples are the same. Here, we use the period (.) to indicate white space. In the above example, the space between address and category is invalid.

We also attach a special attribute xml:space to the element. This means that the element's whitespace should not be removed by the application. We can set this attribute to default or preserve. As shown in the following example:

<!ATTLIST address xml:space (default|preserve) &#39;preserve&#39;>

Here:

The value default indicates that this element can accept the application's default whitespace handling mode.
The value preserve indicates that the application will protect all whitespace.

The above is the detailed content of A detailed introduction to XML processing of whitespace in code. For more information, please follow other related articles on the PHP Chinese website!

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