OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.


Help: OASIS Mailing Lists Help | MarkMail Help

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

Re: DTD declaration

On Mon, 12 Mar 2001, Paul Grosso wrote:

> Date: Mon, 12 Mar 2001 10:38:10 -0600
> From: Paul Grosso <pgrosso@arbortext.com>
> To: xml-dev@lists.xml.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"?>
  Minor nit:
     This is not a valid text declaration.
     The encoding spec is not optional on a Text Declaration.
     [77]    TextDecl    ::=    '<?xml' VersionInfo? EncodingDecl S? '?>' 
     while the version is, in fact, optional.

        <?xml encoding="UTF-8"?>

     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.
> >
> >Yes, 
> 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.)
> paul
> >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
> >alike.