public SOAPElement addAttribute(Name name, String value) throws SOAPException { if (name.getLocalName().equals("encodingStyle") && name.getURI().equals(NameImpl.SOAP12_NAMESPACE)) { setEncodingStyle(value); } return super.addAttribute(name, value); }
protected SOAPElement convertToSoapElement(Element element) { if (element instanceof SOAPFaultElement) { return (SOAPElement) element; } else if (element instanceof SOAPElement) { SOAPElement soapElement = (SOAPElement) element; if (getDetailName().equals(soapElement.getElementName())) { return replaceElementWithSOAPElement(element, createDetail()); } else { String localName = soapElement.getElementName().getLocalName(); if (isStandardFaultElement(localName)) return replaceElementWithSOAPElement( element, createSOAPFaultElement(soapElement.getElementQName())); return soapElement; } } else { Name elementName = NameImpl.copyElementName(element); ElementImpl newElement; if (getDetailName().equals(elementName)) { newElement = (ElementImpl) createDetail(); } else { String localName = elementName.getLocalName(); if (isStandardFaultElement(localName)) newElement = (ElementImpl) createSOAPFaultElement(elementName); else newElement = (ElementImpl) createElement(elementName); } return replaceElementWithSOAPElement(element, newElement); } }
@Test public final void testGetFaultCodeAsNameUnqualified() throws Exception { SOAPFault fault = createEmptySOAPFault(); appendFaultCodeElement(fault).setTextContent("Test"); Name name = fault.getFaultCodeAsName(); assertEquals("", name.getPrefix()); assertEquals("", name.getURI()); assertEquals("Test", name.getLocalName()); }
@Test public final void testGetFaultCodeAsNameQualified() throws Exception { SOAPFault fault = createEmptySOAPFault(); String code = fault.getPrefix() + ":Server"; appendFaultCodeElement(fault).setTextContent(code); Name name = fault.getFaultCodeAsName(); assertEquals(fault.getPrefix(), name.getPrefix()); assertEquals(fault.getNamespaceURI(), name.getURI()); assertEquals("Server", name.getLocalName()); }
private SOAPHeaderElement getHeaderElement( final SOAPHeader soapHeader, final String uri, final String name) throws SOAPException { if (soapHeader != null) { final Iterator headerIter = SOAPUtil.getChildElements(soapHeader); while (headerIter.hasNext()) { final SOAPHeaderElement current = (SOAPHeaderElement) headerIter.next(); final Name currentName = current.getElementName(); if ((currentName != null) && match(name, currentName.getLocalName()) && match(uri, currentName.getURI())) { return current; } } } return null; }
protected SOAPElement circumventBug5034339(SOAPElement element) { Name elementName = element.getElementName(); if (!isNamespaceQualified(elementName)) { String prefix = elementName.getPrefix(); String defaultNamespace = getNamespaceURI(prefix); if (defaultNamespace != null) { Name newElementName = NameImpl.create(elementName.getLocalName(), elementName.getPrefix(), defaultNamespace); SOAPElement newElement = createElement(newElementName); replaceChild(newElement, element); return newElement; } } return element; }
@Validated @Test public void testAddNotUnderstoodHeaderElement() throws Exception { javax.xml.soap.SOAPMessage soapMessage = javax.xml.soap.MessageFactory.newInstance(SOAPConstants.SOAP_1_2_PROTOCOL).createMessage(); javax.xml.soap.SOAPEnvelope soapEnv = soapMessage.getSOAPPart().getEnvelope(); javax.xml.soap.SOAPHeader header = soapEnv.getHeader(); SOAPElement soapElement = header.addNotUnderstoodHeaderElement(new QName("http://foo.org", "foo", "f")); assertNotNull(soapElement); Name name = soapElement.getElementName(); String uri = name.getURI(); String localName = name.getLocalName(); assertEquals(SOAPConstants.URI_NS_SOAP_1_2_ENVELOPE, uri); // Validate the LocalName which must be NotUnderstood assertEquals("NotUnderstood", localName); }
public static void copyAttributes(Element target, SOAPElement source) { // easy way out: no attributes to copy if (!source.hasAttributes()) return; final boolean traceEnabled = log.isTraceEnabled(); // traverse attributes Iterator attrNameIt = source.getAllAttributes(); while (attrNameIt.hasNext()) { Name attrName = (Name) attrNameIt.next(); String namespaceURI = attrName.getURI(); String value = source.getAttributeValue(attrName); if (StringUtils.isEmpty(namespaceURI)) { String localName = attrName.getLocalName(); target.setAttribute(localName, value); if (traceEnabled) log.trace("set attribute: " + localName); } else { String qualifiedName = attrName.getQualifiedName(); target.setAttributeNS(namespaceURI, qualifiedName, value); if (traceEnabled) log.trace("set attribute: " + qualifiedName); } } }
@Validated @Test public void testAddUpgradeHeaderElement() throws Exception { javax.xml.soap.SOAPMessage soapMessage = javax.xml.soap.MessageFactory.newInstance(SOAPConstants.SOAP_1_2_PROTOCOL).createMessage(); javax.xml.soap.SOAPEnvelope soapEnv = soapMessage.getSOAPPart().getEnvelope(); javax.xml.soap.SOAPHeader header = soapEnv.getHeader(); // create a list of supported URIs. ArrayList supported = new ArrayList(); supported.add(SOAPConstants.URI_NS_SOAP_1_2_ENVELOPE); supported.add(SOAPConstants.URI_NS_SOAP_ENVELOPE); SOAPElement soapElement = header.addUpgradeHeaderElement(supported.iterator()); assertNotNull(soapElement); Name name = soapElement.getElementName(); String uri = name.getURI(); String localName = name.getLocalName(); // Validate the URI which must be SOAPConstants.URI_NS_SOAP_1_2_ENVELOPE); assertTrue(uri.equals(SOAPConstants.URI_NS_SOAP_1_2_ENVELOPE)); assertTrue(localName.equals("Upgrade")); }
public void setFaultCode(Name faultCodeQName) throws SOAPException { setFaultCode( faultCodeQName.getLocalName(), faultCodeQName.getPrefix(), faultCodeQName.getURI()); }
protected static String getAttributeValueFrom(Element element, Name name) { return getAttributeValueFrom( element, name.getURI(), name.getLocalName(), name.getPrefix(), name.getQualifiedName()); }
public ElementImpl(SOAPDocumentImpl ownerDoc, Name name) { super(ownerDoc, name.getURI(), name.getQualifiedName(), name.getLocalName()); elementQName = NameImpl.convertToQName(name); }
public Iterator getChildElements(final Name name) { return getChildElements(name.getURI(), name.getLocalName()); }
public boolean removeAttribute(Name name) { return removeAttribute(name.getURI(), name.getLocalName()); }