Return an XML datatype given a java string describing a java type.
//package com.qlogic.commons.utils;
import java.io.ByteArrayOutputStream;
/**
* General-purpose methods for manipulating URIs and XML schema types
*
* @author Mohammed LOUKILI
*/
public class XmlUtil {
/**
* XSD namespace.
*/
public static final String XSD_NAMESPACE = "http://www.w3.org/2001/XMLSchema#";
/**
* Return an XML datatype given a java string describing a java type.
*
* @param javaType
* string describing a fully qualified java type.
* @return a string describing and XML data type
*/
public static String javaToXmlType(String javaType) {
if (javaType.equals("java.lang.String")) {
return XSD_NAMESPACE + "string";
} else if (javaType.equals("java.lang.Integer")
|| javaType.equals("int")) {
return XSD_NAMESPACE + "integer";
} else if (javaType.equals("java.lang.Short")
|| javaType.equals("short")) {
return XSD_NAMESPACE + "short";
} else if (javaType.equals("java.lang.Long") || javaType.equals("long")) {
return XSD_NAMESPACE + "long";
} else if (javaType.equals("java.lang.Double")
|| javaType.equals("double")) {
return XSD_NAMESPACE + "double";
} else if (javaType.equals("java.lang.Float")
|| javaType.equals("float")) {
return XSD_NAMESPACE + "float";
} else if (javaType.equals("java.lang.Boolean")
|| javaType.equals("boolean")) {
return XSD_NAMESPACE + "boolean";
} else if (javaType.equals("java.lang.Byte") || javaType.equals("byte")) {
return XSD_NAMESPACE + "byte";
} else if (javaType.equals("java.net.URL")) {
return XSD_NAMESPACE + "anyURI";
} else if (javaType.equals("java.util.Date")) {
return (XSD_NAMESPACE + "dateTime");
} else if (javaType.equals("java.math.BigDecimal")) {
return (XSD_NAMESPACE + "bigDecimal");
} else {
throw new IllegalArgumentException("Unrecognised Java type: "
+ javaType);
}
}
/**
* Convert an XML xsd: type to a fully qualified class name of a java type.
*
* @param xmlType
* the local name of an XML type
* @return a string representing a java class name
* @throws IllegalArgumentException
* if XML datatype unrecognised
*/
public static String xmlToJavaType(String xmlType)
throws IllegalArgumentException {
if (xmlType.equals("string") || xmlType.equals("normalizedString")
|| xmlType.equals("language") || xmlType.equals("Name")
|| xmlType.equals("NCName")) {
return "java.lang.String";
} else if (xmlType.equals("positiveInteger")
|| xmlType.equals("negativeInteger") || xmlType.equals("int")
|| xmlType.equals("nonNegativeInteger")
|| xmlType.equals("unsignedInt") || xmlType.equals("integer")
|| xmlType.equals("nonPositiveInteger")) {
return "java.lang.Integer";
} else if (xmlType.equals("short") || xmlType.equals("unsignedShort")) {
return "java.lang.Short";
} else if (xmlType.equals("long") || xmlType.equals("unsignedLong")) {
return "java.lang.Long";
} else if (xmlType.equals("byte") || xmlType.equals("unsignedByte")) {
return "java.lang.Byte";
} else if (xmlType.equals("float") || xmlType.equals("decimal")) {
return "java.lang.Float";
} else if (xmlType.equals("double")) {
return "java.lang.Double";
} else if (xmlType.equals("boolean")) {
return "java.lang.Boolean";
} else if (xmlType.equals("anyURI")) {
return "java.net.URL";
} else if (xmlType.equals("date")) {
return "java.util.Date";
} else if (xmlType.equals("dateTime")) {
return "java.util.Date";
} else if (xmlType.equals("bigDecimal")) {
return "java.math.BigDecimal";
} else if (xmlType.equals("ID")) {
return "java.lang.String";
} else if (xmlType.equals("NMTOKEN")) {
return "java.lang.String";
} else {
throw new IllegalArgumentException("Unrecognised XML data type: "
+ xmlType);
}
}
}
Related examples in the same category