DIAL as a XHTML Host Language Document Type Conformance
From Morfeo Wiki
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
