Extensible Markup Language (XML) 1.1 (Second Edition) Page 1 of 31
Total Page:16
File Type:pdf, Size:1020Kb
Extensible Markup Language (XML) 1.1 (Second Edition) Page 1 of 31 Extensible Markup Language (XML) 1.1 (Second Edition) W3C Recommendation 16 August 2006, edited in place 29 September 2006 This version: http://www.w3.org/TR/2006/REC-xml11-20060816 Latest version: http://www.w3.org/TR/xml11 Previous version: http://www.w3.org/TR/2006/PER-xml11-20060614 Editors: Tim Bray, Textuality and Netscape <[email protected]> Jean Paoli, Microsoft <[email protected]> C. M. Sperberg-McQueen, W3C <[email protected]> Eve Maler, Sun Microsystems, Inc. <[email protected]> François Yergeau John Cowan <[email protected]> Please refer to the errata for this document, which may include some normative corrections. The previous errata for this document, are also available. See also translations. This document is also available in these non-normative formats: XML and XHTML with color-coded revision indicators. Copyright © 2006 W3C® (MIT, ERCIM, Keio), All Rights Reserved. W3C liability, trademark and document use rules apply. Abstract The Extensible Markup Language (XML) is a subset of SGML that is completely described in this document. Its goal is to enable generic SGML to be served, received, and processed on the Web in the way that is now possible with HTML. XML has been designed for ease of implementation and for interoperability with both SGML and HTML. Status of this Document This section describes the status of this document at the time of its publication. Other documents may supersede this document. A list of current W3C publications and the latest revision of this technical report can be found in the W3C technical reports index at http://www.w3.org/TR/. This document specifies a syntax created by subsetting an existing, widely used international text processing standard (Standard Generalized Markup Language, ISO 8879:1986(E) as amended and corrected) for use on the World Wide Web. It is a product of the XML Core Working Group as part of the XML Activity. On 29 September 2006 this document was edited in place to remove a number of spurious and potentially misleading spaces. The English version of this specification is the only normative version. However, for translations of this document, see http://www.w3.org/2003/03/Translations/byTechnology?technology=xml11. This document is a W3C Recommendation. This second edition is not a new version of XML. As a convenience to readers, it incorporates the changes dictated by the accumulated errata (available at http://www.w3.org/XML/xml-V11-1e-errata) to the First Edition of XML 1.1, dated 4 February 2004. In addition, the markup introduced to clarify when prescriptive keywords are used in the formal sense defined in [IETF RFC 2119], has been modified to better match the intent of [IETF RFC 2119]. This edition supersedes the previous W3C Recommendation of 4 February 2004. Please report errors in this document to the public [email protected] mailing list; archives are available. For the convenience of readers, an XHTML version with color-coded revision indicators is also provided; this version highlights each change due to an erratum published in the errata list, together with a link to the particular erratum in that list. Most of the errata in the list provide a rationale for the change. The errata list for this second edition is available at http://www.w3.org/XML/xml-V11-2e-errata. An implementation report is available at http://www.w3.org/XML/2006/06/xml11-2e-implementation.html. A Test Suite is maintained to help assessing conformance to this specification. This document has been reviewed by W3C Members, by software developers, and by other W3C groups and interested parties, and is endorsed by the Director as a W3C Recommendation. It is a stable document and may be used as reference material or cited from another document. W3C's role in making the Recommendation is to draw attention to the specification and to promote its widespread deployment. This enhances the functionality and interoperability of the Web. This document is governed by the 24 January 2002 CPP as amended by the W3C Patent Policy Transition Procedure. W3C http://www.w3.org/TR/2006/REC-xml11-20060816/ 12/2/2010 Extensible Markup Language (XML) 1.1 (Second Edition) Page 2 of 31 maintains a public list of any patent disclosures made in connection with the deliverables of the group; that page also includes instructions for disclosing a patent. An individual who has actual knowledge of a patent which the individual believes contains Essential Claim(s) must disclose the information in accordance with section 6 of the W3C Patent Policy. Table of Contents 1 Introduction 1.1 Origin and Goals 1.2 Terminology 1.3 Rationale and list of changes for XML 1.1 2 Documents 2.1 Well-Formed XML Documents 2.2 Characters 2.3 Common Syntactic Constructs 2.4 Character Data and Markup 2.5 Comments 2.6 Processing Instructions 2.7 CDATA Sections 2.8 Prolog and Document Type Declaration 2.9 Standalone Document Declaration 2.10 White Space Handling 2.11 End-of-Line Handling 2.12 Language Identification 2.13 Normalization Checking 3 Logical Structures 3.1 Start-Tags, End-Tags, and Empty-Element Tags 3.2 Element Type Declarations 3.2.1 Element Content 3.2.2 Mixed Content 3.3 Attribute-List Declarations 3.3.1 Attribute Types 3.3.2 Attribute Defaults 3.3.3 Attribute-Value Normalization 3.4 Conditional Sections 4 Physical Structures 4.1 Character and Entity References 4.2 Entity Declarations 4.2.1 Internal Entities 4.2.2 External Entities 4.3 Parsed Entities 4.3.1 The Text Declaration 4.3.2 Well-Formed Parsed Entities 4.3.3 Character Encoding in Entities 4.3.4 Version Information in Entities 4.4 XML Processor Treatment of Entities and References 4.4.1 Not Recognized 4.4.2 Included 4.4.3 Included If Validating 4.4.4 Forbidden 4.4.5 Included in Literal 4.4.6 Notify 4.4.7 Bypassed 4.4.8 Included as PE 4.4.9 Error 4.5 Construction of Entity Replacement Text 4.6 Predefined Entities 4.7 Notation Declarations 4.8 Document Entity 5 Conformance 5.1 Validating and Non-Validating Processors 5.2 Using XML Processors 6 Notation Appendices A References A.1 Normative References A.2 Other References B Definitions for Character Normalization C Expansion of Entity and Character References (Non-Normative) D Deterministic Content Models (Non-Normative) E Autodetection of Character Encodings (Non-Normative) E.1 Detection Without External Encoding Information E.2 Priorities in the Presence of External Encoding Information F W3C XML Working Group (Non-Normative) G W3C XML Core Working Group (Non-Normative) H Production Notes (Non-Normative) I Suggestions for XML Names (Non-Normative) http://www.w3.org/TR/2006/REC-xml11-20060816/ 12/2/2010 Extensible Markup Language (XML) 1.1 (Second Edition) Page 3 of 31 1 Introduction Extensible Markup Language, abbreviated XML, describes a class of data objects called XML documents and partially describes the behavior of computer programs which process them. XML is an application profile or restricted form of SGML, the Standard Generalized Markup Language [ISO 8879]. By construction, XML documents are conforming SGML documents. XML documents are made up of storage units called entities, which contain either parsed or unparsed data. Parsed data is made up of characters, some of which form character data, and some of which form markup. Markup encodes a description of the document's storage layout and logical structure. XML provides a mechanism to impose constraints on the storage layout and logical structure. [Definition: A software module called an XML processor is used to read XML documents and provide access to their content and structure.] [Definition: It is assumed that an XML processor is doing its work on behalf of another module, called the application.] This specification describes the required behavior of an XML processor in terms of how it must read XML data and the information it must provide to the application. 1.1 Origin and Goals XML was developed by an XML Working Group (originally known as the SGML Editorial Review Board) formed under the auspices of the World Wide Web Consortium (W3C) in 1996. It was chaired by Jon Bosak of Sun Microsystems with the active participation of an XML Special Interest Group (previously known as the SGML Working Group) also organized by the W3C. The membership of the XML Working Group is given in an appendix. Dan Connolly served as the Working Group's contact with the W3C. The design goals for XML are: 1. XML shall be straightforwardly usable over the Internet. 2. XML shall support a wide variety of applications. 3. XML shall be compatible with SGML. 4. It shall be easy to write programs which process XML documents. 5. The number of optional features in XML is to be kept to the absolute minimum, ideally zero. 6. XML documents should be human-legible and reasonably clear. 7. The XML design should be prepared quickly. 8. The design of XML shall be formal and concise. 9. XML documents shall be easy to create. 10. Terseness in XML markup is of minimal importance. This specification, together with associated standards (Unicode [Unicode] and ISO/IEC 10646 [ISO/IEC 10646] for characters, Internet RFC 3066 [IETF RFC 3066] for language identification tags, ISO 639 [ISO 639] for language name codes, and ISO 3166 [ISO 3166] for country name codes), provides all the information necessary to understand XML Version 1.1 and construct computer programs to process it. This version of the XML specification may be distributed freely, as long as all text and legal notices remain intact.