ASP Error: 70
Description: Permission denied
Source: Microsoft VBScript runtime error

[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

AW: substitute &#13; with <br/>

Subject: AW: substitute &#13; with <br/>
From: Markus Abt <abt@xxxxxxxx>
Date: Thu, 7 Aug 2003 19:03:36 +0200
13 xml
Hello Andrew,

Andrew Welch wrote:
>
>> Hello Andrew,
>> 
>> Andrew Welch wrote:
>> >> Hello Alexander,
>> >>
>> >> this is probably a FAQ. It's also an XML topic not an XSLT one.
>> >>
>> >> Look to 2.11 "End-Of-Line Handling" in the XML spec.
>> >
>> >No, it's an html issue.  Carriage returns are normalised to a single
>> >space (I think) so to recreate their behaviour you need to use <br />
>> ><div /> <p /> etc.
>> 
>> No, the original issue is clearly an XML one, as he wrote:
>>    "I thought of doing it with entities in the source XML
>>     like <!ENTITY #13 "<br/>">, but that doesn't work."
>
>But why was he trying to replace &_#13; with <br />?   Because in html
>&_#13; doesn't cause a carriage return, a <br /> does.  He could learn
>all of the possible line endings in xml and still not have the answer.

Line endings in HTML have *not* been the question. He already knew
that he has to use <br/>.
So why do you want to teach him the line endings of HTML?

>> >I think your best plan of action is to modify your xml to replace
>&_#13;
>> >with <br /> (Im assuming that as you can insert entities this
>shouldn't
>> >be too much trouble).
>> This was exactly what Alexander was trying, without success. (or do
>> you mean: manually, with a text editor?)
>
>Inserting entity declarations is not the same as replacing &_#13; with
><br /> with some tool... How would the parser distinguish between &_#13;
>the character reference and &_#13; the entity?  

Ok, it was not exactly the same. You didn't mention the tool.

Entities cannot have a name starting with #. The parser doesn't need
to distinguish, he has to report an error.

>> >If however that breaks a DTD or is not possible, you will have to use
>a
>> >recursive named template that gets called from you text() matching
>> >template.  This can then use substring-before() and substring-after()
>to
>> >recursively replace what you need.
>> 
>> &_#13; cannot be matched or replaced with XSLT functions, as it has
>> been deleted by the XML parser.
>
>Yeah it can - it hasn't been deleted by the parser, its just been
>resolved.  You can still check if a string contains it, just like you
>can check if a string contains &_#120; (the letter 'x').

No, it can't.
You didn't read "2.11 End-Of-Line Handling" in the XML spec very well:

| 2.11 End-of-Line Handling
| XML parsed entities are often stored in computer files which, for editing
| convenience, are organized into lines. These lines are typically separated
| by some combination of the characters carriage-return (#xD) and
| line-feed (#xA).
| To simplify the tasks of applications, wherever an external parsed entity
| or the literal entity value of an internal parsed entity contains either the
| literal two-character sequence "#xD#xA" or a standalone literal #xD,
| an XML processor must pass to the application the single character #xA.
| (This behavior can conveniently be produced by normalizing all line
| breaks to #xA on input, before parsing.) 

#xD is the same character as #13. It must be replaced by #xA, which
happens to be #10.
The XML parsers does the replacement during reading the file effectively
*before doing anything else*.

Obviously, my term "deleted" was misleading, this only applies to the
typical DOS line ending #13#10. Sorry.

>As DC always says 'the reference and the character are one and the same
>thing' - you could write your entire xml file in character references
>(if you were mad). 
>
>As long as you cover all your bases with all possible line endings
>(iirc, the parser can choose which kind of line ending to produce, but
>theres still only a few) then a recursive template is the usual
>technique.
>
>Or for performance, if you were using java you could write a sax filter
>that coverted the value on its way into the trasform, then write a
>template to deal with whatever you has converted line endings to.

You can program great recursive templates or fine sax filters to replace
#13 by the line ending of your choice.
But don't be too disappointed if you see none of your line endings in
your result.

>Or, of course, to save all the hassle just wrap the text that contains
>the line endings in html's <pre>...</pre> which will render the text as
>is (if it fits your needs).
>
>cheers
>andrew  

Regards,
Markus
__________________________
Markus Abt
Comet Computer GmbH
http://www.comet.de


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.