XHTML (Extensible HyperText Markup Language) is a family
of XML markup
languages that mirror or extend versions of the widely usedHypertext Markup Language (HTML), the
language in which web pages are written.
While HTML (prior to HTML5) was defined as an
application of Standard Generalized Markup Language (SGML),
a very flexible markup language framework, XHTML is an application of XML, a more restrictive
subset of SGML. Because XHTML documents need to be well-formed, they can be parsed using standard XML
parsers—unlike HTML, which requires a lenient HTML-specific parser.
XHTML 1.0 became a World Wide Web Consortium (W3C) Recommendation on January 26, 2000. XHTML
1.1 became a W3C Recommendation on May 31, 2001. XHTML5 is
undergoing development as of September 2009, as part of the HTML5 specification.
XHTML
was developed to make HTML more extensible and
increase interoperability with other data formats. HTML
4 was ostensibly an application of Standard Generalized Markup Language(SGML);
however the specification for SGML was complex, and neither web browsers nor
the HTML 4 Recommendation were fully conformant to it. The XML standard,
approved in 1998, provided a simpler data format closer in simplicity to HTML 4. By
shifting to an XML format, it was hoped HTML would become compatible with
common XML tools; servers and proxies would be able to transform content, as
necessary, for constrained devices such as mobile phones. By
utilizing namespaces, XHTML documents could provide
extensibility by including fragments from other XML-based languages such
as Scalable Vector Graphics and MathML. Finally,
the renewed work would provide an opportunity to divide HTML into reusable
components (XHTML Modularization) and clean up untidy
parts of the language.
There are various differences between XHTML and HTML.
The Document Object Model is a tree
structure that represents the page internally in applications, and XHTML and
HTML are two different ways of representing that in markup (serializations).
Both are less expressive than the DOM (for example, "--" may be
placed in comments in the DOM, but cannot be represented in a comment in either
XHTML or HTML), and generally XHTML's XML syntax is a little more expressive
than HTML (for example, arbitrary namespaces are not allowed in HTML). So,
firstly one source of differences is immediate: XHTML uses an XML syntax, while
HTML uses a pseudo-SGML syntax
(officially SGML for HTML 4 and under, but never in practice, and
standardised away from SGML in HTML5). Secondly however, because the expressible
contents of the DOM in syntax are slightly different, there are some changes in
actual behavior between the two models.
First, there are some differences in syntax:
·
Broadly, the
XML rules require that all elements be
closed, either by a separate closing tag or using self-closing syntax (e.g. <br />), while HTML syntax permits some
elements to be unclosed because either they are always empty (e.g. <input>) or their end can be determined
implicitly ("omissibility", e.g. <p>).
·
XML is
case-sensitive for element and attribute names,
while HTML is not.
·
Some
shorthand features in HTML are omitted in XML, such as (1) attribute
minimization, where attribute values or their quotes may be omitted (e.g. <option selected> or <option selected=selected>, while XML this must be expressed
as <option selected="selected">); (2) element minimization may be
used to remove elements entirely (such as<tbody> inferred in a table if not given); and (3) the
rarely used SGML syntax for element minimization ("shorttag"), which
most browsers do not implement.
·
There are
numerous other technical requirements surrounding namespaces and precise
parsing of whitespace and certain characters and elements. The exact parsing of
HTML in practice has been undefined until recently; see the HTML5 specification
([HTML5])
for full details, or the working summary (HTML vs. XHTML).
Secondly, in contrast to these minor syntactical
differences, there are some behavioral differences, mostly arising from the
underlying differences in serialization. For example:
·
Most
prominently, behavior on parse errors differ. A fatal parse error in XML (such
as an incorrect tag structure) causes document processing to be aborted.
·
Most content
requiring namespaces will not work in HTML, except the built-in support for SVG
and MathML in the HTML5 parser along with certain magic prefixes such as xlink.
·
JavaScript
processing is a little different in XHTML, with minor changes in case
sensitivity to some functions, and further precautions to restrict processing
to well-formed content. Scripts must not use the document.write() method; it is not available
for XHTML. The innerHTML property
is available, but will not insert non-well-formed content. On the other hand,
it can be used to insert well-formed namespaced content into XHTML.
·
CSS is also
applied slightly differently. Due to XHTML's case-sensitivity, all CSS
selectors become case sensitive for XHTML documents. Some CSS properties,
such as backgrounds, set on the <body> element in HTML are 'inherited upwards' into the <html> element; this appears not to
be the case for XHTML.
The root element of an XHTML document must be
html, and must contain an xmlns attribute to associate it with the XHTML
namespace. The namespace URI for XHTML is http://www.w3.org/1999/xhtml. The
example tag below additionally features an xml:lang attribute to identify the
document with a natural language:
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
Tidak ada komentar:
Posting Komentar