Comparison of layout engines (XML)

Last updated

The following tables compare XML compatibility and support for a number of browser engines.

Contents

Explanation of tables

See comparison of browser engines for the full list.

Values

These indicate the level of support for the given item in each engine. By default, the most recent version of the engine is implied. However, a specific version number can be listed; when this indicates full support, it's the initial version of the engine fully supporting the item.

Legend
ValueMeaning
YesFully supported
NoHas never been supported
PartialOnly some values are supported
IncorrectNot implemented correctly in all cases
ExperimentalMay be incomplete or buggy
Nightly build Currently in development; full support is expected
DependsOnly supported for the specified conditions
DroppedNo longer supported

Core technologies

A general overview of what core XML technologies are supported.

MSHTML Gecko WebKit KHTML Presto Prince Antenna House
XML namespace [spec 1] 5.01.0?Yes1.05.1Yes
xml:id [spec 2] NoNo [g 1] NoNo2.0Yes
XML Events [spec 3] No1.8??1.0?No
XInclude [spec 4] 3.1No [g 2] No?No5.1No
XML Fragment Interchange [spec 5] ??????No
Associating CSS <3.1[IE 5.0]1.0419Yes1.0YesYes

XSL technologies

A general overview of what XSL technologies are supported.

MSHTML Gecko WebKit KHTML Presto Prince Antenna House
XSLT [spec 6] [spec 7] <3.1[IE 6.0]

[note 1]

1.0314NoIncorrect?Yes
XSL-FO [spec 8] NoNo [g 3] NoNoNoYes
EXSLT [spec 9] ?1.9No [w 1] Partial?Depends [a 1]

Linking technologies

A general overview of what XML linking technologies are supported.

MSHTML Gecko WebKit KHTML Presto Prince Antenna House
XLink [spec 10] 5.0Partial [note 2] No [w 2] NoPartialPartial [note 3] Partial [a 2]
XML Base [spec 11] No1.0No [w 3] YesYes6.0Yes [a 3]
XPointer [spec 12] ?PartialNo [w 4] NoNo?No

Query technologies

A general overview of what XML query technologies are supported.

MSHTML Gecko WebKit KHTML Presto Prince Antenna House
XPath 1.0 [spec 13] Yes1.8Yes4.82.0?Depends [a 1]
XPath 2.0 [spec 14] NoNo [g 6] ????Depends [a 1]
XPath 3.0 [spec 15] ???????
XPath 3.1 [spec 16] ???????
XQuery [spec 17] ?No [g 7] No [w 5] ?No?No

Schema technologies

A general overview of what XML schema technologies are supported.

MSHTML Gecko WebKit KHTML Presto Prince Antenna House
DTD NoPartial [note 4] No [w 6] NoPartial [note 5] 3.0Depends [a 1]
XML Schema [spec 18] [spec 19] [spec 20] [spec 21] ?PartialNo?No?Depends [a 1]
RELAX NG [spec 22] ?No [g 9] ??Depends [a 1]

Security technologies

A general overview of what XML security technologies are supported.

MSHTML Gecko WebKit KHTML Presto Prince Antenna House
XML Signature [spec 23] NoNo [g 10] NoNoNoNoNo
XML Encryption [spec 24] No
XML Key Management [spec 25]

Notes

  1. MSHTML relies on the MSXML library to implement XML processing. MSXML3 and MSXML4 implement XSLT 1.0, while MSXML2 implements the December 1998 XSL Working Draft, which predates XSLT 1.0 and is not fully compatible with it. Further complicating matters is that the MSXML libraries can coexist, but only one of them will be used by MSHTML, depending on a setting in the Windows Registry. Prior to the release of Internet Explorer 6, MSXML2 was the default XML library for MSHTML, but MSXML3 or MSXML4 could be installed separately and then registered as the default if desired. Regardless of which version was the default, any version, if installed, could be invoked directly by Microsoft-specific scripting code in the document being rendered by MSHTML.
  2. Gecko, as of version 1.8, only supports simple XLinks, and only for SVG and MathML. [g 4] [g 5]
  3. Prince supports only simple XLinks. [r 1]
  4. Only inline DTDs are allowed, external DTDs are ignored. [g 8]
  5. Prior to version 2.0, only inline DTDs are allowed; external DTDs are ignored. In 2.0, it is possible to load external DTDs, but not cross-domain.

Related Research Articles

<span class="mw-page-title-main">XML</span> Markup language by the W3C for encoding of data

Extensible Markup Language (XML) is a markup language and file format for storing, transmitting, and reconstructing arbitrary data. It defines a set of rules for encoding documents in a format that is both human-readable and machine-readable. The World Wide Web Consortium's XML 1.0 Specification of 1998 and several other related specifications—all of them free open standards—define XML.

In computing, the term Extensible Stylesheet Language (XSL) is used to refer to a family of languages used to transform and render XML documents.

XSLT is a language originally designed for transforming XML documents into other XML documents, or other formats such as HTML for web pages, plain text or XSL Formatting Objects, which may subsequently be converted to other formats, such as PDF, PostScript and PNG. Support for JSON and plain-text transformation was added in later updates to the XSLT 1.0 specification.

The Java programming language XML APIs developed by Sun Microsystems consist of the following separate computer-programming APIs:

