private String addNamespaceDeclarationIfRequired(Element schemaElement, String prefixHint, String namespace) { String prefix = null; NamespaceTable namespaceTable = new NamespaceTable(schemaElement.getOwnerDocument()); namespaceTable.addElement(schemaElement); prefix = namespaceTable.getPrefixForURI(namespace); if (prefix == null) { String basePrefix = prefixHint; prefix = basePrefix; String xmlnsColon = "xmlns:"; //$NON-NLS-1$ String attributeName = xmlnsColon + prefix; int count = 0; while (schemaElement.getAttribute(attributeName) != null) { count++; prefix = basePrefix + count; attributeName = xmlnsColon + prefix; } schemaElement.setAttribute(attributeName, namespace); } return prefix; } }
public CMDocument getCMDocument(Element element, String uri) { CMDocument result = null; NamespaceTable namespaceTable = new NamespaceTable(element.getOwnerDocument()); namespaceTable.addElementLineage(element); NamespaceInfo namespaceInfo = namespaceTable.getNamespaceInfoForURI(uri); if (namespaceInfo != null) { result = getCMDocument(namespaceInfo.uri, namespaceInfo.locationHint, "XSD"); //$NON-NLS-1$ } return result; }
public void addNamespaceInfoList(List list) { addNamespaceInfoList(list, false); }
public void addElementLineage(Element targetElement) { List list = NamespaceTable.getElementLineage(targetElement); for (Iterator i = list.iterator(); i.hasNext(); ) { Element element = (Element)i.next(); addElement(element); } }
NamespaceTable namespaceTable = new NamespaceTable(element.getOwnerDocument()); List list = NamespaceTable.getElementLineage(element); Element rootElement = (Element)list.get(0); namespaceTable.addElement(rootElement); if (namespaceTable.isNamespaceEncountered())
namespaceTable = new NamespaceTable(document); if (parent instanceof Element) namespaceTable.addElementLineage((Element)parent); prefix = namespaceTable.getPrefixForURI(namespaceURI);
NamespaceTable namespaceTable = new NamespaceTable(document); if (node.getNodeType() == Node.ELEMENT_NODE) namespaceTable.addElement((Element)node); List list = namespaceTable.getNamespaceInfoList(); for (Iterator i = list.iterator(); i.hasNext();)
NamespaceTable namespaceTable = new NamespaceTable(element.getOwnerDocument()); namespaceTable.addElementLineage(element); List list = namespaceTable.getNamespaceInfoList(); for (Iterator i = list.iterator(); i.hasNext();)
protected void addValuesForXSIType(Element element, CMNode cmNode, List list) { if (cmNode != null && cmNode.getNodeType() == CMNode.ATTRIBUTE_DECLARATION) { CMAttributeDeclaration ad = (CMAttributeDeclaration)cmNode; if (valueHelper.isXSIType(ad)) { NamespaceTable table = new NamespaceTable(element.getOwnerDocument()); table.addElementLineage(element); list.addAll(valueHelper.getQualifiedXSITypes(ad, table)); } } }
NamespaceTable table = new NamespaceTable(element.getOwnerDocument()); result = table.getURIForPrefix(prefix);
public void addElement(Element element) { newNamespaceList = null; super.addElement(element); if (newNamespaceList != null) { for (Iterator i = newNamespaceList.iterator(); i.hasNext(); ) { NamespaceInfo info = (NamespaceInfo)i.next(); handleGrammar(info.uri, info.locationHint, "XSD"); //$NON-NLS-1$ } } }
protected CMElementDeclaration getDerivedCMElementDeclaration(Element element, CMElementDeclaration ed, NamespaceTable namespaceTable) { CMElementDeclaration result = null; String xsiPrefix = namespaceTable.getPrefixForURI("http://www.w3.org/2001/XMLSchema-instance"); //$NON-NLS-1$ if (xsiPrefix != null) { String xsiTypeValue = element.getAttribute(xsiPrefix + ":type"); //$NON-NLS-1$ if (xsiTypeValue != null) { String typePrefix = DOMNamespaceHelper.getPrefix(xsiTypeValue); String typeName = DOMNamespaceHelper.getUnprefixedName(xsiTypeValue); String typeURI = namespaceTable.getURIForPrefix(typePrefix); String uriQualifiedTypeName = typeName; if (typeURI != null && typeURI.length() > 0) { uriQualifiedTypeName = "[" + typeURI + "]" + typeName; //$NON-NLS-1$ //$NON-NLS-2$ } result = (CMElementDeclaration)ed.getProperty("DerivedElementDeclaration=" + uriQualifiedTypeName); //$NON-NLS-1$ } } return result; }
namespaceTable.addElement(element); NamespaceInfo namespaceInfo = namespaceTable.getNamespaceInfoForPrefix(prefix); if (namespaceInfo != null)
public DOMContentBuilderImpl(Document document) { this.document = document; namespaceTable = new NamespaceTable(document); }
public void visitXMLNamespaceAttribute(Attr attr, String namespacePrefix, String namespaceURI) { NamespaceInfo nsInfo = new NamespaceInfo(); nsInfo.prefix = namespacePrefix; nsInfo.uri = namespaceURI; NamespaceInfo matchingNamespaceInfo = getNamespaceInfoForURI(namespaceURI); if (matchingNamespaceInfo != null) { nsInfo.locationHint = matchingNamespaceInfo.locationHint; } internalAddNamespaceInfo(namespacePrefix, nsInfo); super.visitXMLNamespaceAttribute(attr, namespacePrefix, namespaceURI); }
public List getQualifiedXSITypes(CMAttributeDeclaration ad, NamespaceTable table) { List list = new Vector(); List xsiTypes = (List)ad.getProperty("XSITypes"); //$NON-NLS-1$ if (xsiTypes != null && xsiTypes.size() > 0) { for (Iterator i = xsiTypes.iterator(); i.hasNext(); ) { String uriQualifiedName = (String)i.next(); String[] components = DOMNamespaceHelper.getURIQualifiedNameComponents(uriQualifiedName); String prefix = table.getPrefixForURI(components[0] != null ? components[0] : ""); //$NON-NLS-1$ String typeName = (prefix != null && prefix.length() > 0) ? prefix + ":" + components[1] : //$NON-NLS-1$ components[1]; list.add(typeName); } } return list; } }
public String getPrefixForURI(String uri) { String result = null; NamespaceInfo entry = getNamespaceInfoForURI(uri, true); if (entry != null) { result = entry.prefix; } return result; }
public String getURIForPrefix(String prefix) { String result = null; NamespaceInfo info = getNamespaceInfoForPrefix(prefix); if (info != null) { result = info.uri; } return result; }
public void visitXSINoNamespaceSchemaLocationAttribute(Attr attr, String locationHint) { addNoNamespaceSchemaLocation(locationHint); }
public void build(Node parent, CMNode child) { resultList = new Vector(); topParent = parent; currentParent = parent; if (parent instanceof Element) { namespaceTable.addElementLineage((Element) parent); } attachNodesToParent = false; alwaysVisit = true; visitCMNode(child); }