James Clark wrote:
> There are lots of details that we haven't yet decided as a group. Rather
> than leaving the details out, I have tried to specify something reasonable.
> I suggest people raise issues for anything for which they want something
> different from what I've specified.
Thanks for starting to write this.
> Norm, please put the spec on the Web site.
I think that we should agree on publication of this document int our next teleconference.
The most controvertial part of this document is the scope. Which requiements
does this address? I would like to incorporate something about
requirements/scopes/goals in our first document about annotations. I have
quickly sketched "2. Goals". I am going to rewrite this in XML and put it
in the spec. If possible, I would like to reach some agreement about this
in our next teleconference.
2. Goals
1) General
- It shall be straightforward to onvert DTDs with default values,
ID/IDREF/IDREFS to a RELAX NG with annotations.
- Use of default values and ID/IDREF/IDREFS shall not be confused by
ambiguous grammars. When a grammar is ambiguous, it is not possible
to uniquely determine an <attribute> pattern for each attribute and an
<element> pattern for each element. (Note: This makes everything
hard.)
2) Attributes
- Attributes can be defaultable but elements cannot be defaultable.
- It should be possible to examine default values against datatypes.
- When a defaultable attribute is missing in an information set, it
should be possible to change the information set by adding default
values.
- When a defaultable attribute is missing in an information set, it
should be possible for application programs to use default values.
For example, it should be possible to generate Java classes from
RELAX NG grammars with default value annotation and embed default
values in the Java classes. Such Java classes do not require
changed information sets.
3) ID/IDREF/IDREFS
- Elements can have attributes as identifiers. Two elements in an
element collection (e.g, all elements of the same tag name) can be
distinguished by their identifier attributes.
- Elements can have subelements as identifiers. Two elements in an
element collection can be distinguished by their identifier
subelements.
- Different collections of elements have different symbol spaces or ID/IDREF tables.
- A unique element in an element collection can be referenced by specifying
its identifier by an attribute or element. (IDREF)
- A sequence of elements in an element collection can be referenced by specifying
their identifiers by an attribute or element. (IDREFS)
- Application programs shall be able to determine which element is referenced by
examining an identifier element or attribute.
- Comparison of identifiers is done by using datatype information.
- Multi-part keys are outside the scope of this specification.
- Scoped keys are outside the scope of this specification.
Cheers,
Makoto