Lists Home |
Date Index |
"Rick Jelliffe" <firstname.lastname@example.org> writes:
> And Leigh's article could say:
> XHTML is an architecture
> XLink is an architecture
Yes, but it's a slight stretch, since the root element
type is not explicitly provided by XLink. Since the
root element type, if it had been provided, wouldn't
have imposed any constraints, I'm not too worried about
calling XLink an architecture.
Of course, you need to use inclusion exceptions in
order to be able to specify a non-constraining content
model for the root element type of an architecture.
That's a serious problem for the use of architectural
forms in XML, because XML-conforming DTDs can't support
inclusion exceptions. However, it's possible to adopt
a convention for XML that says, "If no root element
type is provided, architecture-specific processors
should assume that the elements whose contexts are not
constrained by the architecture can appear anywhere in
the instance." Implicitly, that's exactly what XLink
did. As yet, however, no such corresponding adjustment
has ever been made to the ISO standard, nor to the only
parser that handles architectural forms correctly (SP).
> RDDL is another architecture (using XHTML and
> XLink both in particular ways)
Yes, with the same proviso.
> Perhaps Steven could mention what the difference
> between an "architecture" and an "architectural form"
An architecture has:
* a schema (some set of syntactic constraints) *and*
* specific, explicitly-defined semantics for each
syntactic construct defined in the schema.
An architectural form is a syntactic construct defined
in the schema. There are two kinds:
1. Element-type architectural forms. These define
semantics and syntactic constraints on the content
of the element type and on its attributes. Since
the root element type is always declared by an
architecture, and since the root element type
required to be the ancestor of all of the contained
architectural elements, it is also correct (but a
bit confusing) to say, informally, that a whole
architecture is (or is invoked by) a single
architectural form. Because of this ambiguity, the
following two statements are effectively
(1) I'm using the HyTime architecture.
(2) I'm using the HyDoc architectural form.
If the name of the architecture happens to be the
same as the GI of its root element, it's even more
confusing. The following two statements are
(1) I'm using the XHTML architecture.
(2) I'm using the xhtml architectural form.
2. Attribute-list-type architectural forms. These are
lists of one or more attributes that may appear on
instances of some set of architectural elements.
The ones that are recognized on *all* architectural
elements are called "common attributes". (The
ability to recycle attribute lists explicitly along
with their semantics was the main enhancement of
the DTD formalism introduced by the "SGML Extended
Facilities" annex of the HyTime standard. It's not
a *necessary* enhancement -- you can accomplish the
same things less conveniently without using it --
but it sure is nice to have.)
Steven R. Newcomb, Consultant
voice: +1 972 359 8160
fax: +1 972 359 0270
1527 Northaven Drive
Allen, Texas 75002-1648 USA