[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

[xsl] Re: Writing xslt from DSML


Subject: [xsl] Re: Writing xslt from DSML
From: vinu shankar <vinuav_13@xxxxxxxxxxx>
Date: Fri, 23 Apr 2010 14:01:10 +0530 (IST)

Thanks for suggesting me to use a XSLT editor.
I solved the errors.
I am able
to get my required xml.
But one more thing Micheal, I want to transform
multiple LDAP entries from the DSML file into the xml file.In order to do what
is the modification to the existing code you gave me.(Is there any looping
logic to be applied?)
For example
If my DSML input file is as follows(For
example purpose I have just given 2 entries)
<?xml version="1.0"
encoding="UTF-8"?
<batchResponse xmlns:xsd="http://www.w3c.org/2001/XMLSchema"
xmlns:xsi="http://www.w3c.org/2001/XMLSchema-instance"
   <searchResponse
   
  <searchResultEntry
dn="uid=282002558871883,ou=People,o=sct.com,o=cp"
     
   <attr
name="uid"
           
<value282002558871883</value
         </attr
 
       <attr
name="pdsloginid"
           
<valuefac60006</value
     
   </attr
         <attr
name="givenname"
           
<valueBrutus</value
   
     </attr
         <attr
name="pdsemaildefaultaddress"
           
<valuefac60006@xxxxxxx</value
         </attr
         <attr
name="pdscpsurveyed"
           
<valuetrue</value
         </attr
   
</searchResultEntry
      <searchResultDone
         <resultCode
code="0"
descr="success"/
      </searchResultDone
   </searchResponse
</batchResponse
<searchResultEntry
dn="uid=123456789,ou=People,o=sct.com,o=cp"
         <attr
name="uid"
           
<value123456789</value
         </attr
         <attr
name="pdsloginid"
           
<valuefac60007</value
         </attr
     
   <attr
name="givenname"
           
<valueBrutusad</value
         </attr
 
       <attr
name="pdsemaildefaultaddress"
           
<valuefac60007@xxxxxxx</value
         </attr
         <attr
name="pdscpsurveyed"
           
<valuetrue</value
         </attr
   
</searchResultEntry
      <searchResultDone
         <resultCode
code="0"
descr="success"/
      </searchResultDone
   </searchResponse
</batchResponse
Date: Wed, 21 Apr 2010 11:45:24 +0100
To: <xsl-list@xxxxxxxxxxxxxxxxxxxxxx>
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Subject: RE: [xsl] Re: Writing xslt
from DSML
Message-ID: <B57166A80C1644CDA52C49A58DC5227F@Sealion>

Looks like
the mailer has inserted "3D" before all the "=3D" signs.

XSLT stylesheets
have to be well-formed XML before you can get anywhere. =
I
suggest you use an
XML editor that will help you resolve such problems.
You'll certainly have to
get used to the fact that when you make typing
mistakes in XSLT, you will get
XML parsing errors.

Regards,

Michael Kay
http://www.saxonica.com/
http://twitter.com/michaelhkay =20
--- On Wed, 21/4/10, vinu shankar
<vinuav_13@xxxxxxxxxxx wrote:

From: vinu shankar <vinuav_13@xxxxxxxxxxx
Subject: Re: Writing xslt from DSML
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Date:
Wednesday, 21 April, 2010, 3:47 PM
Hi Micheal,

Thank you very much for that
reply.
I did not understand why you mentioned as two
template
rules.
I tried
to Transform it using the Saxonica XSLT
processor.
I am faced with the
following error

Error on line 4 column 21 of pplStylesheet.xml:
  SXXP0003:
Error reported by XML parser: Open quote
is expected for attribute "
{1}"
 
associated with an  element type 
"match".
Failed to compile stylesheet. 1
error detected.


  The pplStylesheet.xml is the stylesheet you had
given me.
One more thing is I have to process an DSML file with
multiple entries.
What I
had posted in my earlier post was just a
single
entry.
How do I process the
multiple entry?
The DSML file format is as follows
<?xml version="1.0"
encoding="UTF-8"?
<batchResponse xmlns:xsd="http://www.w3c.org/2001/XMLSchema"
xmlns:xsi="http://www.w3c.org/2001/XMLSchema-instance"
   <searchResponse
   
  <searchResultEntry
dn="uid=282002558871883,ou=People,o=sct.com,o=cp"
     
   <attr
name="uid"
           
<value282002558871883</value
         </attr
 
       <attr
name="pdsloginid"
           
<valuefac60006</value
     
   </attr
         <attr
name="givenname"
           
<valueBrutus</value
   
     </attr
         <attr
name="pdsemaildefaultaddress"
           
<valuefac60006@xxxxxxx</value
         </attr
         <attr
name="pdscpsurveyed"
           
<valuetrue</value
         </attr
   
</searchResultEntry
      <searchResultDone
         <resultCode
code="0"
descr="success"/
      </searchResultDone
   </searchResponse
</batchResponse
  <searchResultEntry
dn="uid=123456789,ou=People,o=sct.com,o=cp"
     
   <attr
name="uid"
           
<value123456789</value
         </attr
     
   <attr
name="pdsloginid"
           
<valuefac60007</value
         </attr
 
       <attr
name="givenname"
           
<valueBrutusad</value
     
   </attr
         <attr
name="pdsemaildefaultaddress"
           
<valuefac60007@xxxxxxx</value
         </attr
         <attr
name="pdscpsurveyed"
           
<valuetrue</value
         </attr
   
</searchResultEntry
      <searchResultDone
         <resultCode
code="0"
descr="success"/
      </searchResultDone
   </searchResponse
</batchResponse
Date: Tue, 20 Apr 2010 15:36:40 +0100
To: <xsl-list@xxxxxxxxxxxxxxxxxxxxxx
From: "Michael Kay" <mike@xxxxxxxxxxxx
Subject: RE: [xsl] Writing xslt from
DSML
Message-ID:
<2D33B2DBC80C4A808427B9E292871994@Sealion

Looks like two
template rules:

<xsl:template match=3D"batchResponse"
  <xsl:copy
   
<xsl:apply-templates
select=3D".//attr"
  </xsl:copy
</xsl:template
<xsl:template match=3D"attr"
  <xsl:element name=3D"{@name}"
    <xsl:value-of
select=3D"value"/
  </xsl:element
</xsl:template

Regards,

Michael Kay
http://www.saxonica.com/
http://twitter.com/michaelhkay=2

--- On Tue,
20/4/10, vinu shankar <vinuav_13@xxxxxxxxxxx
wrote:

From: vinu shankar
<vinuav_13@xxxxxxxxxxx
Subject: Writing xslt from DSML
To:
xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Date: Tuesday, 20 April, 2010, 6:50 PM
Hi,

I
am using XSLT 2.0.
I have to form write the XSLT for the DSML
content
extracted from a LDAP server.
I am trying to generate an XML fragment from
multivalued
LDAP attributes. data(in DSML form) looks like

<batchResponse
xmlns:xsd="http://www.w3c.org/2001/XMLSchema"
xmlns:xsi="http://www.w3c.org/2001/XMLSchema-instance"
   <searchResponse
      <searchResultEntry

dn="uid=282002558871883,ou=People,o=sct.com,o=cp"
         <attr name="uid"
           
<value282002558871883</value
        
</attr
         <attr name="pdsloginid"
           
<valuefac60006</value
         </attr
         <attr name="givenname"
           
<valueBrutus</value
         </attr
         <attr
name="pdsemaildefaultaddress"
            <valuefac60006@xxxxxxx</value
         </attr
         <attr
name="pdscpsurveyed"
           
<valuetrue</value
         </attr
</searchResponse
</batchResponse

I need the
XML file from the above DSML file.
The XML file which I need is
<batchResponse
xmlns:xsd="http://www.w3c.org/2001/XMLSchema"
xmlns:xsi="http://www.w3c.org/2001/XMLSchema-instance"
    <uid
   
     
282002558871883
    </uid
    <pdsloginid
        fac60006
    </pdsloginid
    <givenname
        Brutus
    </givenname
    <pdsemaildefaultaddress
   
    fac60006@xxxxxxx
    </pdsemaildefaultaddress
    <pdscpsurveyed
       
true
    </pdscpsurveyed
</batchResponse
So how can I achieve this using XSLT.
I am a newbee to XSLT.Please help

Thank you,
Evergreen


Current Thread
Keywords