Adapter specific attributes - SOAP Adapter

Hi,
I am trying to use the adapter specific attributes of the receiver SOAP adapter. But I am not able to view the Dynamic configurations in sxi_monitor corresponding to this message. Any clue why!?
I read through the SOAP adapter help on help.sap.com,
<i>http://help.sap.com/saphelp_nw2004s/helpdata/en/69/a6fb3fea9df028e10000000a1550b0/frameset.htm</i>
Here it says:
<i>If you want to use header fields, set the relevant indicator for Variable Header. The technical names for the fields are XHeaderName1, XHeaderName2, XHeaderName3. The parameters are embedded in the HTTP request under the names you enter here.</i>
But I donot find an option where I can enter the names. Am I missing something here?
Regards,
Smitha.

Hi Smitha,
I did not try to use adapter-specific attributes with SOAP-adapter, but with mail-adapter. The documentation is quite similar, so I excpect similar results...
So as far as I understood, the parameters XHeaderName1, ... etc are for dynamic extension of the set of adapter-specific attributes. For example, if you want to add some more information in the message header, you can program an adapter module and you have now a guide how to name the additional attributes.
Usually, the "standard" adapter-specific attributes are starting with "S" (Sender) or "T" (Receiver). You can find the names in the documentation of the SOAP-adapter.
In order to use the adapter-specific attributes, you have to check both indicators (adapter-specific attributes, variable transport binding). If this still doesn't work, you should use OSS. In my scenario (mail adapter) this didn't work, too. The reason was, that there was a bug in the adapter metadata (Integration Repository) of SAP BASIS. There was a SAP note, where I could download the correct adapter metadata. Maybe you can find a SAP note for the SOAP Adapter.
Although this is probably not the final solution, I hope this guides you a step further.
Regards,
Torsten

