Forte4j XML Operations, benefit??

I just read the "Building Web Services" Documentation
(http://forte.sun.com/ffj/documentation/)
Can someone please tell me the benefit of using XML Operations in building Web-Services??
Why not use Method calls on the Session Beans??
grz. Sander

...sorry, I already found the answer on page 17/18.
Because I now know what it is: I think that they use very strange examples. I think that the examples should match the purpose of XML Operations. Fortunately they don' t.....
(but that complaint is probably not in the right topic....)
sorry again..

Similar Messages

  • Using XML Operation Tags to query by date

    Problem 1:
    When I use timestamps from items' XML to form queries on repositories, I receive SQL errors.
    Problem 1 Example:
    Query the PublishingRepository to find all active projects created on August 16.
    In Dynamo Administration, navigate to /atg/epub/PublishingRepository
    In the box labeled "Run XML Operation Tags on the Repository," enter the following tag:
        <query-items item-descriptor="project">status = "Active" AND creationDate = "08/16/2013"</query-items>
    Result: java.sql.SQLDataException: ORA-01843: not a valid month
    Problem 1 Solution:
    Use this query instead:
    <query-items item-descriptor="project">
    status = "Active"
    AND
    creationDate = date("2013-08-16")
    </query-items>
    Problem 2:
    Using the "<" operator to construct a less-than argument doesn't work.
    Problem 2 Example:
    Query the PublishingRepository to find all active projects created before August 16.
    In Dynamo Administration, navigate to /atg/epub/PublishingRepository
    In the box labeled "Run XML Operation Tags on the Repository," enter the following tag:
        <query-items item-descriptor="project">status = "Active" AND creationDate < date("2013-08-16")</query-items>
    Result: SOURCE:org.xml.sax.SAXParseException: The content of elements must consist of well-formed character data or markup.
    Problem 2 Solution:
    For some reason, the ">" greater-than operator seems to work fine, even when the "<" less-than operator won't. You can switch around the order of the query to get the desired result:
    <query-items item-descriptor="project">
    status = "Active"
    AND
    date("2013-08-16") > creationDate
    </query-items>

    Problem 1:
    When I use timestamps from items' XML to form queries on repositories, I receive SQL errors.
    Problem 1 Example:
    Query the PublishingRepository to find all active projects created on August 16.
    In Dynamo Administration, navigate to /atg/epub/PublishingRepository
    In the box labeled "Run XML Operation Tags on the Repository," enter the following tag:
        <query-items item-descriptor="project">status = "Active" AND creationDate = "08/16/2013"</query-items>
    Result: java.sql.SQLDataException: ORA-01843: not a valid month
    Problem 1 Solution:
    Use this query instead:
    <query-items item-descriptor="project">
    status = "Active"
    AND
    creationDate = date("2013-08-16")
    </query-items>
    Problem 2:
    Using the "<" operator to construct a less-than argument doesn't work.
    Problem 2 Example:
    Query the PublishingRepository to find all active projects created before August 16.
    In Dynamo Administration, navigate to /atg/epub/PublishingRepository
    In the box labeled "Run XML Operation Tags on the Repository," enter the following tag:
        <query-items item-descriptor="project">status = "Active" AND creationDate < date("2013-08-16")</query-items>
    Result: SOURCE:org.xml.sax.SAXParseException: The content of elements must consist of well-formed character data or markup.
    Problem 2 Solution:
    For some reason, the ">" greater-than operator seems to work fine, even when the "<" less-than operator won't. You can switch around the order of the query to get the desired result:
    <query-items item-descriptor="project">
    status = "Active"
    AND
    date("2013-08-16") > creationDate
    </query-items>

  • XML operation resulted an XML data type exceeding 2GB in size. Operation aborted.

    I have table with one million rows, when i am using xml path ('Root'), it giving me an error 
    "XML operation resulted an XML data type exceeding 2GB in size. Operation aborted."
    This is a limitation of sqlserver. I have to xml path because i have to create nodes and attributes. In more complex case i will be joining multiple tables to get id and other attributes so combining multiple xmls in not an option here.
    any workaround....thanks in advance

    Here an example of your query that retrieve record in batch of 2 records. In real code, you should save the last id retrieved and call the query in a loop.
    DECLARE @BATCHSIZE AS integer
    SET @BATCHSIZE = 2
    DECLARE @LASTID As Integer
    SET @LASTID = 0
    select top(@BATCHSIZE) id as "@id"
    ,name as "@name"
    select id as "@id"
    ,name as "@name"
    select *
    from @products p
    where p.customer_id = cs.id
    group by id,customer_id,name
    for xml path ('product'),Root('products'),type
    from @customer cs
    where cs.client_id = c.id
    group by id,client_id,name
    for xml path ('customer'),Root('customers'),type
    from @client c
    where c.id > @LASTID
    order by c.id
    for xml path ('clients'),Root ('Main')

  • How to allow multiple output parameters in a user-defined service operation???

    I have creating a self-defined service operation “LDAPAddUser” to connect to LDAP server to create user accounts. I want to get 2 output parameters after executing the operation. One is the result (Boolean data type) and one is the error message (String data type). However, since Java only support one return value in a method, it seems that only one output parameter can be returned. May I have the suggestion so that multiple parameters can be supported in this case? Here is the extracted code
    In Java program,
    public Boolean addUser(String url, String aName)
    In file "component.xml",
         <operation name="addUser" method="addUser" orchestrateable="true" anonymous-access="true">
      <hint>Add a new user</hint>
         <input-parameter name="url" type="java.lang.String" required="true" title="LDAP URL">
         </input-parameter>
              <input-parameter name="aName" type="java.lang.String" required="true" title="Admin Login Name">
         </input-parameter>
              <output-parameter name="Result" title="Result" type="java.lang.Boolean">
              </output-parameter>
    Besides the boolean return value, I want to get another return value (string data type). Any suggestion ?

    I've returned multiple values to LiveCycle by using a complex object as an intermediatory.
    For example if I need to return two strings (firstName and lastName), I'll first build a single class (name) with two string attributes (private String firstName; private String LastName) and add getters and setters to my "name" class for each.  My service class method will return an object of type "name".
    for example  public name mymethod(String GUID, String username, String password).......
    Then in the component.xml you can return the two strings as long as you use the binding type "Bean":
    <output-parameter name="firstName" title="First Name" binding-type="Bean" property="firstName">
                        </output-parameter>
    <output-parameter name="lastName" title="Last Name" binding-type="Bean" property="lastName">
                         </output-parameter>

  • How to search XML data from a HTTPMultiService and display the result on the Spark List

    Hello all,
    I am totally new to Flash Builder and Actionscript and hope someone might be able to help me out. I basically create a mobile app with a single view. The view has a TextInput as a search box and a search button. I conntected a Data/Service using a local XML file and bind the Data to a Spark List. Innitally the List will show nothing until the user enter the search term and hit the button. The List suppose to show the XML data that match the search term.
    Now is my problem. I cannot make the List to show the data that match the search text. The List just shows ALL the data.
    Here are my MXML code:
    <?xml version="1.0" encoding="utf-8"?>
    <s:View xmlns:fx="http://ns.adobe.com/mxml/2009"
            xmlns:s="library://ns.adobe.com/flex/spark"
            xmlns:shopping="services.shopping.*"
            title="Search">
        <fx:Script>
            <![CDATA[
                import mx.events.FlexEvent;
                protected function button1_clickHandler(event:MouseEvent):void
                    navigator.popView();
                protected function list_creationCompleteHandler(event:FlexEvent):void
                    getDataResult.token = shopping.getData();
                protected function seach_clickHandler(event:MouseEvent):void
                    getDataResult.token = shopping.getSearchData(searchTxt.text);
            ]]>
        </fx:Script>
        <fx:Declarations>
            <s:CallResponder id="getDataResult"/>
            <shopping:Shopping id="shopping"/>
            <!-- Place non-visual elements (e.g., services, value objects) here -->
        </fx:Declarations>
        <s:actionContent>
            <s:Button height="79" label="Back" click="button1_clickHandler(event)"/>
        </s:actionContent>
        <s:List id="list" left="0" right="0" top="111" bottom="0"
                creationComplete="list_creationCompleteHandler(event)" labelField="english">
            <s:AsyncListView list="{getDataResult.lastResult}"/>
        </s:List>
        <s:TextInput id="searchTxt" x="80" y="34" width="250" height="49" enabled="true"
                     prompt="search..."/>
        <s:Button id="search" x="338" y="35" width="72" height="49" label="s"
                  click="seach_clickHandler(event)"/>
    </s:View>
    Here is the _Super_Shopping.as file:
    * This is a generated class and is not intended for modification.  To customize behavior
    * of this service wrapper you may modify the generated sub-class of this class - Shopping.as.
    package services.shopping
    import com.adobe.fiber.core.model_internal;
    import com.adobe.fiber.services.wrapper.HTTPServiceWrapper;
    import com.adobe.serializers.xml.XMLSerializationFilter;
    import mx.rpc.AbstractOperation;
    import mx.rpc.AsyncToken;
    import mx.rpc.http.HTTPMultiService;
    import mx.rpc.http.Operation;
    import valueObjects.Shop;
    [ExcludeClass]
    internal class _Super_Shopping extends com.adobe.fiber.services.wrapper.HTTPServiceWrapper
        private static var serializer0:XMLSerializationFilter = new XMLSerializationFilter();
        // Constructor
        public function _Super_Shopping()
            // initialize service control
            _serviceControl = new mx.rpc.http.HTTPMultiService();
             var operations:Array = new Array();
             var operation:mx.rpc.http.Operation;
             var argsArray:Array;
             operation = new mx.rpc.http.Operation(null, "getData");
             operation.url = "assets/data/shopping.xml";
             operation.method = "GET";
             operation.serializationFilter = serializer0;
             operation.properties = new Object();
             operation.properties["xPath"] = "/::shop";
             operation.resultElementType = valueObjects.Shop;
             operations.push(operation);
             operation = new mx.rpc.http.Operation(null, "getSearchData");
             operation.url = "assets/data/shopping.xml";
             operation.method = "GET";
             operation.resultFormat = "text";
             argsArray = new Array("item");
             operation.argumentNames = argsArray;
             operation.properties = new Object();
             operation.properties["xPath"] = "/::shop";
             operation.resultElementType = valueObjects.Shop;
             operations.push(operation);
             _serviceControl.operationList = operations;
             preInitializeService();
             model_internal::initialize();
        //init initialization routine here, child class to override
        protected function preInitializeService():void
          * This method is a generated wrapper used to call the 'getData' operation. It returns an mx.rpc.AsyncToken whose
          * result property will be populated with the result of the operation when the server response is received.
          * To use this result from MXML code, define a CallResponder component and assign its token property to this method's return value.
          * You can then bind to CallResponder.lastResult or listen for the CallResponder.result or fault events.
          * @see mx.rpc.AsyncToken
          * @see mx.rpc.CallResponder
          * @return an mx.rpc.AsyncToken whose result property will be populated with the result of the operation when the server response is received.
        public function getData() : mx.rpc.AsyncToken
            var _internal_operation:mx.rpc.AbstractOperation = _serviceControl.getOperation("getData");
            var _internal_token:mx.rpc.AsyncToken = _internal_operation.send() ;
            return _internal_token;
        public function getSearchData(item:String) : mx.rpc.AsyncToken
            var _internal_operation:mx.rpc.AbstractOperation = _serviceControl.getOperation("getSearchData");
            var _internal_token:mx.rpc.AsyncToken = _internal_operation.send(item);
            return _internal_token;
    The getSearchData() supposed to return XML data that match the search text, but it doesn't. Can anyoen help?
    Thank you!

    Hi,
    are you able to change dynamically the  operation.url = "assets/data/shopping.xml";?
    i need to do that based on the users input.
    Thanks in advance,

  • Formatting an XML string that has a date

    Hi All - new to this forum!
    Not familiar with XML operations and seeking some advise. I have a field that contains XML text that has a date within that I want to extract and format appropriately for some reports.
    Getting to the date portion of the field is not pretty (original code below) and could desire some work itself, but the real problem lies in formatting the date once extracted; sometimes the date text is in the format of "Month DD YYYY" and other times "DD Month YYYY" so the below code fails if the latter is found.
    SELECT TO_DATE(RTRIM(SUBSTR(email_variables, INSTR(email_variables,'CHECKIN_DATE')+22,18),']]></CHECKIN_DATE><CHECKOUT_DATE>]'),'Month DD YYYY') CHECKIN_DATE,COUNT(*)
    FROM t_ecomm_relations_queue
    WHERE code_corr_ecat = 'PREA'
    AND status IN ('A', 'R')
    AND TO_DATE(RTRIM(SUBSTR(email_variables, INSTR(email_variables,'CHECKIN_DATE')+22,18),']]></CHECKIN_DATE><CHECKOUT_DATE>]'), 'Month DD YYYY') < TRUNC(SYSDATE) + 7
    AND TO_DATE(RTRIM(SUBSTR(email_variables, INSTR(email_variables,'CHECKIN_DATE')+22,18),']]></CHECKIN_DATE><CHECKOUT_DATE>]'), 'Month DD YYYY') >= TRUNC(SYSDATE)
    GROUP BY TO_DATE(RTRIM(SUBSTR(email_variables, INSTR(email_variables,'CHECKIN_DATE')+22,18),']]></CHECKIN_DATE><CHECKOUT_DATE>]'),'Month DD YYYY');
    Any ideas for more efficient code or options for formatting is appreciated.
    Thank you!

    The best thing to do with a date you want to report on, is to not store it corrupted inside XML.
    Multiple reasons why are discussed here.
    If you are stuck with the ugly inefficient design, then you are probably stuck with ugly inefficient code as a result.

  • Error in validating XML against schema

    Hi am getting some critical errors while Validating XML against schema
    error is:
    cvc-elt.1: Cannot find the declaration of element 'position' , here <position> is my root element.
    my code is as follows:
    package com.glemser.xmLabeling.library.component.spl;
    import com.documentum.com.DfClientX;
    import com.documentum.com.IDfClientX;
    import com.documentum.fc.client.IDfClient;
    import com.documentum.fc.client.IDfSession;
    import com.documentum.fc.client.IDfSessionManager;
    import com.glemser.common.helper.OperationHelper;
    import org.xml.sax.*;
    import org.xml.sax.helpers.DefaultHandler;
    import javax.xml.parsers.ParserConfigurationException;
    import javax.xml.parsers.SAXParserFactory;
    import java.io.CharArrayWriter;
    import java.io.IOException;
    import java.io.InputStream;
    public class Test {
    static IDfSession m_session;
    public static void main(String[] args) {
    try {
         new Test().validate();
    } catch (Exception e) {
    e.printStackTrace();
    private XMLReader xmlReader;
    private DefaultHandler handler; // Defines the handler for this parser
    private boolean valid = true;
    public void validate() {
    try {
    SetXML setXML = new SetXML();
    OperationHelper operation = new OperationHelper();
    String splObjPath = "C://Documents and Settings/dparikh/My Documents/xmLabelingStage/Test.xml";//operation.executeExportOperation(m_session, new DfId(m_objectId), true);
    SAXParserFactory spf = SAXParserFactory.newInstance();
    spf.setNamespaceAware(false);
    spf.setValidating(true);
    spf.setFeature("http://xml.org/sax/features/validation", true);
    spf.setFeature("http://apache.org/xml/features/validation/schema", true);
    spf.setFeature("http://apache.org/xml/features/validation/schema-full-checking", true);
    if (spf.isValidating()) {
    System.out.println("The parser is validating");
    javax.xml.parsers.SAXParser sp = spf.newSAXParser();
    sp.setProperty("http://java.sun.com/xml/jaxp/properties/schemaLanguage", "http://www.w3.org/2001/XMLSchema");
    sp.setProperty("http://apache.org/xml/properties/schema/external-noNamespaceSchemaLocation", "file://C:/Documents and Settings/dparikh/My Documents/xmLabelingStage/Test.xsd");
    System.out.println("The parser is validating1");
    //Create XMLReader
    xmlReader = sp.getXMLReader();
    xmlReader.setFeature("http://apache.org/xml/features/validation/schema", true);
    xmlReader.setEntityResolver(new SchemaLoader());
    ContentHandler cHandler = new MyDefaultHandler();
    ErrorHandler eHandler = new MyDefaultHandler();
    xmlReader.setContentHandler(cHandler);
    xmlReader.setErrorHandler(eHandler);
    System.out.println("The parser is validating2");
    parseDocument(splObjPath);
    } catch (SAXException se) {
    se.printStackTrace();
    } catch (ParserConfigurationException e) {
    e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
    public void parseDocument(String xmlFile) {
    try {
    xmlReader.parse(xmlFile);
    if (valid) {
    System.out.println("Document is valid!");
    } catch (SAXException e) {
    e.printStackTrace();
    } catch (IOException e) {
    e.printStackTrace();
    } catch (Exception e) {
    e.printStackTrace();
    class MyDefaultHandler extends DefaultHandler {
    private CharArrayWriter buff = new CharArrayWriter();
    private String errMessage = "";
    /* With a handler class, just override the methods you need to use
    // Start Error Handler code here
    public void warning(SAXParseException e) {
    System.out.println("Warning Line " + e.getLineNumber() + ": " + e.getMessage() + "\n");
    public void error(SAXParseException e) {
    errMessage = new String("Error Line " + e.getLineNumber() + ": " + e.getMessage() + "\n");
    System.out.println(errMessage);
    valid = false;
    public void fatalError(SAXParseException e) {
    errMessage = new String("Error Line " + e.getLineNumber() + ": " + e.getMessage() + "\n");
    System.out.println(errMessage);
    valid = false;
    public class SchemaLoader implements EntityResolver {
    public static final String FILE_SCHEME = "file://";
    public InputSource resolveEntity(String publicId, String systemId) throws SAXException {
    if (systemId.startsWith(FILE_SCHEME)) {
    String filename = systemId.substring(FILE_SCHEME.length());
    InputStream stream = SchemaLoader.class.getClassLoader().getResourceAsStream(filename);
    return new InputSource(stream);
    } else {
    return null;
    My XML and XSD are as below:
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <xsd:element name="position" minOccurs="0" maxOccurs="unbounded">
    <xsd:complexType>
    <xsd:sequence>
    <xsd:element name="position_number" type="xsd:string"/>
    <xsd:element name="position_title" type="xsd:string"/>
    <xsd:element name="report_to_position" type="xsd:string"/>
    <xsd:element name="incumbent" type="xsd:string"/>
    <xsd:element name="operation" type="xsd:string"/>
    </xsd:sequence>
    </xsd:complexType>
    </xsd:element>
    </xsd:schema>
    <position xsi:schemaLocation="Test.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <position_number>12345</position_number>
    <position_title>Sr. Engr</position_title>
    <report_to_position>23456</report_to_position>
    <incumbent>23456</incumbent>
    <operation>INSERT</operation>
    </position
    Please help me out

    --> Could not find cached enumeration value Custom.CI.Enum.PeripheralDevice.Printer for property Type, class BMC.Custom.CI.PeripheralDevice in enumeration cache.
    You must specify either the Name or Guid of an enumeration of type Custom.CI.Enum.PeripheralDevice.Type.
    Be sure that you are specifying the Name property of the enumeration value you want to set, and not the DisplayName; the Internal Name is something like "IncidentCategoryEnum.Category" for out of the box enumerations, or ENUM.210ADA2282FDABC3210ADA2282FDABC
    for enumerations created in the console.
    you can check this by finding the enumeration in the XML or by using the the
    SMLets commandlet
    Get-SCSMEnumeration | ?{$_.DisplayName –eq “Printer”}
    and then checking your value with
    Get-SCSMEnumeration -Name "ENUM.210ADA2282FDABC3210ADA2282FDABC"
    and see if you get the right displayname back

  • Java.lang.NullPointerException no protocol: database.xml

    * In Order To Handle XML Operations
    package edu.yeditepe.cse.util;
    import java.util.*;
    import java.io.File;
    import java.io.IOException;
    import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.DocumentBuilderFactory;
    import javax.xml.parsers.ParserConfigurationException;
    import javax.xml.transform.OutputKeys;
    import javax.xml.transform.Result;
    import javax.xml.transform.Source;
    import javax.xml.transform.Transformer;
    import javax.xml.transform.TransformerConfigurationException;
    import javax.xml.transform.TransformerException;
    import javax.xml.transform.TransformerFactory;
    import javax.xml.transform.dom.DOMSource;
    import javax.xml.transform.stream.StreamResult;
    import org.w3c.dom.Document;
    import org.w3c.dom.Element;
    import org.w3c.dom.NodeList;
    import org.xml.sax.InputSource;
    import org.xml.sax.SAXException;
    * @author xx
    public class XMLHandler {
         public final static String ATTRIBUTE           = "value";
         public final static String DOCTYPE_PUBLIC   = "databases";
         public final static String DOCTYPE_SYSTEM   = "database.dtd";
         public final static String ParentElement    = "variable";
         public final static String databaseName          = "databasename";
         public final static String urlName            = "urlname";
         public final static String userName           = "username";
         public final static String passWord           = "password";
         public XMLHandler()
         //     This Function returns the XML File .
         private static Document getDocument(){
                    try {             
                     DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
                     factory.setIgnoringComments(true);
                     factory.setIgnoringElementContentWhitespace(true);
                     factory.setValidating(true);
                     DocumentBuilder builder = factory.newDocumentBuilder();
                      builder.setErrorHandler(new MyErrorHandler());
                     return builder.parse(new InputSource("database.xml"));
                 } catch (Exception e) {
                     System.out.println(e.getMessage());
              return null;
         //Adds new Element to The database.Xml File.
         public boolean addElement(String databasename , String urlname, String username , String password ){
              Document doc = getDocument();
              Element root = doc.getDocumentElement();
              Element parentElement = (Element)doc.createElement(ParentElement);//Take parent Element. We have to take this parent Element since we will add new Element to this Parent Element.
              Element databaseNameElement = (Element)doc.createElement(databaseName);//Create Name Element To Bind Value of New Element.
              databaseNameElement.setAttribute(ATTRIBUTE , databasename );//set the attribute of this child.
              Element urlnameElement = (Element)doc.createElement(urlName);//Create Name Element To Bind Value of New Element.
              urlnameElement.setAttribute(ATTRIBUTE , urlname );//set the attribute of this child.
              Element usernameElement = (Element)doc.createElement(userName);//Create Value Element To Bind Value of the new Element.
              usernameElement.setAttribute(ATTRIBUTE , username );//set the attribute of this second child.
              Element passwordElement = (Element)doc.createElement(passWord);//Create Value Element To Bind Value of the new Element.
              passwordElement.setAttribute(ATTRIBUTE , password );//set the attribute of this second child.
              //Form New Variable  via appending its name and value child to itself.
              parentElement.appendChild(databaseNameElement);
              parentElement.appendChild(urlnameElement);
              parentElement.appendChild(usernameElement);
              parentElement.appendChild(passwordElement);
              //Add This Variable To The Root Element.
              root.appendChild(parentElement);
              try{          
                   saveDocument(doc);//Save And Close The XML File. Catch any Exception Occured.
                   return true;
              }catch(Exception e){
                   System.out.println("##error: " + e);     
                   e.printStackTrace();
                   return false;
         }//add Element Function.
         //     Save changes of the Document doc.
         private boolean saveDocument(Document doc){
              try{
                Transformer xformer = TransformerFactory.newInstance().newTransformer();
              xformer.setOutputProperty(OutputKeys.INDENT, "yes");//For INDENTED PRINTING OF THE FILE
              xformer.setOutputProperty(OutputKeys.ENCODING, "ISO-8859-9");//Determining Encoding Type.
              xformer.setOutputProperty(OutputKeys.DOCTYPE_PUBLIC, DOCTYPE_PUBLIC);//PRESERVE ROOT ELEMENT
              xformer.setOutputProperty(OutputKeys.DOCTYPE_SYSTEM, DOCTYPE_SYSTEM);//REFERENCE TO DTD FILE
              Source source = new DOMSource(doc);
              Result result = new StreamResult(new File("database.xml"));
              xformer.transform(source, result);
                return true;
              }catch(TransformerConfigurationException e){
                   System.out.println(e);
              }catch(TransformerException e){
                   System.out.println(e);
              return false;
         }//Save
    package edu.yeditepe.cse.util;
    * @author xx
    public class Deneme {
          * @param args
         public static void main(String[] args) {
              // TODO Auto-generated method stub
              XMLHandler xh = new XMLHandler();     
              System.out.println(xh.addElement("dasd","asda","adadad","das"));
    }it gives error in linse "Element root = doc.getDocumentElement();"
    i am using jre 1.5.0_ 09
    xalan-2.7.0.jar
    Error on the console is :
    no protocol: database.xml
    Exception in thread "main" java.lang.NullPointerException
         at edu.yeditepe.cse.util.XMLHandler.addElement(XMLHandler.java:69)
         at edu.yeditepe.cse.util.Deneme.main(Deneme.java:16)
    Problem is related with
    return builder.parse(new InputSource("database.xml"));
    when i am trying to type file:///database.xml instead of database.xml
    it adds some more path therefore it doesn't work
    Any help appreciated..

    It seems that the file you are trying to parse is not in your current working directory. The solution, if that is the problem, would be to specify the full path of the file.

  • [Solved]Web Service Data Control operation not visible in Data Controls

    Hi!
    I've created Web Service Data Control (named MyDataControl ) in my DataModel project for my web application (ADF BC 10.1.3.3). I've finished the wizard successfully (added initiate operation to the right side in step 2: Data Control Operations) but when the wizard finishes the initiate operation is not visible in the Data Controls (MyDataControl is visible without the operation). I'm using CVS so I think maybe some files were write protected while creating the control.
    These are the files where Data Control is written to:
    DataControls.dcx:
      <AdapterDataControl id="MyDataControl" FactoryClass="oracle.adf.model.adapter.DataControlFactoryImpl"
                          ImplDef="oracle.adfinternal.model.adapter.webservice.WSDefinition" SupportsTransactions="false"
                          SupportsSortCollection="false" SupportsResetState="false" SupportsRangesize="false"
                          SupportsFindMode="false" SupportsUpdates="false" Definition="MyDataControl"
                          BeanClass="MyDataControl" xmlns="http://xmlns.oracle.com/adfm/datacontrol">
        <Source>
          <definition xmlns="http://xmlns.oracle.com/adfm/adapter/webservice" name="MyDataControl" version="1.0"
                      provider="oracle.adfinternal.model.adapter.webservice.provider.soap.SOAPProvider"
                      wsdl="my_wsdl_location">
            <service name="MyService" namespace="urn:eu.emsa.ssn" connection="MyDataControl">
              <port name="MyServicePort">
                <operation name="initiateMyService">
                  <dataformat format="XML"/>
                </operation>
              </port>
            </service>
          </definition>
        </Source>
      </AdapterDataControl>and MyDataControl.xml:
    <?xml version="1.0" encoding="UTF-8" ?>
    <JavaBean xmlns="http://xmlns.oracle.com/adfm/beanmodel" version="10.1.3.41.57" id="MyDataControl"
              BeanClass="MyDataControl" isJavaBased="false">
      <MethodAccessor id="initiateMyService">
        <ParameterInfo id="ReplyTo_Address" Type="java.lang.String" isStructured="false"/>
        <ParameterInfo id="ReplyTo_PortType" Type="java.lang.String" isStructured="false"/>
        <ParameterInfo id="ReplyTo_ServiceName_PortName" Type="java.lang.Object" isStructured="false"/>
        <ParameterInfo id="ReplyTo_ServiceName" Type="java.lang.String" isStructured="false"/>
        <ParameterInfo id="MessageID" Type="java.lang.String" isStructured="false"/>
        <ParameterInfo id="payload" Type="java.lang.String" isStructured="false"/>
      </MethodAccessor>
    </JavaBean>A couple of days ago I've created a Data Control for another BPEL process the same way and everything was OK.
    Any ideas why this is not working?
    Regards!
    BB
    Message was edited by:
    Brokenbone

    Found out the reason. The problem was in ...MyApp\.adf\META-INF\connections.xml file which had write protection.
    BB

  • XML Interface in Solution Manager

    Hi All,
    In Solution Documentation presentation, there are slides that give details on importing documentation from external sources like(Excel) into Solution Manager documentation. Has anyone done this task and what is the interface used to export to standard SAP XML format from EXCEL and import files from XML format into soution documentation (SOLAR01)?
    Details from slides are:
    Using a XML interface business process documentation of external sources like MS Excel, Lotus Notes can be efficiently imported in SAP Solution Manager
    Data transfer process flow:
    Detailed steps
    1. Develop a data extractor program to convert MS Excel to XML document
    - Create a program to extract content from data source. The extractor has to use the  xml schema definitions provided by SAP 
    - Extract the data from the data source into XML format
    Benefit
    Quick and efficient method to transfer external documentation into SAP Solution Manager
    Detailed steps
    Use SAP Solution Manager interface to import XML documentation
    - Import the data into SAP Solution Manager within SAP Solution Manager
    - Verify the imported documentation
    Thanks and regards,
    Nischal

    Hello,
    You can find links to many interesting documents and also some troubleshooting guides at https://wiki.sdn.sap.com/wiki/display/SM/Maintenance+Optimizer
    Best regards,
    Miguel Ariñ

  • [Solved]WS Data Control operation not visible in Data Controls in JDev

    Hi!
    I've created Web Service Data Control (named MyDataControl ) in my DataModel project for my web application (ADF BC 10.1.3.3). I've finished the wizard successfully (added initiate operation to the right side in step 2: Data Control Operations) but when the wizard finishes the initiate operation is not visible in the Data Controls (MyDataControl is visible without the operation). I tried on JDev forum but had no success.
    DataControls.dcx:
      <AdapterDataControl id="MyDataControl" FactoryClass="oracle.adf.model.adapter.DataControlFactoryImpl"
                          ImplDef="oracle.adfinternal.model.adapter.webservice.WSDefinition" SupportsTransactions="false"
                          SupportsSortCollection="false" SupportsResetState="false" SupportsRangesize="false"
                          SupportsFindMode="false" SupportsUpdates="false" Definition="MyDataControl"
                          BeanClass="MyDataControl" xmlns="http://xmlns.oracle.com/adfm/datacontrol">
        <Source>
          <definition xmlns="http://xmlns.oracle.com/adfm/adapter/webservice" name="MyDataControl" version="1.0"
                      provider="oracle.adfinternal.model.adapter.webservice.provider.soap.SOAPProvider"
                      wsdl="my_wsdl_location">
            <service name="MyService" namespace="urn:eu.emsa.ssn" connection="MyDataControl">
              <port name="MyServicePort">
                <operation name="initiateMyService">
                  <dataformat format="XML"/>
                </operation>
              </port>
            </service>
          </definition>
        </Source>
      </AdapterDataControl>and MyDataControl.xml:
    <?xml version="1.0" encoding="UTF-8" ?>
    <JavaBean xmlns="http://xmlns.oracle.com/adfm/beanmodel" version="10.1.3.41.57" id="MyDataControl"
              BeanClass="MyDataControl" isJavaBased="false">
      <MethodAccessor id="initiateMyService">
        <ParameterInfo id="ReplyTo_Address" Type="java.lang.String" isStructured="false"/>
        <ParameterInfo id="ReplyTo_PortType" Type="java.lang.String" isStructured="false"/>
        <ParameterInfo id="ReplyTo_ServiceName_PortName" Type="java.lang.Object" isStructured="false"/>
        <ParameterInfo id="ReplyTo_ServiceName" Type="java.lang.String" isStructured="false"/>
        <ParameterInfo id="MessageID" Type="java.lang.String" isStructured="false"/>
        <ParameterInfo id="payload" Type="java.lang.String" isStructured="false"/>
      </MethodAccessor>
    </JavaBean>A couple of days ago I've created a Data Control for another BPEL process the same way and everything was OK.
    Any ideas why this is not working?
    Regards!
    BB
    Message was edited by:
    Brokenbone

    Found out the reason. The problem was in ...MyApp\.adf\META-INF\connections.xml file which had write protection.
    BB

  • Java Arrays to XML

    I am having some problems getting the XML structure I want for Arrays.
    Let's say I want an array that looks like this in xml:
    <Operation>
    <Element2>data1</Element2>
    <Element2>data2</Element2>
    </Operation>
    I would have thought I could the jws operation as the following:
    /* jws:operation
    public String Operation (String[] Element2) {
    return "result";
    Instead WLW creates the following XML:
    <Operation xmlns="http://www.openuri.org/">
    <Element>
    <String>
    Value_s
    </String>
    <String>
    Value_s
    </String>
    </Element>
    </Operation>
    How do I get WLW to create the XML I want above?

    Dave,
    You are right, that is the way to get the desired output. Sorry for the
    delayed response.
    Do let us know if you have any further queries/inputs.
    Regards,
    Anurag
    Workshop Support
    "Dave Remy" <[email protected]> wrote in message
    news:[email protected]..
    I haven't tried this yet but I got an email from a smart WLW developer I
    know so it would probably work. It requires an XML map that looks like
    this:
    <Operation xmlns="http://www.openuri.org/">
    <Element2 xm:multiple="s in Element2">{s}</Element2>
    </Operation>
    Method is:
    public String Operation(String[] Element2)
    "Dave Remy" <[email protected]> wrote in message
    news:[email protected]..
    I am having some problems getting the XML structure I want for Arrays.
    Let's say I want an array that looks like this in xml:
    <Operation>
    <Element2>data1</Element2>
    <Element2>data2</Element2>
    </Operation>
    I would have thought I could the jws operation as the following:
    /* jws:operation
    public String Operation (String[] Element2) {
    return "result";
    Instead WLW creates the following XML:
    <Operation xmlns="http://www.openuri.org/">
    <Element>
    <String>
    Value_s
    </String>
    <String>
    Value_s
    </String>
    </Element>
    </Operation>
    How do I get WLW to create the XML I want above?

  • XML Header information

    Mark, when i try to generate the xml from the database using XMLELEMENTS , i do not get the header information like.
    <?xml version="1.0" encoding="ISO-8859-1"?>
    And this becomeas aproblem to the parser which reads the files generated from my system.
    Is there anything i am missing.
    So as a workaround i pad the string with the select statements.
    here the the select statement for reference.
    SELECT Orderid,
    '<?xml version="1.0" encoding="ISO-8859-1"?>'||XMLELEMENT("MEPInputData"
    , XMLAttributes
    'http://www.w3.org/2001/XMLSchema-instance' AS "xmlns:xsi"
    ,'InputOrder.xsd' AS "xsi:noNamespaceSchemaLocation"
    , model AS "Model"
    , '1.0' AS "Version"
    ,XMLELEMENT
    ("XMLInputOrder"
    ,XMLELEMENT("OrderID", OrderID)
    ,XMLELEMENT("TimeStampInputOrder", TO_CHAR(SYSDATE, 'YYYYMMDDHH24MISS'))
    ,XMLELEMENT("TimeStampInputOrderText", TO_CHAR(SYSDATE, 'DD.MM.YYYY HH24.MI.SS'))
    ,XMLELEMENT
    ("ResultOutPut"
    ,XMLELEMENT("NameResultFile", 'Result_'||OrderID||'.xml')
    ,XMLELEMENT("DirectoryResultFile", 'X:\Moehwald\PrismaNT\DSShare')
    ,XMLELEMENT
    ("UsedDatas"
    ,XMLELEMENT
    ("UsedData", XMLAttributes('Typdata' AS "UsedDataType")
    , XMLELEMENT("UsedInpDatum"
    ,XMLAttributes
    'Typdata' AS "Typ"
    ,typ_version AS "Version"
    ,typ_LastTimeStamp AS "LastTimeStamp"
    ), TYPEDATA
    ,XMLELEMENT
    ("UsedData", XMLAttributes('Sequdata' AS "UsedDataType")
    , XMLELEMENT("UsedInpDatum"
    ,XMLAttributes
    'Sequdata' AS "Typ"
    ,seq_version AS "Version"
    ,seq_LastTimeStamp AS "LastTimeStamp"
    ), ABLAUFDATA
    ,XMLELEMENT
    ("UsedData", XMLAttributes('RegistryKonfig' AS "UsedDataType")
    , XMLELEMENT("UsedInpDatum"
    ,XMLAttributes
    'RegistryKonfig' AS "Typ"
    ,NULL AS "Version"
    ,NULL AS "LastTimeStamp"
    ), REGISTRYKONFIG
    ).GetStringVal() AS "INPUTORDERXML"
    FROM VW_XMLInputOrder
    Thanks

    Nope you not missing anything, we are. There is a new SQL/XML operator XMLROOT scheduled for a future release of the database that will generate this. In the mean time the only 'work-around' I know of is
    XMLType('XML prolog' || xmlelement(....).getClobVal())
    This will work with small documents, but not with larger documents....
    I've used something like this when I've needed to. Note XMLParse is only available in 10.x.
    create or replace function XMLROOT (XML XMLType,
    PI varchar2 default NULL)
    return XMLType deterministic
    is
    tempCLOB clob;
    tempXML XMLtype;
    begin
    select xmlparse(DOCUMENT '<?xml version="1.0" encoding="UTF-8"?>' || PI || XML.getClobVal() WELLFORMED)
    into tempXML
    from dual;
    return tempXML;
    end;
    xmlparse is simply a more efficeint way of creating a Non Schema based XMLType from the 'XMLText'. On a Pre 10x database you could substiture XMLType for XMLParse.

  • JDBC operation throws a NullPointerException

    Hi all...
    It seems that any attempt to perform a jdbc access from a deployed LCA (my process at this point only contains the JDBC 'query multiple to xml' operation) results in the following exception on the LC server (see below). The query and xml generation all seem to work ok from the Workbench. I can mail the lca upon request. Thanks.
    [4/28/08 17:10:15:557 EDT] 00000059 SystemOut O [Flex] [ERROR] Root cause: java.lang.NullPointerException
    at com.adobe.idp.dsc.jdbc.helper.SqlHelper.executeQuery(SqlHelper.java:85)
    at com.adobe.idp.dsc.jdbc.JDBCService.queryMultipleToXml(JDBCService.java:391)
    at sun.reflect.GeneratedMethodAccessor1517.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:585)
    at com.adobe.idp.dsc.component.impl.DefaultPOJOInvokerImpl.invoke(DefaultPOJOInvokerImpl.jav a:181)
    at com.adobe.idp.dsc.interceptor.impl.InvocationInterceptor.intercept(InvocationInterceptor. java:134)
    at com.adobe.idp.dsc.interceptor.impl.RequestInterceptorChainImpl.proceed(RequestInterceptor ChainImpl.java:44)
    at com.adobe.idp.dsc.transaction.interceptor.TransactionInterceptor$1.doInTransaction(Transa ctionInterceptor.java:74)
    at com.adobe.idp.dsc.transaction.impl.ejb.adapter.EjbTransactionCMTAdapterBean.execute(EjbTr ansactionCMTAdapterBean.java:336)
    at com.adobe.idp.dsc.transaction.impl.ejb.adapter.EjbTransactionCMTAdapterBean.doSupports(Ej bTransactionCMTAdapterBean.java:212)
    at com.adobe.idp.dsc.transaction.impl.ejb.adapter.EJSLocalStatelessEjbTransactionCMTAdapter_ caf58c4f.doSupports(Unknown Source)
    at com.adobe.idp.dsc.transaction.impl.ejb.EjbTransactionProvider.execute(EjbTransactionProvi der.java:104)
    at com.adobe.idp.dsc.transaction.interceptor.TransactionInterceptor.intercept(TransactionInt erceptor.java:72)
    at com.adobe.idp.dsc.interceptor.impl.RequestInterceptorChainImpl.proceed(RequestInterceptor ChainImpl.java:44)
    at com.adobe.idp.dsc.interceptor.impl.InvalidStateInterceptor.intercept(InvalidStateIntercep tor.java:37)
    at com.adobe.idp.dsc.interceptor.impl.RequestInterceptorChainImpl.proceed(RequestInterceptor ChainImpl.java:44)
    at com.adobe.idp.dsc.interceptor.impl.AuthorizationInterceptor.intercept(AuthorizationInterc eptor.java:88)
    at com.adobe.idp.dsc.interceptor.impl.RequestInterceptorChainImpl.proceed(RequestInterceptor ChainImpl.java:44)
    at com.adobe.idp.dsc.engine.impl.ServiceEngineImpl.invoke(ServiceEngineImpl.java:113)
    at com.adobe.idp.dsc.routing.Router.routeRequest(Router.java:102)
    at com.adobe.idp.dsc.provider.impl.base.AbstractMessageReceiver.routeMessage(AbstractMessage Receiver.java:88)
    at com.adobe.idp.dsc.provider.impl.vm.VMMessageDispatcher.doSend(VMMessageDispatcher.java:21 0)
    at com.adobe.idp.dsc.provider.impl.base.AbstractMessageDispatcher.send(AbstractMessageDispat cher.java:57)
    at com.adobe.idp.dsc.clientsdk.ServiceClient.invoke(ServiceClient.java:208)
    at com.adobe.idp.taskmanager.dsc.service.TaskManagerServiceImpl.renderForm(TaskManagerServic eImpl.java:3404)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:585)
    at com.adobe.idp.dsc.component.impl.DefaultPOJOInvokerImpl.invoke(DefaultPOJOInvokerImpl.jav a:181)
    at com.adobe.idp.dsc.interceptor.impl.InvocationInterceptor.intercept(InvocationInterceptor. java:134)
    at com.adobe.idp.dsc.interceptor.impl.RequestInterceptorChainImpl.proceed(RequestInterceptor ChainImpl.java:44)
    at com.adobe.idp.dsc.trans

    I don't see any blank values anywhere. I have a single 'Assign Task' operation with the following config. I can send an lca if you like.
    Initial User = 'Assign to Process Creator'
    Form Data Mappings => input form variable = /process_data/myXFAForm
    output form var = /process_data/myXFAForm
    myXFAForm has as its Render Service/Operation = JdbService/queryMultipleToXml with the following settings:
    datasourceName(literal)= IDP_DS
    sql_info(literal)= select FIRST_NAME, LAST_NAME, CONTACT_INFO, ORACLE_USERID from TVS_TVAS_USER where STATUS='ACTIVE'
    xml_info (literal) = root: tvasUsers; element: User; mapping: [{element_name=firstname, column_index=1, column_name=FIRST_NAME}, {element_name=lastname, column_index=2, column_name=LAST_NAME}, {element_name=emailAddress, column_index=3, column_name=CONTACT_INFO}, {element_name=tvasUserID, column_index=4, column_name=ORACLE_USERID}]
    service output settings:
    document=task/Document

  • JDBC 'Query Multiple to XML' throwing NullPointerException on LC Server

    Hi all...
    It seems that any attempt to perform a jdbc access from a deployed LCA (my process at this point only contains the JDBC 'query multiple to xml' operation) results in the following exception on the LC server (see below). The query and xml generation all seem to work ok from the Workbench. I can mail the lca upon request. Thanks.
    [4/28/08 17:10:15:557 EDT] 00000059 SystemOut O [Flex] [ERROR] Root cause: java.lang.NullPointerException
    at com.adobe.idp.dsc.jdbc.helper.SqlHelper.executeQuery(SqlHelper.java:85)
    at com.adobe.idp.dsc.jdbc.JDBCService.queryMultipleToXml(JDBCService.java:391)
    at sun.reflect.GeneratedMethodAccessor1517.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:585)
    at com.adobe.idp.dsc.component.impl.DefaultPOJOInvokerImpl.invoke(DefaultPOJOInvokerImpl.jav a:181)
    at com.adobe.idp.dsc.interceptor.impl.InvocationInterceptor.intercept(InvocationInterceptor. java:134)
    at com.adobe.idp.dsc.interceptor.impl.RequestInterceptorChainImpl.proceed(RequestInterceptor ChainImpl.java:44)
    at com.adobe.idp.dsc.transaction.interceptor.TransactionInterceptor$1.doInTransaction(Transa ctionInterceptor.java:74)
    at com.adobe.idp.dsc.transaction.impl.ejb.adapter.EjbTransactionCMTAdapterBean.execute(EjbTr ansactionCMTAdapterBean.java:336)
    at com.adobe.idp.dsc.transaction.impl.ejb.adapter.EjbTransactionCMTAdapterBean.doSupports(Ej bTransactionCMTAdapterBean.java:212)
    at com.adobe.idp.dsc.transaction.impl.ejb.adapter.EJSLocalStatelessEjbTransactionCMTAdapter_ caf58c4f.doSupports(Unknown Source)
    at com.adobe.idp.dsc.transaction.impl.ejb.EjbTransactionProvider.execute(EjbTransactionProvi der.java:104)
    at com.adobe.idp.dsc.transaction.interceptor.TransactionInterceptor.intercept(TransactionInt erceptor.java:72)
    at com.adobe.idp.dsc.interceptor.impl.RequestInterceptorChainImpl.proceed(RequestInterceptor ChainImpl.java:44)
    at com.adobe.idp.dsc.interceptor.impl.InvalidStateInterceptor.intercept(InvalidStateIntercep tor.java:37)
    at com.adobe.idp.dsc.interceptor.impl.RequestInterceptorChainImpl.proceed(RequestInterceptor ChainImpl.java:44)
    at com.adobe.idp.dsc.interceptor.impl.AuthorizationInterceptor.intercept(AuthorizationInterc eptor.java:88)
    at com.adobe.idp.dsc.interceptor.impl.RequestInterceptorChainImpl.proceed(RequestInterceptor ChainImpl.java:44)
    at com.adobe.idp.dsc.engine.impl.ServiceEngineImpl.invoke(ServiceEngineImpl.java:113)
    at com.adobe.idp.dsc.routing.Router.routeRequest(Router.java:102)
    at com.adobe.idp.dsc.provider.impl.base.AbstractMessageReceiver.routeMessage(AbstractMessage Receiver.java:88)
    at com.adobe.idp.dsc.provider.impl.vm.VMMessageDispatcher.doSend(VMMessageDispatcher.java:21 0)
    at com.adobe.idp.dsc.provider.impl.base.AbstractMessageDispatcher.send(AbstractMessageDispat cher.java:57)
    at com.adobe.idp.dsc.clientsdk.ServiceClient.invoke(ServiceClient.java:208)
    at com.adobe.idp.taskmanager.dsc.service.TaskManagerServiceImpl.renderForm(TaskManagerServic eImpl.java:3404)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:585)
    at com.adobe.idp.dsc.component.impl.DefaultPOJOInvokerImpl.invoke(DefaultPOJOInvokerImpl.jav a:181)
    at com.adobe.idp.dsc.interceptor.impl.InvocationInterceptor.intercept(InvocationInterceptor. java:134)
    at com.adobe.idp.dsc.interceptor.impl.RequestInterceptorChainImpl.proceed(RequestInterceptor ChainImpl.java:44)
    at com.adobe.idp.dsc.trans

    is your issue solved,if not mail me
    [email protected]

Maybe you are looking for

  • Problem with pdf export and setting of the paper size

    Hi, I develop plugins for InDesign server. Can anybody suggest me an way to exports a pdf/ps file from a indesign document with my custom adjustment of the output "paper" size? I tried with kPrintActionCmdBoss but the "SavePDFAs" popups although I se

  • WEBUTIL DIALOG BOX NOT OPENING

    hi all I have an issue with webutil when i am triyng to execute webutil_clientinfo.get_user_name in when button pressd triger. Below error I am getting. oracle.forms.webutil.file.FileFunctions bean not Found.WEBUTIL_FILE.FILE_SELECTION_DIALOG_INT WIL

  • Transfer iPhoto 6 from G4 to MacBook?

    I have properly copied the ENTIRE iPhoto Library folder from my old PowerBook G4, and have copied it to the DESKTOP on my new MacBook. I was going to put it in the Photos folder, but there is a newer iPhoto Library there (a new snazzy icon, rather th

  • Purchased Mountain Lion, but it is stuck on download with no activity for about half an hour.  What next?

    Purchased Mountain Lion via App store but it appears to be stuck in download with no activity for over half an hour and no error messages. The download bar shows the download at about 1/20th for about half an hour as well.  I had what appeared to be

  • Cid: images displayed too large

    I get a daily ModusMail spam quarantine digest. It has the following in its CSS: .qtrMessageImageCell width: 25px; The HTML has entries like: <TD class="qtrMessageImageCell"><img src="cid:Phishing.gif@Category"></TD> The first time a cid: image is di