W3C home > Mailing lists > Public > xml-editor@w3.org > April to June 1999

Nots on XML 1.0

From: Mike Smith <mksmith@aus.edsr.eds.com>
Date: Mon, 21 Jun 1999 15:29:44 -0500
Message-Id: <199906212029.PAA10278@bradley.aus.edsr.eds.com>
To: xml-editor@w3.org
Very clean document.  It took me a little while to adjust to the
conflation of lexical and syntactic processing, which makes the
grammar a little harder to follow, but I assume this is a legacy from
SGML.

A few nits.

1. Neither of the non-terminals, NMTOKENS and NAMES, are used.

2. Note that productions 30 and 79 are identical.

  [30]     extSubset ::= TextDecl? extSubsetDecl
  [79]         extPE ::= TextDecl? extSubsetDecl

Is there some semantic content I am missing here?

The text notes that "An external parameter entity is well-formed if it
matches the production labeled extPE."  But nothing clear is said
about extSubset.

Perhaps the 3rd errata for section 2.8 is trying to accomplish this,
but I didn't guite get it.

3. You introduce a special notation (A - B) for "any string that
matches A but does not match B".  But you then use it primarily in
constructs of the form:

   (X* - (X* STR X*))

It would seem simpler to define A - B to be "any string that matches A
and does not contain B".  In which case the preceding would be

   X* - STR

Most of the current uses of your '-' operator would becomes simpler,
going from:

  [14]     CharData ::= [^<&]* - ([^<&]* ']]>' [^<&]*)
  [20]        CData ::= (Char* - (Char* ']]>' Char*))
  [65]       Ignore ::= Char* - (Char* ('<![' | ']]>') Char*)
  [15]      Comment ::= '<!--' ((Char - '-') | ('-' (Char - '-')))* '-->'
  [16]           PI ::= '<?' PITarget (S (Char* - (Char* '?>' Char*)))? '?>'
  [17]     PITarget ::= Name - (('X' | 'x') ('M' | 'm') ('L' | 'l'))
  [12] PubidLiteral ::= '"' PubidChar* '"' | "'" (PubidChar - "'")* "'"

to:

  [14]     CharData ::= [^<&]* - ']]>'
  [20]        CData ::= Char* - ']]>'
  [65]       Ignore ::= Char* - ('<![' | ']]>')
  [15]      Comment ::= '<!--' (Char* - '--') '-->'
  [16]           PI ::= '<?' PITarget (S (Char* - '?>'))? '?>'
  [17]     PITarget ::= Name - ([Xx][Mm][Ll])   
  [12] PubidLiteral ::= '"' PubidChar* '"' | "'" (PubidChar - "'")* "'"

I know, 17 is a gratuitious change, but it seems a little easier to read.

- Mike Smith

 Michael K. Smith			mksmith@cio2000.eds.com
 EDS CIO Services			512 404-6683
 98 San Jacinto Blvd. Suite 500		512 404-6655 (fax)
 Austin, TX 78701
Received on Monday, 21 June 1999 16:30:24 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 7 December 2009 10:59:29 GMT