Skip to content

Commit

Permalink
Merge branch 'master' of github.com:Evolveum/midpoint
Browse files Browse the repository at this point in the history
  • Loading branch information
katkav committed Sep 19, 2014
2 parents a8b3ad1 + c29971c commit d57e6c7
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 7 deletions.
Expand Up @@ -330,7 +330,9 @@ private static <T> T parsePrimitiveElementValue(Element element, QName typeName)
return (T) DOMUtil.getQNameValue(element);
} else if (XmlTypeConverter.canConvert(typeName)) {
return (T) XmlTypeConverter.toJavaValue(element, typeName);
} else {
} else if (DOMUtil.XSD_ANYTYPE.equals(typeName)) {
return (T) element.getTextContent(); // if parsing primitive as xsd:anyType, we can safely parse it as string
} else {
throw new SchemaException("Cannot convert element '"+element+"' to "+typeName);
}
}
Expand Down
Expand Up @@ -236,15 +236,18 @@ public void testParseAnyValue() throws SchemaException, SAXException, IOExceptio

// WHEN

String data = "<asIs/>";

String dataAsIs = "<asIs/>";
String dataValue = "<c:value xmlns:c='" + SchemaConstants.NS_C + "'>12345</c:value>";

// THEN

Object o = prismContext.parseAnyValueAsJAXBElement(data, PrismContext.LANG_XML);
System.out.println("Parsed expression evaluator: " + o);
AssertJUnit.assertTrue("o is of wrong class (not JAXBElement): " + o.getClass(), o instanceof JAXBElement);
}
Object oAsIs = prismContext.parseAnyValueAsJAXBElement(dataAsIs, PrismContext.LANG_XML);
System.out.println("Parsed expression evaluator: " + dataAsIs + " as " + oAsIs);
AssertJUnit.assertTrue("result is of wrong class (not JAXBElement): " + oAsIs.getClass(), oAsIs instanceof JAXBElement);

Object oValue = prismContext.parseAnyValueAsJAXBElement(dataValue, PrismContext.LANG_XML);
System.out.println("Parsed expression evaluator: " + dataValue + " as " + oValue);
AssertJUnit.assertTrue("result is of wrong class (not JAXBElement): " + oValue.getClass(), oValue instanceof JAXBElement);
}

}
Expand Up @@ -136,6 +136,7 @@ public class DOMUtil {
public static final QName XSD_ANYURI = new QName(W3C_XML_SCHEMA_NS_URI, "anyURI", NS_W3C_XML_SCHEMA_PREFIX);

public static final QName XSD_ANY = new QName(W3C_XML_SCHEMA_NS_URI, "any", NS_W3C_XML_SCHEMA_PREFIX);
public static final QName XSD_ANYTYPE = new QName(W3C_XML_SCHEMA_NS_URI, "anyType", NS_W3C_XML_SCHEMA_PREFIX);

public static final String NS_XML_ENC = "http://www.w3.org/2001/04/xmlenc#";
public static final String NS_XML_DSIG = "http://www.w3.org/2000/09/xmldsig#";
Expand Down

0 comments on commit d57e6c7

Please sign in to comment.