XML

Extensible Markup Language (XML) is a markup language that defines a set of rules for encoding documents in a format which is both human-readable and machine-readable. It is defined by the W3C's XML 1.0 Specification and by several other related specifications, all of which are free open standards - wikipedia

Note: There are some Built in XML Tools On OSX including xmllint.

The design goals of XML emphasize simplicity, generality and usability across the Internet. It is a textual data format with strong support via Unicode for different human languages. Although the design of XML focuses on documents, it is widely used for the representation of arbitrary data structures such as those used in web services.

Several schema systems exist to aid in the definition of XML-based languages, while many application programming interfaces (APIs) have been developed to aid the processing of XML data.

# Critisisms

XML and its extensions have regularly been criticized for verbosity and complexity. Mapping the basic tree model of XML to type systems of programming languages or databases can be difficult, especially when XML is used for exchanging highly structured data between applications, which was not its primary design goal.

Other criticisms attempt to refute the claim that XML is a self-describing languageThe Myth of Self-Describing XML (though the XML specification itself makes no such claim). JSON, YAML, and S-Expressions (S-expression) are frequently proposed as alternatives (see Comparison of data serialization formats) which focus on representing highly structured data rather than documents, which may contain both highly structured and relatively unstructured content - wikipedia

# Related Specifications

A cluster of specifications closely related to XML have been developed, starting soon after the initial publication of XML 1.0. It is frequently the case that the term "XML" is used to refer to XML together with one or more of these other technologies which have come to be seen as part of the XML core - wikipedia

* XML Namespaces enable the same document to contain XML elements and attributes taken from different vocabularies, without any naming collisions occurring. Although XML Namespaces are not part of the XML specification itself, virtually all XML software also supports XML Namespaces. * XML Base defines the <code>xml:base</code> attribute, which may be used to set the base for resolution of relative URI references within the scope of a single XML element. * The XML Information Set or ''XML infoset'' describes an abstract data model for XML documents in terms of ''information items''. The infoset is commonly used in the specifications of XML languages, for convenience in describing constraints on the XML constructs those languages allow. * xml:id Version 1.0 asserts that an attribute named <code>xml:id</code> functions as an "ID attribute" in the sense used in a DTD. * XPath defines a syntax named ''XPath expressions'' which identifies one or more of the internal components (elements, attributes, and so on) included in an XML document. XPath is widely used in other core-XML specifications and in programming libraries for accessing XML-encoded data. * XSLT is a language with an XML-based syntax that is used to transform XML documents into other XML documents, HTML, or other, unstructured formats such as plain text or RTF. XSLT is very tightly coupled with XPath, which it uses to address components of the input XML document, mainly elements and attributes. * XSL Formatting Objects, or XSL-FO, is a markup language for XML document formatting which is most often used to generate PDFs. * XQuery is an XML-oriented query language strongly rooted in XPath and XML Schema. It provides methods to access, manipulate and return XML, and is mainly conceived as a query language for XML databases. * XML Signature defines syntax and processing rules for creating digital signatures on XML content. * XML Encryption defines syntax and processing rules for encryption|encrypting XML content. <!-- * XPointer is a system for addressing components of XML-based internet media. -->