XML Draft Comments
These are my comments on the Nov 14 draft.
>Extensible Markup Language (XML) is an extremely simple dialect of SGML which is completely
>described in this document.
Remove "extremely simple". Not able to technically evaluate that
without some criteria.
>The goal is to enable generic SGML to be served, received, and
>processed on the Web in the way that is now possible with HTML.
Replace "generic SGML" with "this dialect of SGML" to clearly point out
difference. The term "generic SGML" is redundant in one sense, and not
sensible in that any SGML is an application, not SGML. The use of the
term, application profile, later is better in that it will be better
in the standards community except for the confusion of SGML's common
practice of using the terms DTD and SGML application interchangeably.
Like three letter acronyms, all words are reserved by somebody. ;-)
Unless a clarifying glossary is pointed to, you might want to include
one in an appendix somewhere.
>For this reason, XML has been
>designed for ease of implementation, and for interoperability with both SGML and HTML.
As HTML is an application of SGML, interoperability should refer to the
systems that handle applications of SGML and specifically in the
the systems that handle HTML. This is grandfathering and an imprecise
equivalence. Change this to interoperability with systems.
It is better to use portability where you intend, "I send you this
and you do what you do with it" and use interoperability to mean "I send
command and you do what you must". If you send an object that has both,
>Extensible Markup Language, abbreviated XML, describes a class of data objects called XML
>documents which are stored on computers, and partially describes the behavior of programs which
>process these objects.
Does the language specify a behavior or does the spec prescribe a
behavior based on the
type of data object? It's quibbling, but unless there is a script in
the XML, I expect it to
only send data.
>XML documents are made up of storage units called entities, which contain either text or binary
Text is immediately defined. Binary is defined later as notation.
Would it be prudent to note
this here in some short form or changed this to "text and non-text types
defined by formal
notation citation". Ick.... Binary seems restrictive in that SGML,
VRML, CGM, etc are all
notations and are not of necessity, binary. The later explanation
>So-called binary data may in fact be textual, perhaps even
>well-formed XML text; its identification as binary means that an XML
processor need not
>parse it in the fashion described by the specification.
doesn't justify the use of the term, "binary". Why is this term used
when all it appear to mean is
"not constrained by XML specification".
>A software module called an XML processor is used to read XML documents and provide
>access to their content and structure. It is assumed that an XML processor is doing its work on
>behalf of another module, referred to as the application.
Processor is fine. I believe HyTime uses the term "engine". Are these
The term "application" is loose and may confuse the SGML user. Again,
are no unreserved terms left. Would it better to use the terms server
1.5 Syntactic Constraints
The tables should be in an appendix unless that makes them
>Entities must each contain an integral number of elements, comments, processing instructions,
>and references, possibly together with character data not contained within any element in the
>entity, or else they must contain non-textual data, which by definition contains no elements.
Just to be sure, does this preclude the use of XML to reference an
entity that contains
other SGML/non-XML application data?
>Users may extend the ISO 10646 character repertoire, in the rare cases where this is necessary, by >exploiting the private use areas.
An editor design note to explain the ramifications of this might be
prudent. Another tact is
to add such to a follow-on "The Annotated XML Specification" which
could be privately
written and published. This is being done with VRML to help
implementors with areas
of the spec that need explanation, not clarification and to document
Clear transcripts of all design discussions and decisions are useful for
> Comments may appear anywhere except in a CDATA section, i.e. within element content, in
> mixed content, or in a DTD subset. They may not occur within declarations or tags. They are
> not part of the document's character data; an XML processor may, but need not, make it
> possible for an application to retrieve the text of comments. For compatibility, the string --
> (double-hyphen) may not occur within comments.
Is the use of "may" correct in this section as defined earlier?
>Processing instructions (PIs) allow the XML processor to pass instructions directly to
Since PIs have a deprecated heritage and undeserved bad reputation,
explanation of the intent for its use be added in a non-normative
will come up again in later discussions of linking and external
interface design to
> CDATA sections begin with the string <![CDATA[ and end with the string ]]>
Bugugly but ok. We are used to it and an editor can hide the acne
>In element content, all white space (S) is ignored; validating XML processors must not pass it
>to the application. Non-validating processors which do not read the DTD must treat all
>elements as if they were declared with mixed content; this will in some cases result in a different
>parse tree from that produced by processors which do read the DTD.
Another candidate for design notes. The impact of "a different parse
tree" should be
>The white space handling mode is signaled through the use of a reserved attribute; XML
>processors must behave as though every element encountered in the document had an attribute
TripleBugUgly. In effect, to get around having a DTD, the DTD
information moves into
the instance. I don't know any other way though unless XML application
are given a way to meta-declare this information or put it in the
stylesheet. BTW, which
is the default behavior if not specified in the instance? Is it
undefined or left to the
implementor? An argument to support this approach is that any editor
worth having will
automatically insert this attribute value for elements which clearly
>A document author can communicate whether or not
>DTD processing is necessary using a required markup declaration (abbreviated RMD)
>processing instruction, which appears as a pseudo-attribute on the XML declaration:
As ugly as this first appears, it seems sound to leave the decision to
of the document originator, be it author or organization. It will be
see what develops as common practice. This looks like another candidate
the editor to enforce as a convenience to authors who would probably
the conservative options if they are aware of them.
>For interoperation with existing Web software, users of XML may desire to create documents
>which are simultaneously valid XML and processable by existing HTML browsers. The
>difference in the form of empty elements may be accommodated by using an XML-compatible
>version of the HTML DTD ...
Sanity check for me. This says in effect, you can <e/> or <e></e> but
never <e>. Is that
right? In that case, the text as presented applies to any existing SGML
currently uses <e>, right? So, this explanation should be written to
the general case
of all SGML applications which use <e>, with HTML cited as a well-known
>The grammar is built on content particles (CPs), which consist of names, choice lists of content particles, >or sequence lists of content particles:
What is the origin of the term, content particles? Are we invoking dead
poets again or
avoiding subatomic theorists? ;-)
BTW, should there be a note that tells an SGML hacker that the
minimization flags are gone,
or do you wish to explain this 10,000 times when the error reports come
> For compatibility reasons, the same Nmtoken may not occur more than once in the enumerated attribute > types of a single attribute-list declaration.
Strong hint to WG8: this should go away quickly before the XML
implementors get very far.
>Notation declarations provide a name for the notation, for use in entity and attribute-list
>declarations and in attribute-value specifications, and an external identifier for the notation which
>may allow an XML processor or its client application to locate a helper application capable of
>processing data in the given notation.
The term "client application" is introduced. Can it be used in the
abstract as well? The
term "helper application" is introduced. It is informal though
understood. Is there
a better term to use here or is it necessary to introduce the concept
informally? I can't
think of a better term, but helper seems imprecise as all it says is
"give this to
someone else" and that could be a "plugin".
>Despite this, there are a small number of cases where XML fails to be a pure subset of SGML,
Prefer the word "strict". This is not a moral or chemical issue but it
is a legal one. Some explanation
of what it means to be an "application profile" vs a "strict subset" is
in order. Otherwise,
the rationale that follows equates to "we thought it was ugly so we
threw it out". Many of the
decisions which violate SGML strictures are a result of the design
decision to enable
DTD-less processing. This should be so stated and the rationale for
it. Otherwise, since
any processing organization can agree in advance to have identical DTDs,
always live without that design decision and get the same effect. So,
tie this to the
design rationale and save yourselves some headaches later.
>The following list describes features which are available in SGML but not in XML. It may not
Ok. Good job on the writing and substance. I understand the
requirement on the 20 page limit. I do think clarity or completeness
should not take a backseat to brevity.