Which XSLT Processor does CF8 use?

I'm writing some XSLTs and would like to use the fn:base-uri() that is accessible in Saxon-SA 9.1.0.7 or later editions.  I cannot find any documentation on which XSLT processor(s) CF8 uses.  Nor can I find anything on possibly upgrading it or using CF to access an external processor.  Can anyone point me in the right direction on how to do upgrade CF8's XSLT processor, use another one via CF or even another function that the fn:base-uri() can do.
What I'm trying to do with the function is to get the XML's file name so that I can parse it out and insert it into the transformed XML.
EXAMPLE XSLT:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:xs="http://www.w3.org/2001/XMLSchema" exclude-result-prefixes="xs" version="2.0">
    <xsl:output method="xml"/>
    <xsl:variable name="filepath">
        <xsl:value-of select="base-uri()"/>
    </xsl:variable>
     <xsl:template match="/">
          <xsl:value-of select="$filepath"/>
     </xsl:template>
</xsl:stylesheet>

Probably most of the heavy consumption is PGA related.
http://docs.oracle.com/cd/B28359_01/server.111/b28274/memory.htm#i49320
Have a look at the AWR history views concerning memory consumption. ADDM, ASH, AWR etc should give you more insight. See also the awr/addm/ash/-rpt.sql scripts in $ORACLE_HOME/rdbms/admin on the database server. You (officially) would need Diagnostic en Tuning pack licenses though, so be warned (even for "touching" those views). Probably the heavy consumption of memory is or (wrong) storage related or inefficient code...

