/** * <p> * Convert the current stack of contexts into a single <code>NSContext</code>. * </p> * @return the <code>NSContext</code> instance */ public NSContext toNSContext() { NSContext n = new NSContext(); for (Frame f = _current;f != null; f=f._parent) { if (f._bindings == null) continue; for (Iterator it = f._bindings.keySet().iterator();it.hasNext();) { String pfx = (String) it.next(); if (n.getNamespaceURI(pfx) == null) { n.register(pfx, f._bindings.get(pfx)); } } } return n; }
private String getPrefixForUri(NSContext nsContext, String uri) { Set<String> prefixes = nsContext.getPrefixes(); for (String prefix : prefixes) { String anUri = (nsContext.getNamespaceURI(prefix)); if (anUri != null && anUri.equals(uri)) { return prefix; } } return null; }
/** * Get the (ordered) set of properties that define this correlation set. * Properties are returned by their qualified name. * * @return set of defining properties */ public QName[] getProperties() { if (_props == null) { StringTokenizer st = new StringTokenizer(getAttribute("properties", "")); ArrayList<QName> al = new ArrayList<QName>(); NSContext nsc = getNamespaceContext(); for (; st.hasMoreTokens();) { String token = st.nextToken(); if (token.startsWith("{")) { String namespace = token.substring(1, token.indexOf("}")); String localname = token.substring(token.indexOf("}") + 1, token.length()); al.add(new QName(namespace, localname)); } else { al.add(nsc.derefQName(token)); } } _props = al.toArray(new QName[] {}); } return _props; }
public static void injectNamespaces(Element domElement, NSContext nscontext) { for (String uri : nscontext.getUriSet()) { String prefix = nscontext.getPrefix(uri); if (prefix == null || "".equals(prefix)) domElement.setAttributeNS(DOMUtils.NS_URI_XMLNS, "xmlns", uri); else domElement.setAttributeNS(DOMUtils.NS_URI_XMLNS, "xmlns:"+ prefix, uri); } }
/** * Construct a {@link NSContext} instance for the supplied element. * @param el the <code>Element</code> to gather the namespace context for * @return the <code>NSContext</code> */ public static NSContext getMyNSContext(Element el) { NSContext ns = new NSContext(); ns.register(getParentNamespaces(el)); ns.register(getMyNamespaces(el)); return ns; }
Set<String> prefixes = nsContext.getPrefixes(); if (!nsContext.getUriSet().contains(Namespaces.ODE_EXTENSION_NS)) { nsContext.register("ode", Namespaces.ODE_EXTENSION_NS); String uri = nsContext.getNamespaceURI(prefix); staticContext.declareNamespace(prefix, uri); if ("".equals(prefix)) {
public QName derefQName(String qname) throws NSContextException { if (qname == null) return null; int idx = qname.indexOf(':'); if (idx == -1) { try { return new QName(getNamespaceURI(null), qname); } catch (NSContextException nsEx) { return null; } } String prefix = qname.substring(0, idx); String localname = qname.substring(idx + 1); String uri; try { uri = getNamespaceURI(prefix); } catch (NSContextException nsEx) { nsEx.setErrorMsg("Namespace not found for prefix in " + prefix); throw nsEx; } return new QName(uri, localname); }
public BpelObject(Element el) { _element = el; _type = new QName(el.getNamespaceURI(), el.getLocalName()); _nsContext = new NSContext(); initNSContext(el); }
/** * Initialize object's namespace context (recursively). * * @param el * object's associated element. */ private void initNSContext(Element el) { if (el.getParentNode() != null && el.getParentNode().getNodeType() == Node.ELEMENT_NODE) initNSContext((Element) el.getParentNode()); NamedNodeMap attrs = el.getAttributes(); for (int i = 0; i < attrs.getLength(); ++i) { Attr attr = (Attr) attrs.item(i); if (!attr.getName().startsWith("xmlns:")) continue; String prefix = attr.getLocalName(); String uri = attr.getValue(); _nsContext.register(prefix, uri); } Attr dflt = el.getAttributeNode("xmlns"); if (dflt != null) { _nsContext.register("", dflt.getTextContent()); } }
/** * @see NamespaceContext#getPrefix(java.lang.String) */ public String getPrefix(String uri) { Iterator i = getPrefixes(uri); if (i.hasNext()) { return (String) i.next(); } return null; }
ns); NSContext nscontext = DOMUtils.getMyNSContext((Element) headerNode); injectNamespaces(hb, nscontext.toMap());
public String getPrefix(String uri) { return toNSContext().getPrefix(uri); }
/** * Dereference a qualified name given in the "ns:name" form using the namespace * context of a given element. * * @param prefixedQNameStr qualified name, represented as a prefixed string * @param context context element * @return a resolved {@link QName} * @throws javax.wsdl.WSDLException in case of resolution error (e.g. undefined prefix) */ protected static QName derefQName(String prefixedQNameStr, Element context) throws WSDLException { int idx = prefixedQNameStr.indexOf(":"); String uri; if (idx == -1) { uri = DOMUtils.getNamespaceURIFromPrefix(context, null); } else { if (idx >= prefixedQNameStr.length() || idx == 0) { String msg = __msgs.msgMalformedQName(prefixedQNameStr); throw new WSDLException(WSDLException.INVALID_WSDL, msg); } // Look up the prefix from the namespaces defined *at the element*. String prefix = prefixedQNameStr.substring(0, idx); uri = DOMUtils.getMyNSContext(context).getNamespaceURI(prefix); if (uri == null) { String msg = __msgs.msgInvalidNamespacePrefix(prefix); throw new WSDLException(WSDLException.INVALID_WSDL, msg); } } return new QName(uri, prefixedQNameStr.substring(idx + 1, prefixedQNameStr.length())); }
NSContext nscontext = new NSContext(); buildNScontext(nscontext, element); DOMUtils.injectNamespaces(domElement,nscontext);
@SuppressWarnings("unchecked") private static void buildNScontext(NSContext nscontext, OMElement element) { if (element == null) return; if (element.getParent() instanceof OMElement) buildNScontext(nscontext, (OMElement) element.getParent()); if (element.getAllDeclaredNamespaces() != null) for (Iterator<OMNamespace> i=element.getAllDeclaredNamespaces(); i.hasNext(); ){ OMNamespace omn = i.next(); nscontext.register(omn.getPrefix(), omn.getNamespaceURI()); } if (element.getDefaultNamespace() != null) nscontext.register("", element.getDefaultNamespace().getNamespaceURI()); }
injectNamespaces(omElement,nscontext.toMap()); } else { Map<String,String> nss = DOMUtils.getMyNamespaces(src);
for (String nsPrefix : nsContext.getPrefixes()) { String nsUri = nsContext.getNamespaceURI(nsPrefix);
/** * Get the partnerLink link type. * * @return partnerLink link type */ public QName getPartnerLinkType() { return getNamespaceContext().derefQName(getAttribute("partnerLinkType", null)); }
String prefix = stringValue.substring(0, stringValue.indexOf(":")); String localPart = stringValue.substring(stringValue.indexOf(":") + 1); String namespaceUri = _oxpath.namespaceCtx.getNamespaceURI(prefix); propertyName = new QName(namespaceUri, localPart, prefix); } else {
Set<String> prefixes = nsContext.getPrefixes(); for (String prefix : prefixes) { String uri = nsContext.getNamespaceURI(prefix); staticEnv.declareNamespace(prefix, uri);