Basic XML question: Purpose of a DTD?

What does a DTD do? And do I need one? I've been using an XML config file for my app, but now that I'm looking for a simple XML editor, I can't just open my .xml file in the editor and GO. I need to specify some kind of DTD as well, so I can't even edit my file as I do in Forte.
Thanks

I read the SUN tutorials on using the DOM parser. I chose to use the DOM parser instead of the SAX parser, because it is simple to load a file and let the API parse the xml file from you. Then all you need to do is call the various methods that are provided to access parts of your XML file.
For example, here is the function I use to load my config file, which I grabbed from the examples in the SUN XML tutorial. See part III of:
http://java.sun.com/xml/jaxp/dist/1.1/docs/tutorial/index.html
public boolean loadFile(String filename) {
     // Get an instance of a DocumentBuilderFactor
        DocumentBuilderFactory  factory = DocumentBuilderFactory.newInstance();
     try {
            // Have the factory create a document builder
            DocumentBuilder builder = factory.newDocumentBuilder();
            // Builder parses the XML file and save it into a document object.
            xmlFile = builder.parse( filename );
            return true;
     catch (SAXException sxe) {
            // Error generated during parsing.
            Exception  x = sxe;
            if (sxe.getException() != null) x = sxe.getException();
            x.printStackTrace();
            return false;
     catch (ParserConfigurationException pce) {
            // Parser with specified options can't be built.
            pce.printStackTrace();
          catch (IOException ioe) {
           // I/O error
        System.out.println("XMLEasyReader: Error opening the config file : " + filename);
           ioe.printStackTrace();
     return false;
    }

Similar Messages

  • Follow-up Basic XML Questions

    First, I apologize to the board in advance because I started a very similar topic already. I know this can be annoying but I think I'm worried that people will ignore my original post because there was already a reply to it. I added 2 follow up posts and nobody has responded. It could well be because they feel that my questions were already answered. After reading and re-reading the person who replied to my original question I did start to pick up many answers from his post. However, I guess I have some follow-up questions and felt compelled to start a new thread to get this "out there" again. I promise to try not to do this again and, once again, I apologize for starting multiple similar topics. Anyway, here goes my follow-up questions...
    I'm pretty new to XML but I've been reading an article on msdn about it and listed some code from the article at the bottom of this post.
    I have some questions about namespaces. From what I understand, a namespace is a unique identifier (it's a string). The thing that's bugging me though is this line...
    <x:transform version='1.0' xmlns:x='http://www.w3.org/1999/XSL/Transform'>
    Maybe I'm wrong, but my gut feeling is that this particular namespace has a special meaning (in other words, it goes beyond being just a unique identifier). Am I correct on this?
    From other stuff I've read I have another gut feeling that there are certain namespaces that somehow have schemas attached to them automatically. I've read that a schema can be "namespace aware". So, as a guess at the answer to my original question - are there certain namespaces that are something like "keywords" (similar to the concept of "keywords" in programming languages)? And is the "big deal" about these particular namespaces that they have schema definitions attached to them somehow? Any help would be GREATLY appreciated!
    EXAMPLE CODE FROM THE MSDN SITE:
    <x:transform version='1.0'
    xmlns:x='http://www.w3.org/1999/XSL/Transform'
    >
    <x:template match='/'>
    <hello_world/>
    </x:template>
    </x:transform>

    this particular namespace has a special meaning .... Am I correct on this?Yes, that namespace has a "meaning", but only to a program that implements the XSLT language. Likewise a "purchase order" namespace has a "meaning", but only to a program that is designed to read XML with that namespace and convert it to purchase orders in somebody's accounting system. (Just as the codes 'A', 'C', and 'D' could mean 'Add', 'Change', and 'Delete' to a program that maintains a database.) Similarly element names have a "meaning", but only to a program that is designed to understand that "meaning". A Java program has a "meaning" but a COBOL compiler doesn't understand that "meaning".
    From other stuff I've read I have another gut feeling that there are certain namespaces that somehow have schemas attached to them automatically.Not that I've ever heard of.

  • Basic XML Question

    Hi,
    I want to be able to create XML documents from my oracle database using PLSQL and then receive XML documents with XML as well into the database. What exactly do I need to use/setup/configure?
    I take it I need to use jdeveloper and the oracle 10g xdk? Or can I just use all internal Oracle functionality?
    Thanks in advance
    Edited by: goochable on Sep 16, 2009 9:38 PM

    I read the SUN tutorials on using the DOM parser. I chose to use the DOM parser instead of the SAX parser, because it is simple to load a file and let the API parse the xml file from you. Then all you need to do is call the various methods that are provided to access parts of your XML file.
    For example, here is the function I use to load my config file, which I grabbed from the examples in the SUN XML tutorial. See part III of:
    http://java.sun.com/xml/jaxp/dist/1.1/docs/tutorial/index.html
    public boolean loadFile(String filename) {
         // Get an instance of a DocumentBuilderFactor
            DocumentBuilderFactory  factory = DocumentBuilderFactory.newInstance();
         try {
                // Have the factory create a document builder
                DocumentBuilder builder = factory.newDocumentBuilder();
                // Builder parses the XML file and save it into a document object.
                xmlFile = builder.parse( filename );
                return true;
         catch (SAXException sxe) {
                // Error generated during parsing.
                Exception  x = sxe;
                if (sxe.getException() != null) x = sxe.getException();
                x.printStackTrace();
                return false;
         catch (ParserConfigurationException pce) {
                // Parser with specified options can't be built.
                pce.printStackTrace();
              catch (IOException ioe) {
               // I/O error
            System.out.println("XMLEasyReader: Error opening the config file : " + filename);
               ioe.printStackTrace();
         return false;
        }

  • Can I validate an XML file using an external DTD

    Hi,
    I'm trying to use an external DTD to validate an XML
    file (which does not refer to this DTD). The java docs that ship
    with the XML parser aren't clear on how exactly to do this (or
    whether it can be done). I'd appreciate any advice on how I
    should perform this operation.
    Here's what I'm doing right now.
    1) The Java file
    import oracle.xml.parser.v2.*;
    public class ParseWithExternalDTD
    public static void main(String args[]) throws Exception
    DOMParser dp=new DOMParser();
    dp.parseDTD
    ("file:d:/jdk1.2/sample/test/family.DTD","family");
    DTD dtd=dp.getDoctype();
    dp.setDoctype(dtd);
    dp.parse("file:d:/jdk1.2/sample/test/family.xml");
    System.out.println("Finished with no errors!");
    2) The family.DTD file
    <!ELEMENT family (member*)>
    <!ATTLIST family lastname CDATA #REQUIRED>
    <!ELEMENT member (#PCDATA)>
    <!ATTLIST member memberid ID #REQUIRED>
    <!ATTLIST member dad IDREF #IMPLIED>
    <!ATTLIST member mom IDREF #IMPLIED>
    3) The family.xml file
    <?xml version="1.0" standalone="no"?>
    <family lastname="Smith">
    <TagToFoilParserValidation>
    </TagToFoilParserValidation>
    <member memberid="m1">Sarah</member>
    <member memberid="m2">Bob</member>
    <member memberid="m3" mom="m1" dad="m2">Joanne</member>
    <member memberid="m4" mom="m1" dad="m2">Jim</member>
    </family>
    4) The output
    Finished with no errors!
    As you can see, the DOMParser failed to validate the family.xml
    file against the family dtd otherwise, it would have reported a
    validation error when it came across the
    TagToFoilParserValidation.
    Any insight as to what I'm doing wrong would be much appreciated.
    Sincerely,
    Keki
    Project Iona
    Manufacturing Applications
    Oracle Corporation
    The views and opinions expressed here are
    my own and do not reflect the views and
    opinions of Oracle Corporation
    null

    Keki Burjorjee (Oracle) (guest) wrote:
    : 2 further questions related to this issue.
    : 1) Say I am using XSLT to transform A.xml into B.xml, and I
    : want to embed a reference to B.dtd within the B.xml file. Is
    : there an XSLT command which will allow me to do this?
    : 2) Is it possible for your team to give me a mechanism whereby
    I
    : can preset the xml parser to validate the next xml file (or
    : inputstream) it receives against a particular DTD? This scheme
    : does not require the dtd to be present within the XML file
    : Thanks,
    : - Keki
    : Oracle XML Team wrote:
    : : What you are doing wrong is not including a reference to the
    : : applicable DTD in your XML document. Without it there is no
    : way
    : : that the parser knows what to validate against. Including
    the
    : : reference is the XML standard way of specifying an external
    : : DTD. Otherwise you need to embed the DTD in your XML
    Document.
    : : Oracle XML Team
    : : http://technet.oracle.com
    : : Oracle Technology Network
    : : Keki Burjorjee (guest) wrote:
    : : : Hi,
    : : : I'm trying to use an external DTD to validate an XML
    : : : file (which does not refer to this DTD). The java docs that
    : : ship
    : : : with the XML parser aren't clear on how exactly to do this
    : (or
    : : : whether it can be done). I'd appreciate any advice on how I
    : : : should perform this operation.
    : : : Here's what I'm doing right now.
    : : : 1) The Java file
    : : : import oracle.xml.parser.v2.*;
    : : : public class ParseWithExternalDTD
    : : : public static void main(String args[]) throws Exception
    : : : DOMParser dp=new DOMParser();
    : : : dp.parseDTD
    : : : ("file:d:/jdk1.2/sample/test/family.DTD","family");
    : : : DTD dtd=dp.getDoctype();
    : : : dp.setDoctype(dtd);
    : : : dp.parse("file:d:/jdk1.2/sample/test/family.xml");
    : : : System.out.println("Finished with no errors!");
    : : : 2) The family.DTD file
    : : : <!ELEMENT family (member*)>
    : : : <!ATTLIST family lastname CDATA #REQUIRED>
    : : : <!ELEMENT member (#PCDATA)>
    : : : <!ATTLIST member memberid ID #REQUIRED>
    : : : <!ATTLIST member dad IDREF #IMPLIED>
    : : : <!ATTLIST member mom IDREF #IMPLIED>
    : : : 3) The family.xml file
    : : : <?xml version="1.0" standalone="no"?>
    : : : <family lastname="Smith">
    : : : <TagToFoilParserValidation>
    : : : </TagToFoilParserValidation>
    : : : <member memberid="m1">Sarah</member>
    : : : <member memberid="m2">Bob</member>
    : : : <member memberid="m3" mom="m1" dad="m2">Joanne</member>
    : : : <member memberid="m4" mom="m1" dad="m2">Jim</member>
    : : : </family>
    : : : 4) The output
    : : : Finished with no errors!
    : : : As you can see, the DOMParser failed to validate the
    : : family.xml
    : : : file against the family dtd otherwise, it would have
    : reported
    : : a
    : : : validation error when it came across the
    : : : TagToFoilParserValidation.
    : : : Any insight as to what I'm doing wrong would be much
    : : appreciated.
    : : : Sincerely,
    : : : Keki
    : : : Project Iona
    : : : Manufacturing Applications
    : : : Oracle Corporation
    : : : The views and opinions expressed here are
    : : : my own and do not reflect the views and
    : : : opinions of Oracle Corporation
    1) No XSLT commands exist that allow you to embed a DTD while
    doing the transformation.
    2) You can use the setDocType() method in the parser, to set a
    DTD based on which the XML document will be validated. The
    parseDTD() method allows you to parse a DTD file separately and
    get a DTD object. Here is a sample code :
    DOMParser domparser = new DOMParser();
    domparser.setValidationMode(true);
    // parse the DTD file
    domparser.parseDTD(new FileReader(dtdfile));
    DTD dtd = domparser.getDocType();
    // Parse XML file - XML file will be validated based on the DTD.
    domparser.setDocType(dtd);
    domparser.parse(new FileReader(xmlfile));
    Document doc = domparser.getDocument();
    Oracle XML Team
    http://technet.oracle.com
    Oracle Technology Network
    null

  • Spry Repeat/XML question

    I am in desperate need of help.
    Here is the path to my html file.
    http://www.3hounddesign.com/WoodsWoods/gallery/index.html
    When you look at it, you see the navigation list on the left
    (Adobe, SF Symphony, Fiery, etc). This list corresponds to the
    images that you see. However some of the navigation items (Adobe,
    Apple, Levi Strauss) have more than one image associated with them.
    I want to be able to use the arrows at the bottom of the page to
    click through to the second image, but not have it show up on the
    navigation list. For example, I only want Adobe to show up once on
    the navigation list, even though I have 2 different adobe photos,
    and thus have created 2 different XML entries for Adobe.
    http://www.3hounddesign.com/WoodsWoods/gallery/galleries/woods/photos.xml
    The first entry has the Adobe title, while I left the second
    one blank. However this leaves a blank space on the navigation
    list.
    Unfortunately I know very little about javascript and am just
    learning about this spry stuff and am very confused, and therefore
    created this stuff by altering the adobe gallery demo
    I also have a version I created by altering the adobe
    products demo (
    http://www.3hounddesign.com/Paul_Woods/identity.html#)
    However that has problems of its own, so I would rather stick
    with my alteration of the gallery demo.
    So basically my question...Is there any way that I can have
    the navigation only show one entry for Adobe (and Apple and Levi)
    yet still have two images there?
    Sadly, I am desperate need of an answer ASAP, as a current
    job I am working on depends on it, and I don’t want to have
    to resort to iframes.
    Please please someone help me!

    Hi,
    I looked over you code and I noticed that you have the image
    src added on the left side.
    You have this <img
    src="galleries/{dsGalleries::@base}{dsGallery::thumbnail/@base}{@thumbpath}"
    alt="{@thumbpath}" name="tn{ds_RowID}" width="89" height="15"
    id="tn{ds_RowID}" style="left: -77px; right: 0px;" />
    You don't need to have the image added on the left side,
    because you want there only the title (Adobe, SF Symphony...)
    So you should replace the img with a div for example:
    <div style="width:89px; height:15px;left: -77px; right:
    0px;" id="tn{ds_RowID}" >{@thumbpath}</div>
    The reason why you have an empty space after Adobe item is
    that on you xml you have an empty alt attribute.
    To display only the thumbpaths that are not empty you can add
    an spry:if condition.
    So the above div becomes:
    <div style="width:89px; height:15px;left: -77px; right:
    0px;" id="tn{ds_RowID}" spry:if="{@thumbpath}" != ""
    >{@thumbpath}</div>
    This says if thumbpath is not empty display it.
    I aslo load you page in IE and I noticed that the left menu
    is not displayed.
    Diana

  • Basic iPhoto questions:

    I have some Basic iPhoto questions before I start using the program:
    - does iPhoto apply any compression or change images in any way when they
    are imported?
    - after images are imported, can the original source folder of images be deleted off of the mac?
    - can Quicktime files exported from iPhoto be viewed on a Windows computer?
    - can iPhoto handle large resolution images that might be as large as 8-15mb each? does it display them quick? are there any known file size issues?
    Thanks!!!!

    kat.
    Is there a way to use iPhoto on a network so other users can read and possibly write to an iPhoto library on a networked mac?
    iPhoto is a consumer level photo organiser, not a server. It's possible to share photos but libraries are very difficult and fraught with the danger of database corruption. Some have reported success.
    Is it possible to password protect or secure certain images in the library so they can not be seen by anyone?
    No. The best I can suggest there is to create a second library and store it in a secure area like a protected dmg. But remember, you can only have one library open at a time.
    After photos are deleted from iPhoto, are there any remaining traces or cached files anywhere other than the trash
    If you delete photos from iPhoto and empty the iPhoto trash then the pics are removed from the Finder as well. They remain as findable as any other deleted file from that point, which is, very, if the searcher in knowledgeable.
    Regards
    TD

  • Object class deployment - Basic form question

    OK, I subclass calendar object from Oracle provided standard
    object class. What do I need to deploy to use this form now
    apart from calendar.pll and my fmx. What about the object class
    from which I sub-class. Do I need to compile and deploy that
    also? How will form resolve this on run time the parent object
    class as I really did not copy, just sub class and we do not
    deploy original class? Basic form question. Thanks.

    You can set the "help" property on the field (which gives you the little "information" icon link beside the field).
    You could also try adding another field of another class above or below:
    <Display class='InlineAlert'/>
    <Display class='ErrorMessage'/>
    <Display class='HtmlPage'/>
    ..etc
    -Rob

  • Simple XML question

    org.xml.sax.SAXParseException: The markup in the document following the root element must be well-formed.
    at org.apache.xerces.parsers.DOMParser.parse(DOMParser.java:235)
    at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:201)
    at javax.xml.parsers.DocumentBuilder.parse(Unknown Source)
    I'm sure many of you you know exactly what causes this exception. Could you please help me with this one.
    Here is some background info:
    I'm using NetBeans IDE, with xerces.jar mounted (so it should be available). Here is the source code, that parses the file:
    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
    DocumentBuilder builder = factory.newDocumentBuilder();
    Document document = builder.parse(
    new java.io.File(this.resourceLocation)); //<-- Exception !!
    Here is the (simplified) xml-file:
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE Configuration SYSTEM "params.dtd">
    <Something>
    <firstConfig>
    <someAttr a="a" b="b" c="c" />
    <someOtherAttr h="h" i="i" j="j" />
    </firstConfig>
    <secondConfig>
    <attr name="name" value="value" />
    </secondConfig>
    </Something>
    I created a dtd from this xml with NetBeans' dtd-wizard.
    The xml-file is at the same directory as the compiled class-files and so is the dtd.
    What could cause this exception to occur?!?
    Thank you in advance,
    -J-

    Hi, not well formed, means that your xml does not match your DTD!
    Obviously the root Element must be
    <Configuration> and not <Something> according to your Doctype deklaration.
    But in general, it's very useful to override the normal
    ErrorHandler (like this):
    import org.xml.sax.ErrorHandler;
    import org.xml.sax.SAXParseException;
    import org.xml.sax.SAXException;
    /** Just extends the normal ErrorHandler to display the kind of error and the linenumber.
    *  The column-number is displayed too, but it is normally not so usefull.
    *  So its much easier to debug files.
    public class SAXErrorHandler implements ErrorHandler {
        public SAXErrorHandler() {
        public void error(SAXParseException parm1) throws org.xml.sax.SAXException {
            System.err.println("Error");
            System.err.println( parm1.getLineNumber() +"\t"+ parm1.getColumnNumber() +"\t"+ parm1.getSystemId() +"\t"+ parm1.getMessage());
        public void fatalError(SAXParseException parm1) throws org.xml.sax.SAXException {
            System.err.println("FatalError");
            System.err.println( parm1.getLineNumber() +"\t"+parm1.getColumnNumber()+"\t"+parm1.getSystemId() +"\t"+parm1.getMessage());
        public void warning(SAXParseException parm1) throws org.xml.sax.SAXException {
            System.err.println("Warning");
            System.err.println( parm1.getLineNumber() +"\t"+parm1.getColumnNumber()+"\t"+parm1.getSystemId() +"\t"+parm1.getMessage());
            parm1.printStackTrace();
    }Than add an new instance of this class to the DocumentBuilder.
    builder.setErrorHandler(new SAXErrorHandler());So you will be able to figure out at least the line of code, which causes the problem.
    Hope this helps.
    Greetings Michael

  • Adding Date/Time Field + X Number of Days - Basic Calculation Question

    I am assuming this is a basic calculation question. New to Adobe LiveCycle Forms.
    I have a simple form containing a table. The table appears as such:
    Text
    Formatted as Date/Time Fields
    Header 3
    Monday
    user wil choose the beginning date (Date/Time) this is DateTimeField1
    Tuesday
    this should calculate DateTimeField1 + 1
    Wednesday
    this should calculate DateTimeField1 + 2
    Thursday
    this should calculate DateTimeField1 + 3
    Friday
    this should calculate DateTimeField1 + 4
    Saturday
    this should calculate DateTimeField1 + 5
    Sunday
    this should calculate DateTimeField1 + 6
    Calculations are performed after the date is chosen for Monday. My mind tells me the simple calculation of DateTimeField1 + 1 is not going to work (and in fact doesn't!) as it needs to change Monday to a number first. I saw on another thread the following:
    Num2Date(Date2Num(Date(DateTimeField1), "DD.MM.YYYY")+7, "DD.MM.YYYY")
    Thought this was going to get me close. No cigars though!
    Any quick help is greatly appreciated. And since I am new to this, details about what needs to be changed would be great too!
    Thanks

    Here an addition for you date field.
    This FormCalc script in the exit:Event will check it the selected date is on a monday.
    If not it will go the days back until the last monday.
    var Selection = Date2Num($.formattedValue, DateFmt(2))
    var WeekDay = Num2Date(Selection, "E")
    var NewDate
    if (WeekDay eq 1) then
              NewDate = Selection - 6
    elseif (WeekDay eq 3) then
              NewDate = Selection - 1
    elseif (WeekDay eq 4) then
              NewDate = Selection - 2
    elseif (WeekDay eq 5) then
              NewDate = Selection - 3
    elseif (WeekDay eq 6) then
              NewDate = Selection - 4
    elseif (WeekDay eq 7) then
              NewDate = Selection - 5
    else
              NewDate = Selection
    endif
    $ = Num2Date(NewDate, "EEE DD.MM.YYYY")
    Hope this helps, too.

  • Where to ask XML-questions

    Hello,
    when I have a question about XML, where do I ask?
    XML DB issues related to XML DB
    XML  space for the following subspaces
    General XML  Discussion of the general XML language, standards (XSLT, XQuery, XMLSchema, etc.) and application management issues, suggestions and tips.
    PL/SQL XML Programming  PL/SQL programming using XDK and related management issues inside Oracle database server. Any question for XML DB functionality, please post your question in Products -> Database-> XML DB.
    XQuery Discussion of Oracle XQuery Technology Preview, W3C XQuery specifications, and JSR 225: XQuery API for Java (XQJ) issues
    I think I now have an idea (not that I'm sure about it) where my question will fit best. Now, because there is an explanation of the scope of the space, I don't remember something like this in the old forum. Nevertheless it might be confusing for a new member or one that lacks a certain knowledge about the subtleties:
    One step forward everyone who understands the explanation for the PL/SQL XML Programming space!
    When I have a question about XQuery, how can I decide whether XQuery is correct or General XML?
    Which questions qualify for XML DB and not for any of the others.
    We all know that many users are not able to see that SQL questions don't belong into the SQL Developer space, how can we expect that they will find the "correct" forum for XML questions? In the end they will end up in the SQL and PL/SQL space anyhow :-)
    Regards
    Marcus

    My $0.02.
    As I recall, the explanation for each forum was at the entry level for each forum and not displayed within the forum itself.
    The PL/SQL XML Programming space refers to the Oracle XML Developer Kit.  It is maintained by a different team than the XMLDB so the need for a separate space for it makes sense.  That said, what it covers is also part General XML and XQuery if you dig into what you can do in the XDK.
    Some questions that would qualify for the XML DB space.
    Anything related to schema registration or downstream of schema registration.  Such as querying/performance/indexes/etc.
    Issues parsing XML via using XMLTable (or XQuery, such as the new XQuery update added in 11.2.0.3) (Yes that can conflict)
    Storage of data in XMLType columns
    I to have always been a bit unclear on the exact division between groups in this XML space.  I see the XQuery space as being a subset of the General XML space.  I watch all three forums, as they are normally low volume and you never know where a question will pop up.  As you have seen, questions often end up in the wrong forum and often General XML gets an influx of questions that should go into the Business Intelligence space as well.  There is no good way right now to start a generic post and let the system suggest forums that the post could go into, based on content or software involved.  That would be a nice touch for the future.

  • Basic Exporting Question

    My main question is a very basic exporting question, but here is a super-condensed explanation of my big-picture goal for context:
    Large (~450 MB) aiff on CD --> trim w/ Quicktime --> small (~16 MB) MP3 in iTunes
    I would like to take an audio file (aiff) that is approximately 450 MB and export it from Quicktime and in doing so, reduce the file size and convert it to MP3. When I simply try to export it, it doesn't ask me about what size I want, nor does it give the option of MP3 formatting.
    I have figured out how to reach my goal, but it's a mess. After I make my trims in QT, I have to:
    1. select "share" instead of "export".
    2. It asks me what size I want and I select small.
    3. The file is then exported as a Quicktime movie into Mail and the size is reduced from 450 MB to about 20 MB.
    4. I then have to "right-click" on the attachment in the email that is created,
    5. save the attachment,
    6. discard the email,
    7. import the file into iTunes, and
    8. create an MP3 in iTunes to finally arrive at my goal.
    This seems like a ridiculously convoluted process to change a large aiff to a small MP3 and put it in iTunes. Any suggestions?

    Thanks. I guess the basic answer to my question is that it can't be done in one or two fell swoops. The problem is that it starts on a burned disc, and I need to make edits to it before it ends up in iTunes (to be eventually used in iWeb). I was hoping to avoid juggling back and forth between iTunes and QT. I either would have to send it back to QT to do the edits after -->iTunes-->mp3, or import the large file from the CD to QT, make the edits, save changes, import large file to iTunes, convert to mp3.

  • Basic  XML Publisher Question: How to access tags in the higher levels?

    Hi All,
    We have a basic question in XML Publisher.
    We have a xml hierarchy like below:
    <CD_CATALOG>
    <CATALOG>
    <CAT_NAME> CATALOG 1</CAT_NAME>
    <CD>
    <TITLE>TITLE1 </TITLE>
    <ARTIST>ARTIST1 </ARTIST>
    </CD>
    <CD>
    <TITLE> TITLE2</TITLE>
    <ARTIST>ARTIST2 </ARTIST>
    </CD>
    </CATALOG>
    <CATALOG>
    <CAT_NAME> CATALOG 2</CAT_NAME>
    <CD>
    <TITLE>TITLE3 </TITLE>
    <ARTIST>ARTIST3 </ARTIST>
    </CD>
    <CD>
    <TITLE> TITLE4</TITLE>
    <ARTIST>ARTIST4 </ARTIST>
    </CD>
    </CATALOG>
    </CD_CATALOG>
    We need to create a report like below:
    CATALOG_NAME     CD_TITLE     CD_ARTISTCATALOG 1     TITLE1     ARTIST1
    CATALOG 1     TITLE2     ARTIST2
    CATALOG 2     TITLE3     ARTIST3
    CATALOG 2     TITLE4     ARTIST4
    So we have to loop at the level of <CD> using for-each CD. But when we are inside this loop, we cannot access the value of CAT_NAME which is at a higher level.
    How can we solve this?
    Right now, we are using the work-around of set_variable and get_Variable. We are setting the value of CAT_NAME inside an outer loop, and using it inside the inner loop using get_variable.
    Is this the proper way to do this or are there better ways to do this? We are running into troubles when the data is inside tables.

    you can use
    <?../CAT_NAME?>copy past to your template
    <?for-each:CD?> <?../CAT_NAME?> <?TITLE?> <?ARTIST?> <?end for-each?>

  • Very basic SQL/XML question

    I'm using the following environment:
    Oracle Database 10g Express Edition Release 10.2.0.1.0 - Product
    PL/SQL Release 10.2.0.1.0 - Production
    CORE 10.2.0.1.0 Production
    TNS for 32-bit Windows: Version 10.2.0.1.0 - Production
    NLSRTL Version 10.2.0.1.0 - Production
    However, I don't think my environment is the issue.
    I'm trying to get output which looks like this from a simple table:
    <MAXDOMAIN action="S">
         <DOMAINID key="true">domainid_data</DOMAINID>
         <SYNONYMDOMAIN type="relationship" action="AU" >
              <VALUE key="true">value_data</VALUE>
              <MAXVALUE>maxvalue_data</MAXVALUE>
              <DESCRIPTION>description_data</DESCRIPTION>
              <DEFAULTS>defaults_data</DEFAULTS>
         </SYNONYMDOMAIN>
    </MAXDOMAIN>The table looks like this
    Name                           Null     Type          
    DOMAINID                       NOT NULL VARCHAR2(30)   
    DESCRIPTION                             VARCHAR2(50)   
    DOMAINTYPE                              VARCHAR2(5)    
    MAXTYPE                                 VARCHAR2(5)    
    LENGTH                                  VARCHAR2(5) The real question is how do I get an element with attributes to also have content.
    <DOMAINID key="true">domainid_data</DOMAINID>and
    <VALUE key="true">value_data</VALUE>I'm not sure if I'm syntactically challenged or just not using the correct tags.
    If I try to just generate the first two tags, forgetting the following nesting, I'm OK, as long as I don't try to assign attributes to the DOMAINID tag:
    SELECT  XMLELEMENT
    ("MAXDOMAIN",XMLATTRIBUTES('S' AS "action"),XMLELEMENT(NAME DOMAINID, "DOMAINID")
    AS "RESULT"
    FROM FAC_MAXDOMAIN;This works and is pretty trivial.
    <MAXDOMAIN action="S"><DOMAINID>AIRFLOWTYPE</DOMAINID></MAXDOMAIN>
    etc, etc...However, this:
    SELECT  XMLELEMENT
    ("MAXDOMAIN",XMLATTRIBUTES('S' AS "action"),XMLELEMENT(NAME DOMAINID, "DOMAINID",XMLATTRIBUTES('true' AS "key"))
    AS "RESULT"
    FROM FAC_MAXDOMAIN;Yields an ORA-00907: missing right parenthesis error.
    Any ideas? maybe a good primer on SQL/XML might be the best solution...
    TIA,
    Paolo

    Very nice for a first post in terms of data included and formatting.
    It took me a few minutes to see it, but the simple answer is you are putting the XMLAttributes in the wrong location. See the XMLElement spec at http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/functions220.htm#SQLRF06168 that shows XMLAttributes comes between the identifier and value. So that means you should have written it as
    Connected to Oracle Database 11g Enterprise Edition Release 11.1.0.6.0
    SQL> WITH FAC_MAXDOMAIN AS
      2  (SELECT 'domainid_data' domainid, 'dscr' description,
      3          'type' domaintype, '10' maxtype, '5' length
      4     FROM dual)
      5  -- Using WITH so didn't have to create your table locally
      6  SELECT  XMLELEMENT("MAXDOMAIN",
      7            XMLATTRIBUTES('S' AS "action"),
      8            XMLELEMENT(NAME DOMAINID, XMLATTRIBUTES('true' AS "key"), "DOMAINID")
      9          )
    10  AS "RESULT"
    11  FROM FAC_MAXDOMAIN;
    RESULT
    <MAXDOMAIN action="S"><DOMAINID key="true">domainid_data</DOMAINID></MAXDOMAIN>

  • Basic XML/DTD design/structure validity.

    I would like some clarification on valid XML structure - is it valid to have an XML element content both CDATA & other elements? I noticed that by using the keyword ANY in my DTD, that the SAX parser that I'm using seems to accept the following -
    <firstElement att="1">
    Some character values.
    <secondElement att="2"/>
    </firstElement>
    However, is this a poor design choice? I have made several attempts to read up on DTD/XML structure and have not found anything which explains whether that structure/approach is valid or not.
    Many thanks!
    ~ RomT

    Yes, you can do that. It's called "mixed content" in the markup biz. And as you suspect, it's not the greatest design choice. No doubt there are uses for it -- for example if you have a text string and you want to mark off pieces of it as being bold or italic -- but you should probably try to avoid it if possible.

  • A very basic sql xml question..

    I want to print only two rows group by grup number so there are only two group numbers
    0 and 1...
    so 0 group should have two items...
    Elapsed: 00:00:00.01
    15:15:55 SQL>
    15:15:56 SQL> l
      1  with data as
      2    (select 0 as grp,'A' item_name , 'XX' Item_desc from dual
      3     union
      4      select 0 ,'B'  , 'XY'  from dual
      5      union
      6      select 1 ,'B'  , 'Y'  from dual
      7       )
      8  select xmlelement(name "grp",
      9            xmlforest(grp  "item_name",item_name)
    10            )
    11*  from data
    15:15:57 SQL> /
    XMLELEMENT(NAME"GRP",XMLFOREST(GRP"ITEM_NAME",ITEM_NAME))
    <grp><item_name>0</item_name><ITEM_NAME>A</ITEM_NAME></grp>
    <grp><item_name>0</item_name><ITEM_NAME>B</ITEM_NAME></grp>
    <grp><item_name>1</item_name><ITEM_NAME>B</ITEM_NAME></grp>
    Elapsed: 00:00:00.01

    Hi,
    You should use XMLAGG, to get everything into a single XML element. And DON'T use extract()!!
    Something like:
    SQL> declare
       xml   xmltype;
    begin
      with data as
        (select 0 grp, 'g1' grp_name, 'A' item_name, 'XX' item_desc from dual union all
         select 0    ,  'g1' grp_name,'B'          , 'XY'           from dual union all
         select 0    ,  'g2' grp_name,'B'          , 'XY'           from dual union all
         select 0    ,  'g3' grp_name,'B'          , 'XY'           from dual union all
         select 1    ,  'g1' grp_name,'B'          , 'Y'            from dual)
    -- end of test data    
         select xmlagg(xmlelement("GRP"
                                 ,xmlagg(xmlelement("ITEM_NAME", item_name))
                                 ,xmlagg(xmlelement("item_desc", item_desc))))
           into xml
           from data
       group by grp, grp_name, item_name;
       dbms_output.put_line(dbms_lob.getlength(xml.getclobval()));
    end;
    299
    PL/SQL procedure successfully completed.Regards
    Peter

Maybe you are looking for