Similar Messages

  • Multi-Message-split with ABAP mapping and adapter specific attributes

    Hi all,
    With <b>ABAP-Mapping I split 1 message to n messages</b>.
    So many files are generated in <b>file-Adapter</b>.
    Everything fine.
    But now I want the file names different using adapter specific attributes.
    It is not possible to use variable substitution and write the file name in payload because of receiver restrictions.
    I tried this with following similar coding in ABAP-Mapping:
    data: lt_records TYPE MPP_DYNAMIC_TAB.
          Loop.
          l_file_name = "payload-Inbound"-information
          ls_record-namespace = 'http://sap.com/xi/XI/System/File'.
          ls_record-name = 'FileName'.
          ls_record-value = l_file_name.  "l_file_name comes from inbound-payload
          append ls_record to lt_records.
         Endloop.
      CALL METHOD dynamic_configuration->set_all_records
        EXPORTING
          records = lt_records.
    If I start the interface I see in the monitoring the dynamic configuration with many entries for file-name in the the SOAP-Header mapping of the request message (following extract):
      <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
    - <!--  Mapping der Request-Message
      -->
    - <SAP:DynamicConfiguration xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="1">
      <SAP:Record namespace="http://sap.com/xi/XI/System/File" name="FileName">BPAADDRESS.XML</SAP:Record>
      <SAP:Record namespace="http://sap.com/xi/XI/System/File" name="FileName">BPABROKERROLE.XML</SAP:Record>
      <SAP:Record namespace="http://sap.com/xi/XI/System/File" name="FileName">BPACOMPANYSEGMENT.XML</SAP:Record>
      <SAP:Record namespace="http://sap.com/xi/XI/System/File" name="FileName">BPACUSTOMERROLE.XML</SAP:Record>
    The result is that <b>all files have the same file name</b> (last entry in dynamic configuration).
    Is it possible to write the adapter specific configuration in ABAP-mapping <u>for every single result message</u>??
    Thank you for your help,
    Florian

    Hi Florian,
    I've a different idea...I dont think its a "right solution" but just another work around..it involves a BPM...
    In your ABAP mapping..set the dynamic config with as many variables as number of different messages...i.e. use the variables like 'FileName1', 'FileName2'...'FileName6' instead of 'FileName'. But use the same namespace 'http://sap.com/xi/XI/System/File'
    Call the above mapping in a BPM and capture the individual messages and set the attribute 'FileName' from the values of 'FileName1' to 'FileName6' accordingly using Message Mapping and then send the message using the 'Send' step.
    before you try this, try using the variable names 'FileName1' ...'FileName6' in the receiver adapters...enable the ASMS. <b>I know we need to select which variables from the dynamic config to be used by the adapter by specifically selecting 'FileName', 'Directory' etc...but just give it a try and see if it works..</b>
    Or..instead of using a BPM..you can combine Henrique's idea...use Adapter module to set the value for 'FileName' from variables 'FileName1'...'FileName6' accordingly.
    hope I'm clear..lemme know if you have any questions..
    cheers
    praveen

  • Using Adapter-specific attributes in Mail adapter

    Hi,
    I try to use adapter-specific attributes in my Mail adapter. I set the "Use Adapter-Specific Message Attributes" indicator, but I do not get a result in the mapping and also in the SXMB_MONI the attributes are not visible.
    The documentation also refers to Variable Transport Binding indicator:<a href="http://help.sap.com/saphelp_nw04/helpdata/en/23/c093409c663228e10000000a1550b0/content.htm">http://help.sap.com/saphelp_nw04/helpdata/en/23/c093409c663228e10000000a1550b0/content.htm</a>
    Could this be the problem? I cannot find this indiciator! Does anyone know where I can find this indicator?
    Regards,
    Torsten

    Hi,
    The values for the parameters, set using adapter specific message attributes are available at runtime in the path http://sap.com/xi/XI/System/Mail.
    We need to write UDF's that can extract the values from this path.
    For Ex:
    DynamicConfiguration conf = (DynamicConfiguration) container.getTransformationParameters() .get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
    DynamicConfigurationKey key = DynamicConfigurationKey.create(
        “http://sap.com/xi/XI/System/File”,
        “FileName”);
    String valueOld = conf.get(key);
    if (valueOld != null) {
        String valueNew = valueOld.replaceAll(“input”,”output”);
        conf.put(key, valueNew);
    If you check Dynamic configuration in sxmb_moni, you would be able to find the values for all the attributes that have been set in the adapter.
    Regards,
    Smitha.

  • Adpater Specific Attribute Message

    Hi Experts,
    I am doing IDoc->XI -> file Scenario. I sending material master data to a third party. At the target side i need to create a file name of this type "Material + MATNR+Timestamp.txt". In that file name  "Material" is always constant and "MATNR" is dynamic, it will be fetched from payload and timestamp is also dynamic. How can i create this kind of file name at target side.
    I know i have to use  "Adpater Specific Attribute Message" but i dont know hw to do this. If some body know this please help out.
    Thanks in Advance,
    Venky

    Hi Yugandhar Kotha ,
    It is giving the following error
    Message processing failed. Cause: com.sap.aii.af.ra.ms.api.RecoverableException: Error during variable substitution: com.sap.aii.adapter.file.varsubst.VariableDataSourceException: The following variable was not found in the message payload: MATNR: com.sap.aii.adapter.file.configuration.DynamicConfigurationException: Error during variable substitution: com.sap.aii.adapter.file.varsubst.VariableDataSourceException: The following variable was not found in the message payload: MATNR
    In variable substitution table i gave
    MATNR payload:ZMAT_MN,1,IDOC,1,E1MARAM,1,MATNR,1
    Below i am sending the XSD structure please provide the payload path
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
         <xsd:element name="ZMAT_MN">
              <xsd:complexType>
                   <xsd:sequence>
                        <xsd:element name="IDOC" type="ZMATMAS.MATMAS05.ZMAT_MN" />
                   </xsd:sequence>
              </xsd:complexType>
         </xsd:element>
         <xsd:complexType name="ZMAT_MN.E1MARAM">
              <xsd:annotation>
                   <xsd:documentation>
                   Master material general data (MARA)
                   </xsd:documentation>
              </xsd:annotation>
              <xsd:sequence>
                   <xsd:element name="MSGFN" minOccurs="0">
                        <xsd:annotation>
                             <xsd:documentation>
                             Function
                             </xsd:documentation>
                        </xsd:annotation>
                        <xsd:simpleType>
                             <xsd:restriction base="xsd:string">
                                  <xsd:maxLength value="3" />
                             </xsd:restriction>
                        </xsd:simpleType>
                   </xsd:element>
                   <xsd:element name="MATNR" minOccurs="0">
                        <xsd:annotation>
                             <xsd:documentation>
                             Material Number
                             </xsd:documentation>
                        </xsd:annotation>
                        <xsd:simpleType>
                             <xsd:restriction base="xsd:string">
                                  <xsd:maxLength value="18" />
                             </xsd:restriction>
                        </xsd:simpleType>
                   </xsd:element>
                   <xsd:element name="ERSDA" minOccurs="0">
    Thanks,
    Venky

  • How to bind a specific attribute of an element to an input field

    HI,
    in my web shop application I create an overview page of the items dynamically in the wdDoModify Method. Each item has it's own transparent container. I do not use tables or row repeaters, because they did not fullfill my requirements.
    Now I have the problem to bind a specific attribute to an input field.
    I bind the value with following code:
    amountInput.bindValue(item.getAttributePointer("amount").getAttributeInfo())
    item is the element of the item to display. amount is the attribute with type integer.
    The problem is, that I have 4 Items on the screen. When I enter a value for amount, all amounts on the screen are the same. So I guess that the input field is not bound to the correct element.
    Has anybody an idea what I have done wrong? Or which string for bindValue do I have to use for example for an attribute of the 5th element in a node?
    Best regards,
    Peter

    Peter, you can set the context node to mutiple select, but you have to select it on item variable, like:
    item = wdContext.nodeXXX.getElementAt(1);
    amountInput.bindValue(item.getAttributePointer("amount").getAttributeInfo())
    item = wdContext.nodeXXX.getElementAt(2);
    amountInput2.bindValue(item.getAttributePointer("amount").getAttributeInfo())
    Regards,
    Edson Thomaz

  • Specific attributes for IDM implementation

    I am trying to integrate webcenter with Oracle IDM environment, to do the same i required to know the specific attributes for oracle webcenter users
    the input is required for the IDM team to create the schemas,
    Can anybody enlighten me about the same,

    Read this link and around: http://docs.oracle.com/cd/E21764_01/webcenter.1111/e12405/wcadm_security_id_store.htm#CFHJEJID
    Note, that you will not integrate "WebCenter", but rather "its LDAP".

  • IXML - Reading a specific tag/specific attribute

    Hi,
    I'm trying to get out a specific tag ans specific attribute from an xml string.
    I built my method based on BCCIIXMLT2 & BCCIIXMLT11 and Parsing XML file to Internal table., however it doesn't seem to work.
    I already tried 2 approach, none of them worked
    The loops are ended before the get_attributes method is called.
    My code:
    METHOD /eby/if_xml_output_writer~finish_element.
    * Based on program BCCIIXMLT2 & BCCIIXMLT11
    * \\ ======= iXML =======
      DATA:
        lr_ixml           TYPE REF TO if_ixml,
        lr_xml_doc        TYPE REF TO if_ixml_document,
        lr_node           TYPE REF TO if_ixml_node,
    *    lr_iterator       TYPE REF TO if_ixml_inline_iterator,
        lr_iterator       TYPE REF TO if_ixml_node_iterator,
        lr_nodemap        TYPE REF TO if_ixml_named_node_map,
        lr_stream_factory TYPE REF TO if_ixml_stream_factory,
        lr_istream        TYPE REF TO if_ixml_istream,
        lr_parser         TYPE REF TO if_ixml_parser,
        lr_nnmap          TYPE REF TO if_ixml_named_node_map,
        lr_attr           TYPE REF TO if_ixml_node,
        lc_name           TYPE string,
        lc_value          TYPE string,
        lc_prefix         TYPE string,
        li_type           TYPE i,
        li_indent         TYPE i,
        li_index          TYPE i,
        li_count          TYPE i.
    * // ======= iXML =======
    *=======================================================================
      CLASS     cl_ixml          DEFINITION LOAD.
    *=======================================================================
      CHECK i_parent IS INITIAL.
    *-- Create the main factory
      lr_ixml = cl_ixml=>create( ).
    *-- Create the initial document
      lr_xml_doc = lr_ixml->create_document( ).
    *-- Create the stream factory
      lr_stream_factory = lr_ixml->create_stream_factory( ).
    *-- Create a stream for the input (string)
      lr_istream = lr_stream_factory->create_istream_cstring( i_input ).
    *-- Create the parser
    lr_parser = lr_ixml->create_parser( stream_factory = lr_stream_factory
                                         istream        = lr_istream
                                         document       = lr_xml_doc ).
    *-- We don't need the stream any more, so let's close it...
      lr_istream->close( ).
    * 1st attempt
    *  lr_node = lr_xml_doc.
    *  lr_iterator = lr_node->create_inline_iterator( ).
    *  li_type     = lr_iterator->get_type( ).
    *  WHILE li_type NE 0.
    *    li_indent = lr_iterator->get_height( ) * 2.
    *    CASE li_type.
    *      WHEN if_ixml_node=>co_node_element.
    *        lr_nnmap = lr_iterator->get_attributes( ).
    *        li_index = 0.
    *        li_count  = lr_nnmap->get_length( ).
    *        WHILE li_index < li_count.
    *          lr_attr  = lr_nnmap->get_item( li_index ).
    *          lc_name  = lr_attr->get_name( ).
    *          lc_value = lr_attr->get_value( ).
    *          li_index = li_index + 1.
    *        ENDWHILE.
    *    ENDCASE.
    *    li_type = lr_iterator->advance( ).
    *  ENDWHILE.
    * 2nd attempt
      lr_node ?= lr_xml_doc.
    * Create a node iterator
      lr_iterator = lr_node->create_iterator( ).
    * Get current node
      lr_node = lr_iterator->get_next( ).
    * Loop over all nodes
      WHILE NOT lr_node IS INITIAL.
        li_indent = lr_node->get_height( ) * 2.
        li_indent = li_indent + 20.
        CASE lr_node->get_type( ).
          WHEN if_ixml_node=>co_node_element.
    *       Element node
            lc_name = lr_node->get_name( ).
            lr_nodemap = lr_node->get_attributes( ).
            IF NOT lr_nodemap IS INITIAL.
    *         Attributes
              li_count = lr_nodemap->get_length( ).
              DO li_count TIMES.
                li_index  = sy-index - 1.
                lr_attr   = lr_nodemap->get_item( li_index ).
                lc_name   = lr_attr->get_name( ).
                lc_prefix = lr_attr->get_namespace_prefix( ).
                lc_value  = lr_attr->get_value( ).
              ENDDO.
            ENDIF.
          WHEN if_ixml_node=>co_node_text OR
               if_ixml_node=>co_node_cdata_section.
    *       Text node
            lc_value = lr_node->get_value( ).
        ENDCASE.
    *   Advance to next node
        lr_node = lr_iterator->get_next( ).
      ENDWHILE.
    ENDMETHOD.
    Any idea what could be wrong?
    Thanks in advance,
    Peter

    Thanks!
    Unfortunately my code should also work on 46C, so XLST is not an option. Anyway I used some code from SAPLink  and it works fine now.
    *-- Create the main factory
      lr_ixml = cl_ixml=>create( ).
    *-- Create the initial document
      lr_xml_doc = lr_ixml->create_document( ).
    *-- Create the stream factory
      lr_stream_factory = lr_ixml->create_stream_factory( ).
    *-- Create a stream for the input (string)
      lr_istream = lr_stream_factory->create_istream_cstring( i_input ).
    *-- Create the parser
      lr_parser = lr_ixml->create_parser(
                          stream_factory = lr_stream_factory
                          istream        = lr_istream
                          document       = lr_xml_doc ).
    *-- Parse the stream
      lr_parser->parse( ).
    *-- We don't need the stream any more, so let's close it...
      CLEAR lr_istream.
    * Find the tag
      lr_rootnode = lr_xml_doc->find_from_name( c_tag_structureddocument ).
      lr_attributelist = lr_rootnode->get_attributes( ).
      lr_nodeiterator  = lr_attributelist->create_iterator( ).
      lr_attributenode = lr_nodeiterator->get_next( ).
    * Find the attribute
      WHILE lr_attributenode IS NOT INITIAL.
        lc_name = lr_attributenode->get_name( ).
        IF lc_name = c_attribute_id.
          lc_value = lr_attributenode->get_value( ).
          EXIT.
        ENDIF.
        lr_attributenode = lr_nodeiterator->get_next( ).
      ENDWHILE.
      mc_output = lc_value.

  • RADIUS and Vendor-Specific attributes

    Hi,
    I'm trying to add a vendor specific attribute (Cisco AV Pair) to BMAS
    (NMAS 3.1.2 on NetWare 6.5 SP6). I can add any generic attribute I
    want, but any of the vendor-specific attributes are not sent back in the
    radius access-accept packet. Is there some configuration change I need
    to make to support vendor specific attributes? They all show up in
    ConsoleOne, I can add them, and they are saved when I hit OK.
    Thanks for any suggestions!
    Greg

    In article <UG2Jm.1195$[email protected]>, Greg Palumbo
    wrote:
    > I read the other two recent threads on this, it does sort of sound like
    > a snapin issue, but those are usually under the 1.2\snapins directory I
    > thought. what about installing a fresh copy of C1 on the C:\ drive from
    > the BMAS CD or from NW65SP7? Also, wouldn't all the replaced sys/public
    > files be in SYS/SYSTEM:\BACKSP7? Maybe something like Beyond Compare or
    > WinMerge could flag all the changed files easily...
    >
    My latest thinking is that this is related to security. The failing
    attribute contains an encryption of the DAS client password. I'm assuming
    that ConsoleOne relies on some background process to do the encryption, and
    that between SP7 and SP8, it changed. The new attributes are longer than
    the old ones, so the snapin-related issue may simply be that it cannot read
    what was stored.
    I don't know if there is a particular security-related component that can
    be reversed to allow changes to the DAS object, then updated again to put
    things back to SP8.
    Craig Johnson
    Novell Support Connection SysOp
    *** For a current patch list, tips, handy files and books on
    BorderManager, go to http://www.craigjconsulting.com ***

  • Customer-specific attributes (properties) for processes?

    Hello community,
    I already know how to define customer-specific attributes (properties) for documents stored in Solution Manager using the Document Modelling Workbench. For documents, everything works fine, so far.
    But: I also want to define customer-specific properties for processes. Is this possible? If yes, how do I do that? I cannot find any related configuration options -- neither in SPRO nor in Solution Manager's own project configuration area.
    Thanks in advance,
    Thomas

    Hi,
    In SPRO, naviagete to SAP Solution Manager Implementation Guide -> SAP Solution Manager -> Scenario-Specific Settings -> Implementation/Upgrade -> Blueprint and Configuration -> Object Attributes -> Definition of Customer Attributes for Object Types
    Best regards,
    Jacques.

  • Updating only specific attributes.

    Hi,
    I am using JDEV 11.1.2.1.0
    How do I update only specific attributes in a VO/EO ?
    I have already selected the specific row in the AM and set the attribute...but how do I update the changes ?
    thanks in advance.

    To persist the changes to the db, you have to commit transaction.
    Timo

  • Changelog configuration to audit specific attributes changes

    Hi,
    I am trying to configure changelog. The objective is to create a file having the change in specific attribute values for adds and mods. I configured the same and it creates the file also; but I don't see changes in that file and under the columns e.g. changeType and Firstname it shows the value 'T'.
    Has anybody used the change log file and can guide me how to configure the same to audit chchanges on specific attriutes and redirectng to the file. Also can we also get old value and new value in that output file.

    Hi,
    The steps what you performed to enable audit logging were just for every cmdlet and every parameter in the organization, not for the user. So, the normal user who had run the cmdlet or parameter would be recorded on output.
    I recommend you refer to the following article :
    Administrator Audit Logging
    Hope this helps!
    Thanks.
    Niko Cheng
    TechNet Community Support

  • Check specific attributes from common  views

    Is there a was to only checkout certain attributes from a common view?
    For example if I am only interested in checking out the lastLogon , userAccountControl and Description (AD) attributes from the "user" view. How would I do so with out checking out the entire "user" view?
    During a workflow I wish to check out the specific attributes and then make my changes and then check the object back in.
    Please let me know if this is possible.
    Another example)
    Currently if i wanted to unlock all acount from a workflow I would use the following code. But I am really only using the "account locked" attribute so if there were a way to limit the view checkout to the "accountlocked" attribute then I could probably streamline the process.
    <Activity id='3' name='UnlockAD'>
            <Comments>&#xA;          On Success do a global unlock .&#xA;        </Comments>
            <Action id='0' application='com.waveset.session.WorkflowServices'>
              <Argument name='op' value='checkoutView'/>
              <Argument name='type' value='Unlock'/>
              <Argument name='id' value='$(accountId)'/>
              <Argument name='subject' value='admin_user'/>
              <Argument name='authorized' value='true'/>
              <Return from='view' to='uview'/>
            </Action>
            <Action id='1'>
              <expression>
                <block>
                  <set>
                    <ref>uview.global.accountLocked</ref>
                    <s>false</s>
                  </set>
                </block>
              </expression>
            </Action>
            <Action id='2' application='com.waveset.session.WorkflowServices'>
              <Argument name='op' value='checkinView'/>
              <Argument name='subject' value='admin_user'/>
              <Argument name='authorized' value='true'/>
              <Argument name='view' value='$(myview)'/>
            </Action>
            <Transition to='Notify User'/>
          </Activity>

    sec_tk wrote:
    Checking out a user view will always get you the whole view, you cannot get a partial view. What would be possible is coding your own view, but that requires a lot of hacking and I don't think it's worth the effort.Sorry to jump in late but just for clarification of others who happen to stumble on this by a search you most definitely can checkout a view with only partial data returned. It's one of the optimization techniques recommended to speed up workflows.
    See [http://docs.sun.com/app/docs/doc/820-5823/ahyci?l=en&a=view&q=TargetResources] and use the TargetResources argument when checking out a view.So your checkout view action would look like this:
    <Action application='com.waveset.session.WorkflowServices'>
        <Variable name='view'/>
        <Argument name='op' value='checkoutView'/>
        <Argument name='type' value='User'/>
        <Argument name='id' value='$(WF_CASE_OWNER)'/>
        <Argument name='Form' value='Empty Form'/>
        <Argument name='TargetResources'>
            <list>
                <String>Resource 1</String>
                <String>Resource 2</String>
            </list>
        </Argument>
        <Return from='view' to='user'/>
    </Action>

  • Can I grant permission to write in specific attributes using security groups

    Hi
    I Created GPO that write the computer name in the one of the user attribute "comment attribute " when  he logged on
    then i went to OU and grant self delegate permissions to allow the users of that OU to write on "comment attribute
    but this did not work for the users how have been disabled form inheritance
    so instead of grant delegate permissions to the OU
    Can I grant permission to write in specific attribute "comment attribute " using security groups "Domain User "??

    Hi,
    Open Active Directory Users and Computers.
    On the View menu, select Advanced Features.
    Right-click the object for which you want to assign, change, or remove permissions, and then click Properties.
    On the Security tab, click Advanced to view all of the permission entries that exist for the object.
    To assign new permissions on an object or attribute, click Add.
    Type the name of the group, computer, or user that you want to add, and then clickOK.
    In the Permission Entry for ObjectName dialog
    box, on the Object and Properties tabs,
    select or clear the Allow or Deny check
    boxes, as appropriate.
    http://technet.microsoft.com/en-us/library/cc757520(v=ws.10).aspx
    Regards,
    Rafic
    If you found this post helpful, please give it a "Helpful" vote.
    If it answered your question, remember to mark it as an "Answer".
    This posting is provided "AS IS" with no warranties and confers no rights! Always test ANY suggestion in a test environment before implementing!

  • Component attributes and render specific attributes

    What should be considered as component's attributes while what should be considered as renderer specific attributes.
    Is it correct to think that behavioural properties of a components have been abstracted out as components properties?
    Is there any example or a link which points to this?
    Thanks,
    Chris

    Yes, that's basically it. Note also that a custom subclass of a component can define JavaBean accessors for renderer-specific attributes, and that the Renderer can still safely use the getAttributes() Map to retrieve the attributes, because bean properties are automatically available as well in this Map. You might want to read:
    http://forum.java.sun.com/thread.jsp?forum=427&thread=532578&tstart=15&trange=15
    for more info on that.
    -- Adam Winer (EG member)

  • Root node contains specific attribute could make the XSLT transfrom fail

    I have to convert EJB deploy desciptor in my project, but I found that XML format transfrom with Apache Xalan will fail when the root node contants some specific attribute.
    Here is an example:
    Input XML file:
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <catalog xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2eehttp://java.sun.com/xml/ns/j2ee/ejb-jar_2_1.xsd"
    version="2.1">
    <cd>
    <title>Empire Burlesque</title>
    <artist>Bob Dylan</artist>
    <country>USA</country>
    <company>Columbia</company>
    <price>10.90</price>
    <year>1985</year>
    </cd>
    <cd>
    <title>Hide your heart</title>
    <artist>Bonnie Tyler</artist>
    <country>UK</country>
    <company>CBS Records</company>
    <price>9.90</price>
    <year>1988</year>
    </cd>
    </catalog>
    XSL transfer file:
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <xsl:stylesheet version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method='html' version='1.0' encoding='UTF-8' indent='yes'/>
    <xsl:template match="/">
    <html>
    <body>
    My CD Collection
    <table border="1">
    <tr bgcolor="#9acd32">
    <th align="left">Title</th>
    <th align="left">Artist</th>
    </tr>
    <xsl:for-each select="catalog/cd">
    <tr>
    <td><xsl:value-of select="title"/></td>
    <td><xsl:value-of select="artist"/></td>
    </tr>
    </xsl:for-each>
    </table>
    </body>
    </html>
    </xsl:template>
    </xsl:stylesheet>
    The XML transfrom will fail in this way.
    But if I remove the attributes in the input xml's root node, such as this:
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <catalog>
    <cd>
    The transform operation will succeed.
    Does anyone know the reason?

    In your xslt you will have to make sure to reference the elements using the http://java.sun.com/xml/ns/j2ee namespace.
    Change your XSLT to be something like this and it should work:
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <xsl:stylesheet version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:j2ee="http://java.sun.com/xml/ns/j2ee">
    <xsl:output method='html' version='1.0' encoding='UTF-8' indent='yes'/>
    <xsl:template match="/">
    <html>
    <body>
    My CD Collection
    <table border="1">
    <tr bgcolor="#9acd32">
    <th align="left">Title</th>
    <th align="left">Artist</th>
    </tr>
    <xsl:for-each select="j2ee:catalog/j2ee:cd">
    <tr>
    <td><xsl:value-of select="j2ee:title"/></td>
    <td><xsl:value-of select="j2ee:artist"/></td>
    </tr>
    </xsl:for-each>
    </table>
    </body>
    </html>
    </xsl:template>
    </xsl:stylesheet>

Maybe you are looking for

  • Problem in RAR Background Jobs

    Hi Experts, We are facing a problem during Batch Risk Analysis- Batch Risk Parameters- System- RP1 Options- User Role Profile, Critical Actions and Role/Profile Analysis Management reports User and Role permission Level risks analysis run fine, but a

  • Opening an attachment in Edit mode

    Hi All, I would like to be able to open Word attachments in Edit mode automatically (when the attachment is double-clicked), rather than right-click > Edit. Is this possible? Thanks!

  • Recompiling attached libraries...

    Hello everybody, I'm using the FileUpload utility to upload files from client to user in oracle environment, i add the library that came with it, at runtime i got the error ora 06508, i searched the web and found this note: For Oracle Application Ser

  • Batch file question.

    I am not sure this is a place to post my question. but i don't know where to post it , so i decide to post here. yeah, I have a question about is that possible to creat a batch file to open the command prompt? like create a batch file and when you do

  • Changing icons in ALV tree

    Guys this is driving me crazy, i want to switch my icons in the entire tree  once i click on a function button, i did this code but it does update the icons , however i get sy-subrc = 0 once I execute method change_node  . what im doing wrong ? what