[Bug 4687] Handling of DTDs when composing an IF document

http://www.w3.org/Bugs/Public/show_bug.cgi?id=4687


virginia.smith@hp.com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|editorial                   |needsReview




------- Comment #13 from virginia.smith@hp.com  2007-11-30 01:17 -------
Reworked entire section 5.2 SML-IF Documents. This section now reads:

=============
5.2 SML-IF Documents

The purpose of SML-IF is to package the set of documents that constitute an SML
model into a standard format so that it can be exchanged in a standard way.

An SML-IF document MUST conform to XML [XML] specification.

An SML-IF document MUST be valid under the XML Schema given in Appendix A.

An SML-IF document MAY form a valid SML model but it is not required to do so.
Various uses of SML-IF may define requirements with respect to model validity
and the interchange set, but this specification does not.

Each document in the interchange set MUST be represented in the SML-IF document
by a separate document element as follows:

   1. Each definition document in the interchange set MUST appear as a
descendant of a model/definitions/document element. The order of the document
children is not significant.
   2. Each instance document in the interchange set MUST appear as a descendant
of a model/instances/document element. The order of the document children is
not significant.

Each document in the interchange set MUST be included in the SML-IF document
either as an embedded document (where the document to be included is embedded
in the SML-IF document) or by including a reference to the document.
5.2.1 Embedded Documents

Documents that are to be embedded in the SML-IF document MUST be embedded as
follows:

   1. Definition documents MUST be embedded as the content of
model/definitions/document/data element. There can be at most one definition
document embedded in each model/definitions/document/data element.
   2. Instance documents that do not contain a DTD MUST be embedded as the
content of a model/instances/document/data element. There can be at most one
instance document embedded in each model/instances/document/data element.
   3. Instance documents that contain a DTD MUST be embedded as follows:
         1. The document MUST be encoded in base64 format.
         2. The resultant data stream MUST be embedded as the content of a
model/instances/document/base64Data element. There can be at most one instance
document embedded in each model/instances/document/base64Data element.

When extracting an embedded document that is contained in a base64Data element,
an SML-IF consumer MUST decode the content of the base64Data element first and
then process the resulting document as a embedded instance document. All
embedded instance documents not encoded in base64 MUST be processed as if they
contained the same DTD as the one specified on the model element (if present).
5.2.2 Referenced Documents

Documents that are to be referenced rather than embedded MUST be included as
follows:

   1. If the document is a definition document, the location of the document
MUST be included as the content of a model/definitions/document/locator
element.
   2. If the document is an instance document, the location of the document
MUST be included as the content of a model/instances/document/locator element. 

SML-IF specifies one way that MAY be used to provide the location of the
referenced document, the documentURI element.

An SML-IF consumer MAY choose to locate a referenced document. If an SML-IF
consumer chooses not to locate a referenced document or if it attempts to
locate the referenced document and this attempt fails, then the SML-IF consumer
MUST treat the referenced document as if it is not part of the interchange set.
If either of these conditions occurs, the SML-IF consumer SHOULD make its
invoker aware of this condition.

=============

Received on Friday, 30 November 2007 01:17:50 UTC