XSLT with XML XPath references

I have not used XSLT, and don't need to much, but have questions on creating XML that will be used by client's XSLT.
We are using a tool (xstream) that automatically transforms a Java object into XML. When it has multiple references to the same object, instead of expanding it in each place, it refers to the previous location of the object. It can do this in two ways (examples below).
My question is, can XSLT use the XPath or RefID to navigate the XML? I know XSLT uses XPath, but I'm not sure if it uses it in this way.
-- Note in the following examples how 'type' and 'item' are the exact same object, and the second instance of the object refers to the first location in the XML doc.
<saleLineItemGrouping>
  <item class="item">
    <id>3000</id>
    <retailPrice>
      <type>
         <code>USD</code>
         <description>US Dollars</description>
         <decimalPlaces>2</decimalPlaces>
         <locale>en_US</locale>
      </type>
      <amount>400000000</amount>
    </retailPrice>
    <markdownAmount>
      <type reference="../../retailPrice/type"/>
      <amount>0</amount>
    </markdownAmount>
  </item>
  <lineItems>
    <saleLineItem>
      <item class="item" reference="../../../item"/>
<saleLineItemGrouping id="1">
  <item class="item" id="2">
    <id>3000</id>
    <retailPrice id="3">
      <type id="4">
         <code>USD</code>
         <description>US Dollars</description>
         <decimalPlaces>2</decimalPlaces>
         <locale id="5">en_US</locale>
      </type>
      <amount>400000000</amount>
    </retailPrice>
    <markdownAmount id="6">
      <type reference="4"/>
      <amount>0</amount>
    </markdownAmount>
  </item>
  <lineItems id="7">
    <saleLineItem id="8">
      <item class="item" reference="2"/>

So as I read your answer, I understand XSLT cannot
"construct XPath expressions." But, can it read in
XML with that XPath notation?Sure, it can read in that XML. It's well-formed XML so why not? But I gather you want your XSLT to take those attributes, whose values are strings, and interpret those strings as XPath expressions. That, XSLT can't do.
To put it another way, the XPath expressions in an XSLT stylesheet have to be basically hard-coded there. So you could possibly solve your problem by first transforming the XML into an XSLT containing those expressions; e.g.<type reference="../../retailPrice/type"/>could be transformed into<xsl:value-of select="../../retailPrice/type"/>and then use that XSLT to do the actual transforming. But it would be extremely difficult to make that work -- I wouldn't want to have to do it myself.
The second idea, using reference="2" to refer to <item class="item" id="2">, is much more feasible.
Thank you for your replies and your patience.You're welcome. Have fun with XSLT.

