Your support for our advertisers helps cover the cost of hosting, research, and maintenance of this FAQ


Frequently-Asked Questions about the Extensible Markup Language

Editor: Peter Flynn, Silmaril Consultants, Textual Therapy Division (


This is the list of Frequently-Asked Questions about the Extensible Markup Language (XML). It has answers to most of the common questions people ask about XML. If you are seeking answers to questions about related areas such as SGML, HTML, CGI scripts, PHP, JSP, ASP, JavaScript, Java, databases, or penguins, you may find some pointers here, but you should probably look elsewhere as well.

The FAQ is intended as a first resource for web users, authors, developers, as well as publishers and the interested reader. Details of its organisation, contributors, availability, translations, and revisions are in the Admin sections. Updates to the FAQ are notified to the mailing lists and newsgroups listed in Where can I discuss implementation and development of XML?

The full document is available for download in several formats: see Availability for a list.

Revision History

v. 6.993 — 30 June 2024
Added REXSEL in questions on styling and on conversions
v. 6.992 — 28 June 2024
Updated Google ads code
v. 6.991 — 14 March 2024
Added Azerbaijani translation.
v. 6.99 — 17 December 2023
Added Albanian translation and gave every translation an ID.
v. 6.98 — 5 October 2023
Updated events and merged them with the LaTeX events from Formatting Information in a single file. Merged the DTD too.
v. 6.97 — 29 May 2023
Added question on flattening DTDs. Updated with comment about dtd2xml.
v. 6.96 — 11 May 2023
Added Declarative Amsterdam 5.
v. 6.95 — 11 December 2022
Added quote from Rick Jelliffe about push and pull
v. 6.94 — 1 June 2022
Added 2022 Declarative Amsterdam 4
v. 6.93 — 11 May 2022
Added explanation of white-space in schemas and attributes
v. 6.92 — 2 March 2022
Added Jason Polis's contribution to article on JSON
v. 6.91 — 18 August 2021
Added dcterms.created and dcterms.modified
v. 6.89 — 16 June 2021
Added new favicon.
v. 6.88 — 18 May 2020
Changed to the new link for the XSL FAQ.
v. 6.87 — 3 May 2020
Added news of Slack channel
v. 6.86 — 21 April 2020
Added Declarative Amsterdam to events
v. 6.85 — 13 April 2020
Added the IntelliJ and EditiX editors
v. 6.84 — 14 February 2019
Finally added short answer about JSON
v. 6.83 — 2 December 2018
Added details of the Italian translation
v. 6.82 — 17 November 2018
Belatedly added details of MarkupForum
v. 6.81 — 5 November 2018
Added xmlcopyeditor to the paragraph on free editors, then made it into a Tip
v. 6.8 — 23 October 2018
Added new question on Containers, and updated Standards with experimental acronym links; changed duration of added/changed buttons on home page to 90 days; started switch to xref instead of link for internal cross-references; updated Balisage; added JATS-Con and Computers & Writing.
v. 6.74 — 10 May 2018
Added link to the Slovenian translation
v. 6.73 — 1 May 2018
Added link to the Filipino translation
v. 6.72 — 14 April 2018
Added link to the Hindi translation
v. 6.71 — 15 March 2018
Updated link to the French translation
v. 6.70 — 10 February 2018
Added the new MarkupUK event
v. 6.69 — 22 October 2017
Updated Korean translation with new one from Ashna Bhatt; updated details of XML Prague
v. 6.68 — 30 September 2017
Updated Balisage and XMLSS for 2018
v. 6.67 — 16 September 2017
Added Portuguese translation
v. 6.66 — 12 September 2017
Added new French translation
v. 6.65 — 28 August 2017
Added Slovakian translation
v. 6.64 — 10 April 2017
Deleted Ukranian translationlink (broken)
v. 6.63 — 22 February 2017
Added new section on standards; added Estonian translation
v. 6.62 — 30 October 2016
Added Hungarian translation
v. 6.61 — 14 October 2016
Updated Balisage
v. 6.6 — 11 October 2016
Updated events: TUG, Balisage, DH
v. 6.5 — 26 September 2016
Updated date sort function for events
v. 6.4 — 2 April 2016
Removed German translation (bogus link)
v. 6.3 — 30 March 2016
Removed Romanian and Russian translations (dead links)
v. 6.2 — 11 November 2015
Changed address of Romanian translation back to correct one
v. 6.19 — 10 November 2015
Updated 2016 events and added Stuttgart, Amsterdam, and DAH. Fixed pre formatting for Oracle quote
v. 6.18 — 26 October 2015
Changed address of Romanian translation; updated 2016 events
v. 6.17 — 17 August 2015
Added Romanian translation (thank you Milos)
v. 6.16 — 20 July 2015
Added Georgian translation (thank you Irakli)
v. 6.15 — 4 June 2015
Updated address of Korean translation
v. 6.14 — 11 March 2015
Added new Swedish translation of the What Is SGML page (thank you Daniela).
v. 6.13 — 26 February 2015
Added new Polish translation of the What Is page (thank you Alice).
v. 6.12 — 6 February 2015
Added new translation into Russian (thank you again, Ivan).
v. 6.11 — 2 February 2015
Added new translation into Ukranian (thank you, Ivan).
v. 5.01 — 16 November 2014
Updated events, added TUG2015.
v. 5.00 — 14 August 2014
Removed obsolete information and links, reformatted presentation (thanks to Parker and the PWA for help with the CSS). Moved questions about Java and JavaScript from Authors to Developers, and question on running XML to Basics. Renamed IDs appendix to appendices, contrib to contributions, and revhist to revisions so that sectioning can be done by ID rather than number and title. Rewrote search script. Updated events. LATEX transformation also updated and the PDFs reset.
v. 6.1 — 27 July 2014
Fixed broken link to Q24 "What other markup systems are there?" (thanks to David Maltby for that); and some typos which had escaped the checks (thanks Martin Holmes for spotting them).
v. 6 — 4 July 2014
Updated links and dates, regenerated in new format.
v. 4.58 — 24 April 2010
Updated events, removed XML Prague, added Balisage Symposium
v. 4.57 — 27 February 2010
Updated events, added interim changes to formatting in preparation for extensive relaunch later in 2010.
v. 4.56 — 8 August 2007
Added details and links for HTML5
v. 4.55 — 1 August 2007
Updated events for 2007–2008. Updated details of ODF and OOXML. Added section on broken software. Revised handling of failed searches.
v. 4.54 — 1 June 2006
Corrected an error in the description of xml-stylesheet. Added link targets to Quick Answers.
v. 4.53 — 12 April 2006
Updated details of XML for Safari, and added a curious new enquiry.
v. 4.52 — 26 March 2006
Added more keywords and fixed a broken link to the XSL FAQ.
v. 4.51 — 28 February 2006
Added explanation of xml:is, xml:space, and xml:lang. Added new question on how to read (open) an XML file you have been sent.
v. 4.5 — 27 February 2006
Added more keywords taken from failed searches. Expanded on file URIs, the use of compiled DTDs, self-describing data, the Boolean nature of parameter entity switches, how to get HTML features (forms, etc).
v. 4.41 — 7 January 2006
Fixed a cross-referencing bug in generated content.
v. 4.4 — 1 January 2006
Minor grammatical edits, major changes to the indexing and DC metadata. Added glossary entry on data export to CSV and expanded the description of nodes and the grove. Fixed elusive bug in RSS feed. Added contributor names to search index.
v. 4.39 — 1 December 2005
Refined some keywords, changed presentations of some examples, reworded a paragraph on treatment of space, and added details of assigning a Schema to an instance.
v. 4.38 — 1 November 2005
Added personal views on patent, copyright, and intellectual property.
v. 4.37 — 31 October 2005
Removed ambiguities in How do I include one XML file in another?.
v. 4.36 — 16 October 2005
Updated dates of events in Where do I find more information about XML?.
v. 4.35 — 8 October 2005
Fixed some broken links and removed a couple of obsolete ones. Added a note about the BOM.
v. 4.34 — 1 October 2005
Split the question on CDATA into two: one for CDATA per se, and one for other ways of handling embedded HTML. Added some more keywords, and revised the questions Where can I discuss implementation and development of XML? and What is the difference between XML and C or C++ or Java?. Fixed a minor date bug in the search script.
v. 4.33 — 12 September 2005
Added more keywords, and a tip to the note on
v. 4.32 — 10 September 2005
Added details of xml:id to the note on Attributes.
v. 4.31 — 9 September 2005
Added notes on Pipelining and Attributes.
v. 4.3 — 5 September 2005
Added the notes culled from failed searches as a Glossary; updated some URLs, and added one for XQuery to the question on databases (thanks, Liam); updated What is XML for?, What does XML look like (inside)?, What is parsing and how do I do it in XML?, and the question on CDATA Sections. Added a new question on Conditionals. Tightened up on the indexing for searches, including the removal of enclosing quotes, and added a bunch more metadata.
v. 4.2 — 1 July 2005
Added new RNG mailing list, updated section on Schemas, added links to the XML Declaration for SGML. Retagged personal names for recognition, and ID'd related FAQs. Expanded question on Why XML. Added link to email a page to someone. Added and expanded the tips on ways of getting typeset output, eg LATEX. Added new section on special characters.
v. 4.1 — 15 May 2005
Revised structure and new stylesheet for new location at The four main sections remain, but the text is served in separate questions and sections rather than one huge file (the PDF remains as a single document, of course). Removed references to the now-defunct Balise language, added a Tip on editor selection and some notes on WYSIWYG XSL[T] editing.
v. 4.0 — 1 January 2005
Went back to DocBook markup using qandaset instead of the QAML that has been used for the last two major releases. Revised text in most sections for clarity in wording, and recast some now-established explanatory material into the past tense. Added new dates for 2005. Added explicit references to the GNU FDL in the legal section. Took the tip on types of XML out into a new question, and added new questions on file inclusions and the use of CDATA Marked Sections.
v. 3.02 — 12 January 2004
Added updates for 2004 events
v. 3.01 — 1 January 2004
Minor typographic changes
v. 3.0 — 1 January 2003
Added information on Office Applications including Corel, Microsoft, and Sun (to keep alphabetical order :-); updated details of conferences and training; updated browser details; reworded a few ungainly sentences; removed some obsolete URIs (mostly for ‘nice idea’ sites which died); changed the phrasing of the question on databases; added details on how to do standalone validation to the question on parsing (thanks to Bill Rayer); added question on how to present XML to management (thanks to Tad McClellan); the questions on APIs and the DOM have been subsumed into the question on software, which has been extensively rewritten; added yet more explanation to the section on Unicode; 3.01 fixes minor typos; 3.02 adds updated dates for 2004 events.
v. 2.1 — 1 January 2002
Added Humanities mailing list; added more references for XML and databases; added the Namespaces FAQ; corrected some misunderstandings in character encodings; changed the editor's email address; added a new question on root elements; updated the XLink to W3C Recommendation; updated the SGML FAQ address; fixed some broken links; added translations into German and Amharic; minor revisions to some wording. Editing this time was done in epcEdit 1.02. V2.11 includes new material on expectations and XML browsers, the removal of a mailing list, and a few corrections to typos and links. Thanks to Seán Cannon and Dave&Nikki for debugging the CSS style-sheet.
v. 2.0 — 1 June 2001
DTD changed from DocBook SGML to QAML XML; removed query form due to abuse; most questions revised and in some cases rewritten; updated references to new versions of associated standards, recommendations, and working drafts; added pointer to Jon Noring's Unicode test page and NIST's XSLT/XPath test suite; updated Eve Maler's links to the DTD for the spec; added warnings on speling and punk chew asian; added question on namespaces; fixed bug in question on stylesheets; inserted explanation of `document' vs `data' software; added new mailing list on XSL:FO; updated Robin Cover's URI throughout; updated the question on media types for RFC 3023; Extended question of graphics to cover SVG. For 2.01 there were minor typos, some updated links (to recent versions of the standards, and in the section on More Information), and a few wording changes. Thanks to James Cummings for a very thorough proofread. Editing was done using GNU Emacs and psgml-mode.
v. 1.6 — 1 July 2000
Added French and Czech translations and a Finnish mailing list, and reorganised the list of translations; updated URIs for newsgroups; clarified reference to Unicode; reworded question on terminology; added more links to the question on conformance testing; corrected error in content model example for Mixed Content; updates to the question on stylesheets; Minor edits to the question on software; major changes to the question on servers and media types; updated question on XML Schemas; added new question on `executing' XML `programs'; replaced the math example with one less likely to distress the gentle susceptibilities of some readers; added a new question on knowing SGML/HTML before XML.
v. 1.5 — 1 June 1999
Added new XML mailing lists in Italian and in French; added details of developer resources in Chinese; two more translations under way (Chinese and Czech); updated links to the question on DTDs; added question on the use of Java to generate and manage XML; added question on when to use attributes and when to use element markup; added question on the use of XML syntax to describe DTD data (schemas); expanded on the explanation of the use of formal language in the spec; added question on the difference between XML and C++; separated information on XML versions of HTML into a separate question.
v. 1.4 — 1 October 1998
Added maintainer's email address under Availability; Added note about ISO representation and voting on standards; added Greek translation; updated details of conferences; changed the URI for the new SGML/XML Web Pages; updated details of browsers; corrected reference to the SGML omitted features from XML; updated details of converting HTML to XML; added mention of comp.text.xml; extended the questions on graphics and how to use XML with current browsers; added questions on DOM, conformance testing, DTD includes, SGML DTDs into XML, EDI; (1.41) corrected errors in MIME types, URIs, SDD, and images.
v. 1.3 — 1 June 1998
Removed the math plugin (Linux Netscape is broken and refused to elide it); updated list of events (need more); fixed some broken URIs; added Spanish and Korean translations and the Annotated Spec; updated details of MS/NS browser development; clarified the use of FPI vs SysiD; updated link to Feb 10 Rec Spec; added pointers to the SGML Decl for XML; updated references to XLink and XPointer; corrected a reference to ancient Sumerian writing; clarified the need for conversion of HTML DTDs to XML.
v. 1.2 — 1 February 1998
Added a Mac icon (thanks to Martin Winter and others); removed Draft from references to the spec; changed revision colours; the RMD is gone: replaced references to it with standalone; updated some broken URIs; [1.21] minor edits to URIs and updates on translation; added XUA to details of MIME types.
v. 1.1 — 1 October 1997
No more minimisation parameters in element declarations; parsers must now pass all white-space to the application; everything is now case-sensitive, including all markup; a new proposal for stylesheets: XSL, which combines DSSSL and CSS in an XML format; Java[Script] and and metadata and their use in XML; updated list of software; first XML book is published; new public mailing list XML-L
v. 1.0 — 1 May 1997
Added reference to ToC and printed URIs; added disclaimer at A6; combined old A11 with A5 to explain SGML/XML/HTML; clarified explanation of XML not replacing HTML at C1; added new course and conference at (new) A11; clarified B1, C4, C8; added FPI server at C12; removed examples in C13.
v. 0.5 — 1 April 1997
Added Multidoc Pro as SGML browser; question on XML math; fixed ambiguity in explanation of NETs; added JUMBO; ERB changes of March 26; more details of linking and tools; adding element declaration minimisation to the forbidden list.
v. 0.4 — 23 February 1997
Minor editorial changes
v. 0.3 — 17 February 1997
Extensive revision following comments from the group. Changes to markup and organisation.
v. 0.2 — 3 February 1997
Revised draft. Additional questions and answers.
v. 0.1 — 31 January 1997
First draft. Sample questions devised by participants.
v. 0.0 — 27 December 1996
First test. Unpublished.
  1. And tables, the only other block-level element in normal use. 

  2. Although if the XML document is well-formed (see question D.3 on ‘What are these terms DTDless, valid, and well-formed?’) and validation is not needed, it is possible to process XML documents without a DTD or Schema.