[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:       <olga.kryzhanovska () gmail ! com>
Date:       2012-12-07 12:24:54
Message-ID: CA+OH3v3efNZcfuij0KzFw4VP+LAVg4ZdVu88dAgXKHrzSqogUQ () mail ! gmail ! com
[Download RAW message or body]

David, does a non validating parser really have to do those checks?

Olga

On Tue, Dec 4, 2012 at 12:28 AM, David Carlisle <davidc@nag.co.uk> wrote:
> 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
>
>
>
>
>



-- 
      ,   _                                    _   ,
     { \/`o;====-    Olga Kryzhanovska   -====;o`\/ }
.----'-/`-/     olga.kryzhanovska@gmail.com   \-`\-'----.
 `'-..-| /       http://twitter.com/fleyta     \ |-..-'`
      /\/\     Solaris/BSD//C/C++ programmer   /\/\
      `--`                                      `--`

_______________________________________________________________________

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