public String getUniquePrefix() { int n = 1; while (true) { String nsPrefix = "ns" + n; if (getNamespaceContext().getNamespaceURI(nsPrefix) == null) { return nsPrefix; } n++; } }
public void writeXsiType(String namespace, String local) throws XMLStreamException { String prefix = getUniquePrefix(namespace, true); String value; if (prefix.equals("")) { value = local; } else { value = new StringBuilder(prefix).append(":").append(local).toString(); } String xsiP = getPrefix(XSI_NS); if (xsiP == null) { xsiP = "xsi"; writeNamespace("xsi", XSI_NS); } writeAttribute(xsiP, XSI_NS, "type", value); }
public void writeAndDeclareIfUndeclared(String prefix, String namespace) throws XMLStreamException { if (!namespace.equals(defaultNamespace.getNamespaceURI()) && getPrefix(namespace) == null) { writeNamespace(prefix, namespace); setPrefix(prefix, namespace); } }
public void writeAsXmlList(boolean[] values) throws XMLStreamException { for (boolean value : values) { writeBoolean(value); writeCharacters(" "); } }
public void writeXsiNil() throws XMLStreamException { String prefix = getUniquePrefix(XSI_NS, true); writeAttribute(prefix, XSI_NS, "nil", "true"); }
String namespaceURI = element.getNamespaceURI(); if (namespaceURI == null) namespaceURI = ""; writeStartElementWithAutoPrefix(namespaceURI, element.getLocalName()); prefix = "xml"; } else { prefix = getUniquePrefix(attributeNamespace); writeAttribute(prefix, attribute.getNamespaceURI(), attribute.getLocalName(), attribute.getValue()); if (child instanceof Element) { Element childElement = (Element) child; writeDomElement(childElement, true); } else if (child instanceof CDATASection) { CDATASection cdataSection = (CDATASection) child; writeCData(cdataSection.getData()); } else if (child instanceof Text) { Text text = (Text) child; writeString(text.getData()); } else if (child instanceof Comment) { Comment comment = (Comment) child; writeComment(comment.getData()); } else if (child instanceof Attr) { } else if (child instanceof Document) { writeEndElement();
public void write(XMLStreamWriter xsr, Object o, Map<String, Object> properties) throws Exception { write(new XoXMLStreamWriterImpl(xsr), o, properties); }
public String getUniquePrefix(String namespaceURI, boolean declare) throws XMLStreamException { // attributes use namespace "" if ("".equals(namespaceURI)) { return ""; } if (namespaceURI.equals(defaultNamespace.getNamespaceURI())) { return ""; } String prefix = getNamespaceContext().getPrefix(namespaceURI); if (prefix == null) { prefix = getUniquePrefix(); if (declare) { setPrefix(prefix, namespaceURI); writeNamespace(prefix, namespaceURI); } } return prefix; }
private void writeAndDeclareIfUndeclared(String prefix, String namespace, boolean useExactPrefix) throws XMLStreamException { // xml prefixes are automatic if (prefix.startsWith("xml")) { return; } if (useExactPrefix) { // prefix must match exactally Iterator prefixes = getNamespaceContext().getPrefixes(namespace); while (prefixes.hasNext()) { if (prefix.equals(prefixes.next())) { return; } } } else if (!namespace.equals(defaultNamespace.getNamespaceURI()) && getPrefix(namespace) == null) { // any prefix will do return; } writeNamespace(prefix, namespace); setPrefix(prefix, namespace); }
public void writeQName(QName q) throws XMLStreamException { String prefix = q.getPrefix(); if (prefix.length() > 0) { writeAndDeclareIfUndeclared(prefix, q.getNamespaceURI(), true); } else { if (!q.getNamespaceURI().equals(defaultNamespace.getNamespaceURI())) { prefix = getUniquePrefix(q.getNamespaceURI(), true); } } if (prefix.length() > 0) { writeCharacters(prefix); writeCharacters(":"); } writeCharacters(q.getLocalPart()); }
public void writeStartElementWithAutoPrefix(String namespaceURI, String localName) throws XMLStreamException { // check if there is an existing prefix for this namespace String prefix; if (namespaceURI.equals(defaultNamespace.getNamespaceURI())) { prefix = ""; } else { prefix = getNamespaceContext().getPrefix(namespaceURI); } // if there isn't an existing prefix, generate a new one which we'll declare below boolean declareNs = false; if (prefix == null) { prefix = ""; declareNs = true; } // start the element writeStartElement(prefix, localName, namespaceURI); // declare the namespace in the new element if (declareNs) { writeDefaultNamespace(namespaceURI); } }
public String getQNameAsString(QName q) throws XMLStreamException { String prefix = q.getPrefix(); if (prefix.length() > 0) { setPrefix(prefix, q.getNamespaceURI()); } else { prefix = getUniquePrefix(q.getNamespaceURI(), true); } if (prefix.length() > 0) { return new StringBuilder(prefix).append(":").append(q.getLocalPart()).toString(); } else { return q.getLocalPart(); } }
public void writeAttribute(QName name, String value) throws XMLStreamException { String prefix = name.getPrefix(); if (prefix.length() > 0) { writeAndDeclareIfUndeclared(prefix, name.getNamespaceURI(), true); } else { if (!name.getNamespaceURI().equals(defaultNamespace.getNamespaceURI())) { prefix = getUniquePrefix(name.getNamespaceURI(), true); } } delegate.writeAttribute(prefix, name.getNamespaceURI(), name.getLocalPart(), value); }
public String getUniquePrefix(String namespaceURI) throws XMLStreamException { return getUniquePrefix(namespaceURI, true); }
public void write(XMLStreamWriter writer, T o, RuntimeContext context) throws Exception { write(new XoXMLStreamWriterImpl(writer), o, context); }
public void write(XMLStreamWriter writer, T o) throws Exception { write(new XoXMLStreamWriterImpl(writer), o); }
public void write(XMLStreamWriter xsr, Object o) throws Exception { write(new XoXMLStreamWriterImpl(xsr), o); }
XoXMLStreamWriter w = new XoXMLStreamWriterImpl(writer);