[Home] [By Thread] [By Date] [Recent Entries]

  • From: David Carlisle <d.p.carlisle@g...>
  • To: Roger L Costello <costello@m...>
  • Date: Thu, 19 May 2022 11:44:58 +0100



On Thu, 19 May 2022 at 11:25, Roger L Costello <costello@m...> 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 &)





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: xml-dev-unsubscribe@l...
subscribe: xml-dev-subscribe@l...
List archive: http://lists.xml.org/archives/xml-dev/
List Guidelines: http://www.oasis-open.org/maillists/guidelines.php



[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index]


Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member