Re: Questions about prefix and namespace

Thank you for the information.

I try to output

    <?xml version="1.0" encoding="UTF-8"?>
    <mypfx:abc xmlns:mypfx="urn:foo"/>

with the following code using JAXP 1.2
(Java API for XML Processing) which supports DOM level 2.


import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;

import org.w3c.dom.Document;
import org.w3c.dom.Element;

public class XMLNS
{
    // http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/
    // glossary.html#dt-qualifiedname
    //
    // qualified name
    //     A qualified name is the name of an element or attribute
    //     defined as the concatenation of a local name
    //     (as defined in this specification), optionally preceded
    //     by a namespace prefix and colon character.

    // JAXP 1.2
    private static Document newDoc() throws Exception
    {
        DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
        dbf.setNamespaceAware(true);
        return dbf.newDocumentBuilder().newDocument();
    }

    // JAXP 1.2
    private static void writeDoc(Document doc) throws Exception
    {
        Transformer t = TransformerFactory.newInstance().newTransformer();
        t.transform(new DOMSource(doc), new StreamResult(System.out));
    }

    // <?xml version="1.0" encoding="UTF-8"?>
    // <mypfx:abc xmlns:mypfx="urn:foo"/>
    public static void DOM2() throws Exception
    {
        Document doc = newDoc();
        String uri = "urn:foo";
        String prefix = "mypfx";
        Element e = doc.createElementNS(uri, prefix + ":" + "abc");
        e.setAttribute("xmlns:" + prefix, uri);
        // e.setAttributeNS("http://www.w3.org/2000/xmlns/",
        //   "xmlns:" + prefix, uri);
        doc.appendChild(e);
        writeDoc(doc);
    }

    public static void main(String[] args) throws Exception
    {
        DOM2();
    }
}


I'll try normalizeDocument() when I get a DOM level 3 implementaion
in Java (which needs a special build of Apache Xalan from cvs).
Thank you again!

Luoh Ren-Shan

----- Original Message ----- 
From: "Gareth Reakes" <gareth@decisionsoft.com>
To: "Luoh Ren-Shan" <luors@iii.org.tw>
Cc: <www-dom@w3.org>
Sent: Wednesday, October 23, 2002 4:39 PM
Subject: Re: Questions about prefix and namespace


> Hi,
> 
> check out level 3 methods such as lookupPrefix. You do not need to 
> qualify the name as you describe unless you are hoping to serialize 
> without calling normalizeDocument.
> 
> Gareth
> 
> 
> On Wed, 23 Oct 2002, Luoh Ren-Shan wrote:
> 
> > Hi all,
> > 
> > Is there a function in the DOM spec to get namespace
> > and prefix information from a given node?
> > Do I have to write some function like
> > "getPrefixList", "getNamespaceURIList",
> > "getNamespaceURI2PrefixMap", etc. ?
> >
> > I have problem when using the "createElementNS"
> > function which ask me to give a qualified name.
> > I have to find which prefix to use (maybe the 
> > prefix has been defined before).
> > I have to always write code like
> > createElementNS("..", myPrefix + ":" + myLocalName)
> > to concatenate the name.
> > And when serializing the DOM tree, I have to
> > add "xmlns:myPrefix=".."" attributes manually
> > at some appropriate places.
> > 
> > I'm not very familiar with the DOM API.
> > Could some one tell me a better way to deal with it?
> > 
> > Thank you,
> > Luoh Ren-Shan
> > 
> > 
> > 
> > 
> > 
> 
> -- 
> Gareth Reakes, Head of Product Development  
> DecisionSoft Ltd.            http://www.decisionsoft.com
> Office: +44 (0) 1865 203192
> 
> 
> 

Received on Wednesday, 23 October 2002 22:33:52 UTC