XML view need to be modify -- help needed

Hi,
Please help me to modify this query to get the desired output specified as under.
Actually i need to create a view which can result the XMLTYPE.getClobVal() , so required in one row.
And I have used case to add different XML tags in between as per validation_id in table.
Suggest any other best method to do this.
Kindly revert me urgently.
-Ajay
Thanks in advance.
Query:-
select case when d.validation_id='LIST'
then xmlagg(xmlelement(validation,xmlattributes('VALUESET' as "name"),xmlelement(parameter,xmlattributes('VALUESETNAME' AS "name", d.value_1 as "value" , d.app_id as "externalSource"))))
when d.validation_id!='LIST' then xmlagg(xmlelement(validation,xmlattributes(d.validation_id as "name",c.error_message as "errrorMessage")))
end from data_valid_xref d, table_definition t, data_valid_cfg c
where t.column_name='check' and t.column_name=d.column_name and d.validation_id=c.validation_id
group by d.validation_id
<VALIDATION name="FORMAT" errrorMessage="Format validation failed"></VALIDATION>
<VALIDATION name="LESS" errrorMessage="Less validation failed"></VALIDATION>
<VALIDATION name="VALUESET"><PARAMETER name="VALUESETNAME" value="value_one" ext
ernalSource="COMMON"></PARAMETER></VALIDATION>
3 rows selected.
Desired output
<valueset>
<VALIDATION name="FORMAT" errrorMessage="Format validation failed"></VALIDATION>
<VALIDATION name="LESS" errrorMessage="Less validation failed"></VALIDATION>
<VALIDATION name="VALUESET"><PARAMETER name="VALUESETNAME" value="value_one" ext
ernalSource="COMMON"></PARAMETER></VALIDATION>
</valueset>
1 rows selected.

You can add XMLAGG function to the output XML rows. Try this.
SELECT xmlagg(xmlcol)
FROM
  (SELECT(
   CASE
   WHEN d.validation_id = 'LIST' THEN xmlagg(xmlelement(validation,    xmlattributes('VALUESET' AS
     "name"),    xmlelement(parameter,    xmlattributes('VALUESETNAME' AS
     "name",    d.value_1 AS
     "value",    d.app_id AS
     "externalSource"))))
   WHEN d.validation_id != 'LIST' THEN xmlagg(xmlelement(validation,    xmlattributes(d.validation_id AS
     "name",    c.error_message AS
     "errrorMessage")))
   END) xmlcol
   FROM data_valid_xref d,
     table_definition t,
     data_valid_cfg c
   WHERE t.column_name = 'check'
   AND t.column_name = d.column_name
   AND d.validation_id = c.validation_id
   GROUP BY d.validation_id)

