Specifying empty tag style

Hi all. I'm using dbms_xmlquery.useNullAttributeIndicator, and for a reason I'd rather not go into I need the tags to be separate open-close tags (<tag></tag>) instead of the more elegant <tag/> tag. I'd also like to suppress the NULL="TRUE" attribute if possible. I'm open to changing our routine to use DBMS_XMLGEN if it helps in the above. Many thanks in advance for your help.

Hi,
With DBMS_XMLGEN, you can get rid of the NULL attribute, but empty tags will appear in the short form :
SQL> set serveroutput on
SQL> DECLARE
  2    ctx    dbms_xmlgen.ctxHandle;
  3    sqlstr varchar2(4000) := 'SELECT * FROM scott.emp WHERE rownum = 1';
  4    res    clob;
  5  BEGIN
  6    ctx := dbms_xmlgen.newContext(sqlstr);
  7    dbms_xmlgen.setNullHandling(ctx, dbms_xmlgen.EMPTY_TAG);
  8    res := dbms_xmlgen.getXML(ctx);
  9    dbms_xmlgen.closeContext(ctx);
10    dbms_output.put_line(res);
11  END;
12  /
<?xml version="1.0"?>
<ROWSET>
<ROW>
  <EMPNO>7369</EMPNO>
  <ENAME>SMITH</ENAME>
  <JOB>CLERK</JOB>
  <MGR>7902</MGR>
  <HIREDATE>17/12/80</HIREDATE>
  <SAL>800</SAL>
  <COMM/>
  <DEPTNO>20</DEPTNO>
