Views

DIAL as a XHTML Host Language Document Type Conformance

From Morfeo Wiki

Jump to: navigation, search

Contents

Introduction

Links:

  • XHTML Modularization 1.1 (W3C Proposed Recommendation 13 February 2006) [1]
  • XHTML 2.0 [2]
  • XHTML 1.1 Conformance Definition [3]
  • Dial [4]

Modules in XHTML 1.1 and XHTML 2.0

To define a language Host Language Conformance with XHTML 1.1 we must include , at a minimum, the Structure, Hypertext, Text and List Modules of XHTML1.1

As DIAL is define as based on XHTML2.0 we need to compare the required minimum modules, to see the differences, and how to manage.


Diference in elements of required modules:

Structure Module.

Note: The Structure Module in XHTML 1.1 is called Document Module in XHTML 2.0

Structure Module XHTML 1.1

Document Module XHTML 2.0

Element XHTML1.1

Content Model

Element

XHTML 2.0

Content Model

body

(Heading | Block | List)*

body

(Heading | Structural | List)*

head

title

head

title , ( access | handler | link | ev:listener | model | meta | style )*

html

Head, body

html

Head, body

title

PCDATA

title

PCDATA

  • The main difference is in the content of Head element. There are new elements, that should be added to the HeadOpts.mix entity of XHTML 1.1. These elements are: access , handler , link , ev:listener , model , meta and style
  • Lists elements are part of body element by 2 ways: directy as definied by the body element, and as a element of structural block, which is part of body element.


Heading (XHTML 1.1)

   h1 | h2 | h3 | h4 | h5 | h6

Heading (XHTML 2.0)

   h | h1 | h2 | h3 | h4 | h5 | h6

The difference in Heading elements is that XHTML 2.0 adds a new heading element, h


Block (XHTML 1.1)

   address | blockquote | div | p | pre 

Structural (XHTML 2.0)

    address | blockcode | blockquote | div | link | list | meta | p | pre | handler | section | separator | table

The difference between Block elements (XHTML 1.1) and Structural elements (XHTML 2.0) is that in XHTML 2.0 there are new structural elements: Blockcode, link, List, meta, handler, section, separador, table

List (XHTML 1.1)

   (dl | ol | ul)+

List (XHTML 2.0)

   (dl | nl | ol | ul)+

Hypertext Module.

Hypertext module contains identical elements in XHTML 1.1 and XHTML 2.0


XHTML 1.1

XHTML 2.0

Element XHTML1.1

Content Model

Element

XHTML2

Content Model

a

(PCDATA | Inline - a)*

a

(PCDATA | Text)*


Inline (XHTML 1.1)

   abbr | acronym | br | cite | code | dfn | em | kbd | q | samp | span | strong | var 

Text (XHTML 2.0)

   abbr | cite | code | dfn | em | kbd | link | meta | object | q | ruby | samp | span | strong | var | XForms_Form_Controls

Text Module.

XHTML 1.1


XHTML 2.0

Element XHTML1.1

Content Model

Element

XHTML2

Content Model

abbr

(PCDATA | Inline)*

abbr

(PCDATA | Text)*

acronym

(PCDATA | Inline)*



address

(PCDATA | Inline)*



blockquote

(Heading | Block | List)*



br

EMPTY



Cite

(PCDATA | Inline)*

cite

(PCDATA | Text)*

code

(PCDATA | Inline)*

code

(PCDATA | Text)*

dfn

(PCDATA | Inline)*

dfn

(PCDATA | Text)*

div

(PCDATA | Flow)*



em

(PCDATA | Inline)*

em

(PCDATA | Text)*

h1

(PCDATA | Inline)*



h2

(PCDATA | Inline)*



h3

(PCDATA | Inline)*



h4

(PCDATA | Inline)*



h5

(PCDATA | Inline)*



h6

(PCDATA | Inline)*



kbd

(PCDATA | Inline)*

kbd

(PCDATA | Text)*

p

(PCDATA | Inline)*



pre

(PCDATA | Inline)*



q

(PCDATA | Inline)*

q

(PCDATA | Text)*

samp

(PCDATA | Inline)*

samp

(PCDATA | Text)*

span

(PCDATA | Inline)*

span

(PCDATA | Text)*

strong

(PCDATA | Inline)*

strong

(PCDATA | Text)*

var

(PCDATA | Inline)*

var

(PCDATA | Text)*



l

(PCDATA | Text)*



sub

(PCDATA | Text)*



sup

(PCDATA | Text)*

There are some new elements:

  • l element represents a semantic line of text
  • sub element indicates that its contents should regarded as a subscript.
  • sup element indicates that its contents should regarded as a super-script.

Inline (XHTML 1.1)

  abbr | acronym | br | cite | code | dfn | em | kbd | q | samp | span | strong | var 

Flow (XHTML 1.1)

  Heading | Block | Inline 

Text (XHTML 2.0)

  abbr | cite | code | dfn | em | kbd | link | meta | object | q | ruby | samp | span | strong | var | XForms_Form_Controls

List Module.

XHTML 1.1

XHTML 2.0

Element XHTML1.1

Content Model

Element

XHTML2

Content Model

dl

(dt | dd)+

dl

label?, (( dt | dd)+ | di+)

dt

(PCDATA | Inline)*

dt

