0

I'm trying to add XML element similar to following as saml:AttributeValue,

<ABC>cde</ABC>

Used DocumentBuilderFactory to get the XML element and I'm using following code to get XSAny type object.

XSAnyBuilder anyBuilder = (XSAnyBuilder)Configuration.getBuilderFactory().getBuilder(XSAny.TYPE_NAME);
XSAny any = anyBuilder.buildObject(AttributeValue.DEFAULT_ELEMENT_NAME, XSAny.TYPE_NAME);
XSAny xo = anyBuilder.buildObject(xmlElement);

But I'm getting following error from the 3rd line,

Caused by: java.lang.IllegalArgumentException: local part cannot be "null" when creating a QName
    at javax.xml.namespace.QName.<init>(QName.java:246)
    at javax.xml.namespace.QName.<init>(QName.java:190)
    at org.opensaml.xml.util.XMLHelper.constructQName(XMLHelper.java:433)
    at org.opensaml.xml.AbstractXMLObject.<init>(AbstractXMLObject.java:82)
    at org.opensaml.xml.validation.AbstractValidatingXMLObject.<init>(AbstractValidatingXMLObject.java:48)
    at org.opensaml.xml.schema.impl.XSAnyImpl.<init>(XSAnyImpl.java:52)
    at org.opensaml.xml.schema.impl.XSAnyBuilder.buildObject(XSAnyBuilder.java:29)
    at org.opensaml.xml.schema.impl.XSAnyBuilder.buildObject(XSAnyBuilder.java:25)
    at org.opensaml.xml.AbstractXMLObjectBuilder.buildObject(AbstractXMLObjectBuilder.java:51)
    at org.opensaml.xml.AbstractXMLObjectBuilder.buildObject(AbstractXMLObjectBuilder.java:66)

Any Ideas on this?

Thanuja
  • 443
  • 3
  • 16

1 Answers1

0

You cannot directly add XML as an AttributeValue as it would break the Assertion XML schema.

The best solution would be to escape your XML before inserting it:

&lt;ABC&gt;cde&lt;/ABC&gt;
sk_
  • 2,105
  • 17
  • 31