static {
try {
dataTypeFactory = DatatypeFactory.newInstance();
} catch (final DatatypeConfigurationException dce) {
}
}
static {
try {
final InputStream requestXsdPath = Demo.class
.getResourceAsStream("/META-INF/wsdl/Demo/Demo.xsd");
final InputStream faultXsdPath = Demo.class
.getResourceAsStream("/META-INF/wsdl/Demo/Fault.2.0.xsd");
final SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
schema = factory
.newSchema(new Source[] { new StreamSource(faultXsdPath), new StreamSource(requestXsdPath) });
} catch (final Exception e) {
}
}
public static XMLGregorianCalendar getXMLGregorianCalendar() {
return dataTypeFactory.newXMLGregorianCalendar(new GregorianCalendar());
}
public static void schemaValidation(
final DemoRequest requestBody) {
try {
final String objToXML = objToXMLConverter(requestBody);
final Source xmlFile = new StreamSource(new StringReader(objToXML));
final Validator validator = schema.newValidator();
validator.validate(xmlFile);
} catch (final Exception e) { }
}
private static String objToXMLConverter(final DemoRequest request)
throws JAXBException, IOException {
final java.io.StringWriter sw = new java.io.StringWriter();
final javax.xml.bind.JAXBContext jaxbCtx = javax.xml.bind.JAXBContext
.newInstance(request.getClass().getPackage().getName());
final javax.xml.bind.Marshaller marshaller = jaxbCtx.createMarshaller();
marshaller.setProperty(javax.xml.bind.Marshaller.JAXB_ENCODING, "UTF-8");
marshaller.setProperty(javax.xml.bind.Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
final QName qname = new QName("http://demo/schema/DemoDetails/1/0",
"DemoDetailsRequest");
final JAXBElement
DemoDetailsRequest.class, request);
marshaller.marshal(root, sw);
sw.close();
return sw.toString();
}
DateTime now = new DateTime(DateTimeZone.UTC);
return ISODateTimeFormat.dateHourMinuteSecond().print(now);
No comments:
Post a Comment