[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [www-vrml] X3D and the Draconian Parse Rule



My question was more oriented to understanding if Classic VRML had
the same requirement as XML given precisely that XML parsing is determined
by a separate standard.
 
An editor that parses XML as a conformant XML processor indeed does have
to stop on encountering a well-formedness error.  It does not have to
burn the file.  It has to stop parsing.  Yes?  What it does in a rendering loop
with an incompletely parsed file/entity may be what the browser vendor gets
to decide.   Yes?  However, I would prefer that it issue the error and stop.

VRML is a mess because of not making a firm decision about this.  Files
that open and render in one browser die in another.   It really doesn't inspire
confidence in the format or the specification.  IMO.
 
len
 
 

From: Leonard Daly [mailto:daly@realism.com]
Len,

The XML Encoding spec (http://www.web3d.org/x3d/specifications/ISO-IEC-19776-FCD-X3dEncodings/Part01/concepts.html#XMLEncoding) says that "[r]ules for parsing and handling XML-encoded documents are defined in 2.[XML]." This reference is

Extensible Markup Language (XML) 1.0 Specification, editors Tim Bray, Jean Paoli, C. M. Sperberg-McQueen, Eve Maler, second edition, W3C Recommendation, World Wide Web Consortium (W3C), Cambridge Massachusetts, 6 October 2000.
http://www.w3.org/TR/REC-xml

The XML Recomendation document says that "A data object is an XML document if it is well-formed". (http://www.w3.org/TR/REC-xml/#sec-documents) So being well-formed is a requirement for an XML document which is a requirement for a X3D (XML encoded) document.


What a particular X3D application does with a non-well-formed file is dependent upon the application. It is entirely legal for a browser to terminate during parsing of the document. A non-well-formed file may indicate the presence of transmission errors. The browser may not be able to detect other transmission errors (e.g., those in a IFS node), so quitting on a syntax error is probably the best thing to do.

You probably don't want your X3D/XML editor to quit when it encounters the error. This may be your only reasonable means for repairing the file.

Xj3D is taking a real strict approach to quitting when it detects an error. This would apply to XML syntax (document structure) and X3D syntax (node structure). This process is not required (at least I couldn't find anything in the spec about it).

To (finally) answer your question, what a browser "should" do is based on what the browser builder determines what best position this browser in the market.