Similar Messages

  • Folder view needs enlarging

    Whenever I open a folder in finder and other applications it always opens a window that needs enlarging to see the full content of the folder is there anyway to make the size of the initial window open a larger view?
    Thanks
    John

    Are you sure you're opening up the same types of windows? Finder remembers your choice (test this by opening your hard drive, resizing the window, closing the window, and reopening your hard drive). But for things like connected volumes (or folders on your desktop), Finder considers those to be independent and will force you to resize them separately. Once you resize a certain window, though, you shouldn't have to do the same one again.
    Once choice that you can make (and one that does default across windows) is to change your view. This option is available at the top of every Finder window in four icons. Try a different view and see if it helps your problem.
    Does that make sense?

  • ValueObject XML creator - NEED SUGGESTION

    This is a real time scenario...
    1) I have many value objects generated from third party software.
    (A Value object is a simple java file which has a set of attributes in it with corresponding set/get methods. Ofcourse they may inturn contain other value obejcts )
    2) I need to know whether i can write a parser which will read the src/class file & generate an XML file for all the attributes present in the valueObject.This includes all the primitive data types, collections & other value objects present in the original value object.
    3) I need a corresponding unmarshall for the same ..ie., some parser which would actually read from the file & generate a value object (java object)
    Please note that some value objects may be extremely large with so many other large value objects contained in it. All that im interested is i need to populate these objects using an Xml file rather than manually writing java code to set each and every attribute present in the object (imagine , when u need to set the attribute of another object within this which is present in hierarchy of 5-6 levels ... u need to create all the corresponding objects before actually setting that one VALUE !!!)
    can anybody tell me if there is already a tool for doing the same if not , what parser .. what reference material i need to look into so that i can write my own stuff to do it.
    Assume im new to XML Parsers.
    PLEASE SUGGEST, Any help highly appreciated

    The only one that I am aware of that's relatively simple to use is castor (http://castor.org) that should give you what you need. If your VOs are rather complex, you may need to do some "tweaking" of the XML, which Castor also provides for.
    Unfortunately, JAXB doesn't (yet?) have this kind of capability that I know of. It might be buried somewhere in the API and not show-cased in the (date) Web Service Tutorial.

  • Top node of XML message needs value assign to it - how to do it ?

    Hi,
    I have an issue where the top node of my XML message needs to have a value assigned.
    i.e.
    <REPORT>xxxxxxxx
    <ID>xxxxx</ID>
    <CUST>xxxxx</CUST>
    </REPORT>
    Is this possible using standard graphical mapping or will I need to resort to XSLT mapping to achieve this ?
    Cheers
    Colin.

    Hi,
    At the beginning I thought that this is not well-formed XML message, did a test in XMLSpy and it looks like it a well-formed XML message.
    > <REPORT>xxxxxxxx
    > <ID>xxxxx</ID>
    > <CUST>xxxxx</CUST>
    > </REPORT>
    I created XSD that describe this message, imported into IR, did some basic (one-to-one) message mapping (output and input structures are the same).
    Output message:
    <?xml version="1.0" encoding="UTF-8"?>
    <REPORT>
       dfasdf
       <ID>12</ID>
       <CUST>dfff</CUST>
    </REPORT>
    After mapping I got:
    <?xml version="1.0" encoding="UTF-8"?>
    <REPORT>
       <ID>12</ID>
       <CUST>dfff</CUST>
    </REPORT>
    Looks like you should rather forget the graphical mapping
    Jakub

  • Is Stack configuration XML file needed for EHP4 installaton on ERP 6.0 SR2

    Hello ALL,
    Is Stack configuration XML file needed for EHP4 installaton on ERP 6.0 SR2,THE GUIDE SAYS IT IS OPTONAL
    is it?
    Rohit

    The central installation note
    Note 1143022 - Installation of SAP Enhancement Package 4 on SAP ERP 6.0
    says, that the Solution Manager Maintenance Optimizer should be used to generate the stack file to avoid any problems.
    Markus

  • Dynamic binding of items in sap.m.Table using XML views

    Dear SAPUI5 guru's,
    Let's start by saying I'm an ABAP developer who's exploring SAPUI5, so I'm still a rookie at the time of writing. I challenged myself by developing a simple UI5 app that shows information about my colleagues like name, a pic, address data and their skills. The app uses the sap.m library and most of the views are XML based which I prefer.
    The data is stored on an ABAP system and exposed via a gateway service. This service has 2 entities: Employee and Skill. Each employee can have 0..n skills and association/navigation between these 2 entities is set up correctly in the service. The data of this service is fetched from within the app using a sap.ui.model.odata.ODataModel model.
    The app uses the splitApp control which shows the list of employees on the left side (master view). If a user taps an employee, the corresponding details of the employee entity are shown on the right (detail view).
    Up till here everything is fine but I've been struggling with my latest requirement which is: show the skills of the selected employee in a separate XML view when the user performs an action (for the time being, I just created a button on the detail view to perform the action). After some hours I actually got it working but I doubt if my solution is the right way to go. And that's why I'm asking for your opinion here.
    Let's explain how I got things working. First of all I created a new XML view called 'Skills'. The content on this view is currently just a Table with 2 columns:
    <core:View xmlns:core="sap.ui.core" xmlns:mvc="sap.ui.core.mvc" xmlns="sap.m"
      controllerName="com.pyramid.Skills" xmlns:html="http://www.w3.org/1999/xhtml">
      <Page title="Skills"
           showNavButton="true"
           navButtonPress="handleNavButtonPress">
      <content>
      <Table
       id="skillsTable">
      <columns>
      <Column>
      <Label text="Name"/>
      </Column>
      <Column>
      <Label text="Rating"/>
      </Column>
      </columns>
      </Table>
      </content>
      </Page>
    </core:View>
    The button on the Detail view calls function showSkills:
    showSkills: function(evt) {
      var context = evt.getSource().getBindingContext();
      this.nav.to("Skills", context);
      var skillsController = this.nav.getView().app.getPage("Skills").getController();
      skillsController.updateTableBinding();
    Within 'this.nav.to("Skills", context);' I add the Skills view to the splitApp and set its bindingContext to the current binding context (e.g. "EmployeeSet('000001')"). Then I call function updateTableBinding in the controller of the Skills view which dynamically binds the items in the table based on the selected employee. So, when the ID of the selected employee is '000001', the path of the table's item binding should be "/EmployeeSet('000001')/Skills"
    updateTableBinding: function(){
      var oTemplate = new sap.m.ColumnListItem(
      {cells: [
              new sap.m.Text({text : "{Name}"}),
              new sap.m.Text({text : "{Rating}"})
      var oView = this.getView();
      var oTable = oView.byId("skillsTable");
      var oContext = oView.getBindingContext();
      var path = oContext.sPath + "/Skills";
      oTable.bindItems(path, oTemplate);
    Allthough it works fine, this is where I have my first doubt. Is this the correct way to bind the items? I tried to change the context that is passed to this.nav.to and wanted it to 'drill-down' one level, from Employee to Skills, but I couldn't manage to do that.
    I also tried to bind using the items aggregation of the table within the XML declaration (<Table id="skillsTable" items="{/EmployeeSet('000001')/Skills}">). This works fine if I hard-code the employee ID but off course this ID needs to be dynamic.
    Any better suggestions?
    The second doubt is about the template parameter passed to the bindItems method. This template is declared in the controller via javascript. But I'm using XML views! So why should I declare any content in javascript?? I tried to declare the template in the XML view itself by adding an items tag with a ColumnListItem that has an ID:
                    <items>
                        <ColumnListItem
                        id="defaultItem">
                        <cells>
                            <Text text="{Name}"/>
                            </cells>
                            <cells>
                            <Text text="{Rating}"/>
                            </cells>
                        </ColumnListItem>
                    </items>
    Then, in the updateTableBinding function, I fetched this control (by ID), and passed it as the template parameter to the bindItems method. In this case the table shows a few lines but they don't contain any data and their height is only like 1 mm! Does anyone know where this strange behaviour comes from or what I'm doing wrong?
    I hope I explained my doubts clearly enough. If not, let me know which additional info is required.
    Looking forward to your opinions/suggestions,
    Rudy Clement.

    Hi everybody,
    I found this post by searching for a dynamic binding for well acutally not the same situation but it's similar to it. I'm trying to do the following. I'm having a list where you can create an order. On the bottom of the page you'll find a button with which you're able to create another order. All the fields are set to the same data binding ... so the problem is if you've filled in the values for the first order and you'll press the button you'll get the same values in the second order. Is it possible to generate a dynamic binding?
    I'm going to post you a short code of what I'm meaning:
    <Input type="Text" value="{path: 'MyModel>/Order/0/Field1'}" id="field1">
         <layoutData>
                    <l:GridData span="L11 M7 S3"></l:GridData>
               </layoutData>
    </Input>
    As you can see I need to set the point of "0" to a dynamic number. Is there any possibility to reach this???
    Hope you can help
    Greetings
    Stef

  • InfoPath 2013: InfoPath cannot load the view. The view may have been modified to contain unsupported HTML such as frames.

    Hello Folks,
    I'm facing a strange behavior of InfoPath 2013 while using with SharePoint Designer 2013 to customize the forms. Whenever i open any SharePoint form to customize it in InfoPath 2013, it gives me error "InfoPath cannot load the view. The view may have
    been modified to contain unsupported HTML such as frames."
    Just like all other folks, i also assumed that the forms are corrupted and i need to change the extension to *.cab and blah blah blah. But, when i noticed that the error is coming with new list forms, new workflow forms as well then i tried to research on
    the issue. Surprisingly, all forms are opening on my colleague's PC but not from my PC. We're using the same server, same SharePoint Production, same SharePoint Development and similar InfoPath. Infact, our system team has prepared both of us in a similar
    way. The only difference is OS, where he is using Win 8 and mine is Win 7 Pro.
    Therefore, from last 1 week, i've to swap my PC with my colleague if i've to customize or update any form in InfoPath 2013. This is quite bizarre. Can someone let me know what's wrong with this issue?
    Regards,
    Sohaib
    Sohaib Khan

    Hi Sohaib,
    I'd like to double confirm with you that the issue only occurs to your client machine. Please log on to another machine and see if the issue is related to your account.
    If the issue is only related to your machine, I'd recommend you clear InfoPath cache and repair Office program.
    Then go to InfoPath > Options > More Options > General > Internet Options > Add SharePoint sites to your trusted sites and disbale protected mode.
    http://blogs.msdn.com/b/michael_yeager/archive/2008/07/09/infopath-cache.aspx
    http://office.microsoft.com/en-in/infopath-help/repair-office-programs-HA010357402.aspx
    Regards,
    Please remember to mark the replies as answers if they help and unmark them if they provide no help. If you have feedback for TechNet Subscriber Support, contact
    [email protected] .
    Rebecca Tu
    TechNet Community Support

  • SAPUI - XML View - complex type information

    Hi,
    I have some issues to express my type information in XML views.
    The JS view would look like:
    new sap.m.Text({
         text: {
              path:"/number",
              type: new sap.ui.model.type.Integer({groupingEnabled: true, groupingSeparator: '.'})
    My current XML view looks like this:
    <Text text="{path:'/number', type:'sap.ui.model.type.Integer', constraints:{groupingEnabled: true, groupingSeparator: '.'}}" />
    or
    <Text text="{path:'/number', type:'sap.ui.model.type.Integer({groupingEnabled: true, groupingSeparator: '.'})'}" />
    or several other ideas, e.g. escpaing of the additional '.
    But nothing worked. And I could not find any documentation of how it might work.
    The diagnostic tool translates JS to XML, yes, but it ignores the complicated case. :-(
    I could use a formatter to group myself, but there are several cases, where I need such complicated XML views.
    E.g. if I want to use multiply paths as an array.
    In my index.html I added data-sap-ui-xx-bindingSyntax="complex".
    Hope you can help me out.
    Thanks and bests
    -Ben

    Hi Ben,
              This should work
    <!DOCTYPE html>
    <html><head>
      <meta http-equiv='X-UA-Compatible' content='IE=edge' />
      <meta http-equiv='Content-Type' content='text/html;charset=UTF-8'/>
      <title>Mobile App with XML View with JSON Data</title>
    <script id='sap-ui-bootstrap' type='text/javascript'
       src='/sapui5-internal/resources/sap-ui-core.js'
       data-sap-ui-theme='sap_bluecrystal'
       data-sap-ui-libs='sap.m'
       data-sap-ui-xx-bindingSyntax='complex'></script>
      <script id="myXml" type="text/xmldata">
       <mvc:View xmlns:core="sap.ui.core" xmlns:mvc="sap.ui.core.mvc" xmlns="sap.m" controllerName="myController" displayBlock="true">
       <App>
      <Page title="Hello">
      <Text text="{path:'/1/r', type:'sap.ui.model.type.Integer', formatOptions:{groupingEnabled: true , groupingSeperator : '.'}}" />
      <Button text="{/1/name}" press= "doSomething"/>
      </Page>
       </App>
       </mvc:View>
      </script>
    <script>
      sap.ui.controller("myController", {
      onInit: function() {
      var model = new sap.ui.model.json.JSONModel();
      model.setData([
      {lastName: "Dente", name: "Al", r  : 1232323.221212,checked: true, linkText: "www.sap.com", href: "http://www.sap.com", rating: 4},
      {lastName: "Friese", name: "Andy", r  : 111222.221212, checked: true, linkText: "www.spiegel.de", href: "http://www.spiegel.de", rating: 2},
      {lastName: "Mann", name: "Anita",  r  : 1.221212,checked: false, linkText: "www.kicker.de", href: "http://www.kicker.de", rating: 3}
      this.getView().setModel(model);
      doSomething: function() {
      alert("Hello World!");
      sap.ui.view({ viewContent: jQuery('#myXml').html(), type:sap.ui.core.mvc.ViewType.XML }).placeAt("content")
    </script>
    </head>
       <body class='sapUiBody'>
       <div id='content'></div>
    </body>
    </html>
    Thank you.
    Regards,
                   Pruthvi.

  • Code completion for XML Views

    Hi,
    Can anybody confirm if we have the code completion feature available for XML views? I am using eclipse kepler with most updated UI5 plugins.
    Thanks
    Jayant

    Hi Jayant,
    You can try the following:
    -Create and open an XML View in Eclipse (Kepler, or Indigo)
    -Type the name of the UI5 control, e.g. List and click Ctrl-Space
    -From the list of provided templates, select the name of the UI5 control you want to include
    -Supply attributes you need, remove the unnecessary attributes and format the text (Ctrl-Shift-F).
    To check, if your Eclipse UI5 addon has XML templates, you can go to Window->Preferences->search for "templates"->scroll down to XML>XML Files>Editor>Templates and you will find all available XML templates for UI5 controls.
    hope it helps,
    Vlad

  • WebPart error when using XML Viewer WebPart with _vti_bin/owssvr.dll in SharePoint 2010

    Hello.
    When I view the XML URL I can see it fine but when I use it as the "XML Link" in an "XML Viewer" I get an error.
    The URL I used (with GUID removed):
    http://www.company.com/sites/SPSite/_vti_bin/owssvr.dll?Cmd=Display&List={...}&View={...}&XMLDATA=TRUE
    The error:
    Cannot retrieve the URL specified in the XML Link property. For more assistance, contact your site administrator.
    I cannot figure it out. Any ideas?

    To get access to SharePoint Web Service – owssrv.dll, You need to -
    Provide anonymous access for the web application and list & libraries section at the site collection
    Web application pool account should be a part of WSS_WPG, ISS_WPG and WSS_ADMIN_WPG
    Please check -
    http://sharepointknowledgebase.blogspot.ru/2011/11/cannot-retrieve-url-specified-in-xml.html#.VQJ8xvmUeAk
    Thanks
    Ganesh Jat [My Blog |
    LinkedIn | Twitter ]
    Please click 'Mark As Answer' if a post solves your problem or 'Vote As Helpful' if it was useful.

  • Accessing XML View through DBUri

    I am having problem in accessing XML View through HttpURI.
    Also i need some advise in following such architecture between my app server and DB server.
    The problem i am facing is that
    1. The query passed through URI does a full table scan, hence poor performance.
    2. Not able to query on date/timestamp.
    Any help would be appreciated.
    Thanks

    Here is how my output would be..
    <log systemID="00XXXABC01" MLN="9999" USN="00XXXPET01" timeStamp="Sun Jun 1 22:00:11 2003" timeZone="BST - Europe/London">
    <message type="XXXHealthPage" time="Sun Jun 1 22:00:11 2003" source="XXX">
    <text>This is manxx1 machine's HealthPage report</text>
    <detail>
    <generic_report title="XXX System Health Report">
         <emailaddr>[email protected]</emailaddr>
         <heading title="System Identification">
         <linevalue name="Report_date">Sun Jun 1 22:00:11 2003</linevalue>
         <linevalue name="Last_update_time">May 02 2003 22:00:14</linevalue>
         </heading>
    </generic_report>
    </detail>
    </message>
    </log>
    I have underlined the variables that i have to query on.. basically i have to select messages between certain times for a particular system.
    am trying a query..
    1. http://localhost:8080/oradb/MACLOG/TEST_MACHINE_XML1/ROW/log[@systemid="415444KCT"]
    This doesnt work for some reason.. i had to make systemid as a separate element.(@attribute doesnt work)2. i dono how to query for message[@time between to_char(...)]
    Any Help..

  • JTree XML Viewer

    Hi all
    i found this great article http://www.javalobby.org/java/forums/m91839339.html on Xml Viewer.
    But i dont understand how i can use it for JTreeTable because JTreeTable needs a TreeTableModel but
    i have a XMLTableModel .
    Anyone has used it?
    Thanks!!

    Hi all i try to modify the example that i find to make the tree editable but it not works...
    The main
    import java.awt.Color;
    import java.awt.Component;
    import java.awt.Dimension;
    import java.awt.event.InputEvent;
    import java.awt.event.MouseEvent;
    import java.util.EventObject;
    import javax.swing.JScrollPane;
    public class MyTreeTable extends JTreeTable{
        public MyTreeTable(TreeTableModel treeTableModel){
            super(treeTableModel);
            setShowGrid(true);
            setGridColor(new Color(234, 234, 234));
            new TableColumnResizer(this);
           // setDefaultRenderer(XMLTreeTableModel.class, new  XMLTreeTableCellRenderer());
            setIntercellSpacing(new Dimension(1, 1));
        public boolean editCellAt(int row, int column, EventObject e){
            if(e instanceof MouseEvent){
                MouseEvent me = (MouseEvent)e;
                // If the modifiers are not 0 (or the left mouse button),
                // tree may try and toggle the selection, and table
                // will then try and toggle, resulting in the
                // selection remaining the same. To avoid this, we
                // only dispatch when the modifiers are 0 (or the left mouse
                // button).
                if(me.getModifiers()==0 ||
                        me.getModifiers()==InputEvent.BUTTON1_MASK){
                    for(int counter = getColumnCount()-1; counter>= 0;
                        counter--){
                        if(getColumnClass(counter)==TreeTableModel.class){
                            MouseEvent newME = new MouseEvent
                                    (tree, me.getID(),
                                            me.getWhen(), me.getModifiers(),
                                            me.getX()-getCellRect(0, counter, true).x,
                                            me.getY(), me.getClickCount(),
                                            me.isPopupTrigger());
                            tree.dispatchEvent(newME);
                            break;
                return false;
            return super.editCellAt(row, column, e);
        public void changeSelection(int row, int column, boolean toggle, boolean extend) {
            if(getCursor()==TableColumnResizer.resizeCursor)
                return;
            super.changeSelection(row, column, toggle, extend);
    }The editor
    import java.util.EventObject;
    import javax.swing.CellEditor;
    import javax.swing.event.CellEditorListener;
    import javax.swing.event.ChangeEvent;
    import javax.swing.event.EventListenerList;
    public class AbstractCellEditor implements CellEditor {
        protected EventListenerList listenerList = new EventListenerList();
        public Object getCellEditorValue() { return null; }
        public boolean isCellEditable(EventObject e) { return true; }
        public boolean shouldSelectCell(EventObject anEvent) { return false; }
        public boolean stopCellEditing() { return true; }
        public void cancelCellEditing() {}
        public void addCellEditorListener(CellEditorListener l) {
         listenerList.add(CellEditorListener.class, l);
        public void removeCellEditorListener(CellEditorListener l) {
         listenerList.remove(CellEditorListener.class, l);
         * Notify all listeners that have registered interest for
         * notification on this event type. 
         * @see EventListenerList
        protected void fireEditingStopped() {
         // Guaranteed to return a non-null array
         Object[] listeners = listenerList.getListenerList();
         // Process the listeners last to first, notifying
         // those that are interested in this event
         for (int i = listeners.length-2; i>=0; i-=2) {
             if (listeners==CellEditorListener.class) {
              ((CellEditorListener)listeners[i+1]).editingStopped(new ChangeEvent(this));
    * Notify all listeners that have registered interest for
    * notification on this event type.
    * @see EventListenerList
    protected void fireEditingCanceled() {
         // Guaranteed to return a non-null array
         Object[] listeners = listenerList.getListenerList();
         // Process the listeners last to first, notifying
         // those that are interested in this event
         for (int i = listeners.length-2; i>=0; i-=2) {
         if (listeners[i]==CellEditorListener.class) {
              ((CellEditorListener)listeners[i+1]).editingCanceled(new ChangeEvent(this));
    XML Parserimport javax.xml.parsers.SAXParser;
    import javax.xml.parsers.SAXParserFactory;
    import javax.xml.transform.OutputKeys;
    import javax.xml.transform.Transformer;
    import javax.xml.transform.TransformerFactory;
    import javax.xml.transform.dom.DOMResult;
    import javax.xml.transform.sax.SAXSource;
    import org.w3c.dom.Document;
    import org.xml.sax.InputSource;
    import org.xml.sax.XMLReader;
    public class DOMUtil{
    public static Document createDocument(InputSource is) throws Exception{
    SAXParserFactory saxFactory = SAXParserFactory.newInstance();
    SAXParser parser = saxFactory.newSAXParser();
    XMLReader reader = new XMLTrimFilter(parser.getXMLReader());
    TransformerFactory factory = TransformerFactory.newInstance();
    Transformer transformer = factory.newTransformer();
    transformer.setOutputProperty(OutputKeys.INDENT, "no");
    DOMResult result = new DOMResult();
    transformer.transform(new SAXSource(reader, is), result);
    return (Document)result.getNode();
    } The treeimport java.awt.Color;
    import java.awt.Component;
    import java.awt.Dimension;
    import java.awt.Graphics;
    import java.awt.Rectangle;
    import java.awt.event.InputEvent;
    import java.awt.event.MouseEvent;
    import java.util.EventObject;
    import javax.swing.DefaultCellEditor;
    import javax.swing.Icon;
    import javax.swing.JTable;
    import javax.swing.JTextField;
    import javax.swing.JTree;
    import javax.swing.ListSelectionModel;
    import javax.swing.LookAndFeel;
    import javax.swing.UIManager;
    import javax.swing.border.Border;
    import javax.swing.event.ListSelectionEvent;
    import javax.swing.event.ListSelectionListener;
    import javax.swing.table.TableCellRenderer;
    import javax.swing.tree.DefaultTreeCellRenderer;
    import javax.swing.tree.DefaultTreeSelectionModel;
    import javax.swing.tree.TreeCellRenderer;
    import javax.swing.tree.TreeModel;
    import javax.swing.tree.TreePath;
    public class JTreeTable extends JTable {
         /** A subclass of JTree. */
         protected TreeTableCellRenderer tree;
         public JTreeTable(TreeTableModel treeTableModel) {
              super();
              // Creates the tree. It will be used as a renderer and editor.
              tree = new TreeTableCellRenderer(treeTableModel);
              // Installs a tableModel representing the visible rows in the tree.
              super.setModel(new TreeTableModelAdapter(treeTableModel, tree));
              tree.setCellRenderer(new XMLTreeTableCellRenderer());
              // Forces the JTable and JTree to share their row selection models.
              ListToTreeSelectionModelWrapper selectionWrapper = new ListToTreeSelectionModelWrapper();
              tree.setSelectionModel(selectionWrapper);
              setSelectionModel(selectionWrapper.getListSelectionModel());
              // Installs the tree editor renderer and editor.
              setDefaultRenderer(TreeTableModel.class, tree);
              setDefaultEditor(TreeTableModel.class, new TreeTableCellEditor());
              // No grid.
              setShowGrid(false);
              // No intercell spacing
              setIntercellSpacing(new Dimension(0, 0));
              // And update the height of the trees row to match that of
              // the table.
              if (tree.getRowHeight() < 1) {
                   // Metal looks better like this.
                   setRowHeight(20);
         * Overridden to message super and forward the method to the tree. Since the
         * tree is not actually in the component hierarchy it will never receive
         * this unless we forward it in this manner.
         public void updateUI() {
              super.updateUI();
              if (tree != null) {
                   tree.updateUI();
                   // Do this so that the editor is referencing the current renderer
                   // from the tree. The renderer can potentially change each time
                   // laf changes.
                   setDefaultEditor(TreeTableModel.class, new TreeTableCellEditor());
              // Use the tree's default foreground and background colors in the
              // table.
              LookAndFeel.installColorsAndFont(this, "Tree.background",
                        "Tree.foreground", "Tree.font");
         * Workaround for BasicTableUI anomaly. Make sure the UI never tries to
         * resize the editor. The UI currently uses different techniques to paint
         * the renderers and editors; overriding setBounds() below is not the right
         * thing to do for an editor. Returning -1 for the editing row in this case,
         * ensures the editor is never painted.
         public int getEditingRow() {
              return (getColumnClass(editingColumn) == TreeTableModel.class) ? -1
                        : editingRow;
         * Returns the actual row that is editing as <code>getEditingRow</code>
         * will always return -1.
         private int realEditingRow() {
              return editingRow;
         * This is overridden to invoke super's implementation, and then, if the
         * receiver is editing a Tree column, the editor's bounds is reset. The
         * reason we have to do this is because JTable doesn't think the table is
         * being edited, as <code>getEditingRow</code> returns -1, and therefore
         * doesn't automatically resize the editor for us.
         public void sizeColumnsToFit(int resizingColumn) {
              super.sizeColumnsToFit(resizingColumn);
              if (getEditingColumn() != -1
                        && getColumnClass(editingColumn) == TreeTableModel.class) {
                   Rectangle cellRect = getCellRect(realEditingRow(),
                             getEditingColumn(), false);
                   Component component = getEditorComponent();
                   component.setBounds(cellRect);
                   component.validate();
         * Overridden to pass the new rowHeight to the tree.
         public void setRowHeight(int rowHeight) {
              super.setRowHeight(rowHeight);
              if (tree != null && tree.getRowHeight() != rowHeight) {
                   tree.setRowHeight(getRowHeight());
         * Returns the tree that is being shared between the model.
         public JTree getTree() {
              return tree;
         * Overridden to invoke repaint for the particular location if the column
         * contains the tree. This is done as the tree editor does not fill the
         * bounds of the cell, we need the renderer to paint the tree in the
         * background, and then draw the editor over it.
         public boolean editCellAt(int row, int column, EventObject e) {
              boolean retValue = super.editCellAt(row, column, e);
              if (retValue && getColumnClass(column) == TreeTableModel.class) {
                   repaint(getCellRect(row, column, false));
              return retValue;
         * A TreeCellRenderer that displays a JTree.
         public class TreeTableCellRenderer extends JTree implements
                   TableCellRenderer {
              /** Last table/tree row asked to renderer. */
              protected int visibleRow;
              * Border to draw around the tree, if this is non-null, it will be
              * painted.
              protected Border highlightBorder;
              public TreeTableCellRenderer(TreeModel model) {
                   super(model);
              * updateUI is overridden to set the colors of the Tree's renderer to
              * match that of the table.
              public void updateUI() {
                   super.updateUI();
                   // Make the tree's cell renderer use the table's cell selection
                   // colors.
                   TreeCellRenderer tcr = getCellRenderer();
                   if (tcr instanceof DefaultTreeCellRenderer) {
                        DefaultTreeCellRenderer dtcr = ((DefaultTreeCellRenderer) tcr);
                        // For 1.1 uncomment this, 1.2 has a bug that will cause an
                        // exception to be thrown if the border selection color is
                        // null.
                        // dtcr.setBorderSelectionColor(null);
                        dtcr.setTextSelectionColor(UIManager
                                  .getColor("Table.selectionForeground"));
                        dtcr.setBackgroundSelectionColor(UIManager
                                  .getColor("Table.selectionBackground"));
              * Sets the row height of the tree, and forwards the row height to the
              * table.
              public void setRowHeight(int rowHeight) {
                   if (rowHeight > 0) {
                        super.setRowHeight(rowHeight);
                        if (JTreeTable.this != null
                                  && JTreeTable.this.getRowHeight() != rowHeight) {
                             JTreeTable.this.setRowHeight(getRowHeight());
              * This is overridden to set the height to match that of the JTable.
              public void setBounds(int x, int y, int w, int h) {
                   super.setBounds(x, 0, w, JTreeTable.this.getHeight());
              * Sublcassed to translate the graphics such that the last visible row
              * will be drawn at 0,0.
              public void paint(Graphics g) {
                   g.translate(0, -visibleRow * getRowHeight());
                   super.paint(g);
                   // Draw the Table border if we have focus.
                   if (highlightBorder != null) {
                        highlightBorder.paintBorder(this, g, 0, visibleRow
                                  * getRowHeight(), getWidth(), getRowHeight());
              * TreeCellRenderer method. Overridden to update the visible row.
              public Component getTableCellRendererComponent(JTable table,
                        Object value, boolean isSelected, boolean hasFocus, int row,
                        int column) {
                   Color background;
                   Color foreground;
                   if (isSelected) {
                        background = table.getSelectionBackground();
                        foreground = table.getSelectionForeground();
                   } else {
                        background = table.getBackground();
                        foreground = table.getForeground();
                   highlightBorder = null;
                   if (realEditingRow() == row && getEditingColumn() == column) {
                        background = UIManager.getColor("Table.focusCellBackground");
                        foreground = UIManager.getColor("Table.focusCellForeground");
                   } else if (hasFocus) {
                        highlightBorder = UIManager
                                  .getBorder("Table.focusCellHighlightBorder");
                        if (isCellEditable(row, column)) {
                             background = UIManager
                                       .getColor("Table.focusCellBackground");
                             foreground = UIManager
                                       .getColor("Table.focusCellForeground");
                   visibleRow = row;
                   setBackground(background);
                   TreeCellRenderer tcr = getCellRenderer();
                   if (tcr instanceof DefaultTreeCellRenderer) {
                        DefaultTreeCellRenderer dtcr = ((DefaultTreeCellRenderer) tcr);
                        if (isSelected) {
                             dtcr.setTextSelectionColor(foreground);
                             dtcr.setBackgroundSelectionColor(background);
                        } else {
                             dtcr.setTextNonSelectionColor(foreground);
                             dtcr.setBackgroundNonSelectionColor(background);
                   return this;
         * An editor that can be used to edit the tree column. This extends
         * DefaultCellEditor and uses a JTextField (actually, TreeTableTextField) to
         * perform the actual editing.
         * <p>
         * To support editing of the tree column we can not make the tree editable.
         * The reason this doesn't work is that you can not use the same component
         * for editing and renderering. The table may have the need to paint cells,
         * while a cell is being edited. If the same component were used for the
         * rendering and editing the component would be moved around, and the
         * contents would change. When editing, this is undesirable, the contents of
         * the text field must stay the same, including the caret blinking, and
         * selections persisting. For this reason the editing is done via a
         * TableCellEditor.
         * <p>
         * Another interesting thing to be aware of is how tree positions its render
         * and editor. The render/editor is responsible for drawing the icon
         * indicating the type of node (leaf, branch...). The tree is responsible
         * for drawing any other indicators, perhaps an additional +/- sign, or
         * lines connecting the various nodes. So, the renderer is positioned based
         * on depth. On the other hand, table always makes its editor fill the
         * contents of the cell. To get the allusion that the table cell editor is
         * part of the tree, we don't want the table cell editor to fill the cell
         * bounds. We want it to be placed in the same manner as tree places it
         * editor, and have table message the tree to paint any decorations the tree
         * wants. Then, we would only have to worry about the editing part. The
         * approach taken here is to determine where tree would place the editor,
         * and to override the <code>reshape</code> method in the JTextField
         * component to nudge the textfield to the location tree would place it.
         * Since JTreeTable will paint the tree behind the editor everything should
         * just work. So, that is what we are doing here. Determining of the icon
         * position will only work if the TreeCellRenderer is an instance of
         * DefaultTreeCellRenderer. If you need custom TreeCellRenderers, that don't
         * descend from DefaultTreeCellRenderer, and you want to support editing in
         * JTreeTable, you will have to do something similiar.
         public class TreeTableCellEditor extends DefaultCellEditor {
              public TreeTableCellEditor() {
                   super(new TreeTableTextField());
              * Overridden to determine an offset that tree would place the editor
              * at. The offset is determined from the <code>getRowBounds</code>
              * JTree method, and additionally from the icon DefaultTreeCellRenderer
              * will use.
              * <p>
              * The offset is then set on the TreeTableTextField component created in
              * the constructor, and returned.
              public Component getTableCellEditorComponent(JTable table,
                        Object value, boolean isSelected, int r, int c) {
                   Component component = super.getTableCellEditorComponent(table,
                             value, isSelected, r, c);
                   JTree t = getTree();
                   boolean rv = t.isRootVisible();
                   int offsetRow = rv ? r : r - 1;
                   Rectangle bounds = t.getRowBounds(offsetRow);
                   int offset = bounds.x;
                   TreeCellRenderer tcr = t.getCellRenderer();
                   if (tcr instanceof DefaultTreeCellRenderer) {
                        Object node = t.getPathForRow(offsetRow).getLastPathComponent();
                        Icon icon;
                        if (t.getModel().isLeaf(node))
                             icon = ((DefaultTreeCellRenderer) tcr).getLeafIcon();
                        else if (tree.isExpanded(offsetRow))
                             icon = ((DefaultTreeCellRenderer) tcr).getOpenIcon();
                        else
                             icon = ((DefaultTreeCellRenderer) tcr).getClosedIcon();
                        if (icon != null) {
                             offset += ((DefaultTreeCellRenderer) tcr).getIconTextGap()
                                       + icon.getIconWidth();
                   ((TreeTableTextField) getComponent()).offset = offset;
                   return component;
              * This is overridden to forward the event to the tree. This will return
              * true if the click count >= 3, or the event is null.
              public boolean isCellEditable(EventObject e) {
                   if (e instanceof MouseEvent) {
                        MouseEvent me = (MouseEvent) e;
                        // If the modifiers are not 0 (or the left mouse button),
                        // tree may try and toggle the selection, and table
                        // will then try and toggle, resulting in the
                        // selection remaining the same. To avoid this, we
                        // only dispatch when the modifiers are 0 (or the left mouse
                        // button).
                        if (me.getModifiers() == 0
                                  || me.getModifiers() == InputEvent.BUTTON1_MASK) {
                             for (int counter = getColumnCount() - 1; counter >= 0; counter--) {
                                  if (getColumnClass(counter) == TreeTableModel.class) {
                                       MouseEvent newME = new MouseEvent(
                                                 JTreeTable.this.tree, me.getID(), me
                                                           .getWhen(), me.getModifiers(), me
                                                           .getX()
                                                           - getCellRect(0, counter, true).x,
                                                 me.getY(), me.getClickCount(), me
                                                           .isPopupTrigger());
                                       JTreeTable.this.tree.dispatchEvent(newME);
                                       break;
                        if (me.getClickCount() >= 3) {
                             return true;
                        return false;
                   if (e == null) {
                        return true;
                   return false;
         * Component used by TreeTableCellEditor. The only thing this does is to
         * override the <code>reshape</code> method, and to ALWAYS make the x
         * location be <code>offset</code>.
         static class TreeTableTextField extends JTextField {
              public int offset;
              public void reshape(int x, int y, int w, int h) {
                   int newX = Math.max(x, offset);
                   super.reshape(newX, y, w - (newX - x), h);
         * ListToTreeSelectionModelWrapper extends DefaultTreeSelectionModel to
         * listen for changes in the ListSelectionModel it maintains. Once a change
         * in the ListSelectionModel happens, the paths are updated in the
         * DefaultTreeSelectionModel.
         class ListToTreeSelectionModelWrapper extends DefaultTreeSelectionModel {
              /** Set to true when we are updating the ListSelectionModel. */
              protected boolean updatingListSelectionModel;
              public ListToTreeSelectionModelWrapper() {
                   super();
                   getListSelectionModel().addListSelectionListener(
                             createListSelectionListener());
              * Returns the list selection model. ListToTreeSelectionModelWrapper
              * listens for changes to this model and updates the selected paths
              * accordingly.
              ListSelectionModel getListSelectionModel() {
                   return listSelectionModel;
              * This is overridden to set <code>updatingListSelectionModel</code>
              * and message super. This is the only place DefaultTreeSelectionModel
              * alters the ListSelectionModel.
              public void resetRowSelection() {
                   if (!updatingListSelectionModel) {
                        updatingListSelectionModel = true;
                        try {
                             super.resetRowSelection();
                        } finally {
                             updatingListSelectionModel = false;
                   // Notice how we don't message super if
                   // updatingListSelectionModel is true. If
                   // updatingListSelectionModel is true, it implies the
                   // ListSelectionModel has already been updated and the
                   // paths are the only thing that needs to be updated.
              * Creates and returns an instance of ListSelectionHandler.
              protected ListSelectionListener createListSelectionListener() {
                   return new ListSelectionHandler();
              * If <code>updatingListSelectionModel</code> is false, this will
              * reset the selected paths from the selected rows in the list selection
              * model.
              protected void updateSelectedPathsFromSelectedRows() {
                   if (!updatingListSelectionModel) {
                        updatingListSelectionModel = true;
                        try {
                             // This is way expensive, ListSelectionModel needs an
                             // enumerator for iterating.
                             int min = listSelectionModel.getMinSelectionIndex();
                             int max = listSelectionModel.getMaxSelectionIndex();
                             clearSelection();
                             if (min != -1 && max != -1) {
                                  for (int counter = min; counter <= max; counter++) {
                                       if (listSelectionModel.isSelectedIndex(counter)) {
                                            TreePath selPath = tree.getPathForRow(counter);
                                            if (selPath != null) {
                                                 addSelectionPath(selPath);
                        } finally {
                             updatingListSelectionModel = false;
              * Class responsible for calling updateSelectedPathsFromSelectedRows
              * when the selection of the list changse.
              class ListSelectionHandler implements ListSelectionListener {
                   public void valueChanged(ListSelectionEvent e) {
                        updateSelectedPathsFromSelectedRows();
    The resizerimport java.awt.Container;
    import java.awt.Cursor;
    import java.awt.Dimension;
    import java.awt.Point;
    import java.awt.Rectangle;
    import java.awt.event.MouseEvent;
    import javax.swing.JScrollPane;
    import javax.swing.JTable;
    import javax.swing.JViewport;
    import javax.swing.event.MouseInputAdapter;
    import javax.swing.table.TableColumn;
    public class TableColumnResizer extends MouseInputAdapter{
    public static Cursor resizeCursor = Cursor.getPredefinedCursor(Cursor.E_RESIZE_CURSOR);
    private int mouseXOffset;
    private Cursor otherCursor = resizeCursor;
    private JTable table;
    public TableColumnResizer(JTable table){
    this.table = table;
    table.addMouseListener(this);
    table.addMouseMotionListener(this);
    private boolean canResize(TableColumn column){
    return column != null
    && table.getTableHeader().getResizingAllowed()
    && column.getResizable();
    private TableColumn getResizingColumn(Point p){
    return getResizingColumn(p, table.columnAtPoint(p));
    private TableColumn getResizingColumn(Point p, int column){
    if(column == -1){
    return null;
    int row = table.rowAtPoint(p);
    if(row==-1)
    return null;
    Rectangle r = table.getCellRect(row, column, true);
    r.grow( -3, 0);
    if(r.contains(p))
    return null;
    int midPoint = r.x + r.width / 2;
    int columnIndex;
    if(table.getTableHeader().getComponentOrientation().isLeftToRight())
    columnIndex = (p.x < midPoint) ? column - 1 : column;
    else
    columnIndex = (p.x < midPoint) ? column : column - 1;
    if(columnIndex == -1)
    return null;
    return table.getTableHeader().getColumnModel().getColumn(columnIndex);
    public void mousePressed(MouseEvent e){
    table.getTableHeader().setDraggedColumn(null);
    table.getTableHeader().setResizingColumn(null);
    table.getTableHeader().setDraggedDistance(0);
    Point p = e.getPoint();
    // First find which header cell was hit
    int index = table.columnAtPoint(p);
    if(index==-1)
    return;
    // The last 3 pixels + 3 pixels of next column are for resizing
    TableColumn resizingColumn = getResizingColumn(p, index);
    if(!canResize(resizingColumn))
    return;
    table.getTableHeader().setResizingColumn(resizingColumn);
    if(table.getTableHeader().getComponentOrientation().isLeftToRight())
    mouseXOffset = p.x - resizingColumn.getWidth();
    else
    mouseXOffset = p.x + resizingColumn.getWidth();
    private void swapCursor(){
    Cursor tmp = table.getCursor();
    table.setCursor(otherCursor);
    otherCursor = tmp;
    public void mouseMoved(MouseEvent e){
    if(canResize(getResizingColumn(e.getPoint()))
    != (table.getCursor() == resizeCursor)){
    swapCursor();
    public void mouseDragged(MouseEvent e){
    int mouseX = e.getX();
    TableColumn resizingColumn = table.getTableHeader().getResizingColumn();
    boolean headerLeftToRight =
    table.getTableHeader().getComponentOrientation().isLeftToRight();
    if(resizingColumn != null){
    int oldWidth = resizingColumn.getWidth();
    int newWidth;
    if(headerLeftToRight){
    newWidth = mouseX - mouseXOffset;
    } else{
    newWidth = mouseXOffset - mouseX;
    resizingColumn.setWidth(newWidth);
    Container container;
    if((table.getTableHeader().getParent() == null)
    || ((container = table.getTableHeader().getParent().getParent()) == null)
    || !(container instanceof JScrollPane)){
    return;
    if(!container.getComponentOrientation().isLeftToRight()
    && !headerLeftToRight){
    if(table != null){
    JViewport viewport = ((JScrollPane)container).getViewport();
    int viewportWidth = viewport.getWidth();
    int diff = newWidth - oldWidth;
    int newHeaderWidth = table.getWidth() + diff;
    /* Resize a table */
    Dimension tableSize = table.getSize();
    tableSize.width += diff;
    table.setSize(tableSize);
    * If this table is in AUTO_RESIZE_OFF mode and has a horizontal
    * scrollbar, we need to update a view's position.
    if((newHeaderWidth >= viewportWidth)
    && (table.getAutoResizeMode() == JTable.AUTO_RESIZE_OFF)){
    Point p = viewport.getViewPosition();
    p.x =
    Math.max(0, Math.min(newHeaderWidth - viewportWidth, p.x + diff));
    viewport.setViewPosition(p);
    /* Update the original X offset value. */
    mouseXOffset += diff;
    public void mouseReleased(MouseEvent e){
    table.getTableHeader().setResizingColumn(null);
    table.getTableHeader().setDraggedColumn(null);
    The mainimport java.awt.event.WindowAdapter;
    import java.awt.event.WindowEvent;
    import java.io.FileInputStream;
    import java.io.InputStream;
    import javax.swing.JFrame;
    import javax.swing.JScrollPane;
    import org.xml.sax.InputSource;
    public class TreeTableExample0 {
         public static void main(String[] args) throws Exception {
              new TreeTableExample0();
         public TreeTableExample0() throws Exception {
              JFrame frame = new JFrame("TreeTable");
              InputStream inputStream = new FileInputStream("c:\\totali.xml");
              InputSource inputSource = new InputSource(inputStream);
              MyTreeTable treeTable = new MyTreeTable(new XMLTreeTableModel(DOMUtil
                        .createDocument(inputSource)));
              frame.addWindowListener(new WindowAdapter() {
                   public void windowClosing(WindowEvent we) {
                        System.exit(0);
              frame.getContentPane().add(new JScrollPane(treeTable));
              frame.pack();
              frame.show();
    The modelimport javax.swing.tree.TreeModel;
    public interface TreeTableModel extends TreeModel
    * Returns the number of available columns.
    public int getColumnCount();
    * Returns the name for column number <code>column</code>.
    public String getColumnName(int column);
    * Returns the type for column number <code>column</code>.
    public Class getColumnClass(int column);
    * Returns the value to be displayed for node <code>node</code>,
    * at column number <code>column</code>.
    public Object getValueAt(Object node

  • Not able to view the content in Microsoft help viewer (MS VS 2012)

    Hello Team,
    I'm Rahul from Daimler-Chrysler, Bangalore location. I’m the IT Engineer for Daimler-Chrysler.
    We tried many settings in IE but still not able to resolved. So i need more expert help. 
    My customer having one issue- 
    # User is not able to view the content in Microsoft help viewer (MS VS 2012), below is the error: Its opening in HTML Format.
    So please help me. Contact no- +91-9972004298. and personal id:- [email protected]/[email protected]
    I call you to Microsoft customer care they advice me to ASK Question. Please help me, I'm waiting for your reply.
    Thanks,
    Rahul B. Patil.
    +919972004298.

    Hi Sri,
    it looks that your HANA instance has been created before we enabled the web-based development workbench. Some privileges are missing, we can't migration those existing instances.
    Nevertheless you can ignore the error above. You can see all the content inside your instance "smstest1".
    If you want to get rid of the cosmetic issue. You might delete this instance and create a new one.
    Best regards
    Xu

  • In XML view, how to set sap.ui.core.CSSSize array for property "widths" of MatrixLayout Control?

    As SAPUI5 prefer XML views, I'm rewriting JS view into XML views.
    When I translate the statements below, I can not set sap.ui.core.CSSSize array for property "widths" of Control MatrixLayout.
    JS version:
    var oLayout = new sap.ui.commons.layout.MatrixLayout({
        id : 'matrix3'
        columns : 3,
        width : '600px',
        widths : ['100px', '200px', '300px']
    XML version:
    <l:MatrixLayout
        id="matrix3"
        columns="3"
        width="600px"
        widths="['100px', '200px', '300px']">
    <l:MatrixLayout>
    The error says: Uncaught Error: "[100px, 200px, 300px]" is of type object, expected sap.ui.core.CSSSize[] for property "widths" of Element sap.ui.commons.layout.MatrixLayout.
    Same problem with property `backgroundDesign` of MatrixLayoutCell, I can only use a workaround to use String "Fill1" not the Class "sap.ui.commons.layout.BackgroundDesign.Fill1".
    When we meet a property which need a Class object as value, we can not set it in String Format for XML views. That's a pity or I did not find the right way to set NON-String values as property for XML Controls.

    Hi,
    any settings that are not possible in the XML, need to be set in the controller instead.
    Using the string value of an enum is fine, though.
    Regards
    Andreas

  • BI Publisher Report Build - XML view

    Hi Experts,
    I am trying to build the BI publisher report. During the process, I am defining the SQL query structure in the 'Query Builder' once after that I have saved the report.
    As part of the next step , I have clicked on 'view' link to view the report structure as mentioned in the OBE.
    I could only see the 'Data' view but not the 'XML' view. Is there any way I can see the 'XML' view.
    Any help would be appreciated
    Siva

    Data means look at the xml data that you have created.

Maybe you are looking for