[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: DTD declaration
- From: John Halleck <John.Halleck@utah.edu>
- To: Richard Knapp <firstname.lastname@example.org>
- Date: Mon, 12 Mar 2001 10:40:00 -0700 (MST)
On Mon, 12 Mar 2001, Paul Grosso wrote:
> Date: Mon, 12 Mar 2001 10:38:10 -0600
> From: Paul Grosso <email@example.com>
> To: firstname.lastname@example.org
> Subject: Re: DTD declaration
> At 12:03 2001 03 11 -0700, Mike Brown wrote:
> >Richard Knapp wrote:
> >> In section 4.3.1 of Rec 20001006, there is discussion about Text Declaration. It says "External parsed entities
> >> should begin with a text declaration" where the declaration is
> (not must)
> >> <?xml version="1.0"?>
This is not a valid text declaration.
The encoding spec is not optional on a Text Declaration.
 TextDecl ::= '<?xml' VersionInfo? EncodingDecl S? '?>'
while the version is, in fact, optional.
would be valid, and then Mike's comments are correct.
> >> or a variation on that.
> >> Is this required in a DTD if it is separate from the XML document? I can't find anything that specifically
> >> addresses this issued.
> No. The rest of Mike's response is correct except, but it is not
> correct that the text declaration is required (as is clear from the
> rest of Mike's message, so I think his "yes" is a "typo").
Although not being required assumes it is in UTF-8 or UTF-16.
If it is otherwise then the standard says:
It is also a fatal error if an XML entity contains no encoding
declaration and its content is not legal UTF-8 or UTF-16.
(For example, one can automagicly determine an entity is EBCDIC,
but it is an error if it doesn't have a declaration in that case.)
> >if the DTD is separate from the document entity, then it is an
> >"external" entity. If it's readable by an XML processor (parser) then it is
> >a (dubious tense notwithstanding) "parsed" entity.
> >The point of the text declaration is mainly to allow an external entity to
> >indicate to an XML parser what its character encoding is.
Which is why the encoding is not optional if the declaration appears.
> >If it doesn't have a text declaration, the usual rules for determining the
> >entity's character encoding will apply, and it will be an error if the
> >entity does not have the same encoding as is automatically determined...
> >just like with any other entity -- DTD, document, or document fragment