Re: What is the "meaning" of an XML entity? of a character entity?

David Carlisle <[email protected]>
Newsgroups gmane.text.xml.devel
Message-ID <CAEW6iOgJuJMyRaYwXOn7gTzN8djmdWF6MV+q=B7cNwuFU8K_xQ@mail.gmail.com>
On Thu, 19 May 2022 at 11:25, Roger L Costello <[email protected]> wrote:

> Hi Folks,
>
> Consider this XML entity:
>
>         &amp;
>
> What is its meaning?
>

I am not sure it has a meaning, and it is an entity reference not an entity,



>
> Answer: its meaning is & and &amp; is literal syntax.
>

Entities have Replacement  texts (not meanings), The replacement text of
amp is pre-defined by XML and is

&#38;#38;

(not &)

See https://www.w3.org/TR/xml/#sec-predefined-ent




> The meaning of this character entity:
>
>         &#x41;
>

that is not an entity reference at all, it is a character reference. It
doesn't reference an entity that holds a replacement text, it is replaced
inline by the referenced character.



> is A and &#x41; is literal syntax.
>



>
> Recall that in a parser there are two stages to processing an input string:
>
> input string --> lexical analysis (lexer) --> syntax analysis (parser)
>
> The lexer groups the characters in the input string into tokens and sends
> the tokens to the parser.
>
> Flex is a lexer-generator, i.e., the output of Flex is a lexer.
>
> In the Flex manual [1] it recommends on page 76 that a lexer be designed
> to send the meaning of an entity to the parser, not the literal syntax,
> i.e.,
>
> &amp; --> lexer --> & --> parser
>
> Pretty interesting, I think.
>

Entity and character references are expanded at different times.

After

<!ENTITY foo "aaa &lt; bbb">

the entity foo has replacement  text "aaa &lt; bbb" as the reference to the
entity lt; is not expanded while defining foo.

But

<!ENTITY foo "aaa &#60; bbb">

is a syntax error as &#60; is replaced while reading the definition so this
is

<!ENTITY foo "aaa <  bbb">

with a non-well formed start tag,

David


>
> /Roger
>
> [1] Flex manual is here:
> https://epaperpress.com/lexandyacc/download/flex.pdf
>
> _______________________________________________________________________
>
> XML-DEV is a publicly archived, unmoderated list hosted by OASIS
> to support XML implementation and development. To minimize
> spam in the archives, you must subscribe before posting.
>
> [Un]Subscribe/change address: http://www.oasis-open.org/mlmanage/
> Or unsubscribe: [email protected]
> subscribe: [email protected]
> List archive: http://lists.xml.org/archives/xml-dev/
> List Guidelines: http://www.oasis-open.org/maillists/guidelines.php
>
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.