Neatware Header
Home   Products   Forums   Partners   Buy   Company   Contact   Blog   

    XHTML

    XHTML graph shows the relationship among XHTML and HTML, WML, and cHTML.

    xhtml and html

    Structure

    XHTML (Extension HyperText Markup Language) is an XML application for HTML4, a standard for Web document. XHTML modularization decomposes XHTML into a collection of abstract modules. These modules may be combined to create an XHTML subset or extension. Content developers can use the subset of XHTML to fit different platforms such as mobile devices, game consoles, and appliances.

    Element and its attributes are basic components of XHTML. There are three types of element: start tag, end tag, and empty tag. The format of the start and the end tag is <element attribute> and </element> respectively. The text between the start tag and the end tag is called content. An element may have no end tag. An empty element has neither end tag nor content. An element name is always case-insensitive.

    Attributes are properties of an element. The attribute='value' pairs are attached behind the start element name and inside the < >. Any number of attribute value pairs may be attached in arbitrary order. The attributes that are not used in the start tag are set to be default values. Boolean attribute may only have the value.

    Usually, double quotation mark " " and single quotation mark ' ' group the value. We prefer to use single quote ' ' as value grouping. To specify attribute name it is better to use letters, digits, hyphens and periods. Both the attribute name and value are case insensitive.

    In Snaml, _element and element_ command with underscore in the head and end represent the start tag and the end tag. One argument of the start element command is its attribute. The empty element is represented as double underline element (__element). It specifies that no content and end tag are expected. For example,

    package require SNAML
    
    output file hello.html
    
    __pi "xml version='1.0' encoding='UTF-8'"
    __doctype "html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' 
      'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'"
    
    _html "xmlns='http://www.w3.org/1999/xhtml' 
           xml:lang='en' lang='en'"
      _head;
        _title; quote "Title"; title_
      head_
      _body
        quote "Document Content"
      body_
    html_
    

    where "package require XHTML" uses the SNAML package. "output" command writes the generated XHTML to hello.html file. __pi sepcifies the xml version and encoding that is equal to . __doctype specifies the version number, language, and xhtml DTD standard.

    One of a DTD file: xhtml1-strict.dtd, xhtml1-transitional.dtd, or xhtml1-frameset.dtd must be specified in the __doctype command. _html specifies the xml namespace and language. html_ specifies the end of xhtml. _head command specifies the human readable and machine readable head information of an XHTML document. The _title command must be included inside the _head content.

    Modularization

    XHTML modularization includes attribute set, core modules, and other modules.

    Attribute set specifies the legal attribute name. The CORE set includes class, id, and title. The I18N represents xml:lang. STYLE is style.

    EVENTS includes onclick, ondbclick, onmousedown, onmouseup, onmouseover, onmousemove, onmouseout, okkeypress, onkeydown, onkeyup. COMMON is the sum of these sets.

    There are Core (Structure, Text, Hypertext, List), Object (Applet, Forms, Table, Image, Object, Frame, Iframe), Events, Meta, Script, Style Sheet, Link, and Legacy modules.

    XHTML vs. HTML

    XHTML 1.0 is an XML application for HTML 4.0. XHTML is case-sensitive in value and elements. There are strict, transitional, and frameset which specify the Document Type Definition (DTD) of HTML4. The difference between XHTML and HTML are

    • XHTML requires that documents must be well-formed. That is all elements must have closing tags and nest properly. The overlapping of elements is illegal.

    • Attribute values must always be quoted with '' and "".

    • Minimized attributes must be written in full attribute value pairs. For example, _dl "compact='compact'" instead of _dl "compact".

    • Do't use name attribute for _a, _applet, _form, frame, _iframe, __img, and __map commands. Instead id in the case of name. Only one id is permitted in each command.