1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.fourthline.cling.support.messagebox.parser;
17
18 import org.seamless.xml.DOMParser;
19 import org.seamless.xml.NamespaceContextMap;
20 import org.w3c.dom.Document;
21
22 import javax.xml.xpath.XPath;
23
24
25
26
27 public class MessageDOMParser extends DOMParser<MessageDOM> {
28
29 @Override
30 protected MessageDOM createDOM(Document document) {
31 return new MessageDOM(document);
32 }
33
34 public NamespaceContextMap createDefaultNamespaceContext(String... optionalPrefixes) {
35 NamespaceContextMap ctx = new NamespaceContextMap() {
36 @Override
37 protected String getDefaultNamespaceURI() {
38 return MessageDOM.NAMESPACE_URI;
39 }
40 };
41 for (String optionalPrefix : optionalPrefixes) {
42 ctx.put(optionalPrefix, MessageDOM.NAMESPACE_URI);
43 }
44 return ctx;
45 }
46
47 public XPath createXPath() {
48 return super.createXPath(createDefaultNamespaceContext(MessageElement.XPATH_PREFIX));
49 }
50
51 }