[dsdl-discuss] Draft of DSDL Part 9

From: Rick Jelliffe <ricko@topologi.com>
Date: Tue Nov 09 2004 - 13:03:25 UTC

Francis Cave wrote:

>I have been working on a very rough draft of Part 9, but have got
>unavoidably diverted onto other more immediately pressing work and I must
>therefore apologise for having missed the four-week deadline. I shall, I
>hope, get something drafted in the next week or so and submit it anyway,
>with the hope that those folks who are interested will have a chance to look
>at it before we meet.
>
>
For the purposes of discussion, following is my suggestion for Part 9.
It is may be more
minimal than people want.

Rick Jelliffe

DSDL
Part 9
Datatype- and namespace-aware DTDs

SCOPE
----------

This part provides an adjusted interpretation for XML DTDs to allow
the unobstructed use of XML Namespaces and external datatypes.

The purpose of this part is not to encourage further use of DTDs,
but to make current DTDs fit in with the DSDL framework and
emerging namespace-based XML technologies more readily.

SYNTAX
-------------

The syntax of the external subset of the XML DTD is unchanged.

OPERATION WITH RESPECT TO ENTITIES
---------------------------------------------------------------
This draft defines two kinds of operations.

1) Operation in an XML processor (or other SGML parser).

When used with a XML processor (or other SGML parser), for example as
the external subset,
or as a schema bound to the document by some application-dependent
mechanism,
or as the initial processor in a DSDL validation chain, the action of the
DTD with respect to entities is unchanged from standard operation.

2) Operation in a subsequent processor in DSDL

When used as a subsequent process (terminaology) in a DSDL process, the DTD
cannot be used to resolve entities that were undeclared in the initial
parse.

NOTE: This is to enforce the constraint that all DSDL sub-processes
follow the
XML-in/XML-out rule. We do not accept invalid SAX streams.

OPERATION WITH RESPECT TO DATATYPES
--------------------------------------------------------------------

Use Part 2.

[We already changed ISO 8879 to allow data attributes.
They are waiting for W3C to adopt: we should not adopt
them here, but stick to the same syntax as XML and encourage
W3C to upgrade XML's syntax to use the ISO notation
syntax.]

[Actually, I don't know why or when we added datatype awareness.
It seems pretty retrograde and futile. SGML processors won't be
updated. We cannot change XML. ]

OPERATION WITH RESPECT TO NAMESPACES
------------------------------------------------------------------------

A Part 9 processor shall act as if there existed declarations for
xmlns and xmls:* on every element declaration in the element
declarations.

A Part 9 processor shall have three validation modes as invocation
parameters: namespace-strict, namespace-lax and namespace-supplied.

When validating a document, a Part 9 processor follows the rules of
Namespaces for
XML in determining the QName of the element or attribute.

When looking up the appropriate markup declarations for that Qname,
a Part 9 processor in namespace-stict mode will attempt to find the
an element which regardless of prefix used in the element and
attlist declarations, has xmlns or xmlns:* declarations for that namespace
URI.

When looking up the appropriate markup declarations for that Qname,
a Part 9 processor in namespace-lax mode will attempt to find the
an element which regardless of prefix used in the element and
attlist declarations, has xmlns or xmlns:* declarations for that namespace
URI, as above. If this is not found, the Part 9 processor will attempt
to use any element declaration with the same local name, but without
any xmlns or xmlns:* declaration.

When looking up the appropriate markup declarations for that Qname,
a Part 9 processor in namespace-supplied mode will attempt to find the
an element which regardless of prefix used in the element and
attlist declarations, has xmlns or xmlns:* declarations for that namespace
URI, as above. If this is not found, the Part 9 processor will attempt
to use any element declaration with the same local name, but without
any xmlns or xmlns:* declaration, treating such elements and entities
declarations as if they belong to the namespace specified by an invocation
parameter.

NOTE: In this way, a namespace-strict DTD can have elements with no
prefix in no namespace, as well as elements in other namespaces. However
a namespace-lax DTD only needs an xmlns declaration on the topmost
element's ATTLIST and not on every element declaration. A namespace-supplied
DTD does not need any explicit xmlns or xmlns:*.

When the Part 9 processor is a non-leaf node in a DSDL chain, it
augments the
instance with namespace information as appropriate.

OPERATION WITH RESPECT TO VALIDATION
---------------------------------------------------------------------

When being used as a non-leaf node in a DSDL chain, a Part 9 processor
shall, as an invocation parameter, validate using the content model and
datatyping, or not.

Regardless of validation, when being used as a non-lefaf node in a DSDL
chain,
a Part 9 process shall perform macro-expansion: entity resolution (first
node only, as above), attribute defaulting, and namespace processing.

--
DSDL members discussion list
To unsubscribe, please send a message with the
command  "unsubscribe" to dsdl-discuss-request@dsdl.org
(mailto:dsdl-discuss-request@dsdl.org?Subject=unsubscribe)
Received on Tue Nov 9 14:35:12 2004

This archive was generated by hypermail 2.1.8 : Fri Dec 03 2004 - 14:00:28 UTC