- From: Felix Sasaki <fsasaki@w3.org>
- Date: Sat, 09 Jul 2005 12:18:59 +0900
- To: "Richard Ishida" <ishida@w3.org>, public-i18n-geo@w3.org
On Fri, 08 Jul 2005 21:46:31 +0900, Richard Ishida <ishida@w3.org> wrote:
>
> Hi Felix,
>
> Many thanks for doing this.
np!
>
> A couple of comments.
>
> Entities are not really alternatives to NCRs, but alternatives to
> character codes. Although using an NCR may be convenient to express the
> character in question, there is no reason that I know of that you have
> to use an NCR in all the places you indicate, other than where the
> document encoding disallows the character.>
> So I would make changes of the following type: s/All schema languages
> allow to use entities for NCRs in XML documents./All schema languages
> allow the use of entities instead of characters in XML documents./
Good!
>
> It seems to me that all the approaches you describe other than defining
> entities in the document subset fall foul of the problem that they will
> not be recognised if the implementation doesn't retrieve the external
> file, right?
Yes. So maybe it's bad news for the schema languages :( , but it is also
maybe something people would like to be made aware of.
>
> With a little work we could publish this as an FAQ with a question like:
> "How do different schemas allow me to define character entities?" Do
> you want/have time to? If so, we should discuss it and set up a wiki
> page.
Good idea. Let's come back to it if you have time.
-- Felix
>
> RI
>
> ============
> Richard Ishida
> W3C
>
> contact info:
> http://www.w3.org/People/Ishida/
>
> W3C Internationalization:
> http://www.w3.org/International/
>
> Publication blog:
> http://people.w3.org/rishida/blog/
>
>> -----Original Message-----
>> From: Felix Sasaki [mailto:fsasaki@w3.org]
>> Sent: 06 July 2005 06:40
>> To: public-i18n-geo@w3.org
>> Cc: Richard Ishida
>> Subject: Re: New FAQ: entities and NCRs
>>
>> Hi Richard, hi all,
>>
>> This is a summary of the issue "NCRs and schema languages",
>> which has some
>> overlap with the FAW "entities and NCRs". It describes ways of
>> encapsulating NRCs, and entities are ONE possibility. Which
>> way is useful
>> and possible, depends on the schema language. This summary
>> might become an
>> input to the FAQ about entites and NCRs, if Richard and
>> others think it is
>> useful.
>>
>> Cheers, Felix.
>>
>> The following discussion on entities for numeric character
>> references
>> (NCRs) and other, alternative ways of encapsulating numeric
>> character
>> references concentrates on four schema languages: XML DTDs,
>> XML Schema,
>> RELAX NG and Schematron.
>>
>> All schema languages allow to use entities for NCRs in XML
>> documents. They
>> differ with respect to the declaration of entities. As for XML DTDs,
>> entities can be defined A) in the declaration subset of the
>> XML document,
>> or B) in the external DTD ("NCR" is used as a placeholder for
>> a numeric
>> character reference):
>>
>> A)
>> <!DOCTYPE mydoc [
>> <!ENTITY mychar "NCR">
>> ]>
>>
>> or
>>
>> B)
>> <!DOCTYPE mydoc SYSTEM "mydtd.dtd">
>>
>> "mydtd.dtd" contains The entitiy declaration <!ENTITY mychar "NCR">.
>>
>> XML Schema, RELAX NG and Schematron allow to declare entities
>> like A).
>> They do not allow to declare entities like B), i.e. as part of the
>> external schema. Strictly speaking, entity declaration and
>> expansion are
>> out of scope for XML Schema, RELAX NG and Schematron. All
>> these schema
>> languages rely on an XML processor which expands the entities
>> before the
>> validation against the schema starts. Non-validating XML
>> processors are
>> required to check only the document and no external
>> declarations. Hence,
>> it depends on the implementation of the XML processor,
>> whether external
>> entity declarations can be resolved or not.
>> XML Schema provides a different solution to encapsulate
>> numeric character
>> references: The numeric character reference can be defined as
>> a default
>> value for an element:
>>
>> <xsd:element name="mychar" type="xsd:token" fixed="NCR"/>
>>
>> In an XML document, the element then can be used like this
>>
>> <mydoc> ... <mychar/>...</mydoc>
>>
>> RELAX NG and XML DTDs do not allow to define default values
>> for element
>> content. Also, Schematron does not support this solution. But
>> XML DTDs,
>> XML Schema and RELAX NG allow to declare default values for
>> attributes.
>> Hence, for XML DTDs the following alternative way of
>> attaching a name to a
>> numeric character reference is possible:
>>
>> <!ELEMENT mychar EMPTY>
>> <!ATTLIST mychar ncr NMTOKEN "..." #FIXED>
>>
>> or in RELAX NG:
>> <element name="mychar">
>> <attribute name="ncr" a:defaultValue="NCR"/>
>> <empty/>
>> </element>
>>
>> or in XML Schema:
>> <xsd:attribute name="mychar" type="xsd:token" fixed="NCR"/>
>>
>> As for XML DTDs, there seems to be no real need to choose
>> this method,
>> since they allow to declare entities in the external DTD.
>>
>> The following table summarizes the ways of declaring entities and
>> alternative methods to encapsulate numeric character references in
>> different schema languages.
>>
>> Declaration Subset External Subset
>> Element default
>> value Attribute default value
>> XML DTDs + +
>> - +
>> XML Schema + xml parser
>> dep. + +
>> RELAX NG + xml parser
>> dep. - +
>> Schematron + xml parser
>> dep. - -
>>
>
>
Received on Saturday, 9 July 2005 03:19:07 UTC