</ROW>
</ROWSET>
PL/SQL procedure successfully completed
On the latest release (11.2), and only for particular cases, you might be able to do what you want with XQuery.
See § Oracle XQuery Extension-Expression Pragmas on this page :
http://download.oracle.com/docs/cd/E11882_01/appdev.112/e16659/xdb_xquery.htm
Here's also an example :
SELECT XMLSerialize(
document
XMLQuery(
  '(#ora:view_on_null empty #)
   <ROWSET>
    for $i in fn:collection("oradb:/SCOTT/EMP")/ROW
    where $i/EMPNO = 7566
    return $i
   </ROWSET>
  returning content
as clob
FROM dual;
<ROWSET><ROW><EMPNO>7566</EMPNO><ENAME>JONES</ENAME><JOB>MANAGER</JOB><MGR>7839</MGR><HIREDATE>1981-04-02</HIREDATE><SAL>2975</SAL><COMM></COMM><DEPTNO>20</DEPTNO></ROW></ROWSET>

Similar Messages

  • Is there a way to modify the style sheet so that it transforms an XML document with empty tags as tag / ?

    I have extracted some code from codeproject to
    reindent an XML document. Does anyone know how I can modify the stylesheet to make it so that the transform of an XML file will result in empty tags showing up as <tag /> instead of <tag></tag>?
    // http://www.codeproject.com/Articles/43309/How-to-create-a-simple-XML-file-using-MSXML-in-C
    MSXML2::IXMLDOMDocumentPtr FormatDOMDocument(MSXML2::IXMLDOMDocumentPtr pDoc)
    LPCSTR const static szStyleSheet =
    R"!(<?xml version="1.0" encoding="utf-8"?>)!"
    R"!(<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">)!"
    R"!( <xsl:output method="xml" indent="yes"/>)!"
    R"!( <xsl:template match="@* | node()">)!"
    R"!( <xsl:copy>)!"
    R"!( <xsl:apply-templates select="@* | node()"/>)!"
    R"!( </xsl:copy>)!"
    R"!( </xsl:template>)!"
    R"!(</xsl:stylesheet>)!";
    MSXML2::IXMLDOMDocumentPtr pXmlStyleSheet;
    pXmlStyleSheet.CreateInstance(__uuidof(MSXML2::DOMDocument60));
    pXmlStyleSheet->loadXML(szStyleSheet);
    MSXML2::IXMLDOMDocumentPtr pXmlFormattedDoc;
    pXmlFormattedDoc.CreateInstance(__uuidof(MSXML2::DOMDocument60));
    CComPtr<IDispatch> pDispatch;
    HRESULT hr = pXmlFormattedDoc->QueryInterface(IID_IDispatch, (void**)&pDispatch);
    if (SUCCEEDED(hr))
    _variant_t vtOutObject;
    vtOutObject.vt = VT_DISPATCH;
    vtOutObject.pdispVal = pDispatch;
    vtOutObject.pdispVal->AddRef();
    hr = pDoc->transformNodeToObject(pXmlStyleSheet, vtOutObject);
    //By default it is writing the encoding = UTF-16. Let us change the encoding to UTF-8
    // <?xml version="1.0" encoding="UTF-8"?>
    MSXML2::IXMLDOMNodePtr pXMLFirstChild = pXmlFormattedDoc->GetfirstChild();
    // A map of the a attributes (vesrsion, encoding) values (1.0, UTF-8) pair
    MSXML2::IXMLDOMNamedNodeMapPtr pXMLAttributeMap = pXMLFirstChild->Getattributes();
    MSXML2::IXMLDOMNodePtr pXMLEncodNode = pXMLAttributeMap->getNamedItem(_T("encoding"));
    pXMLEncodNode->PutnodeValue(_T("UTF-8")); //encoding = UTF-8
    return pXmlFormattedDoc;
    Or, if there is some other method for reindenting a MSXML2::IXMLDOMDocumentPtr object where I can specify how I want empty tags to be stored, that would be great too.  However, I don't want it to lose its status of an MSXML2::IXMLDOMDocumentPtr object.
     I.e. I would like to still perform operations on the result as if it was still an MSXML2::IXMLDOMDocumentPtr object.
    Thanks,
    A
    Adrian

    If anyone is interested, I got an answer on StackOverflow
    here.
    Adrian

  • Marshalling HashMap with JAXB 2.0 - empty tags & ill schema

    Hi all,
    I expected JAXB 2.0 to be capable to handle basic classes like HashMap, but it does not look so. I have two classes: SimpleNegotiationManager which has a property HashMap in which are stored the instances of SimpleInitiatedConversation:
    package xml;
    import javax.xml.bind.annotation.*;
    import java.util.HashMap;
    @XmlAccessorType(AccessType.FIELD)
    @XmlRootElement
    public class SimpleNegotiationManager {
        @XmlElement
        protected HashMap<String, SimpleInitiatedConversation> initiatedConversations;
        public SimpleNegotiationManager() {
        public HashMap<String, SimpleInitiatedConversation> getInitiatedConversations() {
            if (initiatedConversations == null) {
                initiatedConversations = new HashMap();
            return initiatedConversations;
        public void setInitiatedConversations(HashMap<String, SimpleInitiatedConversation> initiatedConversations) {
            this.initiatedConversations = initiatedConversations;
    }and
    package xml;
    import javax.xml.bind.annotation.*;
    import java.util.ArrayList;
    import java.util.List;
    @XmlAccessorType(AccessType.FIELD)
    @XmlType
    public class SimpleInitiatedConversation {
        @XmlElement
        protected List<String> messages;
        protected String conversationID;
        protected int protocolState;
        public SimpleInitiatedConversation() {
        public List<String> getMessages() {
            if (messages == null) {
                messages = new ArrayList();
            return messages;
        public void setMessages(List<String> messages) {
            this.messages = messages;
        public int getProtocolState() {
            return protocolState;
        public void setProtocolState(int protocolState) {
            this.protocolState = protocolState;
        public String getConversationID() {
            return conversationID;
        public void setConversationID(String conversationID) {
            this.conversationID = conversationID;
    }When I marshalled SimpleNegotiationManager while the HashMap was filled with several <String,SimpleInitiatedConversation> entries, in the output were empty tags initiatedConversations:
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <simpleNegotiationManager>
      <initiatedConversations>
      </initiatedConversations>
    </simpleNegotiationManager>When I used schemagen to generate a schema, it produced:
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <xs:schema version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema">
      <xs:complexType name="simpleInitiatedConversation">
        <xs:sequence>
          <xs:element name="messages" type="xs:string" maxOccurs="unbounded" minOccurs="0"/>
          <xs:element name="conversationID" type="xs:string" minOccurs="0"/>
          <xs:element name="protocolState" type="xs:int"/>
        </xs:sequence>
      </xs:complexType>
      <xs:element name="simpleNegotiationManager" type="simpleNegotiationManager"/>
      <xs:complexType name="simpleNegotiationManager">
        <xs:sequence>
          <xs:element name="initiatedConversations" type="hashMap" minOccurs="0"/>
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="hashMap">
        <xs:complexContent>
          <xs:extension base="abstractMap">
            <xs:sequence/>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="abstractMap" abstract="true"/>
    </xs:schema>Particularly the description of HashMap seems ill - there is not specified that the HashMap has keys String and values SimpleInitiatedConversation.
    Unfortunatelly, the j2s-xmlAdapter-field example available with JAXB 2.0 is more complicated than I need. I just need to store/load HashMap into/from XML and I do not care what it looks like. Is it possible to avoid extending XmlJavaTypeAdaptor for a simple storing a HashMap into XML? Perhaps I use improper annotations in the source code, but I cannot get it working. Any clue?

    Ok i figured out one way of doing this by using some classes from JAXP...
    SchemaFactory sf = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
    Schema s = null;
    try{
        s = sf.newSchema(new File("Sources/schema/test.xsd"));                    
    }catch(Exception e){
        System.err.println("Exception e: " + e.getMessage());
    marshaller.setSchema(s);
    //MyValidationHandler class implements the ValidationEventHandler interface
    MyValidationHandler gv = new MyValidationHandler();
    marshaller.setEventHandler(gv);If anyone has something to add let me know!!

  • Empty Collections and Empty Tags

    It seems that empty collections from a cast or cursor result in an empty tag. For example, the following sql:select work.work_id medlineid,
    cursor(
    select
    databankname,
    db.accessionnumberlist_ref.accessionnumberlist accessionnumberlist
    from table(dbl.databanks) db
    order by databankname) databanklist,
    cast( multiset (
    select chemical_t(
    wrkchm.cas_registry_number,
    wrkchm.term)
    from work_chemicals wrkchm
    where wrkchm.work_id=work.work_id
    order by wrkchm.term) as chemicals_t) chemicallist
    from
    works work,
    databanklist_t_v dbl
    where
    work.work_id = 96264942
    and work.work_id = dbl.work_id(+)results in the following XML:<medlinecitationset>
    <medlinecitation num="1">
    <medlineid>96264942</medlineid>
    <databanklist/>
    <chemicallist/>
    </medlinecitation>
    </medlinecitationset>Is there a way to not have these empty tags appear?
    Thanks! -- John.
    null

    David, this is about understanding the use of, and differencies between tags and collections. This is a bit hard for many new users.
    First of all searching for collections and tags can *not* be done simultaneously. You can either work with one collection only, or you can search for pictures with one or more tags.
    Next collections should be used as either temporary work sets or for special occasions like specific vacations, trips or birthdays, e.g. "Anna 5 years". You say you have a collection named "Churches". I think would have made a TAG called "Churches" instead, because a tag is for general searches that can be combined. On the other hand I might have made a collection called "Church visits July 2005" or "Summer vacation 2005" or the like.
    Another difference is that pictures in a collection can be sorted manually by drag & drop, while pictures found via tags always are shown in the order chosen in the Photo Browser Arrangement box shown bottom left in the Organizer.

  • Not inlcude empty tag while invoking service from ESB

    The ESB receives a request with input xml which contains some empty tag. while ESB invokes the actual services the empty tags should not be included. can any one help how to achieve this?

    define that tag as optional in schema and don't map that element. This should help you.
    -Ramana.

  • How to remove empty tags respecting the schema contraints?

    Hi,
    I'm generating an XML document with XSLT. This document have some empty tags. My question is about to remove all empty tags only if they are defined as optionnals in the schema.
    Is this possible with the DOM?
    Thanks in advance,
    Philippe

    With DOM3 validation api, elements/attributes may be checked if they may be removed.
    -Check if the element is empty; getFirstChild() method returns null.
    -Check if the element may be removed with DOM 3 Validation API.

  • How to remove empty tags from XML

    Hello,
    I have a XML file which contains some empty tags and some values with "?". I need to remove all empty tags and tags which have a value "?".
    Sample Data:
    <a>
    <b></b>
    <c> Hello </c>
    <d>world ?</d>
    <e>oracle</e>
    </a>
    Expected result:
    <a>
    <c> Hello </c>
    <e>oracle</e>
    </a>
    Thank you for your time.
    Thanks,
    Edited by: 850749 on Apr 7, 2011 6:25 PM

    Dear Odie,
    May I make your example a bit more complicated by adding an additional complexType, please:
    ---Original ----
    <DEPT>
    <EMPID>1</EMPID>
    <EMPNAME>Martin Chadderton</EMPNAME>
    <SALARY>??</SALARY>
    <SALARYq></SALARYq>
    </DEPT>
    ----- New ----
    <DEPT>
    <EMPID>1</EMPID>
    <EMPNAME>Martin Chadderton</EMPNAME>
    <SALARY>??</SALARY>
    <SALARYq></SALARYq>
    <EMPLMNT_HISTORY>
    <DEVISION>1</DEVISION>
    <FROM_DATE>2011-01-01 </FROM_DATE>
    <TO_DATE></TO_DATE>
    </EMPLMNT_HISTORY>
    </DEPT>
    Your solution works perfectly for <SALARY>, but how would you suggest also to deal with <TO_DATE> ?
    Massive thanks for your help!
    N.B. Just to emphasise, in my case I have 3 levels (complexType > complexType > complexType) and many elements and I would like to know if there is any generic option to say
    to remove all the empty elements from the result, as it causes to the SSJ (Systinet) Webservice to crash.

  • XML: empty tag issue

    I use Transformer class to convert xml Document into string representation:
    StringWriter sw = new StringWriter();     
    TransformerFactory transFactory = TransformerFactory.newInstance();
    Transformer transformer = transFactory.newTransformer();
    transformer.setOutputProperty(OutputKeys.METHOD, "xml");
    transformer.setParameter(OutputKeys.ENCODING, "UTF-8");
    transformer.transform(new DOMSource(doc), new StreamResult(sw));
    but if the content of the tag is empty, the output is in this format: <tag />. Can someone know how to get the following format instead: <tag></tag>?
    Thanks,

    I suggest that you write a specific function to translate the string with auto-close tags to empty tags instead. It is not very difficult to do and you can look at [http://sourceforge.net/projects/light-html2xml|http://sourceforge.net/projects/light-html2xml] where you will find a similar java function to convert HTML to well-formed XML.

  • How to delete empty tags after xml-import

    Hello collegues,
    I'm totally new in this forum so excuse me if I make a mistake, but I've a little question.
    I've imported text and images with a xml-import but sometimes empty tags (the colored invisible blocks) are in my text, with the result that I can't Find/Change on double-returns.
    Does anybody know an awnser to this matter? I would love to write an apple-script that will find/change this so i don't have to look after all my pages.
    Thank you very much in advance.

    ThePictureCreator wrote:
    ...I can't Find/Change on double-returns.
    What's your search query? I think you should be able to, with either a grep find of "\r+" or a normal text find of "^p^p". InDesign pretends like the tag-holding characters aren't there for the purpose of search. But you will lose the empty elements along with the extra returns. Maybe that is the problem?
    Jeff

  • Not getting empty tags in XML output

    Hello,
    I am using DBMS_XMLQuery.getXML function and cusor function in my select statement to generate XML documents. If the column value is null, the XML document is not generating a empty tag. How do I generate empty tags?
    My query is :-
    SELECT
    MSG_NAME ,MSG_DATE, BATCH_ID,
    cursor (SELECT ACTION_CODE,PART_NUMBER,
    ITEM_DESCRIPTION,ITEM_STATUS
    UOM,CONVERSIONS,INSPECTION_FLG
    FROM ITEM_OUT ITEM
    WHERE ITEM.BATCH_ID= ECF.MSG_BATCH_ID
    ) as item_header
    FROM FILE_CONTROL ECF
    null

    You need to set the option to use a null indicator. By default, null values omit their elements. With the null indicator, they are included as empty elements with a NULL="Y" attribute flag.

  • How to remove empty tag.

    Hi,
    I have a scenario IDOC-XI-JDBC
    From IDOC we are using change pointers and when something has been changed then those fields are being sent out but other few empty fields were coming out and to avoid that I used mapWithDefault to avoid the empty tags as  target system used to error out.
    But now when any field is empty coming from change pointer is also being caught in mapWithDefault....whereas it is expected to send blank.
    Can anyone of you suggest any solution.
    Regards
    Ria

    Hi Ria,
    You can use if without else and check the field exist or not in the source and then map it to target.
    This is a bit tricky & if you dont feel comfortable with it, then use advanced UDF, and explicitely check ResultList.SUPPRESS object and remove it in UDF and form an output stream.
    You can use any of the two.
    Regards,
    Shri.
    <removed by moderator>
    Edited by: Mike Pokraka on Jul 28, 2008 5:05 PM

  • Validate empty tags using xquery

    Hi All,
    I have a question regarding xquery flwor exrpession. My scenarion is I need to validate an xml input file wether one of its elements is empty so I created an xquery to validate. However, I receive an error when I try to make an input file that has a repeating element.
    Below is my xquery for validating empty tags:
    declare namespace cred="http://www.pldt.com.ph/eai/service/component/CreditService/";
    declare namespace com="http://www.pldt.com.ph/eai/Common";
    declare variable $inputdata as element(cred:PushQuote) external;
    let $QuoteNumber := data($inputdata/PushQuote/com:QuoteNumber)
    let $AccountNumber := data($inputdata/PushQuote/com:CustomerAccountNumber)
    let $QuoteLineItemList := $inputdata/PushQuote/com:LineItemList
    for $data in $inputdata
    return
    if (fn:string-length($QuoteNumber) > 0 and
    fn:string-length($AccountNumber) > 0)
    then
    for $quoteLineItem in $QuoteLineItemList
    return
    if (fn:string-length(data($quoteLineItem/com:QuoteLineItem/com:LineNumber)) > 0 and
    fn:string-length(data($quoteLineItem/com:QuoteLineItem/com:ProductCatalogId)) > 0 and
    fn:string-length(data($quoteLineItem/com:QuoteLineItem/com:Product)) > 0 and
    fn:string-length(data($quoteLineItem/com:QuoteLineItem/com:Quantity)) > 0 and
    fn:string-length(data($quoteLineItem/com:QuoteLineItem/com:Mrc)) > 0 and
    fn:string-length(data($quoteLineItem/com:QuoteLineItem/com:Currency)) > 0 and
    fn:string-length(data($quoteLineItem/com:QuoteLineItem/com:LastUpdateDate)) > 0 and
    fn:string-length(data($quoteLineItem/com:QuoteLineItem/com:LastUpdatedBy)))
    then
    "0"
    else
    "1"
    else
    "1"
    Below is my input xml document:
    <cred:PushQuote xmlns:com="http://www.pldt.com.ph/eai/Common" xmlns:cred="http://www.pldt.com.ph/eai/service/component/CreditService/">
    <PushQuote>
    <com:QuoteNumber>ZXCV-233</com:QuoteNumber>
    <com:CustomerAccountNumber>1213654889</com:CustomerAccountNumber>
    <!--Optional:-->
    <com:LineItemList>
    *<!--1 or more repetitions:-->*
    <com:QuoteLineItem>
    <com:LineNumber>3</com:LineNumber>
    <com:ProductCatalogId>string</com:ProductCatalogId>
    <com:Product>asdf</com:Product>
    <com:Quantity>string</com:Quantity>
    <com:Mrc>3</com:Mrc>
    <com:Currency>USD</com:Currency>
    <com:LastUpdateDate>string</com:LastUpdateDate>
    <com:LastUpdatedBy>string</com:LastUpdatedBy>
    </com:QuoteLineItem>
    <com:QuoteLineItem>
    <com:LineNumber>3</com:LineNumber>
    <com:ProductCatalogId>string</com:ProductCatalogId>
    <com:Product>1234</com:Product>
    <com:Quantity>string</com:Quantity>
    <com:Mrc>3</com:Mrc>
    <com:Currency>USD</com:Currency>
    <com:LastUpdateDate>string</com:LastUpdateDate>
    <com:LastUpdatedBy>string</com:LastUpdatedBy>
    </com:QuoteLineItem>
    <com:QuoteLineItem>
    <com:LineNumber>3</com:LineNumber>
    <com:ProductCatalogId>string</com:ProductCatalogId>
    <com:Product></com:Product>
    <com:Quantity>string</com:Quantity>
    <com:Mrc>3</com:Mrc>
    <com:Currency>USD</com:Currency>
    <com:LastUpdateDate>string</com:LastUpdateDate>
    <com:LastUpdatedBy>string</com:LastUpdatedBy>
    </com:QuoteLineItem>          
    </com:LineItemList>
    </PushQuote>
    </cred:PushQuote>

    atheek1 wrote:
    Try this:
    <ResultDoc>
    for data in $inputData/PushQuote
    return
    if( put all your if conditions here) then
    <result> 1</result>
    else
    <result>0</result>
    </ResultDoc>
    This will return a xml :
    <ResultDoc>
    <result>1</result> <!.. one result per PushQuote in input !>
    <result>0</result>
    </ResultDoc>yup I've tried that, and now I'm able to get result, my problem now is I can't get the result that is equal to 1 even if I use xpath.
    please see my updated code:
    declare namespace cred="http://www.pldt.com.ph/eai/service/component/CreditService/";
    declare namespace com="http://www.pldt.com.ph/eai/Common";
    declare function local:CheckValidation($PushQuote as element(cred:PushQuote))
    let $QuoteNumber := data($PushQuote/PushQuote/com:QuoteNumber)
    let $AccountNumber := data($PushQuote/PushQuote/com:CustomerAccountNumber)
    let $QuoteLineItemList := $PushQuote/PushQuote/com:LineItemList/com:QuoteLineItem
    return
    <status>
    for $QuoteLineItem in $QuoteLineItemList
    return
    if (fn:string-length(data($QuoteNumber)) > 0 and
    fn:string-length(data($AccountNumber)) > 0 and
    fn:string-length(data($QuoteLineItem/com:Quantity)) > 0 and
    fn:string-length(data($QuoteLineItem/com:Product)) > 0 and
    fn:string-length(data($QuoteLineItem/com:Mrc)) > 0 and
    fn:string-length(data($QuoteLineItem/com:Currency)) > 0 and
    fn:string-length(data($QuoteLineItem/com:LastUpdateDate)) > 0 and
    fn:string-length(data($QuoteLineItem/com:LastUpdatedBy)) > 0)
    then
    <code>0</code>
    else
    <code>1</code>
    </status>
    declare variable $PushQuote as element(cred:PushQuote) external;
    let $returnValue := local:CheckValidation($PushQuote)
    return
    $returnValue
    $returnValue[code=1]/code
    I've tried putting xpath like this to get result = 1 but no luck :)

  • How to remove empty tags from a config file

    Hi all,
    I have a task where we need to run a Java program to remove tags which do not contain ny information from the config files. The format of the file is as under:
    <roleManager>
         <providers>
              <add name="AspNetSqlRoleProvider" b03f5f7f11d50a3a" />
              <add name="AspNetWindowsTokenRoleProvider" PublicKeyToken=b03f5f7f11d50a3a" />
         </providers>
    </roleManager>
    <httpModules>
    </httpModules>
    In the above lines <roleManager> is a tag which contains some data, while <httpModules> is an empty tag and does not conatin any data. The resultant should be:
    <roleManager>
         <providers>
              <add name="AspNetSqlRoleProvider" b03f5f7f11d50a3a" />
              <add name="AspNetWindowsTokenRoleProvider" PublicKeyToken=b03f5f7f11d50a3a" />
         </providers>
    </roleManager>
    Please suggest how can we achieve this?
    Thanks in advance

    I ususally do that type of thing with a state machine... read a token, look for what is next, and if it's the closing token, I don't write it out. You have well defined opening token syntax and closing token syntax, so it should be relatively easy.

  • Error during XML = ABAP conversion, empty tag

    Hi.
    Im sending data from a Data Base to a proxy using BI.
    But when I get an empty response from the data base wich gives me an empty XML tag the proxy shows me an error:
    -PARSE_APPLICATION_DATA Error during XML => ABAP conversion (Response  Message; error ID: CX_ST_MATCH_ELEMENT;
    -Error during XML => ABAP conversion (Response Message; error ID: CX_ST_MATCH_ELEMENT;
    -System expected the end of the element 'STMT_DC_response'          
    This is the message that originates the fail:
    <?xml version="1.0" encoding="utf-8" ?>
    <ns0:MT_PRV23_BS_desg_response xmlns:ns0="urn:tompla-com:xi:ventas_SD">
    <STMT_response>
      <row>
       <TIPO>P</TIPO>
       <NUM_OT>55062330</NUM_OT>
       <NUM_DESGLOSE>1</NUM_DESG>
       <CANT_DESG>1724000</CANT_DESG>
      </row>
    </STMT_response>
    <STMT_DC_response />
    </ns0:MT_PRV23_BD_desg_response>
    In case that the tag is filled runs ok
    <?xml version="1.0" encoding="utf-8" ?>
    <ns0:MT_PRV23_BD_desg_response xmlns:ns0="urn:tompla-com:xi:ventas_SD">
      <STMT_response>
       <row>
        <TIPO>P</TIPO>
        <NUM_OT>55062330</NUMERO_OT>
        <NUM_DESG>1</NUM_DESG>
        <CANT_DESG>1724000</CANT_DESG>
       </row>
      </STMT_response>
      <STMT_DC_response>
       <row>
        <TIPO>P</TIPO>
        <NUMERO_OT>55062330</NUMERO_OT>
        <NUMERO_DESGLOSE />
        <COD_CAR_ADICIONA>8</COD_CAR_ADICIONA>
        <PORC_CAR_ADICION>1</PORC_CAR_ADICION>
      </row>
      </STMT_DC_response>
    </ns0:MT_PRV23_BD_desg_response>
    The definition for the data is:
    STMT_DC_response        0..1
      row                               0..n
        tipo                             0..1
    Thanks for the help you can give me about my problem with empty tags.

    I moved this question to other forum
      Expert Forums  » SAP NetWeaver  » Exchange Infrastructure 

  • XML - ABAP conversion, empty tag

    Hi.
    Im sending data from a DB to a proxy using XI.
    But when I get an empty response from the DB, wich gives me an empty XML tag the proxy shows me an error:
    -PARSE_APPLICATION_DATA Error during XML => ABAP conversion (Response  Message; error ID: CX_ST_MATCH_ELEMENT;
    -Error during XML => ABAP conversion (Response Message; error ID: CX_ST_MATCH_ELEMENT;
    -System expected the end of the element 'STMT_DC_response'          
    This is the message that originates the fail:
    <ns0:MT_xxx_response xmlns:ns0="urn:s-com:xi:SD">
    <STMT_response>
      <row>
       <c11>P</c11>
       <c12>55062330</c12>
       <c13>1</c13>
      </row>
    </STMT_response>
    <STMT_DC_response />
    </ns0:MT_xxx_response>
    In case that the tag is filled runs ok
    <ns0:MT_xxx_response xmlns:ns0="urn:s.com:xi:SD">
      <STMT_response>
       <row>
        <c11>P</c11>
        <c12>55062330</c12>
        <c13>1</c13>
       </row>
      </STMT_response>
      <STMT_DC_response>
       <row>
        <c21>P</c21>
        <c22>55062330</c22>
        <c23 />
      </row>
      </STMT_DC_response>
    </ns0:MT_xxx_response>
    The definition for the data is:
    STMT_DC_response        0..1
      row                               0..n
        tipo                             0..1
    Thanks for the help you can give me about my problem with empty tags.

    thanks for your help!
    yes, The definition for the data is:
    STMT_DC_response    0..1
    to be sure I disabled that node, so I wont get it from the DB, and It was ok
    this is ok:
    <ns0:MT_xxx_response xmlns:ns0="urn:s-com:xi:SD">
    <STMT_response>
    <row>
    <c11>P</c11>
    <c12>55062330</c12>
    <c13>1</c13>
    </row>
    </STMT_response>
    </ns0:MT_xxx_response>
    but this is not
    <ns0:MT_xxx_response xmlns:ns0="urn:s-com:xi:SD">
    <STMT_response>
    <row>
    <c11>P</c11>
    <c12>55062330</c12>
    <c13>1</c13>
    </row>
    </STMT_response>
    <STMT_DC_response />
    </ns0:MT_xxx_response>

Maybe you are looking for

  • Capturing audio only in fcp5

    I am rather new to Final Cut Pro 5 and have been trying to teach myself as I go along. I am, however, having trouble capturing audio seperate from video. I am shooting a 16mm film and need to capture audio and video to seperate files in order to sync

  • What tool can I use to load CD's made from a PC to my Mac for use with iMovie?

    I have digitized my old VCR home movies onto a CD, but did that on a PC before I got my iMac.  I am keen to transfer the material into iMovie for editing and ultimately producing a DVD, but my Mac doesn't recognize the CD when I insert it.  Is there

  • How can I get iTunes to refresh its database of the music on my PC?

    This is what I want to do: 1.Delete a lot of tracks in various folders on my hard drive 2.Then get iTunes to run through its database and compare to my hard drive and remove any references to tracks it can no longer find. How do I do this? I can't fi

  • Properly and accurately calculating application cache settings

    Hello everyone. We are running Hyperion Planning 11.1.2.1 and one of the dataforms we have set up is quite heavy (it includes several DynamicCalc members with considerable ammount of scripting) and it fails to load from time to time, just saying "Can

  • Check MM/ WM stock side by side

    Hi,      Is there a transaction to check MM and WM stocks of all the materials in a warehouse side by side. I want to check if their stock levels are same on MM and WM level. I dont want to check one by one.  I would perfer a list for all warehouse m