Similar Messages

  • Which user/credentials does APEX use to execute packages

    Which user does APEX use to execute a function or procedure in the parsing scheme of an application. I am trying to debug an custom authentication scheme which calls a package procedure.

    Mathias Oracle wrote:
    Which user does APEX use to execute a function or procedure in the parsing scheme of an application. I am trying to debug an custom authentication scheme which calls a package procedure.APEX connects to the database using connection pooling as the APEX_PUBLIC_USER or ANONYMOUS schemas, depending on the webserver configuration (except where a DAD has no username/password defined). Code is executed via the <tt>dbms_sys_sql</tt> package using the privileges of the application parsing schema. See:
    {message:id=926724}
    {message:id=1224601}
    Application Express and parsing of SQL

  • Which control file does RMAN use?

    On March 1, full backup along with control file was taken
    On March 3, full backup along with control file was taken
    On March 5, there is a media failure (some datafile is corrupt, but control file is intact).
    So, RMAN restores March 3 full back up, and applies archived logs. But my question is: which controlfile does it use? The one on march 3? The one on march 5? Or Both?

    The first choice is always the actual,current controlfile. Backed up controlfiles are only used, when all current controlfiles are lost.
    Werner

  • Any way to limit memory which XSLT processor uses?

    Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
    PL/SQL Release 11.2.0.3.0 - Production
    CORE     11.2.0.3.0     Production
    TNS for Linux: Version 11.2.0.3.0 - Production
    NLSRTL Version 11.2.0.3.0 - ProductionWe use the xmltype.transform method to transform XSLT. We got oodles of memory (25Gb assigned to Oracle) but we do use a lot of that......
    Is there a way to limit the amount of memory that the XSLT engine uses so as to avoid out of memory errors?
    Errors in file /ora/oracle/diag/rdbms/prod01/PROD01/trace/PROD01_j001_16149.trc:
    ORA-27102: out of memory
    Linux-x86_64 Error: 12: Cannot allocate memoryThe XML file was just under 20Gb in size. I regularly see 10Gb xslt transformations using around 2Gb ram (via the top command on linux). I have no visibility to what the memory consumption was the time of the failure.

    Probably most of the heavy consumption is PGA related.
    http://docs.oracle.com/cd/B28359_01/server.111/b28274/memory.htm#i49320
    Have a look at the AWR history views concerning memory consumption. ADDM, ASH, AWR etc should give you more insight. See also the awr/addm/ash/-rpt.sql scripts in $ORACLE_HOME/rdbms/admin on the database server. You (officially) would need Diagnostic en Tuning pack licenses though, so be warned (even for "touching" those views). Probably the heavy consumption of memory is or (wrong) storage related or inefficient code...

  • Which dvd ripper does apple use

    looking to copy all my dvd to the apple tv was wondering , does anyone know which dvd ripper apple uses for the new movie rentals
    thanks for your time

    Like the others have said - you want to definitely make sure you use the AppleTV preset.
    Depending on how well versed you are you may want to spend some time on the handbrake forums. I wouldn't recommend posting there unless you know exactly what you're talking about as they don't suffer much for noobs.
    I read a lot on there, it's tough to understand at first but well worth the knowledge to encode well.
    AppleTV preset is pretty good. You can always revup your average bit rate from 2500 to 3000 if you like.
    The only changes I make to my AppleTV preset is that I check Two Pass Encoding and do not check Turbo First Pass. It takes 5-6 hours for me to encode a movie so I run one while at work and one when I go to bed. But the quality is great with only minimal blocking in dark blue/black nighttime scenes otherwise it looks better than the DVD source due to solid encoding and upscaling on the AppleTV.

  • Which Property / Attributes does SharePoint use from a PickerEntity?

    Hi,
    I'm developing a Custom Claims Provider to resolve against the SharePoint User Profile Service since we have a large forest of upstream opco Active Directories and I don't want user searches to go back out to source.  I've disabled the AD provider.
    It seems to be working for the most part; as I start to search for people either from the "Share" button - or within a Person/Group field of a list item add/edit form, results are being returned to the people picker from my provider.  I can
    select the name and all appears to resolve correctly.
    If I'm sharing (as in adding a user to a group for edit / full control etc) - everything works perfectly .... however, when I add a custom list which has a person/group field in it, and try to save/commit the record, I see an error underneath the field saying
    "Input string was not in a correct format"
    I've gone through debug but can't see anything obvious within the properties that I might have mis-set / forgotten to assign.  Can anybody advise where I might need to look please?
    Regards,
    Steve

    Thanks Scott, .... I'm still not sure I'm seeing where I'm going wrong :-
    I've used F12 Developer tools to grab back what's on the page and the following 2 examples show what is coming back in the markup first for my custom provider (which generates the error in my original post when I try to commit the save) ... and the second
    is picking the entry that works correctly when picked from the native AD provider.
    The only difference I can see in the 2 are the attributes for "entitydata" :-
    With Custom Provider (which fails)....
    <span class="sp-peoplepicker-userSpan"
     id="Person_cb0cd57f-c84f-4d17-8849-d9ebc043ec19_$ClientPeoplePicker_i:0#.w|poc-uds-eur\butlers_ProcessedUser0"
     SID="i:0#.w|poc-uds-eur\butlers"
     ResolvedUser="true"
     data-sp-peoplePickerProcessedUser="true">
    <span class="sp-peoplepicker-userPresence"
     id="Person_cb0cd57f-c84f-4d17-8849-d9ebc043ec19_$ClientPeoplePicker_i:0#.w|poc-uds-eur\butlers_ProcessedUser0_PresenceContainer"/>
    <span title="Steve Butler"
     class="ms-entity-resolved"
     id="Person_cb0cd57f-c84f-4d17-8849-d9ebc043ec19_$ClientPeoplePicker_i:0#.w|poc-uds-eur\butlers_ProcessedUser0_UserDisplay"
     style="max-width: 331px;">
    <input name="Person_cb0cd57f-c84f-4d17-8849-d9ebc043ec19_$ClientPeoplePicker_HiddenInput"
     id="Person_cb0cd57f-c84f-4d17-8849-d9ebc043ec19_$ClientPeoplePicker_HiddenInput"
     type="hidden" value="[{"Key":"i:0#.w|poc-uds-eur\\wattsa",
        "Description":"poc-uds-eur\\butlers",
        "DisplayText":"Steve Butler",
        "EntityType":"User",
        "ProviderDisplayName":"Custom Claims - User Profile Service",
        "ProviderName":"UserProfileServiceProvider",
        "IsResolved":true,
        "EntityData":{"DisplayName":"Steve Butler",
          "Email":"",
          "SPUserID":"59a62029-c5ed-4704-a3dd-6e4c1bbf0216",
          "Title":"SharePoint Dev",
          "AccountName":"poc-uds-eur\\butlers"},
        "MultipleMatches":[],
        "AutoFillKey":"i:0#.w|poc-uds-eur\\butlers",
        "AutoFillDisplayText":"Steve Butler",
        "AutoFillSubDisplayText":"SharePoint Dev",
        "AutoFillTitleText":"Custom Claims - User Profile Service\npoc-uds-eur\\butlers",
        "DomainText":"lxw-uds-t17",
        "Resolved":true}]"/>
    With AD Native (which works ok):-
    <span class="sp-peoplepicker-userSpan"
     id="Person_cb0cd57f-c84f-4d17-8849-d9ebc043ec19_$ClientPeoplePicker_i:0#.w|poc-uds-eur\butlers_ProcessedUser0"
     SID="i:0#.w|poc-uds-eur\butlers"
     ResolvedUser="true"
     data-sp-peoplePickerProcessedUser="true">
    <span class="sp-peoplepicker-userPresence"
     id="Person_cb0cd57f-c84f-4d17-8849-d9ebc043ec19_$ClientPeoplePicker_i:0#.w|poc-uds-eur\butlers_ProcessedUser0_PresenceContainer"/>
    <span title="Steve Butler"
     class="ms-entity-resolved"
     id="Person_cb0cd57f-c84f-4d17-8849-d9ebc043ec19_$ClientPeoplePicker_i:0#.w|poc-uds-eur\butlers_ProcessedUser0_UserDisplay"
     style="max-width: 331px;">
    <input name="Person_cb0cd57f-c84f-4d17-8849-d9ebc043ec19_$ClientPeoplePicker_HiddenInput"
     id="Person_cb0cd57f-c84f-4d17-8849-d9ebc043ec19_$ClientPeoplePicker_HiddenInput"
     type="hidden" value="[{"Key":"i:0#.w|poc-uds-eur\\butlers",
        "Description":"POC-UDS-EUR\\butlers",
        "DisplayText":"Steve Butler",
        "EntityType":"User",
        "ProviderDisplayName":"Active Directory",
        "ProviderName":"AD",
        "IsResolved":true,
        "EntityData":{"Title":"",
          "MobilePhone":"",
          "SIPAddress":"",
          "Department":"",
          "Email":""},
        "MultipleMatches":[],
        "AutoFillKey":"i:0#.w|poc-uds-eur\\butlers",
        "AutoFillDisplayText":"Steve Butler",
        "AutoFillSubDisplayText":"",
        "AutoFillTitleText":"Active Directory\nPOC-UDS-EUR\\butlers",
        "DomainText":"lxw-uds-t17",
        "Resolved":true}]"/>

  • Which market segmentation does Apple use for the iPhone?

    Currently I'm studying Media & Entertainment Management,
    For an assignment i need to answer this question:
    ' What market segmentation criteria are relevant for marketing the iPhone? Please motivate.'
    Can someone help me with this question?
    Thanks in advance,

    Instead of someone answering your question for you, why not look it up yourself?
    We're all users here and this is a technical support forum, not a discussion board.

  • XSLT processor

    which XSLT processor do you use ? Xalan , cocoon ?
    please suggest a good XSLT processor

    BTW, i have not seen you in the forum for the past
    3-4 days....
    http://forum.java.sun.com/thread.jspa?threadID=628173

  • Which XSLT versions are support by Oracle BPEL? v1.1  or v2.0?

    Which XSLT versions are support by Oracle BPEL? v1.1 or v2.0?
    As far as I heard v1.1 is the highest version but some functions of v2.0 are supported as well.
    Is this true?
    If yes: Which XSLT functions of v2.0 are supported?
    Does it matter if I change the
    version="1.1"
    attribute in the topmost
    <xsl:stylesheet......>
    tag?
    Which XSLT processor is built-in/used?
    Peter

    XSL mapper in BPEL supports 1.0 only in-built. And this is true for 11g also. However, we can declare <xsl:stylesheet version = 2.0 ... and use all xpath 2.0 functions. I have used few of them and has been successful so far. Once you declare version as 2.0 the only issue will be that XSL's visual GUI mapper will not work in JDeveloper and you will need to modify the code from the source.

  • Running NetWeaver's XSLT processor from Oxygen

    Hello
    I am using Oxgen XML Editor (version 12.1, build 2011012011) to create my XSLT mappings. Having tested these mappings successfully offline they are imported onto our SAP-PI ( SAP NetWeaver 7.01 ). However, sometimes mappings that work in Oxygen fail on SAP-PI. Therefore, I would like to use NetWeaver's XSLT processor as Custom Engine within Oxgen.
    Triggered by the blog of Thorsten Nordholm Søbirk
    Running NetWeaver's XSLT processor from XMLSpy
    I copied the archive sapxmltoolkit.jar into the lib directory of the Oxygen installation path. Next I went to menu Options -> Preferences -> XML -> XSLT/FO/XQuery -> Custom Engines and defined the following settings:
    Working Directory = .
    Command Line = C:Program FilesJavajdk1.6.0_07 injava -cp
    "C:Program FilesOxygen XML Editor 12libsapxmltoolkit.jar";
    com.sap.engine.lib.xsl.Process
    -xml="C:     empz_tempinput.xml"
    -xsl="C:     empz_tempstylesheet.xsl"
    -out="C:     empz_tempoutput.xml"
    In addition, within the Transformation Options I set:
    javax.xml.transform.TransformerFactory=com.sap.engine.lib.jaxp.TransformerFactoryImpl
    For the sake of simplicity I used a plain stylesheet without any Java extensions. When I delete file "output.xml" in "C:     empz_temp" and execute the transformation the file is recreated. Thus, I am sure that the NetWeaver XSLT processor has been used.
    However, instead of hard-coding filenames and pathes I would like to use the built-in variables of Oxygen like "$" etc. Most of the XSLT mappings use a Java extension which is located in the same directory as sapxmltoolkit.jar (C:Program FilesOxygen XML Editor 12lib).
    There are 2 major problems that I am facing now:
    (1) How must the Command Line look like so that I can use Oxygen's built-in variables as input for -xml, -xsl and -out?
    (2) How must the Command Line look like so that the Java extension archive is recognized?
    Your help and valuable input is very much appreciated.
    Regards
      Uwe

    hi,
    this is how we use it with Stylus Studio, also with external libraries
    c:\program files\java\jre1.5.0_22\bin\java.exe -cp "Y:\xivaluemappingproxy_stylusstudio.jar";"c:\sapxmltoolkit.jar";"Y:\XIFramework.jar";"Y:\jms.jar";"Y:\sapjco.jar";"c:\ExtendedValueChange.jar" com.sap.engine.lib.xsl.Process -xsl=%2 -xml=%1 -out=%3

  • Comparison between XSLT processor

    Hi
    Which XSLT processor has the best performance and supports the standard?
    Would be great if some could give me an advice :-)
    Greetings,
    Chris

    We use SAXON here. I did some performance review, SAXON is the fastest among Java implementation.
    Non-Java engine? I found the Microsoft MSXML to be very fast.

  • How to tell which Indexes are not being used?

    We are a large development shop and have many customers. Our database design is very generic so that it works for all of our customers. Each night we use an SSIS ETL process to bring down large amounts of data from the iSeries into SQL. One
    particularily large customer takes a very long time and we are looking for ways to speed up thier data import and transformation. I would like to see which indexes he does not use and possibly remove them. Each night we fully repopulate hundreds of staging
    and ods tables and incrementally delete and repopulate the days work for a handful of history type tables. Removing some indexes off of the large tables could make a big impact. 
    How can i tell which indexes the customer does not use?

    > IDENTIFYING UNUSED INDEXES IN A SQL SERVER DATABASE 
       Just because an index is not being used does not necessarily mean it should be removed.
    > Index This: All About SQL Server Indexes
    sp_BlitzIndex
    José Diz     Belo Horizonte, MG - Brasil

  • Using the XSLT processor for non-workbench XSLT

    Hi there,
    is it possible to use the built-in XSLT processor for arbitrary XSLT transformations which aren't checked in in the ABAP workbench but instead given as a runtime object (string or iXML)?
    Instead of the built-in command CALL TRANSFORMATION which according to the doc is restricted to workbench transformations, I am looking for an option like this:
    data: lo_transformation type ref to if_ixml_document,
          lo_source         type ref to if_ixml_document,
          lo_target         type ref to if_ixml_focument.
    * I get lo_transformation and lo_source from somewhere out there
    try.
        lo_target ?= cl_some_fine_class_which_i_am_looking_for=>transform(
                          io_source         = lo_source
                          io_transformation = lo_transformation ).
      catch cx_xslt_runtime_error.
    endtry.
    Does anybody know such a feature?
    For a background about this problem - in German language - see my blog
    http://ruediger-plantiko.blogspot.com/2007/08/xslt-in-bsp-anwendungen-und-in-abap.html
    Thanks and Regards,
    Rüdiger

    Dear Rashid,
    thanks - this is the answer! I wonder why I didn't find this class one year ago. A little test prog shows that it works fine and even performant (about 0.5 millisec for creating the new dynamic XSLT program with the method set_source_stream( ) ). For usage in web apps, it would be nice to know whether the temporary program remains available in the application servers' buffer after end of process. I can't check this, since this is performed on the C/C++ level, and SE30 doesn't track the method set_source_stream() itself (it could show a decrease of runtime after the first call).
    Here comes a little self-contained ABAP program to test the functionality. It works well on our system with SAPKB70012.
    Thanks and regards,
    Rüdiger
    * --- Test usage of a dynamically given non-workbench XSLT program
    report  zz_test_cl_xslt_processor.
    data:
    * iXML master
      go_xml type ref to if_ixml,
    * iXML stream factory
      go_sf  type ref to if_ixml_stream_factory.
    load-of-program.
      go_xml = cl_ixml=>create( ).
      go_sf  = go_xml->create_stream_factory( ).
    start-of-selection.
      perform start.
    * --- Start
    form start.
      data: lo_source    type ref to if_ixml_document,
            lo_result    type ref to if_ixml_document,
            lo_processor type ref to cl_xslt_processor,
            lv_p         type progname,
            lo_ex        type ref to cx_xslt_exception.
      perform get_source changing lo_source.
      create object lo_processor.
      try.
    * Set source
          lo_processor->set_source_node( lo_source ).
    * Set result
          lo_result = go_xml->create_document( ).
          lo_processor->set_result_document( lo_result ).
    * This could be time-critical, the creation of a dynamical XSLT prog?
          perform set_transformation using lo_processor
                                     changing lv_p.
    * call xslt-proc
          lo_processor->run( lv_p ).
    * Display result
          call function 'SDIXML_DOM_TO_SCREEN'
            exporting
              document    = lo_result
              title       = 'Result of Transformation'
            exceptions
              no_document = 1
              others      = 2.
        catch cx_xslt_exception into lo_ex.
          sy-msgli = lo_ex->get_text( ).
          message sy-msgli type 'I'.
      endtry.
    endform.                    "start
    * --- Set XSLT transformation from stream
    form set_transformation using io_processor type ref to cl_xslt_processor
                            changing cv_p type progname.
      data: lo_trans     type ref to if_ixml_istream.
    * sv_p contains temp. name of XSLT program after first call
      statics: sv_p   type string.
      if sv_p is initial.
    * It seems that the name can be buffered on appserver level?
        import progname to sv_p
               from shared buffer indx(zx) id 'ZZ_TEST_XSLT_PROC'.
        if sv_p is initial.
          sv_p = 'X'.
        endif.
      endif.
    * Provide the stream containing the XSLT document (as a stream)
      perform get_transformation changing lo_trans.
    * Set transformation
      io_processor->set_source_stream( exporting stream = lo_trans
                                       changing  p      = sv_p ).
    * Buffer progname on server - seems to work
      export progname from sv_p
             to shared buffer indx(zx) id 'ZZ_TEST_XSLT_PROC'.
    * string -> c move necessary, since xslt-proc-interface doesn't use
    * the generic type csequence for program name
      cv_p = sv_p.
    endform.                    "set_transformation
    * --- Parse a source given as string into an if_ixml_document
    form get_source changing co_src type ref to if_ixml_document.
      data: lv_s      type string,
            lo_stream type ref to if_ixml_istream,
            lo_parser type ref to if_ixml_parser.
      concatenate
    `<?xml version="1.0" encoding="iso-8859-1"?>`
    `<countings filiale="2412" invnu="TIEFKUEHL SEPT.07">`
    `<count recNum="1" gid="1" ean="59111828843" menge="1"`
    `preis="0" recNumFrom="1"></count>`
    `</countings>`
    into lv_s.
    * Eingabestream erzeugen und in if_ixml_document abbilden
      lo_stream   = go_sf->create_istream_string( lv_s ).
      co_src      = go_xml->create_document( ).
      lo_parser   = go_xml->create_parser( document       = co_src
                                           istream        = lo_stream
                                           stream_factory = go_sf ).
      lo_parser->parse( ).
    endform.                    "get_source
    * --- Put the transformation given as string into an if_ixml_istrean
    form get_transformation changing co_trans type ref to if_ixml_istream.
      data: lv_s   type string.
      concatenate
      `<?xml version="1.0" encoding="iso-8859-1"?>`
      `<xsl:transform version="1.0"`
      ` xmlns:xsl="http://www.w3.org/1999/XSL/Transform"`
      ` xmlns:asx="http://www.sap.com/abapxml">`
      `<xsl:strip-space elements="*"></xsl:strip-space>`
      `<xsl:template match="countings">`
      ` <asx:abap>`
      `   <asx:values>`
      `     <SELOPT>`
      `       <WERKS><xsl:value-of select="@filiale"></xsl:value-of></WERKS>`
      `       <INVNU><xsl:value-of select="@invnu"></xsl:value-of></INVNU>`
      `     </SELOPT>`
      `     <COUNTINGS>`
      `       <xsl:for-each select="count">`
      `         <ZSRS_ZWSTI_LINE>`
      `           <MATNR></MATNR>`
      `           <EAN11><xsl:value-of select="@ean"></xsl:value-of></EAN11>`
      `           <MAKTX></MAKTX>`
      `           <MENGE><xsl:value-of select="@menge"></xsl:value-of></MENGE>`
      `           <MEINH></MEINH>`
      `           <UNAME></UNAME>`
      `           <EXVKW></EXVKW>`
      `           <WAERS></WAERS>`
      `           <FF></FF>`
      `           <GID><xsl:value-of select="@gid"></xsl:value-of></GID>`
      `           <RECNUM><xsl:value-of select="@recNum"></xsl:value-of></RECNUM>`
      `           <RECNUM_FROM><xsl:value-of select="@recNumFrom"></xsl:value-of></RECNUM_FROM>`
      `           <REF_RECNUM><xsl:value-of select="@refRecNum"></xsl:value-of></REF_RECNUM>`
      `         </ZSRS_ZWSTI_LINE>`
      `       </xsl:for-each>`
      `     </COUNTINGS>`
      `   </asx:values>`
      ` </asx:abap>`
      `</xsl:template>`
      `</xsl:transform>`
      into lv_s.
      co_trans = go_sf->create_istream_string( lv_s ).
    endform.                    "get_transformation
    Edited by: Rüdiger Plantiko on Jul 4, 2008 10:25 AM

  • How to use xsl document() function with LiveCycle XSLT processor

    Hello,
    I would like to use LiveCycle XSLT processor to merge xml documents by using the xsl document() function.
    However, I have not, yet, found  clear reference information on the specifics of how to accomplish in LC. For instance if you have
    a transformation that does merging using a standalone xml editor (such as Oxygen), than what is required to accomplish the same
    using the LiveCycle XSLT service.  How do you specify the URI of the XML document that is specified as an input in the xsl document() function. Your insight is appreciated.   Regards

    Hello Steve,
    I checked the reference that you cited (XSLT Transformation).   The reference omits discussing how to use xlst document() function within a stylesheet.  I think that probably means that feature of xslt technology is not directly available through LiveCycle.  When I find a workaround, I'll post an update...for the user community that might encounter the same issue.  Thank you for your response and insight.  Regards, jb1809

  • IDoc to cXML using built-in SAP XSLT Processor

    Hi ABAP experts,
    i have a requirement to send an IDoc to an external system, the external system expecting it to be in cXML standard - without using XI/PI
    has someone of you done this before?
    I was looking at the option to utilize the built-in SAP XSLT processor (CALL TRANSFORMATION) since it supports XML to XML and ABAP to XML transformations
    so the flow would either be
    IDoc --> XSLT --> cXML  (preferred)
    IDoc --> XML (using XML port) --> XSLT --> cXML
    is this possible?
    Also, can the cXML be sent using the XML HTTP port in we21?
    Your tips suggestions would be highly appreciated

    Hello
    Have you had a look at class CL_IDOC_XML1? This class does the transformation IDoc -> XML for you.
    The next step would be to create the required XSLT transformation for the mapping IDoc-XML -> cXML.
    Regards
      Uwe

Maybe you are looking for