[prev in list] [next in list] [prev in thread] [next in thread] 

List:       xml-dev
Subject:    Re: [xml-dev] XML parser model, when are &foo; inserted?
From:       David Carlisle <davidc () nag ! co ! uk>
Date:       2012-12-03 23:28:19
Message-ID: 50BD3593.9050206 () nag ! co ! uk
[Download RAW message or body]

On 03/12/2012 23:19, ольга крыжановская wrote:
> Michael, how does nesting work? Can I just take the text of &foo;,
> expand that until I run out of &...; parts and insert the result in
> the text stream?
>
> Olga



No because if you have

<!ENTITY foo "<x>aaa"  >

with a replacement text that has a start tag but no close, you can not 
flag an error at that point as the document is still well formed if the 
entity is not referenced.

<!DOCTYPE x [
<!ENTITY foo "<x>aaa">
]>
<x>
</x>


is OK, but

<!DOCTYPE x [
<!ENTITY foo "<x>aaa">
]>
<x>
&foo;</x>
</x>



is not well formed:

$ rxp -sx bad2.xml
Error: Element ends in different entity from that in which it starts
  in unnamed entity at line 5 char 9 of file:///c:/tmp/bad2.xml


However if you just expanded the foo without doing the check, and got


<!DOCTYPE x [
]>
<x>
<x>aaa</x>
</x>

It would, again, be well formed.

So you need to keep track of entity boundaries you can not simply expand 
all the entities as macros and then parse the result.

David






_______________________________________________________________________

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


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic