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

RE: How to get comments to indent on their own line in

Subject: RE: How to get comments to indent on their own line in XML output?
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Mon, 7 Jul 2008 00:16:08 +0100
RE:  How to get comments to indent on their own line in
Alan, I think I explained that indent="yes" isn't going to give you this,
and I tried to explain why. So if you really need it to be like this, you
are going to have to create the newlines "by hand".

Michael Kay
http://www.saxonica.com/


> -----Original Message-----
> From: alan.painter@xxxxxxx [mailto:alan.painter@xxxxxxx]
> Sent: 06 July 2008 08:33
> To: xsl-list
> Subject: Re:  How to get comments to indent on their own
> line in XML output?
>
>
> Here's an example of what I'm trying to do.  (Shoulda posted
> this originally, sorry.)
>
> <xsl:stylesheet
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
> version="2.0" >
> <xsl:output indent="yes" encoding="UTF-8" method="xml" />
>
> <xsl:template match="/" name="main" >
>
> <root rootAttribute="example">
> <xsl:comment select="'Here is my comment.'" /> <property
> example1="example1" /> <property example2="example2" /> </root>
>
> </xsl:template>
>
> </xsl:stylesheet>
>
> I'd like this to produce:
>
> <?xml version="1.0" encoding="UTF-8"?>
> <root rootAttribute="example">
> <!--Here is my comment.-->
> <property example1="example1"/>
> <property example2="example2"/>
> </root>
>
> but instead I get serialized indented output with the "root"
> and first "property" elements appearing, with the comment
> between them, all on the same line, like this.
>
> <?xml version="1.0" encoding="UTF-8"?>
> <root rootAttribute="example"><!--Here is my
> comment.--><property example1="example1"/> <property
> example2="example2"/> </root>
>
> I'm trying to get some folks to adopt XSLT for generating
> human-readable configuration files for another application
> and the comments tend to be important.
>
> thanks again
>
> -alan
>
>
>
> ----- Original Message -----
> From: "Michael Kay" [mike@xxxxxxxxxxxx]
> Sent: 04/07/2008 23:10 CET
> To: <xsl-list@xxxxxxxxxxxxxxxxxxxxxx>
> Subject: RE:  How to get comments to indent on their own
> line in XML output?
>
>
>
>
> The serialization spec (for 2.0) says that when indenting,
> whitespace may be added only immediately before an (element)
> start tag or immediately after an end tag. This means it
> can't be inserted between a comment and a text node.
> Although there's no such rule in XSLT 1.0, the logic is the
> same; it's generally unsafe. For example:
>
> <date-of-birth>1832-01<!--I think it's a 1 but it might be a
> 7-->-05</date-of-birth>
>
> If you add whitespace around the comment, the document
> becomes invalid against the schema.
>
> One could do better in some cases, for example for a comment
> that immediately follows an end tag (or is separated from it
> only by whitespace); but in the end, you have to decide how
> much effort to put into fine-tuning the algorithm.
>
> Michael Kay
> http://www.saxonica.com/
>
> > -----Original Message-----
> > From: alan.painter@xxxxxxx [mailto:alan.painter@xxxxxxx]
> > Sent: 04 July 2008 19:20
> > To: xsl-list
> > Subject:  How to get comments to indent on their own
> line in XML
> > output?
> >
> >
> >
> >
> > Hi,
> >
> > I'm producing some XML output with indented="yes" and the indenting
> > works great excelpt for the comment nodes, which push the following
> > elements to the end of the comment line.
> >
> > I would have expected a comment to occupy its own line starting at
> > current indentation level, with the following element on
> next line at
> > same indentation.
> >
> > I've tried a few naove attempts at adding text nodes with newlines
> > after comments, but no dice.
> >
> > Any suggestions for this?
> >
> > Thanks
> >
> > -alan
> >
> >
> > Ensemble adoptons des gestes responsables : N'imprimez ce
> mail que si
> > necessaire.
> >
> > Les informations contenues dans ce message et les pieces jointes
> > (ci-apres denomme le message) sont confidentielles et peuvent etre
> > couvertes par le secret professionnel. Si vous n'etes pas le
> > destinataire de ce message, il vous est interdit de le
> copier, de le
> > faire suivre, de le divulguer ou d'en utiliser tout ou
> partie. Si vous
> > avez recu ce message par erreur, nous vous remercions de le
> supprimer
> > de votre systeme, ainsi que toutes ses copies, et d'en avertir
> > immediatement HSBC France et ses filiales par message de retour. Il
> > est impossible de garantir que les communications par messagerie
> > electronique arrivent en temps utile, sont securisees ou denuees de
> > toute erreur, alteration, falsification ou virus. En
> consequence, HSBC
> > France et ses filiales declinent toute responsabilite du fait des
> > erreurs, alterations, falsifications ou omissions qui pourraient en
> > resulter.
> >
> > Consider the environment before printing this mail.
> >
> > The information contained in this e-mail is confidential.
> It may also
> > be legally privileged. If you are not the addressee you may
> not copy,
> > forward, disclose or use any part of it. If you have received this
> > message by error, please delete it and all copies from your
> system and
> > notify the sender immediately by return e-mail. E-mail
> communications
> > cannot be guaranteed to be timely secure, error or virus-free. The
> > sender does not accept liability for any errors or omissions which
> > arise as a result.
>
>
> ****************************************************************
> Ce message a ete transmis par Internet. Son emetteur peut ne
> pas etre l'emetteur annonce. Son contenu et toute piece
> jointe peuvent ne pas etre exacts.
> This message originated from the Internet. Its originator may
> or may not be who they claim to be and information contained
> in the message and any attachments may or may not be accurate.
>
>
> Ensemble adoptons des gestes responsables : N'imprimez ce
> mail que si necessaire.
>
> Les informations contenues dans ce message et les pieces
> jointes (ci-apres denomme le message) sont confidentielles et
> peuvent etre couvertes par le secret professionnel. Si vous
> n'etes pas le destinataire de ce message, il vous est
> interdit de le copier, de le faire suivre, de le divulguer ou
> d'en utiliser tout ou partie. Si vous avez recu ce message
> par erreur, nous vous remercions de le supprimer de votre
> systeme, ainsi que toutes ses copies, et d'en avertir
> immediatement HSBC France et ses filiales par message de
> retour. Il est impossible de garantir que les communications
> par messagerie electronique arrivent en temps utile, sont
> securisees ou denuees de toute erreur, alteration,
> falsification ou virus. En consequence, HSBC France et ses
> filiales declinent toute responsabilite du fait des erreurs,
> alterations, falsifications ou omissions qui pourraient en resulter.
>
> Consider the environment before printing this mail.
>
> The information contained in this e-mail is confidential. It
> may also be legally privileged. If you are not the addressee
> you may not copy, forward, disclose or use any part of it. If
> you have received this message by error, please delete it and
> all copies from your system and notify the sender immediately
> by return e-mail. E-mail communications cannot be guaranteed
> to be timely secure, error or virus-free. The sender does not
> accept liability for any errors or omissions which arise as a result.

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.