Ich habe den folgenden Code-Schnipsel:Warum wirft dieser Code eine MalformedURLException?
public class DOMTest {
public static void main(String[] args)
throws ParserConfigurationException, SAXException, IOException {
String xml = "<D:propfind xmlns:D=\"DAV:\""
+ " xmlns:C=\"urn:ietf:params:xml:ns:carddav\">\n"
+ " <D:prop>\n" + " <D:displayname />\n"
+ " <C:getctag />\n" + " </D:prop>\n" + "</D:propfind>";
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
factory.setNamespaceAware(true);
DocumentBuilder builder = null;
Document doc = null;
builder = factory.newDocumentBuilder();
System.out.println("namespaceAware=" + builder.isNamespaceAware()
+ ", validating=" + builder.isValidating());
doc = builder.parse(xml);
}
}
Lauf es die folgende Ausgabe erzeugt:
namespaceAware=true, validating=false
Exception in thread "main" java.net.MalformedURLException: no protocol:
<D:propfind xmlns:D="DAV:" xmlns:C="urn:ietf:params:xml:ns:carddav
<D:prop>
<D:displayname />
<C:getctag />
</D:prop>
</D:propfind>
at java.net.URL.<init>(URL.java:593)
at java.net.URL.<init>(URL.java:490)
at java.net.URL.<init>(URL.java:439)
at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(XMLEntityManager.java:620)
at com.sun.org.apache.xerces.internal.impl.XMLVersionDetector.determineDocVersion(XMLVersionDetector.java:148)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:805)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:770)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:243)
at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:339)
at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:177)
at com.lemcke.c.dav.card.DOMTest.main(DOMTest.java:31)
Die XML ist ein Standardbeispiel für eine CardDAV Anfrage. Ist das ein Konfigurationsproblem bei der Verwendung von Namespaces?
Lage zu sein, nicht nur zu lesen, sondern auch wirklich ein Vorteil ist, zu verstehen :-) –