Similar Messages

  • How can I export a stylesheet (either CSS or XSLT) with XML from indesign?

    Hi,
    I am using indesign CS4. I want to export style sheet whether it is CSS or XSLT file with xml.
    I try to get it but can't.
    Also the XML i am exporting does not styles that has been applied by me while creating the file in Indesign.
    Please help me out by telling me the way how can i get a stylesheet and also how can I embed that style sheet with XML so that my XML file looks similiar to the indesign file.
    Thanks,
    Choudhary Nafees Ahmed

    I am using indesign CS4. I want to export style sheet whether it is CSS or XSLT file with xml.
    CSS is not an XML style sheet, it's an HTML style sheet. "Export to HTML" will export an empty stylesheet for the paragraph and character styles. ID cannot convert its (very advanced) typographic capabilities to the (very limited) CSS notation, and thus it defaults to exporting the names only.
    XSLT is not an XML style sheet either; it's a transformation format (http://www.w3.org/TR/xslt).
    I try to get it but can't.
    Also the XML i am exporting does not styles that has been applied by me while creating the file in Indesign.
    XML Export does not export anything except the items you tagged with the Auto-tag feature, or you tagged yourself. If you need your styles tagged, use Map Styles to Tags (http://www.adobe.com/accessibility/products/indesign/mapping.html).
    XML has almost nothing to do with styling -- ideally, XML describes document structure while styles describe formatting.

  • Preprocessing xml to replace all xpath references with the referred elements

    Hi,
    Is it possible to sort of pre-process xml before querying such as we replace all internal xpath references with the referred elements?
    So below is the xml and as we see the typeId element of second app.test.module.library.Publisher element refers to the typeId element in the first app.test.module.library.Publisher element through xpath reference . Seems this is done by XStream(which we
    use for xml-java) to reduce the size of resulting xml. This is all fine and in java one can easily traverse through such xpath references, but the challenge i am facing is in sql where i use node() function to get each of app.test.module.library.Publisher
    element and fetch value of selectedText element of both the children of app.test.module.library.Publisher - (typeId, regionCode). 
    declare @publishers xml
    set @publishers = '
    <publishers>
      <app.test.module.library.Publisher>
        <typeId>
          <selectedId>101</selectedId>
          <selectedText>Book</selectedText>
        </typeId>
        <regionCode>
          <selectedId>102</selectedId>
          <selectedText>NWD</selectedText>
        </regionCode>
      </app.test.module.library.Publisher>
      <app.test.module.library.Publisher>
        <typeId reference="../../app.test.module.library.Publisher/typeId" />
        <regionCode>
          <selectedId>101</selectedId>
          <selectedText>UWY</selectedText>
        </regionCode>
      </app.test.module.library.Publisher>
      <app.test.module.library.Publisher>
        <typeId>
          <selectedId>100</selectedId>
          <selectedText>Deposit</selectedText>
        </typeId>
        <regionCode>
          <selectedId>100</selectedId>
          <selectedText>WHU</selectedText>
        </regionCode>
      </app.test.module.library.Publisher>
    </publishers>';
    select typeId = el.e.value('(typeId/selectedText)[1]','varchar(max)')
          ,regionCode = el.e.value('(regionCode/selectedText)[1]','varchar(max)')
    from @publishers.nodes('/publishers/app.test.module.library.Publisher') as el(e)
    If you execute this, the second typeId value will be null but ideally I should be able to reach to the reference, which is typeId of first app.test.module.library.Publisher element and should be able to fetch selectedText of it, which is correct value (Book).
    In other words first two app.test.module.library.Publisher elements are of same type (Book).
    Since I am not able to find the way to do it, I thought I should have some way to process this xml to replace all such references with the referred element and that will eliminate the need to go for tedious xpath reference based access.
    Thanks

    I was able to get a result using dynamic SQL, but my guess is if you have more complicated examples it probably won't work.  I also make an assumption you know the full path of the first reference you want.  Anyway, try this:
    DECLARE @xml XML = '<publishers>
    <app.test.module.library.Publisher>
    <typeId>
    <selectedId>101</selectedId>
    <selectedText>Book</selectedText>
    </typeId>
    <regionCode>
    <selectedId>102</selectedId>
    <selectedText>NWD</selectedText>
    </regionCode>
    </app.test.module.library.Publisher>
    <app.test.module.library.Publisher>
    <!--<typeId reference="../../app.test.module.library.Publisher/typeId" />-->
    <typeId reference="../../app.test.module.library.Publisher/typeId" />
    <regionCode>
    <selectedId>101</selectedId>
    <selectedText>UWY</selectedText>
    </regionCode>
    </app.test.module.library.Publisher>
    <app.test.module.library.Publisher>
    <typeId>
    <selectedId>100</selectedId>
    <selectedText>Deposit</selectedText>
    </typeId>
    <regionCode>
    <selectedId>100</selectedId>
    <selectedText>WHU</selectedText>
    </regionCode>
    </app.test.module.library.Publisher>
    </publishers>'
    -- So you basically need to create and execute this string;
    -- but how do you work out the first bit of the string ?
    --SELECT @xml.query('(publishers/app.test.module.library.Publisher/typeId/../../app.test.module.library.Publisher/typeId)[1]');
    DECLARE @fullPath NVARCHAR(MAX) = 'publishers/app.test.module.library.Publisher/typeId/@reference' -- the full path of the reference
    DECLARE @shortPath NVARCHAR(MAX) = LEFT( @fullPath, CHARINDEX( '@', @fullPath ) - 1 ) -- full path without attribute name
    IF @shortPath IS NULL
    RAISERROR ( 'Unable to get @shortPath.', 16, 1 )
    -- Start processing the XML
    DECLARE @sql NVARCHAR(MAX), @reference NVARCHAR(MAX)
    -- Extract the reference
    SET @reference = @xml.value('(publishers/app.test.module.library.Publisher/typeId/@reference)[1]', 'NVARCHAR(MAX)')
    -- Construct the sql
    SET @sql = 'SELECT @xml.query(''(' + @shortPath + @reference + ')[1]'')'
    -- Execute the SQL
    EXEC sp_executesql @sql, N'@sql NVARCHAR(MAX), @xml XML', @sql, @xml
    Post back any issues you have with that approach and your real data.

  • Problem with XML and XSLT, help...

    Okay, I have this XML doc (called stocks.xml):
    <?xml:stylesheet type="text/xsl" href="stocks.xsl" version="1.0" encoding="UTF-8"?>
    <portfolio>
    <stock>
    <symbol> SUNW </symbol>
    <name> Sun Microsystem </name>
    <price> 12.95 </price>
    </stock>
    <stock>
    <symbol> HPW </symbol>
    <name> Hewlet Packard </name>
    <price> 53.50 </price>
    </portfolio>
    And I have this XSLT doc (called stocks.xls):
    ?xml version="1.0"?>
    <xsl:stylesheet version="1.0" xmlns:xls="http://www.w3.org/TR/WD-xsl">
    <xsl:template match="/">
    <html>
    <head>
    <title> Stocks </title>
    <body bgcolor="#ffffcc">
    <xsl:apply-template />
    </body>
    </head>
    </html>
    </xsl template>
    <xsl:template match="portfolio">
    <table border="2">
    <tr>
    <th> Stock Symbol </th><th> Company Name </th><th> Price </th>
    </tr>
    <xsl:for-each select="stock">
    <tr>
    <td>
    <i><xsl:value-of select="symbol" /></i>
    </td>
    <td>
    <xsl:value-of select="price" />
    </td>
    </tr>
    </xsl:for-each>
    </table>
    </xsl template>
    </stylesheet>
    When I try to retrieve the stocks.xml document with
    IE, the browser said, there is an error on line 2, can not
    recognize xsl:
    The XML page cannot be displayed
    Cannot view XML input using XSL style sheet. Please correct the error and then click the Refresh button, or try again later.
    Reference to undeclared namespace prefix: 'xsl'. Error processing resource 'http://localhost:8080/examples/jsp/stocks/stocks.xsl'. Line 2, Position 71
    <xsl:stylesheet version="1.0" xmlns:xls="http://www.w3.org/TR/WD-xsl">
    I just follow this from an example of XML tutorial.
    Please help, what is it that I miss? Seems everything
    I have is okay....??
    Thanks,
    Ted.

    Thanks you all!
    You have spotted that mistyped.
    However, turns out Internet Browser that I have does not permit the use of XSL. After I fixed the file, I got this
    message:
    The XML page cannot be displayed
    Cannot view XML input using XSL style sheet. Please correct the error and then click the Refresh button, or try again later.
    Keyword xsl:apply-template may not be used here.
    Oh well...
    Anybody knows, if IE can or can not be used to view the
    XML that reference XSL??
    Thanks,
    Ted.

  • XSLT and generated text using InDesign with xml

    I have recently switched from Framemaker to InDesign and am still getting to grips with the differences so apologies if this is a very basic query.
    Framemaker was used to format sgml tagged text. You could specify that a particular tag generated a prefix or suffix. You could also specify that the tag should generate the prefix or suffix only under certain circumstances (context rules). The prefixes and suffixes I need to apply are things like open and closing brackets, commas, full stops, and sometimes a bit of text.
    I am told that this can be done with XSLT. There are whole libraries of books on XSLT out there and not knowing anything about the subject I really don't know where to start. Does anyone out there who uses InDesign with xml and XSLT have any tips about where to find useful information on the subject?
    Thanks in advance for any help on the subject.
    Steven

    Yeah, we use to have such feature wayback then. Indesign package into GoLive.  Kindly look through the idea section and vote massively for this idea.

  • Open XML file in XML editor with certain XPath highlighted

    Hi,
    I have wrtten an XML compraison tool which produces an HTML report of all differences and shows the xpaths where there is a mismatch. I want the user to be able to click the xpath (like hyperlink) and open the XML file using IE or any opensource XML editor (xerlin?) such that the xpath node is the current highlighted node on the screen. That way the user can right away seee where the mismatch is. As a next step I wanted to open both the control and the test files side by side with both xpaths highlighted.
    Any idea how I can approach the problem? Is there any open osurce software I can leverage and integrate my application,
    Thanks,
    Abhijit

    This code of yours should work.
    <% if display_url is not initial. %>
    <script language="Javascript">
    url = "<%=display_url%>";
    window.open(url, "Zusatz", "width=400, height=400");
    </script>
    <% endif. %>
    what happens, it doesnt open new window at all or new window is opened but xml doesnt show up?
    Regards
    Raja

  • Problems with Sun One Web Server 6.1 javax.xml.xpath package not found

    I used myeclipse to build an xml app and tested on jboss. it worked perfectly. However when i deployed it to our solaris sun one web server the app fell apart completely with the following error. I m unable to figure out what went wrong. Any help will be much appreciated.
    Thanks.
    [11/Dec/2007:22:12:37] failure (13539):      for host 121.247.233.169 trying to GET /feeds/rss.jsp, service-j2ee reports: StandardWrapperValve[jsp]: WEB2792: Servlet.service() for servlet jsp threw exception
         org.apache.jasper.JasperException: WEB4000: Unable to compile class for JSP
         /opt/SUNWwbsvr/test/ClassCache/test/_jsps/_feeds/_rss_jsp.java:8: package javax.xml.xpath does not exist
         import javax.xml.xpath.*;
         ^

    Thanks for the response. I tried to use xalan package which resolved the javax.xml.xpath package not found error (xalan.jar in WEB-INF/lib folder). However I m now getting the following error. Probably incompatible version is the reason. Please advise!
    [11/Dec/2007:23:46:28] failure (17028):      for host 121.247.233.169 trying to GET /feeds/rss.jsp, service-j2ee reports: StandardWrapperValve[jsp]: WEB2792: Servlet.service() for servlet jsp threw exception
         javax.servlet.ServletException: org.apache.xpath.XPathContext.<init>(Z)V
         at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:536)
         at _jsps._feeds._rss_jsp._jspService(_rss_new_jsp.java:627)
         at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:107)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:908)
         at com.iplanet.ias.web.jsp.JspServlet$JspServletWrapper.service(JspServlet.java:687)
         at com.iplanet.ias.web.jsp.JspServlet.serviceJspFile(JspServlet.java:459)
         at com.iplanet.ias.web.jsp.JspServlet.service(JspServlet.java:375)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:908)
         at org.apache.catalina.core.StandardWrapperValve.invokeServletService(StandardWrapperValve.java:771)
         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:322)
         at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:509)
         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:212)
         at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:509)
         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:209)
         at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:509)
         at com.iplanet.ias.web.connector.nsapi.NSAPIProcessor.process(NSAPIProcessor.java:161)
         at com.iplanet.ias.web.WebContainer.service(WebContainer.java:580)
         ----- Root Cause -----
         java.lang.NoSuchMethodError: org.apache.xpath.XPathContext.<init>(Z)V
         at org.apache.xpath.jaxp.XPathImpl.eval(XPathImpl.java:207)
         at org.apache.xpath.jaxp.XPathImpl.evaluate(XPathImpl.java:281)
         at _jsps._feeds._rss_new_jsp._jspService(_rss_jsp.java:165)
         at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:107)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:908)
         at com.iplanet.ias.web.jsp.JspServlet$JspServletWrapper.service(JspServlet.java:687)
         at com.iplanet.ias.web.jsp.JspServlet.serviceJspFile(JspServlet.java:459)
         at com.iplanet.ias.web.jsp.JspServlet.service(JspServlet.java:375)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:908)
         at org.apache.catalina.core.StandardWrapperValve.invokeServletService(StandardWrapperValve.java:771)
         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:322)
         at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:509)
         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:212)
         at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:509)
         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:209)
         at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:509)
         at com.iplanet.ias.web.connector.nsapi.NSAPIProcessor.process(NSAPIProcessor.java:161)
         at com.iplanet.ias.web.WebContainer.service(WebContainer.java:580)

  • What's wrong with my XPath statement using dom4j?

    I'm pretty new to XML. However, I did pick up a book and I'm pretty much through it. I got a copy of dom4j and I created a sample XML file. I'm able to parse the data and find out the child elements of root but I'm having problems with using XPath no matter what I do. Here's my code:
    import org.dom4j.*;
    import org.dom4j.io.*;
    import java.util.*;
    import java.io.*;
    public class XMLACL {
      org.dom4j.Document doc;
      org.dom4j.Element root;
      XMLACL(String x) {
        String tempFile = System.getProperty("user.dir") + "/winsudo.xml";
        tempFile = tempFile.replace('\\', '/');
        SAXReader xmlReader = new SAXReader();
        try {
          doc = xmlReader.read(tempFile);
        catch (Exception e) {}
        root = doc.getRootElement();
        //treeWalk();
        //iterateRootChildren("grant");
        XPath xpathSelector = DocumentHelper.createXPath("/grant[@prompt='no']");  
        List results = xpathSelector.selectNodes(doc);
        for (Iterator iter = results.iterator(); iter.hasNext(); ) {
         Element element = (Element) iter.next();
          System.out.println(element.getName());
    }And here's my XML:
    <?xml version="1.0" encoding="UTF-8"?>
    <config>
         <alias name="admin">
              <user>geneanthony</user>
              <user>mike</user>
              <user>rob</user>
         </alias>
         <grant prompt="no" runas="root" service="no">
              <user>geneanthony</user>
              <command>!ALL</command>
         </grant>
         <grant>
              <user>geneanthony</user>
              <group>users</group>
              <command>C:/Program Files/Mozilla Firefox/firefox.exe</command>
         </grant>
         <grant>
              <alias>admin</alias>
              <command>!Panels</command>
         </grant>
    </config>I'm currently getting this error:
    C:\Borland\JBuilder2005\jdk1.4\bin\javaw -classpath "C:\code\java\WinSudo\classes;C:\Borland\JBuilder2005\jdk1.4\jre\javaws\javaws.jar;C:\Borland\JBuilder2005\jdk1.4\jre\lib\charsets.jar;C:\Borland\JBuilder2005\jdk1.4\jre\lib\ext\dnsns.jar;C:\Borland\JBuilder2005\jdk1.4\jre\lib\ext\ldapsec.jar;C:\Borland\JBuilder2005\jdk1.4\jre\lib\ext\localedata.jar;C:\Borland\JBuilder2005\jdk1.4\jre\lib\ext\sunjce_provider.jar;C:\Borland\JBuilder2005\jdk1.4\jre\lib\im\indicim.jar;C:\Borland\JBuilder2005\jdk1.4\jre\lib\im\thaiim.jar;C:\Borland\JBuilder2005\jdk1.4\jre\lib\jce.jar;C:\Borland\JBuilder2005\jdk1.4\jre\lib\jsse.jar;C:\Borland\JBuilder2005\jdk1.4\jre\lib\plugin.jar;C:\Borland\JBuilder2005\jdk1.4\jre\lib\rt.jar;C:\Borland\JBuilder2005\jdk1.4\jre\lib\sunrsasign.jar;C:\Borland\JBuilder2005\jdk1.4\lib\dt.jar;C:\Borland\JBuilder2005\jdk1.4\lib\htmlconverter.jar;C:\Borland\JBuilder2005\jdk1.4\lib\tools.jar;C:\Borland\JBuilder2005\jdk1.4\jre\lib\jRegistryKey.jar;C:\Borland\JBuilder2005\jdk1.4\lib\hsqldb.jar;C:\Borland\JBuilder2005\jdk1.4\jre\lib\dom4j-1.6.1.jar;C:\Borland\JBuilder2005\jdk1.4\jre\lib\syntax.jar;C:\Borland\JBuilder2005\jdk1.4\jre\lib\IzPack-install-3.7.2.jar" winsudo.Main
    java.lang.NoClassDefFoundError: org/jaxen/JaxenException
         at org.dom4j.DocumentFactory.createXPath(DocumentFactory.java:230)
         at org.dom4j.DocumentHelper.createXPath(DocumentHelper.java:121)
         at winsudo.XMLACL.<init>(XMLACL.java:26)
         at winsudo.Main.main(Main.java:15)
    Exception in thread "main"
    Can someone tell me what's wrong with my code. None of the samples I've seen came with the XML files so I don't know if I when I start the XPATH I need to use / for the root element, or // or a forward slash and the root name. Can I please get some help!

    Thank you! I didn't haven Jaxen I thought everything was in the package and I must have missed it in the tutorials. That resolved the dropouts and I think I'm good know. I couldn't think for the life of me what I was doing wrong!

  • ABAP XSLT transformation - XML to deep structure/nested standard table

    Hi all,
    I was struggling with this topic recently and couldn't find a single working example or description of a possible solution. So now that I've sorted it out, I did a quick example to elustrate how it works. Here is the code with XML embeded in it and the XSLT follows:
    <HR>
    <PRE>
    *& Report  Z_XML2ABAP
    *& Author: Jayanta Roy
    *& Date: 03/02/2010
    REPORT  z_xml2abap.
    DATA input_xml TYPE string.
    TYPES: BEGIN OF t_address,
            house_no TYPE string,
            street_name TYPE string,
            city_name TYPE string,
            phone_no TYPE string,
          END OF t_address.
    TYPES: t_addresses TYPE STANDARD TABLE OF t_address with NON-UNIQUE KEY house_no.
    TYPES: BEGIN OF t_person,
            firstname TYPE string,
            surname TYPE string,
            addresses TYPE t_addresses,
          END OF t_person.
    input_xml = '&lt;Friends&gt;' &&
      '&lt;People&gt;' &&
        '&lt;FirstName&gt;Homer&lt;/FirstName&gt;' &&
        '&lt;Surname&gt;Simpson&lt;/Surname&gt;' &&
          '&lt;Address&gt;' &&
            '&lt;HouseNo&gt;123&lt;/HouseNo&gt;' &&
            '&lt;Street&gt;Evergreen Terrace&lt;/Street&gt;' &&
            '&lt;City&gt;Springfield&lt;/City&gt;' &&
            '&lt;PhoneNo&gt;011212321&lt;/PhoneNo&gt;' &&
          '&lt;/Address&gt;' &&
          '&lt;Address&gt;' &&
            '&lt;HouseNo&gt;7G&lt;/HouseNo&gt;' &&
            '&lt;Street&gt;Neuclear Power Plant&lt;/Street&gt;' &&
            '&lt;City&gt;Spring Field&lt;/City&gt;' &&
            '&lt;PhoneNo&gt;911&lt;/PhoneNo&gt;' &&
          '&lt;/Address&gt;' &&
      '&lt;/People&gt;' &&
      '&lt;People&gt;' &&
         '&lt;FirstName&gt;Bart&lt;/FirstName&gt;' &&
         '&lt;Surname&gt;Simpson&lt;/Surname&gt;' &&
           '&lt;Address&gt;' &&
             '&lt;HouseNo&gt;123x&lt;/HouseNo&gt;' &&
             '&lt;Street&gt;Evergreen Terracex&lt;/Street&gt;' &&
             '&lt;City&gt;Springfieldx&lt;/City&gt;' &&
             '&lt;PhoneNo&gt;011212321x&lt;/PhoneNo&gt;' &&
           '&lt;/Address&gt;' &&
       '&lt;/People&gt;' &&
    '&lt;/Friends&gt;' .
    DATA lt_person TYPE STANDARD TABLE OF t_person.
    TRY.
        CALL TRANSFORMATION xslt_person
        SOURCE XML input_xml
        RESULT  all_people = lt_person.
      CATCH cx_root.
        WRITE 'Problemo!'.
    ENDTRY.
    WRITE 'Now, debug the program to see the values read from the XML'.
    </PRE>
    <HR>
    and here is the XSLT Transformation program (xslt_person):
    <HR>
    <PRE>
    &lt;xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                        xmlns:sap="http://www.sap.com/sapxsl" version="1.0"&gt;
      &lt;xsl:strip-space elements="*"/&gt;
      &lt;xsl:template match="/"&gt;
        &lt;asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0"&gt;
          &lt;asx:values&gt;
            &lt;ALL_PEOPLE&gt;
              &lt;xsl:apply-templates select="//People"/&gt;
            &lt;/ALL_PEOPLE&gt;
          &lt;/asx:values&gt;
        &lt;/asx:abap&gt;
      &lt;/xsl:template&gt;
      &lt;xsl:template match="People"&gt;
        &lt;ALLMYFRIENDS&gt;  &lt;!This element name is not relevent... needed to just group the loop&gt;
          &lt;FIRSTNAME&gt;
            &lt;xsl:value-of select="FirstName"/&gt;
          &lt;/FIRSTNAME&gt;
          &lt;SURNAME&gt;
            &lt;xsl:value-of select="Surname"/&gt;
          &lt;/SURNAME&gt;
          &lt;ADDRESSES&gt;
            &lt;xsl:for-each select="Address"&gt;
              &lt;ADDRESS&gt; &lt;!This element name is not relevent... needed to just group the loop&gt;
                &lt;HOUSE_NO&gt;
                  &lt;xsl:value-of select="HouseNo"/&gt;
                &lt;/HOUSE_NO&gt;
                &lt;STREET_NAME&gt;
                  &lt;xsl:value-of select="Street"/&gt;
                &lt;/STREET_NAME&gt;
                &lt;CITY_NAME&gt;
                  &lt;xsl:value-of select="City"/&gt;
                &lt;/CITY_NAME&gt;
                &lt;PHONE_NO&gt;
                  &lt;xsl:value-of select="PhoneNo"/&gt;
                &lt;/PHONE_NO&gt;
              &lt;/ADDRESS&gt;
            &lt;/xsl:for-each&gt;
          &lt;/ADDRESSES&gt;
        &lt;/ALLMYFRIENDS&gt;
      &lt;/xsl:template&gt;
    &lt;/xsl:transform&gt;
    </PRE>
    <HR>
    HTH,
    Jayanta.

    thanks a LOT Jayanta..
    I was looking for an XSLT example for some time.. this one atleast got me started in the right direction..
    THANKS

  • How can I get XML cross-references to translate to Structured FrameMaker?

    I've been using Structured FrameMaker from the beginning, and have designed many EDDs, and about 10 years ago I did some translation of SGML into Structured FrameMaker (7.2) which worked well.
    Now, (with FrameMaker 10), I've had to design an EDD to translate XML documents into Structured FrameMaker.
    In my EDD I've a CrossReference element called XRef; this has an attribute of ID, which in turn has a value of IDReference and has Special AttributeConrols of ReadOnly.
    My target elements in the EDD all have an ID attribute with a value of UniqueID.
    My XML document's target xref element has  an attribute of linkend, and in XML this works as I'd expect.
    When I pass the XML file through the EDD/Template, everything works except that I get an ID = no value, which, of course, results in no display of the cross-reference data in the document.
    Oddly, in structured FrameMaker, my element of link, with an attribute of linkend, works as it should, and displays the data.  It may not be important, but the value for linkend is IDReference not UniqueID, and this displays correctly (I changed this attribute's value to Unique ID in my EDD and it made no difference to the XRef value in my document).
    After making all these EDD changes, I've been careful to save the changes, import them to all files in my book and finally update the book.   Everything hangs together - except, of course, that the cross-reference doesn't work.
    I'd sincerely appreciate any help or advice other users might have because I'm quite frankly stumped.

    Russ,
    Sorry about the delay in replying; got sidetracked trying to fix some FrameMaker 10 problems; on occasion, it laughs and crashes if we copy an element in a document and paste it to somewhere illegal.  This doesn't happen all the time, but it might be something someone might do, so it was interesting to know.
    Anyway, back to cross-references.
    In our r/w rules we have:
    "linkend" is fm attribute "ID";
    Can we also have a similar line under the cross-reference element as:
    element "xref"
         is fm cross-reference element "XRef";
         attribute "linkend" is fm property cross-reference id;
         attribute "role" is fm property cross-reference format;
    At the moment the second line is:
    .....attribute ID is fm property cross-reference id;
    I tried adding the attribute "linkend" is fm property cross-reference id; (so that I had both linkend and ID) bit but this made no difference.
    In general use cross-references work, in that it picks up data in one place in the document, e.g. WorldWideWeb, and repeats it elsewhere.   So in our xml file we have a link element with an attribute linkend which, when it's processed (ignoring the handshake code used to link the two - which could be something vague like 12345vvdog), repeats whatever is the target.
    Conversely, for a cross-reference, in xml they use an xref element which also has a linkend attribute (similar mysterious secret handshake behind the scenes) which is deemed to point to a list of references.   This looks like it might be the stumbling block in that it links to an area in the xml document which is used as an internally generated list of references.  Apparently this is only built when the xml book equivelent is finalised, so is not, like the link and linkend coupling described above.
    I've passed this back to the xml people, and they are investigating a different way of preparing their cross-reference to a list of references (I'm now thoroughly confused with all these references - good thing the weekend's just around the corner).
    I appreciate all you help and advice, I'll admit that this is a lot more difficult to understand than straight-forward EDD element creation along with their respective attributes.   Life used to be so much more simple back then!
    In sum, what I thought I was doing was allowing an ID attribute with a value of IDReference in my elements, this was deemed to allow for FrameMaker cross-referencing.   In Structured FrameMaker, on its own, this works just fine; it all fell flat on its face when trying to import xml.   I tried to see whether the xref element's ID attribute could also be a UniqueID, but as just about everyone has said, this is a silly idea.   I was just trying stuff to see whether it might make a difference - you'll not be surprised to see that it didn't!
    For the moment, I have attributes called ID with a value of IDReference, and I understand you're all suggesting to leave it at that.
    If I understand correctly, I could eventually use an IDRef attribute if I wanted a UniqueID value to be used, though I'm not sure what a UniqueID is used or useful for, so will file that for future use.
    Again, thanks for the advice and help.
    Chris

  • How to apply XSLT to XML file while importing XML data using XSU plsql API

    I need to load XML file with nested repeating elements into Oracle tables and I am using XSU PLSQL API utility package dbms_xmlSave.insertXML. Can use XMLGen package also!!
    I found out through documentation that I need to have XML file with ROWSET/ROW tags around the elements. As I have no control of XML file coming from external source, so I wish to apply XSLT to XML. I found setXSLT/setStylesheet procedures but it's not working as expected.
    Can you help me with some sample code for the purpose.
    Thanks

    I'm new at XML and XSL as well, but maybe the following code I built can help:
    CREATE OR REPLACE PACKAGE Xml_Pkg AS
    /* this record and table type are used for the transformTags procedure */
    TYPE TagTransform_t IS RECORD (
    old_tag VARCHAR2(255),
    new_tag VARCHAR2(255) );
    TYPE TagTransformList_t IS TABLE OF TagTransform_t INDEX BY BINARY_INTEGER;
    /* use DBMS_OUTPUT to print out a CLOB */
    PROCEDURE printClobOut(p_clob IN OUT NOCOPY CLOB);
    /* using a list of old/new tags, transform all old into new in XML2 */
    PROCEDURE transformTags(
    p_List TagTransformList_t,
    p_XML1 IN OUT NOCOPY CLOB,
    p_XML2 IN OUT NOCOPY CLOB);
    END Xml_Pkg;
    CREATE OR REPLACE PACKAGE BODY Xml_Pkg AS
    /* print a CLOB using newlines */
    PROCEDURE printClobOut(p_clob IN OUT NOCOPY CLOB) IS
    buffer_overflow EXCEPTION;
    PRAGMA EXCEPTION_INIT(buffer_overflow,-20000);
    l_offset NUMBER;
    l_len NUMBER;
    l_o_buf VARCHAR2(255);
    l_amount NUMBER; --}
    l_f_amt NUMBER := 0; --}To hold the amount of data
    l_f_amt2 NUMBER; --}to be read or that has been
    l_amt2 NUMBER := -1; --}read
    l_offset2 NUMBER;
    l_amt3 NUMBER;
    l_chk NUMBER := 255;
    BEGIN
    l_len := DBMS_LOB.GETLENGTH(p_clob);
    l_offset := 1;
    WHILE l_len > 0 LOOP
    l_amount := DBMS_LOB.INSTR(p_clob,CHR(10),l_offset,1);
    --Amount returned is the count from the start of the file,
    --not from the offset.
    IF l_amount = 0 THEN
    --No more linefeeds so need to read remaining data.
    l_amount := l_len;
    l_amt2 := l_amount;
    ELSE
    l_f_amt2 := l_amount; --Store position of next LF
    l_amount := l_amount - l_f_amt; --Calc position from last LF
    l_f_amt := l_f_amt2; --Store position for next time
    l_amt2 := l_amount - 1; --Read up to but not the LF
    END IF;
    /* divide the read into 255 character chunks for dbms_output */
    IF l_amt2 != 0 THEN
    l_amt3 := l_amt2;
    l_offset2 := l_offset;
    WHILE l_amt3 > l_chk LOOP
    DBMS_LOB.READ(p_clob,l_chk,l_offset2,l_o_buf);
    DBMS_OUTPUT.PUT_LINE(l_o_buf);
    l_amt3 := l_amt3 - l_chk;
    l_offset2 := l_offset2 + l_chk;
    END LOOP;
    IF l_amt3 != 0 THEN
    DBMS_LOB.READ(p_clob,l_amt3,l_offset2,l_o_buf);
    DBMS_OUTPUT.PUT_LINE(l_o_buf);
    END IF;
    END IF;
    l_len := l_len - l_amount;
    l_offset := l_offset+l_amount;
    END LOOP;
    EXCEPTION
    WHEN buffer_overflow THEN
    RETURN;
    END printClobOut;
    /* shortcut "writeline" procedure for CLOB buffer writes */
    PROCEDURE wr(p_clob IN OUT NOCOPY CLOB, s VARCHAR2) IS
    BEGIN
    DBMS_LOB.WRITEAPPEND(p_clob,LENGTH(s)+1,s||CHR(10));
    END;
    /* the standard XSLT should include the identity template or the output XML will be malformed */
    PROCEDURE newXsltHeader(p_xsl IN OUT NOCOPY CLOB, p_identity_template BOOLEAN DEFAULT TRUE) IS
    BEGIN
    DBMS_LOB.TRIM(p_xsl,0);
    /* standard XSL header */
    wr(p_xsl,'<?xml version="1.0"?>');
    /* note that the namespace for the xsl is restricted to the w3 1999/XSL */
    wr(p_xsl,'<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">');
    IF p_identity_template THEN
    /* create identity template (transfers all "other" nodes) */
    wr(p_xsl,' <xsl:template match="node()">');
    wr(p_xsl,' <xsl:copy>');
    wr(p_xsl,' <xsl:apply-templates/>');
    wr(p_xsl,' </xsl:copy>');
    wr(p_xsl,' </xsl:template>');
    END IF;
    END newXsltHeader;
    PROCEDURE newXsltFooter(p_xsl IN OUT NOCOPY CLOB) IS
    BEGIN
    /* standard xsl footer */
    wr(p_xsl,'</xsl:stylesheet>');
    END newXsltFooter;
    /* using the stylesheet in p_xsl, transform p_XML1 into p_XML2 */
    PROCEDURE transformXML(p_xsl IN OUT NOCOPY CLOB, p_XML1 IN OUT NOCOPY CLOB, p_XML2 IN OUT NOCOPY CLOB) IS
    l_parser XMLPARSER.Parser;
    l_doc XMLDOM.DOMDocument;
    l_xsl_proc XSLPROCESSOR.Processor;
    l_xsl_ss XSLPROCESSOR.Stylesheet;
    BEGIN
    /* parse XSL CLOB */
    l_parser := XMLPARSER.newParser;
    BEGIN
    XMLPARSER.showWarnings(l_parser,TRUE);
    XMLPARSER.parseClob(l_parser,p_xsl);
    l_doc := XMLPARSER.getDocument(l_parser);
    XMLPARSER.freeParser(l_parser);
    EXCEPTION
    WHEN OTHERS THEN
    XMLPARSER.freeParser(l_parser);
    RAISE;
    END;
    /* get Stylesheet from DOMDOC */
    l_xsl_ss := XSLPROCESSOR.newStylesheet(l_doc,NULL);
    BEGIN
    /* parse XML1 CLOB */
    l_parser := XMLPARSER.newParser;
    BEGIN
    XMLPARSER.showWarnings(l_parser,TRUE);
    XMLPARSER.parseClob(l_parser,p_xml1);
    l_doc := XMLPARSER.getDocument(l_parser);
    XMLPARSER.freeParser(l_parser);
    EXCEPTION
    WHEN OTHERS THEN
    XMLPARSER.freeParser(l_parser);
    RAISE;
    END;
    /* process doc to XML2 */
    l_xsl_proc := XSLPROCESSOR.newProcessor;
    BEGIN
    XSLPROCESSOR.processXSL(l_xsl_proc, l_xsl_ss, l_doc, p_xml2);
    XSLPROCESSOR.freeProcessor(l_xsl_proc);
    EXCEPTION
    WHEN OTHERS THEN
    XSLPROCESSOR.freeProcessor(l_xsl_proc);
    RAISE;
    END;
    XSLPROCESSOR.freeStylesheet(l_xsl_ss);
    EXCEPTION
    WHEN OTHERS THEN
    XSLPROCESSOR.freeStylesheet(l_xsl_ss);
    RAISE;
    END;
    END transformXML;
    /* transform XML1 into XML2 using list p_List of old/new tags */
    PROCEDURE transformTags(p_List TagTransformList_t, p_XML1 IN OUT NOCOPY CLOB, p_XML2 IN OUT NOCOPY CLOB) IS
    l_xsl CLOB;
    BEGIN
    /* create XSL CLOB */
    DBMS_LOB.CREATETEMPORARY(l_xsl,TRUE);
    /* create standard header with identity template */
    newXsltHeader(l_xsl,TRUE);
    /* create one template for each node translation */
    FOR i IN 1..p_List.COUNT LOOP
    wr(l_xsl,' <xsl:template match="'||p_List(i).old_tag||'">');
    wr(l_xsl,' <'||p_List(i).new_tag||'><xsl:apply-templates/></'||p_List(i).new_tag||'>');
    wr(l_xsl,' </xsl:template>');
    END LOOP;
    /* create standard footer */
    newXsltFooter(l_xsl);
    -- dbms_output.put_line('l_xsl:');
    -- dbms_output.put_line('--------------------');
    -- printClobOut(l_xsl);
    -- dbms_output.put_line('--------------------');
    transformXML(l_xsl, p_XML1, p_XML2);
    DBMS_LOB.FREETEMPORARY(l_xsl);
    /* -- unit testing
    set serveroutput on size 100000
    Declare
    queryContext DBMS_XMLQUERY.ctxType;
    xList XML_PKG.TagTransformList_t;
    xmlCLOB CLOB;
    xmlCLOB2 CLOB;
    Begin
    DBMS_LOB.CREATETEMPORARY(xmlCLOB,true);
    DBMS_LOB.CREATETEMPORARY(xmlCLOB2,true);
    xList(1).old_tag := 'A';
    xList(1).new_tag := 'MyTag1';
    xList(2).old_tag := 'B';
    xList(2).new_tag := 'MyTag2';
    queryContext := DBMS_XMLQUERY.newContext('Select * from t');
    xmlCLOB := DBMS_XMLQUERY.getXML(queryContext);
    DBMS_XMLQuery.closeContext(queryContext);
    dbms_output.put_line('xmlCLOB:');
    dbms_output.put_line('--------------------');
    XML_PKG.printClobOut(xmlCLOB);
    dbms_output.put_line('--------------------');
    xml_pkg.transformTags(xList,xmlCLOB,xmlCLOB2);
    dbms_output.put_line('xml2CLOB:');
    dbms_output.put_line('--------------------');
    XML_PKG.printClobOut(xmlCLOB2);
    dbms_output.put_line('--------------------');
    DBMS_LOB.FREETEMPORARY(xmlCLOB);
    DBMS_LOB.FREETEMPORARY(xmlCLOB2);
    End;
    END transformTags;
    END Xml_Pkg;

  • I need help with XML Gallery Fade in out transition. somebody please help me :(

    I need help with XML Gallery Fade in out transition. somebody please help me
    I have my post dont want to duplicate it

    The problem doesn't lie with your feed, although it does contain an error - you have given a non-existent sub-category. You need to stick to the categories and sub-categories listed here:
    http://www.apple.com/itunes/podcasts/specs.html#categories
    Subscribing to your feed from the iTunes Store page work as such, but the episodes throw up an error message. The problem lies with your episode media files: you are trying to stream them. Pasting the URL into a browser produces a download (where it should play the file) of a small file which does not play and in fact is a text file containing (in the case of ep.2) this:
    [Reference]
    Ref1=http://stream.riverratdoc.com/RiverratDoc/episode2.mp3?MSWMExt=.asf
    Ref2=http://70.33.177.247:80/RiverratDoc/episode2.mp3?MSWMExt=.asf
    You must provide a direct link to the actual mp3 file. Streaming won't work. The test is that if you paste the URL of the media file (as given in the feed) into the address bar of a browser it should play the file.

  • Help with XML - AS 3.0

    Hello everybody. I decided to start working with XML since it allows me to load assets externally and edit my applications later very easily without having to edit the fla file itself. So today I watched and read a few tutorials and now I'm trying to build an Event Scroll, all through XML and AS 3.0 code. Basically what I want is to have several events inside a movieclip which I will incorporate into a scroll pane when I'm done, for now I'll focus on extracting data from the XML file and parsing it with AS 3.0. The layout is simple: a thumbnail image on the left, and beside it on the right there is the title of the event, its date and some info about it and all of these should have a dark grey background while the text is in white. Each two events are 30 pixels apart and there are 5 events for now.
    Ok enough talking now let's get to the code:
    XML Code:
    <?xml version="1.0" encoding="utf-8"?>
    <EVENTSXML>
         <EVENT>
              <TITLE> Event 1</TITLE>
             <DATE>12/04/2009</DATE>
            <THUMB>thumb0.jpg</THUMB>
            <INFO> Some Text Goes Here </INFO>
        </EVENT>
         <EVENT>
               <TITLE>Event 2</TITLE>
             <DATE>03/02/2009</DATE>
            <THUMB>thumb1.jpg</THUMB>
            <INFO>Some Text Goes Here</INFO>
         </EVENT>
         <EVENT>
               <TITLE>Event 3</TITLE>
             <DATE>18/11/2008</DATE>
            <THUMB>thumb2.jpg</THUMB>
            <INFO>Some Text Goes Here</INFO>
         </EVENT>
         <EVENT>
               <TITLE>Event 4</TITLE>
             <DATE>10/09/2008</DATE>
            <THUMB>thumb3.jpg</THUMB>
            <INFO>Some Text Goes Here</INFO>
         </EVENT>
         <EVENT>
               <TITLE>Event 5</TITLE>
             <DATE>06/08/2008</DATE>
            <THUMB>thumb4.jpg</THUMB>
            <INFO>Some Text Goes Here</INFO>
         </EVENT>
    </EVENTSXML>
    Actionscript 3.0 Code:
    var myXML:XML;
    var req:URLRequest = new URLRequest("events.xml");
    var ldr:URLLoader = new URLLoader();
    ldr.load(req);
    ldr.contentLoaderInfo.addEventListener(Event.COMPLETE, processXML);
    function processXML(e:Event):void
         myXML = new XML(e.target.data);
         buildEvents(myXML.EVENT);
    var eventScroll:MovieClip = new MovieClip();
    var padding:Number = 30;
    this.addChild(eventScroll);
    eventScroll.x = eventScroll.y = padding;
    function buildEvents(evnts:XMLList):void
         for(var i:uint = 0; i <evnts.length(); i++) {
              var eventData:MovieClip = new MovieClip();
              eventData.y = (20 + padding) * i;
              eventData.itemNum = i;
              eventData.title = evnts[i].TITLE;
              eventData.date = evnts[i].DATE;
              eventData.thumb = evnts[i].THUMB;
              eventData.info = evnts[i].INFO;
              // thumb container
              thisThumb:Sprite = new Sprite();
              var ldr:Loader = new Loader()
              var req:URLRequest = new URLRequest(eventData.thumb);
              ldr.load(req);
              thisThumb.addChild(ldr);
              eventData.addChild(thisThumb);
              eventScroll.addChild(eventData);
    now I am stuck there... the application is not done yet and when I publish the file I keep getting errors, these are the errors:
    1067: Implicit coercion of a value of type flash.display:Sprite to an unrelated type Class.
    Source: thisThumb:Sprite = new Sprite();
    1188: Illegal assignment to class Sprite.
    Source: thisThumb:Sprite = new Sprite();
    1120: Access of undefined property thisThumb.
    Source: thisThumb.addChild(ldr);
    1120: Access of undefined property thisThumb.
    Source: eventData.addChild(thisThumb);
    1119: Access of possibly undefined property contentLoaderInfo through a reference with static type flash.net:URLLoader.
    Source: ldr.contentLoaderInfo.addEventListener(Event.COMPLETE, processXML);
    So where did I go wrong and how can I carry on with my code to finish my application?
    P.S: I do not want someone to do it for me, so in case someone decided to help me out, please comment and explain your code because this application is for learning porpuses in the first place... Thanks in advance!

    oh I've just noticed one little problem, in my info field, the text doesn't break and start a new line, it just keeps going horizontally although I've set it to multiline and gave it a width and height... so what shall I do to fix this problem? here's the code:
    var infoF:TextField = new TextField();
              infoF.text = eventData.info;
              infoF.x = 250;
              infoF.y = dateF.y + padding;
              infoF.multiline = true;
              infoF.width = 200;
              infoF.height = 100;
              addChild(infoF);

  • Issues faced with XML (Objt-Rel) - Plan to move to Binary XML (schema-less)

    Hi All,
    Our Production DB has Oracle XMLDB implementation using 9 XMLDB Object-Relational
    Tables. These have been implemented almost since a year, and we faced several issues,
    have listed some of the most important ones:
    Obviously it is Object-Relational implementation, so we have 4-5 XSDs to start with that
    support the Object-Relational schema
    1) copyEvolve Issues : Due to changing Business Requirements constantly, we had to constantly
    and continuously modify/upgrade XSDs and then use "copyEvolve" to apply new XSDs
    Encountered several issues with CopyEvolve
    2) "Home-grown" solution to evolve XSD/Schema:
    We came up with our own Solution to migrate/evolve XSD schema.
    a) Backup all data from 9 XML DB Tables to 9 CLOB Tables (data is thus "dereferenced" and "delinked"
    from underlying XSDs
    b) Since data is backed up to CLOB Tables, go ahead and drop the entire schema and register
    new XSDs and recreate Tables. (GRANTS and PUBLIC SYNONYMS reappled, needless to say)
    c) Reload data from backed up CLOB Tables to newly created XMLDB (Obj-Relational) Tables
    Above approach (without "copyEvolve") has worked fine so far and helped in each Release/ every migration
    With our data sets becoming increasingly huge, downtime is not sufficient to follow this successful, home-grown
    approach and as a result we would like to get away from Object-Relational XMLDB Tables altogether.
    3) Our Application currently uses XPath heavily on all 9 XMLDB Tables and we understand XPath is already
    deprecated by Oracle (as of 11.2.0.2)
    We are seriously considering doing the following:
    1) Migrate all 9 XMLDB Tables and modify underlying Storage from "Object-Relational" to Binary XML (Schema-less)
    2) Modify Appln code with all XPath replaced by corresponding XQuery constructs
    3) Replace existing "B-TREE" based Indexes in Object-Relational XMLDB Tables with either a) Indexes on Virtual DB Columns to enforce Primary Key and Unique Constraints and b) XMLIndex on all other Non-Unique Columns instead of
    the corresponding "B-TREE" based Indexes
    What we hope to achieve with the above:
    1) Eliminate XSD Usage completely (and copyEvolve nightmares thereby)
    2) Eliminate Usage of XPath totally
    3) Better Performance overall :-)
    Would like to get some advice and feedback on our Proposed Plan and mainly are we taking the
    right direction especially in respect of Performance, Point 3) listed above
    Any feedback or tips would be truly appreciated
    Regards and Thanks
    Auro

    WRT to XPATH Vs XQuery.
    1. XPATH is a subset of XQuery.. Any XPATH expression is, by definition, an example of simple XQuery expression, so XPATH is not depricated.
    2. What we are depricateing are the older, oracle specific XML operators (EXTRACT(), EXTRACTVALUE(), EXISTSNODE()), that ONLY support XPATH. We are depricating these in favour of the new SQL/XML operators (XMLTABLE, XMLQUERY, XMLEXISTS) defined by the SQL standards committee. These operators provide support for the full XQquery standard, and implicitly all of the XPATH expressions that were supported by the older operators. This menas we strongly recommned that new code, developed to work with 11g make use of nrw newer operators. Personally I cannot see a point where we would ever consider de-supportting the older operators, we are well aware of how much code makes use of them.
    What this means is that any code that is written using the older operators will continue to work, unmodified. However should a bug surface in the use of the older operators, we would strongly recommend that the code in question be migrated to the new operators as part of the remidiation process.
    Also, once the initial pain of learning the new syntax is overcome, I truely believe that the new operators result in much more efficient and mantainable code, so taking the time to do code renevation when possible will probably pay off in the long term...
    WRT to moving away from Schema-Based OR storage, I would look at the kind of changes you have made to the XML Schema. If they are the kind of changes that would be supported by in-place evolution in 11g then you might want to re-consider this. If, on the other hand you are regularly making changes to the XML schema that are not backwardsly compatable with your older XML Schema then Schema-Based binary XML storeage (which is more flexible than Schema-Based Object-Relational storage) or even non-schema based Binary XML may be a better choice for your applicaiton..
    I would experment by registering the oldest version of your XML Schema in 11gR2, and then testing each of the evolutions you have gone through to see if 11GR2 inplace evolution would have managed them. Also, ask yourself do you expect your XML Schema to keep changing so drastically moving forward, or were some of these changes the results of the growing pains associated with learning how to use XML schema effectively. BTW the approach you outline is effectively what CopyEvolve is doing under the covers...
    Bear in mind that for the use-cases Object-Relational storage addesses, when all of the XPATH expressions are correctly re-written into SQL operations on the underlying tables, and where the majority of queries end up accessing or updating leaf-level nodes in the XML, it is unlikely that a Binary XML / Unstructured XML Index combination will deliver similar performance. If you are only accesss a small subset of the leaf-level nodes, creating structured XML Indexes that project out the nodes in question may be able to deliver similar performance to an Object-Relational storage model, but you will need to get the index definitions correct.
    -Mark
    Edited by: mdrake on Mar 7, 2011 7:40 PM

  • Delete xml information / reference without losing structure

    Hello,
    I'm currently working on a project that builds catalogs.
    The catalogs consist of several different, linked INDD-files.
    Now, those INDD-files are filled up with XML data and saved.
    When we import them, we always get errors that there is a link missing to the xml. Now, once the indd is filled up, we do not need the xml reference anymore.
    I've checked the links-page in indesign, to see if there is a reference to the xml but there is none...
    How can I delete all the xml information from a indesign file without loosing the references to a text box or it's structure..
    Thanks
    Regards
    Mario

    If you cannot remember the passcode for the Screen Lock, you will need to Restore the device...
    1)  Connect to iTunes on the computer you usually Sync with and Restore...
    http://support.apple.com/kb/HT1414
    2)  If necessary Place the Device into Recovery mode...
    http://support.apple.com/kb/HT1808

Maybe you are looking for