If you find this helpful, please click the Google Button to the left, if it is white, to make it turn blue or red. Thank you! (It also helps find this page again more easily.) |
The <?xml version="1.0"?> Declaration for HTML
The XML declaration is one of the declaration tags in HTML and is the very first line of code in an HTML document. The <?xml?> declaration at the top of an HTML document indicates that the document is in XML or polyglot format. It is an SGML declaration that determines:
- what characters can appear in the document,
- how those characters are to be interpreted as text and delimited elements, and
- that there are no external XML declarations, since there is no DTD in HTML 5
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
The XML declaration may be ignored when the document is being parsed as HTML, but is relevant when:
- the document is being parsed as xHTML, the XHTML-compatible serialization of HTML based on XML
- the document is being parsed as pure XML
<?xml?> Declaration Syntax
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <?xml-stylesheet ...?> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> ... </html>
Rules for coding the xml declaration for HTML 5
- Code the
<?xml?>
tag on the first line of the document, before anything else. When generating code using server-side scripting languages such as PHP, it should be the first thing that is output, after the HTTP headers. - The xml declaration starts with the characters
<?
, which indicates that the markup is a SGML declaration rather than an HTML tag. - Following the
<?
delimiters, code the lettersxml
in lower case. - Include a
version
attribute to indicate the characters that can be used in element names, and anencoding
attribute to specify the character encoding of the document. - Include a
standalone
attribute with the value"yes"
to indicate that the document is a standalone document and is not to be affected by any external declarations. - The xml declaration ends with the characters
?>
. - The
<?xml?>
tag does not have a matching end tag.
The following rules apply to the entire HTML document, based on the <?xml?> declaration:
- If the
version
attribute specifies XML version 1.1, any characters in the range  through Ÿ must be encoded as HTML character entities, in addition to all characters in the range  through . The NUL character &x#00; is not permitted in either version of XML.
<?xml?> Declaration Attributes
version |
The version attribute is coded as version="1.0" , which indicates the document follows the XML version 1.0 syntax. The document should be coded to be "well-formed", even if it is not an entirely "valid" HTML document. |
encoding |
The One advantage of using |
standalone="yes" |
The standalone attribute with the value "yes" indicates that the document is a standalone document. When recognized as an HTML 5 document, the parser should not look for any external declarations since there is no DTD in HTML 5, in which case the standalone attribute is irrelevant. If a parser tries to process the document as an older version of HTML having a DTD or when processed by an XML parser, standalone="yes" indicates that it should ignore any external declarations, such as entity declarations or assumed attribute values. |
<?xml?> Declaration Examples
Examples of the xml declaration in HTML 5
<?xml?> declaration for XML version 1.0
The <?xml?> declaration appears at the very beginning of an HTML document:
<?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="/site-template.xsl"?> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> ... </html>
It is recommended that the encoding be specified using the preferred (MIME) name as specified in the IANA's Official Names for Character Sets. The standalone
attribute can also be coded with the value yes
, since the default is "no"
. Some examples:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?> <?xml version="1.0" encoding="US-ASCII" standalone="yes"?> <?xml version="1.0" encoding="EUC-JP" standalone="yes"?> <?xml version="1.0" encoding="UTF-16" standalone="yes"?> <?xml version="1.0" encoding="ISO-10646-UCS-2" standalone="yes"?> <?xml version="1.0" encoding="ISO-10646-UCS-4" standalone="yes"?>
If the standalone
attribute is omitted it does not matter unless the HTML browser would normally try to use external declarations, in the form of the HTML DTD, to interpret the document. standalone="yes"
prevents it from using those external declarations, which would be for older versions of HTML rather than HTML 5 and later.
<?xml?> declaration for XML version 1.1
XML version 1.1 added support for record-oriented files, such as those used on mainframe systems, by including the next line (…) and line separator (߬) characters to the list of valid line-ending characters.
<?xml version="1.1" encoding="UTF-8" standalone="yes"?> <?xml-stylesheet type="text/xsl" href="/site-template.xsl"?> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> ... </html>
XML version 1.1 also provides more generic language support by allowing almost all Unicode characters in element type names, attribute names, enumerated attribute values and processing instruction targets, but since these items are defined by the HTML specifications, HTML documents do not take advantage of this new feature.
Changes in HTML 5 - <?xml?> Declaration
What's new in HTML 5
The <?xml?>
declaration was introduced in the 2000 W3C standard version of HTML. However, many documents on the web are still coded without it and therefore may fall back to the older 1997 HTML version 4 standard, so going forward you should make sure that any HTML pages start with an <?xml?>
declaration.
Differences between HTML 5 and earlier versions of HTML
- The
<?xml?>
declaration does not appear in HTML documents conforming to the 1997 HTML 4 standard. For the HTML versions based on the 2000-2010 Recommendations from the W3C HTML Working Group, the<?xml?>
declaration was optional. For HTML version 5 documents, it's use is recommended so that the document is handled properly when being parsed as either xHTML or pure XML. - Since there is no DTD in HTML 5, there are no external XML declarations that might change how the HTML document is processed. In previous versions of HTML, for example, a DTD could possibly change the default value of an HTML attribute. In HTML 5, things like default attribute values are always determined by the HTML specification.