XSchema Spec, Sections 2.0 and 2.1 (Draft 1)
cowan at locke.ccil.org
Mon Jun 8 21:06:15 BST 1998
Paul Prescod wrote:
> Question 1: John, how do you see XSchemas working technically?
I agree with everything you say except
> all entities will have been resolved (or not resolved) by
> the time the processor sees the data.
where for "will have been resolved" read "may or may not have
been resolved, depending on the kind of XML parser in use".
(I know that you favor "should have been resolved".)
As 5.2, bullet 2, of the XML spec says:
# [A] non-validating processor [may or] may not [...] include
# the replacement text of internal entities [...] where doing so
# depends on having read declarations in external or parameter
> Question 2: What is the role of a "schema"
> My definition is: "A document that describes a class of documents."
> Do you agree?
Yes. However, the use of certain entity references may be a part of
the characterization of the class. For example, it is part of the
characterization of HTML 4.0 documents (and also of Itsy-Bitsy-compliant
document fragments) that they use the "-//W3C//ENTITIES *//EN//HTML"
> If so, then what would be the purpose of text substitution
> macros in a schema language?
XSchema processors don't have to do the macro-expansions themselves;
hopefully, the XML processor will take care of that.
> I went into these issues in detail in this message:
Okay, I've been meaning to comment point-by-point (forgive me for
not doing it before; I wasn't on XML-DEV when you posted it):
#1: I agree that not all entity declarations belong in an XSchema,
but that is not the same as saying that none do.
#2: I don't understand the relevance of this. For a document instance
(with varying DOCTYPE declaration) to be validatable by more than one
DTD, the entities it uses must be declared by all the DTDs.
Similarly but weaker, for a document to be validatable by more than one
XSchema, the entities it uses must not be declared in conflicting ways
by any pair of XSchemas: either no declaration, or only one, or more
than one that agree.
Sets of XSchema entity declarations can be brought into larger XSchemas
using external general entities, just as is the case for DTD
#3: I don't see this. DTDs cannot be reused as such, or even
*used* as such; as you say, they are part of documents. But the
external parameter entities that are loosely called "DTD"s, the
contents of .dtd and .ent files, *they* can be reused. This
is true for both DTD format and XSchema format, given that XSchemas
can include other XSchemas.
#5: Agreed. The purpose of including an entity in an XSchema is
*not* to enable macro-expansion.
#6: I'm not sure I understand this, given that XML entities are
always synchronous: an external general entity looks like a
document instance without a prologue, except that it need not
have a root element either. The example seems to have to do
with macro-expansion, and converges with #5.
John Cowan http://www.ccil.org/~cowan cowan at ccil.org
You tollerday donsk? N. You tolkatiff scowegian? Nn.
You spigotty anglease? Nnn. You phonio saxo? Nnnn.
Clear all so! 'Tis a Jute.... (Finnegans Wake 16.5)
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/
To (un)subscribe, mailto:majordomo at ic.ac.uk the following message;
To subscribe to the digests, mailto:majordomo at ic.ac.uk the following message;
List coordinator, Henry Rzepa (mailto:rzepa at ic.ac.uk)
More information about the Xml-dev