Again wit da AND and Repetitions

Marc.McDonald at Design-Intelligence.com Marc.McDonald at Design-Intelligence.com
Tue May 18 00:28:17 BST 1999


Steve Dahl pointed out my mental typo minutes after posting and I cleverly
replied to him and not xml-dev. I meant the case later described:
((c,d,e,f,g) | (c,d,e,f,h)).

>From reading appendix E of the XML spec, I put a lot more work into my
pattern validator than needed. It does <n> element lookbehind, rolling back
to last alternative when pattern fails.

The appendix is still a bit ambiguous since it mentions algorithms to reduce
non-deterministic patterns to deterministic ones and doesn't say if such
reductions are required.

It seems rather arbitrary to allow (b,c,(e | f)) but not ((b,c,e) |
(b,c,f)). A manual re-write is not possible when the 2 patterns may have
been created by entity parameters:
<!ENTITY % a '(b,c,e)'>
<!ENTITY % b '(b,c,f)'>
<!ELEMENT r (%a; | %b;)>

A technique commonly used to enable the reuse element definititions in a
DTD.

Marc B McDonald
Principal Software Scientist
Design Intelligence, Inc
www.design-intelligence.com <http://www.design-intelligence.com> 


	----------
	From:  David Brownell [SMTP:david-b at pacbell.net]
	Sent:  Sunday, May 16, 1999 11:56 AM
	To:  John Cowan
	Cc:  xml-dev at ic.ac.uk
	Subject:  Re: Again wit da AND and Repetitions

	John Cowan wrote:
	> 
	> Mark McDonald wrote:
	> 
	> > > <!ELEMENT x (a? | b?)>
	> > > <!ELEMENT a (c,d,e,f,g)>
	> > > <!ELEMENT b (c,d,e,f,h)>
	> > >
	> > > With an input of elements c, d, e, f, h in element x.
	> 
	> And David Brownell replied:
	> 
	> > Actually, the content model for "x" is in error there, so any
	> > XML processor is allowed to report an error however rudely it
	> > chooses to do so.  That content model is "ambigious".
	> 
	> I can only assume that both of you are suffering from brain farts.
	> Any "x" that contains anything but an "a" or a "b" is obviously
	> invalid.  You are talking as if the above declarations were:
	> 
	> <!ENTITY % a "(c,d,e,f,g)">
	> <!ENTITY % b "(c,d,e,f,h)">
	> <!ELEMENT x (%a;? | %b;?)>
	> 
	> Element declarations refer to lexically apparent objects
(elements),
	> not to mere groups of elements defined by pseudo-BNF.

	Ah, yes ... I was reacting to the intent, not the exact wording!
	Thanks for catching that.


	There've been misstatements on this topic.  The XML spec is clear
	that ambiguous content models are errors.  What it does poorly is
	say exactly what that means; it basically boils down to a reality
	that documents better not have it, "or else".  And any parser is
	free to do _whatever it wants_ when faced with such errors.

	- dave

	xml-dev: A list for W3C XML Developers. To post,
mailto:xml-dev at ic.ac.uk
	Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/ and on
CD-ROM/ISBN 981-02-3594-1
	To (un)subscribe, mailto:majordomo at ic.ac.uk the following message;
	(un)subscribe xml-dev
	To subscribe to the digests, mailto:majordomo at ic.ac.uk the following
message;
	subscribe xml-dev-digest
	List coordinator, Henry Rzepa (mailto:rzepa at ic.ac.uk)

xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev at ic.ac.uk
Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/ and on CD-ROM/ISBN 981-02-3594-1
To (un)subscribe, mailto:majordomo at ic.ac.uk the following message;
(un)subscribe xml-dev
To subscribe to the digests, mailto:majordomo at ic.ac.uk the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa at ic.ac.uk)




More information about the Xml-dev mailing list