(PCDATA | Text)*

dd

(PCDATA | Flow)*

dd

(PCDATA | Flow)*

ol

li+

ol

label?, li+

ul

li+

ul

label?, li+

li

(PCDATA | Flow)*

li

(PCDATA | Flow)*



label

(PCDATA | Text)*



nl

label , li+



di

(dt+ , dd*)

The List module in XHTML 2.0 has difference in content model, not only by adding new elements, but in the structure of the element dl.

It has the following new elements:

  • label. The label element represent the title of a list
  • nl Navigation List. To create a special kind of list, navigation list. (It is a way of adding semantic to the normal list)
  • di. It is used to create definition lists, that vary only slightly from other types of lists in that list items consist of two parts: a term and a description.

But it is possible to define a definition list, with dt and dd elements, without using the di element.


Flow (XHTML 1.1)

 Heading | Block | Inline 

Heading (XHTML 1.1)

   h1 | h2 | h3 | h4 | h5 | h6

Block (XHTML 1.1)

   address | blockquote | div | p | pre

Inline (XHTML 1.1)

 abbr | acronym | br | cite | code | dfn | em | kbd | q | samp | span | strong | var 



Flow (XHTML 2.0)

   Heading | Structural | Text      
   

Heading (XHTML 2.0)

   h | h1 | h2 | h3 | h4 | h5 | h6

Structural (XHTML 2.0)

   address | blockcode | blockquote | div | link | List | meta | p | pre | handler | section | separator | table

Text (XHTML 2.0)

   abbr | cite | code | dfn | em | kbd | link | meta | object | q | ruby | samp | span | strong | var | XForms_Form_Controls

Blocks in XHTML 1.1 and XHTML 2.0

XHTML 1.1 Block block compare to XHTML 2.0 Structural block

block Block (XHTML1.1)

Structural Block (XHTML2.0)

Element

Content

Element

Content

address

(PCDATA | Inline)*

address

(PCDATA | Text)*

blockquote


(Heading | Block | List)*

blockquote

(PCDATA | Text | Heading | Structural | List)*

div


(PCDATA | Flow)*

div

(PCDATA | Flow)*

p

(PCDATA | Inline)*

p

(PCDATA | Text | List | blockcode | blockquote | pre | table )*

pre

(PCDATA | Inline)*

pre

(PCDATA | Text)*

table

caption?, tr+

table

caption?, summary?, ( col* | colgroup* ), (( thead?, tfoot?, tbody+ ) | ( tr+ ))



blockcode

(PCDATA | Text | Heading | Structural | List)*



link

( link | meta )*

list

(dl | nl | ol | ul)+

meta

( PCDATA | Text )*

handler

PCDATA | handler

section

EMPTY

separator

EMPTY


  • blockcode: This element indicates that its contents are a block of "code". This element is similar to the pre element, in that whitespace in the enclosed text has semantic relevance.
  • XHTML 2.0 separator element is similar to XHTML 1.1 br element. sepatator is included in structural block, but br is included in inline block
  • XHTML 2.0 Lists elements are included in Structural block, but XHTML1.1 lists elements are included in the flow content set of the Text Module.
  • Table Module (if used) has more elements in XHMTL 2.0 than in XHTML 1.1

XHTML 1.1 Inline block compare to XHTML 2.0 Text block

Inline block (XHTML1.1)

Text block (XHTML2.0)

Element

Content

Element

Content

abbr

(PCDATA | Inline)*

abbr

(PCDATA | Text)*

acronym

(PCDATA | Inline)*



br

EMPTY



cite

(PCDATA | Inline)*

cite

(PCDATA | Text)*

code

(PCDATA | Inline)*

code

(PCDATA | Text)*

dfn

(PCDATA | Inline)*

dfn

(PCDATA | Text)*

em

(PCDATA | Inline)*

em

(PCDATA | Text)*

kbd

(PCDATA | Inline)*

kbd

(PCDATA | Text)*

q

(PCDATA | Inline)*

q

(PCDATA | Text)*

samp

(PCDATA | Inline)*

samp

(PCDATA | Text)*

span

(PCDATA | Inline)*

span

(PCDATA | Text)*

strong

(PCDATA | Inline)*

strong

(PCDATA | Text)*

var

(PCDATA | Inline)*

var

(PCDATA | Text)*



link

( link | meta )*



meta

( PCDATA | Text )*



object (Object module)

( caption?, standby?, param*, (PCDATA | Flow)*)



ruby (Ruby Module)

((rb, (rt | (rp, rt, rp))) | (rbc, rtc, rtc?))



XFORMS


Summary of ideas

  • Comparing the four compulsory modules of XHTML 1.1 necessary to create a language XHTML Host Language Conformance, to the related modules of XHTML 2.0 we obtain the following conclusions:
  • XHTML 1.1 Hypertext Module and XHTML 2.0 Hypertext Module are nearly identical.
  • XHTML 1.1 Structure Module and XHTML 2.0 Body Module has minimal difference.
  • XHTML 1.1 Text Module and XHTML 2.0 Text Module has some difference in elements.
  • XHTML 1.1 List Module and XHTML 2.0 List Module has some difference in the structure of the elements.
  • In general most of the elements has difference in attributes, mainly because XHTML 2.0 defines more attributes for the elements than XHML 1.1