Xsl-xml transformation: how to resolve namespace prefix?

public static String  XMLTransform(Source xmlSource, Source xsltSource)throws DocumentException,TransformerException,TransformerConfigurationException,Exception{
          ByteArrayOutputStream returnByteStream = new ByteArrayOutputStream();
          StreamResult streamResult = new StreamResult(returnByteStream);
          TransformerFactory tFactory = TransformerFactory.newInstance();
          Templates templates = tFactory.newTemplates(xsltSource);
          Transformer transformer = templates.newTransformer();
          transformer.transform(xmlSource, streamResult);
          String result= returnByteStream.toString();
          return result;
     }now xml I have is like this
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types">
     <soap:Body>
          <FindItem xmlns="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" Traversal="Shallow">
               <ItemShape>
                    <t:BaseShape>AllProperties</t:BaseShape>
               </ItemShape>
               <ParentFolderIds>
                    <t:DistinguishedFolderId Id="inbox"/>
               </ParentFolderIds>
          </FindItem>
     </soap:Body>
</soap:Envelope>how do i pass namespace in transformation?

You don't "pass" the namespace in your transformation. Simply declare it in the root element, exactly as you declared it in your XML document.

Similar Messages

  • How to add namespace prefix to root tag in XSL version 1.1  SOA 11g

    Hi Experts,
       Can any one post solution for adding namespace prefix to root tag using XSL version 1.1 in SOA 11g?
    I have tried the below options and none is working.
    1. Removing prefix add in exclude-prefixes in XSL.But still seeing no prefix for root tag.
    2. Added the <xsl-element>   tag with namespace.But it is not working
    3. Added the below XSL code and it is not working.
      <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
       xmlns:ns0="https://api.ladbrokes.com/v1/sportsbook-couchbase/Temp.xsd">
      <xsl:output method="xml" indent="yes" omit-xml-declaration="yes"/>
      <xsl:template match="@* | node()">
       <xsl:copy>
       <xsl:apply-templates select="@* | node()"/>
       </xsl:copy>
      </xsl:template>
      <xsl:template match="/*">
       <xsl:element name="ns0:{local-name()}">
       <xsl:copy-of select="namespace::*" />
       <xsl:apply-templates select="@* | node()" />
       </xsl:element>
      </xsl:template>
    </xsl:stylesheet>

    Try this:
    <xsl:stylesheet  version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template match="@*|text()|comment()|processing-instruction()">
            <xsl:copy>
                <xsl:apply-templates select="@*|node()"/>
            </xsl:copy>
        </xsl:template>
        <xsl:template match="/">
            <RootTag xmlns:ns0="https://api.ladbrokes.com/v1/sportsbook-couchbase/Temp.xsd">
                <xsl:apply-templates select="@*|node()"/>          
            </RootTag >
        </xsl:template>
        <xsl:template match="*">
            <xsl:element name="{local-name()}">
                <xsl:apply-templates select="@*|node()"/>
            </xsl:element>
        </xsl:template>
    </xsl:stylesheet>

  • How to add namespace prefix to XML file?

    I have a file(XML) to proxy scenario. I 've created an asynch Inbound message and a asynch Outbound message.
    I have generated the class in Sproxy of my R/3 System.
    In the Integration directory I have 2 business system :
    -one which sent the file
    -my r/3 system
    System which send file generate XML like this:
    <?xml version="1.0" encoding="UTF-8" ?>
       <batch id="20080211001" customer="some customer" user="user" language="EN">
         <structure>
           <localization>
              <string id="customer" text="Customer" />
    etc........
    As you see, it have not any namespace prefix.
    How can I insert namespace prefix in this file with XI tools?

    Hi Pavel
    I am also facing the same issue
    my XML structure is quite complex
    <ROW EVENT="RE" SEQ="9" MORE="Y" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >
      <FileDate Internal="61409" ROWID="Y">02/17/2009</FileDate>
      <FileSeq ROWID="Y">9</FileSeq>
      <Event>RE</Event>
      <Grp>3</Grp>
      <LinkFileTime>42324</LinkFileTime>
      <Mrn></Mrn>
      <ROW DESCR="RE" TABLE="PAT" EVENT="RE">
        <BusTel/>
        <BusTelHipaaConsent/>
        <Cont1Addr1/>
      <ROW DESCR="RE" TABLE="INS" EVENT="RE">
        <DictRef1/>
        <DictRef10/>
    Do i have to create the Message Interface  for Outbound Synchronous ..
    <DictRef11/>

  • How to remove namespace Prefix ns0

    Hi ,
    I receive an xml from an external service.In that each element in prefixed by namespace ns0: How can I remove that name space.I trieed using
    ora:ProcessXSLT.But its not working.Its giving TypeError
    Please find below my xml and xslt files.
    XML ---
    <ProcessSalesLead xmlns:ns0="http://www.starstandards.org/STAR/ProcessSalesLead" revision="3.0" release="8.1-Lite" environment="Production" lang="en-US" xmlns="http://webservice.services.freeway.wipro.com">
    <ns0:ApplicationArea>
    <ns0:Sender>
    <ns0:Component>String</ns0:Component>
    <ns0:Task>SalesLead</ns0:Task>
    <ns0:ReferenceId>1-4CPJ</ns0:ReferenceId>
    <ns0:CreatorNameCode>XX</ns0:CreatorNameCode>
    <ns0:SenderNameCode>XX</ns0:SenderNameCode>
    </ns0:Sender>
    <ns0:CreationDateTime>2007-11-28T15:33:16+05:30</ns0:CreationDateTime>
    <ns0:Destination>
    <ns0:DestinationNameCode>XX</ns0:DestinationNameCode>
    <ns0:DealerNumber>10005</ns0:DealerNumber>
    </ns0:Destination>
    </ns0:ApplicationArea>
    <ns0:DataArea>
    <ns0:Process acknowledge="Never" confirm="Always"/>
    <ns0:SalesLead>
    <ns0:Header>
    <ns0:DocumentId>1-4CPJ</ns0:DocumentId>
    <ns0:IndividualProspect>
    <ns0:PersonName>
    <ns0:GivenName>Ray</ns0:GivenName>
    <ns0:FamilyName>Aamos</ns0:FamilyName>
    </ns0:PersonName>
    <ns0:Address>
    <ns0:AddressLine>1200 Davisville Rd</ns0:AddressLine>
    <ns0:City>York</ns0:City>
    <ns0:StateOrProvince>AL</ns0:StateOrProvince>
    <ns0:Country>US</ns0:Country>
    <ns0:PostalCode>78201</ns0:PostalCode>
    </ns0:Address>
    <ns0:Contact>
    <ns0:Telephone desc="Day Phone">2018742349</ns0:Telephone>
    <ns0:EMailAddress desc="Work">[email protected]</ns0:EMailAddress>
    <ns0:Fax desc="Work">2018745698</ns0:Fax>
    </ns0:Contact>
    <ns0:OwnedVehicle>
    <ns0:Model>Sonata</ns0:Model>
    <ns0:ModelYear>2006</ns0:ModelYear>
    <ns0:Make>Hyundai</ns0:Make>
    </ns0:OwnedVehicle>
    </ns0:IndividualProspect>
    <ns0:Provider>
    <ns0:Contact>
    <ns0:PersonName>
    <ns0:GivenName/>
    <ns0:FamilyName/>
    </ns0:PersonName>
    </ns0:Contact>
    </ns0:Provider>
    <ns0:Dealer>
    <ns0:DealerName>Metro Motors Florida</ns0:DealerName>
    <ns0:Address>
    <ns0:AddressLine>Miami</ns0:AddressLine>
    <ns0:City>Miami</ns0:City>
    <ns0:StateOrProvince>FL</ns0:StateOrProvince>
    <ns0:Country>US</ns0:Country>
    <ns0:PostalCode>33010</ns0:PostalCode>
    </ns0:Address>
    <ns0:SalesContact>
    <ns0:Telephone desc="Day Phone">3058938000</ns0:Telephone>
    </ns0:SalesContact>
    <ns0:OrganizationName>Metro Motors Florida</ns0:OrganizationName>
    </ns0:Dealer>
    <ns0:LeadComments>Existing Vehicle info</ns0:LeadComments>
    </ns0:Header>
    <ns0:Detail>
    <ns0:LeadStatus>Accepted</ns0:LeadStatus>
    <ns0:SalesVehicle>
    <ns0:Model>Camry</ns0:Model>
    <ns0:ModelYear>2007</ns0:ModelYear>
    <ns0:ModelDescription>Camry LE</ns0:ModelDescription>
    <ns0:Make>Toyota</ns0:Make>
    <ns0:VehicleNote/>
    <ns0:ExteriorColor/>
    <ns0:TransmissionType>A</ns0:TransmissionType>
    </ns0:SalesVehicle>
    </ns0:Detail>
    </ns0:SalesLead>
    </ns0:DataArea>
    </ProcessSalesLead>
    XSLT --
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
    <xsl:template match="*">
    <!-- remove element prefix (if any) -->
    <xsl:element name="{local-name()}">
    <!-- process attributes -->
    <xsl:for-each select="@*">
    <!-- remove attribute prefix (if any) -->
    <xsl:attribute name="{local-name()}">
    <xsl:value-of select="."/>
    </xsl:attribute>
    </xsl:for-each>
    <xsl:apply-templates/>
    </xsl:element>
    </xsl:template>
    </xsl:stylesheet>
    Please help me on this.Its very urgent .
    thanks
    deepthi

    can you please copy paste your schema validation errors. i suspect there is a mismatch between your schema and xml data that you input to your schema processor. can you copy paste the definition of your schema for <ProcessSalesLead>.
    you mentioned you received this xml from external service, maybe this external service doesn't have the correct schema and generates this xml which is not compatible with your schema.
    I would suggest to validate this xml as part of your receive, please use "validateXML" partner link property in bpel.xml, so you avoid invalid documents getting into the system at first.
    <partnerLinkBindings>
    <partnerLinkBinding name="...">
    <property name="wsdlLocation">http://localhost:8888/orabpel/default/1.0/yourParnerProcess?wsdl</property>
    <property name="validateXML">true</property>
    </partnerLinkBinding>

  • How to remove namespace prefix from target payload when using HTTP in PI7.0

    Hi,
    i have a requirement to remove namespace prefix from target payload when receiver receives the payload by an HTTP request.
    i am not able to use XML Anonymizer Bean as in HTTP channel its not possiile.
    Target structure after mapping now is:
    <?xml version="1.0" encoding="UTF-8"?>
    <ns3:Order xmlns:ns3="urn:xxx-com:pi:project">
    fields
    </ns3:Order>
    i need the target structure after mapping should look like:
    <?xml version="1.0" encoding="UTF-8"?>
    <Order xmlns:="urn:xxx-com:pi:project">
    fields
    <Order>
    i removed namespace from source and target Message Type of message mapping but still getting "ns3" prefix. My requirement is to just have this ns3 removed.
    Please reply if anyone has solved this problem before.
    Thanks

    Hi ,
    >>>i removed namespace from source and target Message Type of message mapping but still getting "ns3" prefix. My requirement is to just have this ns3 removed.
    Which process you've used for removing namespace...java/xslt mapping. In case of java mapping plese remove ns3 while creating the target element. Please go through the below blog it may help you.
    Quick Tips: Dealing with Namespaces in XI/PI
    Regards,
    Priyanka

  • How to remove namespace prefix

    hi,
    i have a problem in receiver SOAP adapter because of namespace prefix.
    so i have to remove the namespace prefix from the paylaod. but namespace should be there...
    what are the possibilities to remove the namespace prefix alone from the payload?
    Thanks & Regards,
    Krish

    hi,
    you have to simply add one module in your communication channel
    that is XMLAnonymizerBean
    you can refer below for help:
    Remove namespace prefix or change XML encoding with the XMLAnonymizerBean
    http://help.sap.com/saphelp_nw04/helpdata/en/2e/bf37423cf7ab04e10000000a1550b0/frameset.htm
    hope it helps.
    regards,
    ujjwal kumar

  • How to insert namespace prefix when using xmltype

    Hi,
    I have registered the following XML schema into XMLDB.
    <s:schema xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:xdb="http://xmlns.oracle.com/xdb" xmlns:m="https://suora.tietopalvelut.com/ATJkysely/" targetNamespace="https://suora.tietopalvelut.com/ATJkysely/" elementFormDefault="qualified" xdb:schemaURL="http://www.fennia.fi/Hae121.xsd">
         <s:element name="Hae" type="m:Hae121" xdb:SQLType="Hae121"/>
         <s:complexType name="Hae121" xdb:SQLType="Hae121" xdb:maintainDOM="false">
              <s:sequence>
                   <s:element name="kayttajatunnus" type="m:Kayttajatunnus" minOccurs="0" xdb:SQLName="kayttajatunnus" xdb:SQLType="Kayttajatunnus121" xdb:SQLInline="true"/>
                   <s:element name="palvelutunnus" type="s:string" minOccurs="0" xdb:SQLName="palvelutunnus" xdb:SQLType="VARCHAR2" xdb:SQLInline="true"/>
                   <s:element name="kyselylaji" type="s:string" minOccurs="0" xdb:SQLName="kyselylaji" xdb:SQLType="VARCHAR2" xdb:SQLInline="true"/>
                   <s:element name="rekisteritunnus" type="s:string" minOccurs="0" xdb:SQLName="rekisteritunnus" xdb:SQLType="VARCHAR2" xdb:SQLInline="true"/>
                   <s:element name="laji" type="s:string" minOccurs="0" xdb:SQLName="laji" xdb:SQLType="VARCHAR2" xdb:SQLInline="true"/>
                   <s:element name="ajoneuvoluokka" type="s:string" minOccurs="0" xdb:SQLName="ajoneuvoluokka" xdb:SQLType="VARCHAR2" xdb:SQLInline="true"/>
                   <s:element name="valmistenumero" type="s:string" minOccurs="0" xdb:SQLName="valmistenumero" xdb:SQLType="VARCHAR2" xdb:SQLInline="true"/>
                   <s:element name="jarjestelmatunnus" type="s:string" minOccurs="0" xdb:SQLName="jarjestelmatunnus" xdb:SQLType="VARCHAR2" xdb:SQLInline="true"/>
              </s:sequence>
         </s:complexType>
         <s:complexType name="Kayttajatunnus" xdb:SQLType="Kayttajatunnus121" xdb:maintainDOM="false">
              <s:sequence>
                   <s:element name="username" type="s:string" minOccurs="0" xdb:SQLName="username" xdb:SQLType="VARCHAR2" xdb:SQLInline="true"/>
                   <s:element name="password" type="s:string" minOccurs="0" xdb:SQLName="password" xdb:SQLType="VARCHAR2" xdb:SQLInline="true"/>
                   <s:element name="statcode" type="s:string" minOccurs="0" xdb:SQLName="statcode" xdb:SQLType="VARCHAR2" xdb:SQLInline="true"/>
                   <s:element name="enduserid" type="s:string" minOccurs="0" xdb:SQLName="enduserid" xdb:SQLType="VARCHAR2" xdb:SQLInline="true"/>
                   <s:element name="timestamp" type="s:string" minOccurs="0" xdb:SQLName="timestamp" xdb:SQLType="VARCHAR2" xdb:SQLInline="true"/>
                   <s:element name="checksum" type="s:string" minOccurs="0" xdb:SQLName="checksum" xdb:SQLType="VARCHAR2" xdb:SQLInline="true"/>
                   <s:element name="ticket" type="s:string" minOccurs="0" xdb:SQLName="ticket" xdb:SQLType="VARCHAR2" xdb:SQLInline="true"/>
              </s:sequence>
         </s:complexType>
    </s:schema>
    In PL/SQL I populate the object types, which have been automatically generated.
    Then I create an XMLTYPE object using the following code:
    akeobject "Hae121";
    v_schema VARCHAR2 (1000) := 'http://www.fennia.fi/Hae121.xsd';
    v_schema_element VARCHAR2 (100) := 'Hae';
    --akeobject populated here
    v_xml_out := XMLTYPE (akeobject, v_schema, v_schema_element);
    DBMS_OUTPUT.put_line ('v_xml_out:' || v_xml_out.getstringval ()) shows the following:
    <Hae xmlns="https://suora.tietopalvelut.com/ATJkysely/">
    <kayttajatunnus>
    <username>kayttaja</username>
    <password>salasana</password>
    <statcode>tiltunn</statcode>
    <enduserid>loppukay</enduserid>
    <timestamp>20060822100700</timestamp>
    <checksum>E77B30394D23F83D422A63027F8F63A8</checksum>
    <ticket>nyckkeli</ticket>
    </kayttajatunnus>
    <palvelutunnus>PALVELUTUNNUS</palvelutunnus>
    <kyselylaji>41</kyselylaji>
    <rekisteritunnus>BRF-444</rekisteritunnus>
    <ajoneuvoluokka>1</ajoneuvoluokka>
    <valmistenumero>BBBB</valmistenumero>
    <jarjestelmatunnus>AAAA</jarjestelmatunnus>
    </Hae>
    There are no namespace prefixes.
    When I create a model XML file using XMLSpy, I get the following:
    <?xml version="1.0" encoding="UTF-8"?>
    <!--Sample XML file generated by XMLSpy v2007 rel. 3 sp1 (http://www.altova.com)-->
    <m:Hae xmlns:m="https://suora.tietopalvelut.com/ATJkysely/">
         <m:kayttajatunnus>
              <m:username>String</m:username>
              <m:password>String</m:password>
              <m:statcode>String</m:statcode>
              <m:enduserid>String</m:enduserid>
              <m:timestamp>String</m:timestamp>
              <m:checksum>String</m:checksum>
              <m:ticket>String</m:ticket>
         </m:kayttajatunnus>
         <m:palvelutunnus>String</m:palvelutunnus>
         <m:kyselylaji>String</m:kyselylaji>
         <m:rekisteritunnus>String</m:rekisteritunnus>
         <m:laji>String</m:laji>
         <m:ajoneuvoluokka>String</m:ajoneuvoluokka>
         <m:valmistenumero>String</m:valmistenumero>
         <m:jarjestelmatunnus>String</m:jarjestelmatunnus>
    </m:Hae>
    What am I doing wrong because there are no namespace prefixes when using XMLTYPE in PL/SQL?
    My environment is 10g 10.2.0.2.
    Thanks,
    Veli-Matti

    Hi ,
    >>>i removed namespace from source and target Message Type of message mapping but still getting "ns3" prefix. My requirement is to just have this ns3 removed.
    Which process you've used for removing namespace...java/xslt mapping. In case of java mapping plese remove ns3 while creating the target element. Please go through the below blog it may help you.
    Quick Tips: Dealing with Namespaces in XI/PI
    Regards,
    Priyanka

  • How to add namespace prefixes to XMLType created from Object?

    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 - Production
    I'm working with SOAP request creation from Schema derived Types.
    Consider the registration of the following annotated schema (I wanted Oracle to create the types for me, but with my own names):
    exec dbms_xmlschema.deleteSchema(schemaURL => 'Parameters4.xsd');
    declare
    v_xsd xmltype := xmltype('<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
               xmlns:oraxdb="http://xmlns.oracle.com/xdb"
               xmlns = "http://www.cognera.com"
               targetNamespace = "http://www.cognera.com">
      <xs:element name="Parameters" oraxdb:SQLName="Parameters" oraxdb:SQLType="Parameters">
        <xs:complexType oraxdb:SQLType="Parameters">
          <xs:sequence>
            <xs:element name="Param1" type="xs:string" oraxdb:SQLName="Param1" oraxdb:SQLType="VARCHAR2" />
            <xs:element name="NestedItems" oraxdb:SQLName="NestedItems" oraxdb:SQLType="NestedItemsType">
              <xs:complexType oraxdb:SQLType="NestedItemsType">
                <xs:sequence>
                  <xs:element name="NestedItem" type="NestedItemType" oraxdb:SQLName="NestedItem" oraxdb:SQLType="NestedItemType"/>
                </xs:sequence>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:complexType name="NestedItemType" oraxdb:SQLType="NestedItemType">
        <xs:sequence>
          <xs:element name="nParam1" type="xs:string" oraxdb:SQLName="nParam1" oraxdb:SQLType="VARCHAR2"/>
          <xs:element name="nParam2" type="xs:string" oraxdb:SQLName="nParam2" oraxdb:SQLType="VARCHAR2"/>
          <xs:element name="nParam3" type="xs:string" oraxdb:SQLName="nParam3" oraxdb:SQLType="VARCHAR2"/>
        </xs:sequence>
      </xs:complexType>
    </xs:schema>
    begin
      dbms_xmlschema.registerSchema(schemaURL => 'Parameters4.xsd', --this name is local to each ERS schema.                                
                                          schemaDoc => v_xsd,
                                          local => TRUE,
                                          genTypes => TRUE, --only want the types
                                          genbean => FALSE,
                                          genTables => TRUE, --not sure if I need this
                                          force => TRUE,
                                          owner => user);
    end;
    Types created were:
    CREATE OR REPLACE TYPE "NestedItemType" AS OBJECT ("SYS_XDBPD$" "XDB"."XDB$RAW_LIST_T","nParam1" VARCHAR2(4000 CHAR),"nParam2" VARCHAR2(4000 CHAR),"nParam3" VARCHAR2(4000 CHAR))NOT FINAL INSTANTIABLE
    CREATE OR REPLACE TYPE "NestedItemsType" AS OBJECT ("SYS_XDBPD$" "XDB"."XDB$RAW_LIST_T","NestedItem" "NestedItemType")FINAL INSTANTIABLE
    CREATE OR REPLACE TYPE "Parameters" AS OBJECT ("SYS_XDBPD$" "XDB"."XDB$RAW_LIST_T","Param1" VARCHAR2(4000 CHAR),"NestedItems" "NestedItemsType")FINAL INSTANTIABLE
    I found that in order to build these types using constructors (to avoid PLS-00306: wrong number or types of arguments in call to 'NestedItemType'), that I needed to edit these types (drop the xdb magic):
    CREATE OR REPLACE TYPE "NestedItemType" AS OBJECT ("nParam1" VARCHAR2(4000 CHAR),"nParam2" VARCHAR2(4000 CHAR),"nParam3" VARCHAR2(4000 CHAR))FINAL INSTANTIABLE
    CREATE OR REPLACE TYPE "NestedItemsType" AS OBJECT ("NestedItem" "NestedItemType")FINAL INSTANTIABLE
    CREATE OR REPLACE TYPE "Parameters" AS OBJECT ("Param1" VARCHAR2(4000 CHAR),"NestedItems" "NestedItemsType")FINAL INSTANTIABLE
    I read on the forums of a hack to get a namespace added in the output:
    CREATE OR REPLACE TYPE "Parameters" AS OBJECT ("@xmlns" VARCHAR2(4000), -- namespace attribute HACK
                                                           "Param1" VARCHAR2(4000 CHAR),"NestedItems" "NestedItemsType")FINAL INSTANTIABLE
    Putting it all together, I have:
    DECLARE
      v_Parameters    "Parameters";
      v_xml           xmltype;
      v_print_output  clob;     
    begin
      v_Parameters :=  "Parameters"('www.cognera.com',
                                    'hello',
                                  "NestedItemsType"("NestedItemType"('one',
                                                                 'two',
                                                                 'three'
      v_xml := xmltype(xmlData => v_Parameters);
      select xmlserialize(document
                          xmlquery('declare namespace soap = "http://www.w3.org/2003/05/soap-envelope";                                                             
                                    declare namespace cognera = "http://www.cognera.com";
                                    <soap:Envelope>
                                       <soap:Header/>
                                       <soap:Body>
                                       </soap:Body>
                                     </soap:Envelope>
                                   ' passing v_xml returning content) as clob
                          indent size=2
                         ) into v_print_output from dual;
      dbms_output.put_line(v_print_output);
    end;
    This outputs:
    <soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
      <soap:Header/>
      <soap:Body>
        <Parameters xmlns="www.cognera.com">
          <Param1>hello</Param1>
          <NestedItems>
            <NestedItem>
              <nParam1>one</nParam1>
              <nParam2>two</nParam2>
              <nParam3>three</nParam3>
            </NestedItem>
          </NestedItems>
        </Parameters>
      </soap:Body>
    </soap:Envelope>
    What I really want is:
    <soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:c="www.cognera.com">
      <soap:Header/>
      <soap:Body>
        <c:Parameters>
          <c:Param1>hello</c:Param1>
          <c:NestedItems>
            <c:NestedItem>
              <c:nParam1>one</c:nParam1>
              <c:nParam2>two</c:nParam2>
              <c:nParam3>three</c:nParam3>
            </c:NestedItem>
          </c:NestedItems>
        </c:Parameters>
      </soap:Body>
    </soap:Envelope>
    How do I do this without having to programatically add the namespace using a custom XQuery function?

    See this similar thread, it should give you some better alternatives than the "@xmlns" hack :
    Add Namespaces via XQuery to an XML Instance
    For example :
    SQL> SELECT XMLSerialize(DOCUMENT
      2           XMLTransform(
      3             xmltype(
      4               "Parameters"('hello', "NestedItemsType"("NestedItemType"('one','two','three')))
      5             )
      6           , xmlparse(content
      7  '<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
      8    <xsl:output encoding="UTF-8" indent="yes" method="xml"/>
      9    <xsl:param name="ns"/>
    10    <xsl:template match="/">
    11      <soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
    12        <soap:Header/>
    13          <soap:Body>
    14               <xsl:apply-templates select="*"/>
    15             </soap:Body>
    16         </soap:Envelope>
    17    </xsl:template>
    18    <xsl:template match="*">
    19      <xsl:element name="{local-name()}" namespace="{$ns}">
    20        <xsl:apply-templates select="@*|node()"/>
    21      </xsl:element>
    22    </xsl:template>
    23  </xsl:stylesheet>')
    24           , q'{ns="'www.cognera.com'"}'
    25           )
    26           INDENT
    27         ) AS "XSLT Output"
    28  FROM dual ;
    XSLT Output
    <?xml version="1.0" encoding="UTF-8"?>
    <soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
      <soap:Header/>
      <soap:Body>
        <Parameters xmlns="www.cognera.com">
          <Param1>hello</Param1>
          <NestedItems>
            <NestedItem>
              <nParam1>one</nParam1>
              <nParam2>two</nParam2>
              <nParam3>three</nParam3>
            </NestedItem>
          </NestedItems>
        </Parameters>
      </soap:Body>
    </soap:Envelope>
    You can store the stylesheet in the XDB repository or in a table and access it using a DBUriType.
    It then provides a concise way to both add the namespace and wrap the payload in the envelope.

  • How to resolve namespace using jaxp

    Hi ,
    I have a xml document with structure :
    <top
    xmlns:myns="urn:my-namespace">
    <second>
    <myQNameElem>myns:someElem</myQNameElem>
    </second>
    </top>
    How do I parse the element <myQNameElem> into a Qname ?
    I would guess that if Jaxp has some sort of Name Spacxe resolver , I can use to resolve 'myns' to "urn:my-namespace">
    Any help appreciated .
    Anirban

    There is something here :
    http://java.sun.com/webservices/docs/1.2/api/javax/xml/namespace/NamespaceContext.html
    any one aware of this ?

  • Disable namespace prefixes in Transformer

    hi
    I am stuck in a cyclic problem. JAXP XSLT and SchemaValidator do not work together. (Java 1.5 and 1.6)
    I have a XSD with a namespace.
    When I generate the XML using an XSLT I specify namespace using the namespace attribute of xsl:element
    The JAXP transformer always generate the namespace prefix and equate the prefix with the actual URI
    Is there a way to disable this behavior, that is, I do want the xmlns URI in the root element but not the prefix?
    There are two reasons for wanting an XML without prefixes:
    1) The Schema Validator provided with JRE is not able to validate the message with prefix, but it works fine with xmlns URI
    <rootelem xmlns="urn:xmlns:xyz.abc.com"> validates fine
    but
    <ns0:rootelem xmlns:ns0="urn:xmlns:xyz.abc.com"> fails validation with error:
    org.xml.sax.SAXParseException: cvc-elt.1: Cannot find the declaration of element 'ns0:rootelem'.
    I am able to generate the first case when I use Saxon based OrangeXSLT plugin for Eclipse but JAXP based transformer always generate the second case.
    2) More importantly, I have XML consumers that could use parsing without namespace support and prefixed element will not work there.
    I am using StreamResult in the Transformer.transform() call and my guess is that the internal implementation of Transformer might be using a SAX ContentHandler (XML Serializer) to write XML to the outputStream and I guess one way to get around could be that I write a custom ContentHandler and use a SAXResult in the transform call. I am not sure if I am thinking in the right direction.
    If I am correct in my guess, could someone please point to some implementation of XMLSerializer that could be overridden just to disable namespace prefixing behavior?
    I have removed the namespace from the XSD for things to work. I would appreciate any help with this.

    Moving to latest Xalan and Xerces solved the problem.
    But a new one surfaced.
    Xalan's latest transformer does not handle StreamSource correctly and throws some exception internally (IOException related to end of stream), with the message:
    SystemId Unknown; Line #-1; Column #-1; Premature end of file.
    It work correctly if a DOMSource is provided as the input. This does not make sense, since the InputStream my code is using for StreamSource is ByteArrayInputStream for an in-memory XML and such error would happen if this stream is read more than once without calling a reset in between.
    Please let me know if this seems like a valid bug or if I am doing something wrong.

  • XML Transform - Replace Namespace - WS-Addressing

    Hi All,
    I'm trying to do a XML transformation to change the namespace of WS-Addressing of a XML message that arrives to Oracle Web Services Manager(OWSM), but no success.
    This is the what arrives to OWSM:
    <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    <soap:Header>
    <To xmlns="http://www.w3.org/2005/08/addressing">http://something.com</To>
    <Action xmlns="http://www.w3.org/2005/08/addressing">initiate</Action>
    <ReplyTo xmlns="http://www.w3.org/2005/08/addressing">
    <Address>http://something.com</Address>
    </ReplyTo>
    <MessageID xmlns="http://www.w3.org/2005/08/addressing">uuid:saude042</MessageID>
    </soap:Header>
    <soap:Body xmlns:ns1="http://something.com">
    </soap:Body>
    </soap:Envelope>
    This is what I want to pass to the BPEL:
    <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    <soap:Header>
    <MessageID xmlns="http://schemas.xmlsoap.org/ws/2003/03/addressing">uuid:saude042</MessageID>
    </soap:Header>
    <soap:Body xmlns:ns1="http://something.com">
    </soap:Body>
    </soap:Envelope>
    I'm having some questions about how to do the XSLT...
    Anyone have an example?
    Thank you in advance.
    Carla

    http://www.oracle.com/technology/pub/articles/jones-owsm.html
    Overhere they describe how to edit the soap header by using a custom step.

  • Remove ns1: namespace prefix in HTTP adapter

    Dear Experts,
    I'm facing the following issue, using the plain HTTP receiver adapter:
    when I'm sending out my XML message, the "usual" ns1: namespace prefixes are added to the message.
    It goes out like this:
    <?xml version="1.0" encoding="UTF-8"?>
    <ns1:INQUIRY xmlns:ns1="urn:namespace.com:retail">
    <SESSION_ID>0000157338</SESSION_ID>
    <POSITION>
    <item>
    </ns1:INQUIRY>
    And it should be like this:
    <?xml version="1.0" encoding="UTF-8"?>
    <INQUIRY xmlns:ns1="urn:namespace.com:retail">
    <SESSION_ID>0000157338</SESSION_ID>
    <POSITION>
    <item>
    </INQUIRY>
    In previous forum-threads, there are several proposed solutions:
    1. using the XMLAnonymizerBean
    It doesn't work here, because in plain HTTP I cannot call up any module processor (it doesn't go through the AE)
    2. using XSLT to remove the complete namespace
    It is not good, because I have to keep the namesapce, but without the ns1 prefixes
    So, the question to you is: how to delete only(!) the ns1 prefixes, keeping the original namespace in the message.
    Any comments are welcome!
    Best regards,
    Andras Kovacs

    Dear Stefan,
    thank you for the helpful response!
    Some thougths about the proposed solutions:
    - Create external wsdl/xsd without prefix: I tried thois point with Sytlus-Studio, but here I can only delete/remove the whole namespace. If I leave the namespace in the message, the prefix will be added again as well.
    - Java mapping: the general question here, how to remove something from the payload? Should we use string manipulation (like Alessandro mentions it in his blog: /people/alessandro.guarneri/blog/2006/10/13/get-rid-of-recordset-node ) or should we use here SAX ? Is there any "standard" solution for this?
    - Use SOAP adapter instead of plain HTTP: it worked quite well and I could remove the prefix with the XMLAnonymizer Bean!
    Here you mentioned that it can called up in "no SOAP mode". Do you mean here check in the "don't use SOAP envelope" checkbox or is it something more?
    Thank you in advance for the useful responses!
    Best regards,
    Andras

  • Setting namespace prefix with JAXB

    I'm trying to build and use a JAXB application.
    1. Generate the Java source files by submitting the XML Schema with Namespace to the binding compiler.
    2. Compile the Java source code.
    3. Marshal the data to new XML documents(valid XML document).
    But namespace prefix of XML Schema doesn't equal namespace prefix of new XML document.
    The prefix of new XML Schema is "heo". But, the prefix of new XML document set as "ns1" at discretion.
    Is there any way to solve namespace prefix setting?
    Thank you for your help.

    Why is java the only one doing this?
    I know prefixes are arbitrary, but when groups/individuals design XML docs, the instinct is to specify unique prefixes and to expect them coming in and out of other systems.
    When joe-developer emails an API to a buddy, she's got to include a lot more info every time, not just "cool:news" vs. "bad:news" but "cool:news" and "xmlns:cool=uri-foobar-smyte" and ...
    Sooo much simpler to handle the xml when its not only declared correctly, but you can expect specific prefixes. Less lines in writing tests, less lines in parsing out namespace declarations in order to expand them to uris and then map those to the random prefixes... blah.
    If you are concerned about dropping uri's then THAT should be the exception to the rule, then you write tests to lookup the namespace-uri.
    I suppose sun's xml stack is kind of a lesson to teach us developers to handle xml the orthodox way, using random prefixes, thanks for that.
    Classic: look at the amount of code it takes to parse xml in java. Then add on complexity (weirdness) in terms of random prefixes .... then compare that to .net/python/ruby/php/perl/c/c++ ... sun is all alone on this one and about 10x more verbose.
    At least honor the xml prefixes declared and developers round the world will appreciate the boost in productivity.
    Word!
    -jhn

  • Conversion Agent - Namespace prefix missing

    Hi Guys,
    Trying to use CA to convert a flat file to nested XML. I managed to succesfuly build a script that converts the flat file to XML.
    The problem I am facing here is that, the converted XML is not having a namespace prefix and hence my mappings fail.
    Can you please let me know if there is some setting which allows me to add the namespace prefix in the output XML generated?
    Thanks
    Jai
    Just a bump
    Edited by: Jaishankar on Mar 12, 2010 10:09 AM

    In your TGP file you have one option "allow_empty_values".
    Use that for optional fields.
    example will be as below :
    Content<optional, allow_empty_values>(OffsetSearch(StaticInt()), TextSearch(StaticString("")), null_searcher, XPath("/X12/s/s1/TS_850/s/REF/*s/REF02")),

  • How to suppress n0: default Namespace prefix in Transformations

    Hi,
    I use Simple Transformations for serialization of deep structured data.
    In the XML File the whole tree needs to use a special namespace. Therefore i use the attribute xmlns="ABC.de" without a namespace prefix in my root element. During serialization SAP generates a default namespace prefix like 'n0:'.
    Is it possible to suppress the generated namespace prefix?
    Thank you very much for reply
    René
    Edited by: René Libbert on Feb 14, 2012 8:09 AM

    Maybe somebody is interested.
    It seems to be a problem on old 640. On a NW 702 the result is as expected. NW 700 was not tested.
    Workaround for the 640 is to use as result a STRING field not an XSTRING.
    Greetings René

Maybe you are looking for

  • Samsung Galaxy Tablet

    Here's one for ya...went online to get myself a Galaxy Tablet when I was going  through the process, they wanted my DL# and my SS# well to my amazement I wondered why? Well I got a hold of Verizon customer service and they connected me will tele sale

  • Ssd access freeze windows 7/8

    i had corsair force 128GB on my macbook pro. i installed mac os and windows 7 as bootcamp. i had no problem except disk space. i bought neutron 256gb. i have problems on windows 7. it is like it freeze on disk access. so windows 7 is so slow. i wait

  • Error Message (-200)

    Last night I tried to upgrade to iTunes 7, and at first things worked fine. Then when it tried to install the updates to my iPod, it went for about a minute and then said "unknown error has occured, software couldn't be installed". Tried it again, no

  • Row of an output goes automatically down after printing 1/2 screen?

    I have installed oracle 10g xe R8 in oel 4 which is running on vmware. When i see the records in the table by giving query "SELECT * FROM table_name;" in plsql, then the row of an output shown goes automatically to second line after printing half scr

  • Formatting Doubles with Scientific Notation Depending on Exponent Size

    Hi there. I was just wondering if there was a better way to do the following: DecimalFormat fmt; if (v>=1.0E9 || v<=-1.0E9 || (v>-1.0E-8 && v<1.0E-8 && v!=0.0 && v!=-0.0))      fmt = new DecimalFormat("0.########E0"); else fmt = new DecimalFormat("0.