Schematron is a rule-based validation language for making assertions about the presence or absence of patterns in XML trees. It is a structural schema language expressed in XML using a small number of elements and XPath.

James Clark is a software engineer and creator of various open-source software including groff, expat and several XML specifications.

Saxon is an XSLT and XQuery processor created by Michael Kay and now developed and maintained by his company, Saxonica. There are open-source and also closed-source commercial versions. Versions exist for Java, JavaScript and .NET.

An XML schema is a description of a type of XML document, typically expressed in terms of constraints on the structure and content of documents of that type, above and beyond the basic syntactical constraints imposed by XML itself. These constraints are generally expressed using some combination of grammatical rules governing the order of elements, Boolean predicates that the content must satisfy, data types governing the content of elements and attributes, and more specialized rules such as uniqueness and referential integrity constraints.

XPath 2.0 is a version of the XPath language defined by the World Wide Web Consortium, W3C. It became a recommendation on 23 January 2007. As a W3C Recommendation it was superseded by XPath 3.0 on 10 April 2014.

eXist-db is an open source software project for NoSQL databases built on XML technology. It is classified as both a NoSQL document-oriented database system and a native XML database. Unlike most relational database management systems (RDBMS) and NoSQL databases, eXist-db provides XQuery and XSLT as its query and application programming languages.

<span class="mw-page-title-main">XMLSpy</span> XML and JSON editing integrated development environment

XMLSpy is a proprietary XML editor and integrated development environment (IDE) developed by Altova. XMLSpy allows developers to create XML-based and Web services applications using technologies such as XML, JSON, XBRL, XML Schema, XSLT, XPath, XQuery, WSDL and SOAP.

In computing, the two primary stylesheet languages are Cascading Style Sheets (CSS) and the Extensible Stylesheet Language (XSL). While they are both called stylesheet languages, they have very different purposes and ways of going about their tasks.

<span class="mw-page-title-main">Oxygen XML Editor</span>

The Oxygen XML Editor is a multi-platform XML editor, XSLT/XQuery debugger and profiler with Unicode support. It is a Java application, so it can run in Windows, Mac OS X, and Linux. It also has a version that can run as an Eclipse plugin.

XProc is a W3C Recommendation to define an XML transformation language to define XML Pipelines.

libxslt is the XSLT C library developed for the GNOME project. It provides an implementation of XSLT 1.0, plus most of the EXSLT set of processor-portable extensions functions and some of Saxon's evaluate and expressions extensions. libxslt is based on libxml2, which it uses for XML parsing, tree manipulation and XPath support. It is free software released under the MIT License and can be reused in commercial applications.

XPath is an expression language designed to support the query or transformation of XML documents. It was defined by the World Wide Web Consortium (W3C) and can be used to compute values from the content of an XML document. Support for XPath exists in applications that support XML, such as web browsers, and many programming languages.

XQuery is a query and functional programming language that queries and transforms collections of structured and unstructured data, usually in the form of XML, text and with vendor-specific extensions for other data formats. The language is developed by the XML Query working group of the W3C. The work is closely coordinated with the development of XSLT by the XSL Working Group; the two groups share responsibility for XPath, which is a subset of XQuery.

<span class="mw-page-title-main">XML transformation language</span> Type of programming language

An XML transformation language is a programming language designed specifically to transform an input XML document into an output document which satisfies some specific goal.

Zorba is an open source query processor written in C++, implementing

Stylus Studio is an integrated development environment (IDE) for the Extensible Markup Language (XML). It consists of a variety of tools and visual designers to edit and transform XML documents and legacy data such as electronic data interchange (EDI), comma-separated values (CSV) and relational data.

References

Specifications

  1. Namespaces in XML 1.0 (Third Edition), W3C
  2. xml:id Version 1.0, W3C
  3. XML Events, W3C
  4. XML Inclusions (XInclude) Version 1.0 (Second Edition), W3C
  5. XML Fragment Interchange, W3C
  6. XSL Transformations (XSLT), W3C
  7. XSL Transformations (XSLT) Version 2.0, W3C
  8. Extensible Stylesheet Language (XSL) Version 1.1, W3C
  9. EXSLT
  10. XML Linking Language (XLink) Version 1.1, W3C
  11. XML Base (Second Edition), W3C
  12. XPointer Framework, W3C
  13. XML Path Language (XPath), W3C
  14. XML Path Language (XPath) 2.0, W3C
  15. XML Path Language (XPath) 3.0, W3C
  16. XML Path Language (XPath) 3.1, W3C
  17. XQuery and XPath Full Text 1.0, W3C
  18. XML Schema Part 1: Structures Second Edition, W3C
  19. XML Schema Part 2: Datatypes Second Edition, W3C
  20. W3C XML Schema Definition Language (XSD) 1.1 Part 1: Structures, W3C
  21. W3C XML Schema Definition Language (XSD) 1.1 Part 2: Datatypes, W3C
  22. RELAX NG home page
  23. XML Signature Syntax and Processing (Second Edition), W3C
  24. XML Encryption Syntax and Processing, W3C
  25. XML Key Management Specification (XKMS), W3C

Gecko references

WebKit references

Presto references

Prince references

Antenna House references

Other references