[jdom-interest] Setting namespace declarations outside the XML document?
Geoff Rimmer
geoff.rimmer at sillyfish.com
Wed Mar 24 02:33:31 PST 2004
I have successfully used JDOM to parse XML files like this:
<sf:page
xmlns="http://www.w3.org/1999/xhtml"
xmlns:sf="http://www.sillyfish.com/2004/03/page"
xmlns:c="http://java.sun.com/jsp/jstl/core">
<sf:image ref="header"/>
<c:forEach var="person" items="${people}">
<p>${person.firstName} ${person.lastName}</p>
</c:forEach>
</sf:page>
What I would like to do is move the namespace declarations from the XML file
into the Java code that calls the parser.
In other words, write the XML file like this:
<sf:page>
<sf:image ref="header"/>
<c:forEach var="person" items="${people}">
<p>${person.firstName} ${person.lastName}</p>
</c:forEach>
</sf:page>
and then write something like this in Java:
SAXBuilder builder = new SAXBuilder(false);
builder.addNamespace("", "http://www.w3.org/1999/xhtml");
builder.addNamespace("sf", "http://www.sillyfish.com/2004/03/page");
builder.addNamespace("c", "http://java.sun.com/jsp/jstl/core");
Document doc = builder.build(new FileInputStream(.....));
Of course the problem is that there is no SAXBuilder.addNamespace() method.
But is there some other way I can specify the namespaces without having to
write them into the XML file? I would obviously prefer a JDOM solution, but
if this is not possible, a "Xerces 2"-specific solution would be OK.
Many thanks in advance.
Geoff Rimmer
geoff.rimmer at sillyfish.com
More information about the jdom-interest
mailing list