use of io.atlasmap.xml.v2.XmlDocument in project atlasmap by atlasmap.
the class XmlService method inspectClass.
public Response inspectClass(XmlInspectionRequest request) {
long startTime = System.currentTimeMillis();
XmlInspectionResponse response = new XmlInspectionResponse();
XmlDocument d = null;
try {
if (request.getType() == null) {
response.setErrorMessage("Instance or Schema type must be specified in request");
} else {
XmlInspectionService s = new XmlInspectionService();
switch(request.getType()) {
case INSTANCE:
d = s.inspectXmlDocument(request.getXmlData());
break;
case SCHEMA:
d = s.inspectSchema(request.getXmlData());
break;
default:
response.setErrorMessage("Unsupported inspection type: " + request.getType());
break;
}
}
} catch (Exception e) {
LOG.error("Error inspecting xml: " + e.getMessage(), e);
response.setErrorMessage(e.getMessage());
} finally {
response.setExecutionTime(System.currentTimeMillis() - startTime);
}
response.setXmlDocument(d);
return Response.ok().entity(toJson(response)).build();
}
use of io.atlasmap.xml.v2.XmlDocument in project atlasmap by atlasmap.
the class XmlServiceTest method testValidJsonData.
@Test
public void testValidJsonData() throws Exception {
final String source = "<xs:schema attributeFormDefault=\"unqualified\" elementFormDefault=\"qualified\" xmlns:xs=\"http://www.w3.org/2001/XMLSchema\">\n" + " <xs:element name=\"data\">\n" + " <xs:complexType>\n" + " <xs:sequence>\n" + " <xs:element type=\"xs:int\" name=\"intField\"/>\n" + " <xs:element type=\"xs:long\" name=\"longField\"/>\n" + " <xs:element type=\"xs:string\" name=\"stringField\"/>\n" + " <xs:element type=\"xs:boolean\" name=\"booleanField\"/>\n" + " <xs:element type=\"xs:double\" name=\"doubleField\"/>\n" + " <xs:element type=\"xs:short\" name=\"shortField\"/>\n" + " <xs:element type=\"xs:float\" name=\"floatField\"/>\n" + " <xs:element type=\"xs:string\" name=\"charField\"/>\n" + " </xs:sequence>\n" + " </xs:complexType>\n" + " </xs:element>\n" + "</xs:schema>";
XmlInspectionRequest request = new XmlInspectionRequest();
request.setType(InspectionType.SCHEMA);
request.setXmlData(source);
Response res = xmlService.inspectClass(request);
Object entity = res.getEntity();
assertEquals(byte[].class, entity.getClass());
XmlInspectionResponse inspectionResponse = Json.mapper().readValue((byte[]) entity, XmlInspectionResponse.class);
XmlDocument xmlDoc = inspectionResponse.getXmlDocument();
assertEquals(1, xmlDoc.getFields().getField().size());
XmlComplexType root = (XmlComplexType) xmlDoc.getFields().getField().get(0);
assertNotNull(root);
assertEquals(8, root.getXmlFields().getXmlField().size());
}
use of io.atlasmap.xml.v2.XmlDocument in project atlasmap by atlasmap.
the class XmlInstanceInspectionTest method testInspectXmlStringAsSourceAT370B.
@Test
public void testInspectXmlStringAsSourceAT370B() throws Exception {
final String source = "<order>\n" + " <orders>\n" + " <order>\n" + "\t <items>\n" + "\t\t <item sku=\"4\"/>\n" + "\t\t <item sku=\"7\"/>\n" + "\t </items>\n" + " </order>\n" + " <order>\n" + "\t <items>\n" + "\t\t <item sku=\"5\"/>\n" + "\t\t <item sku=\"8\"/>\n" + "\t </items>\n" + " </order>\n" + " </orders>\n" + "</order>";
XmlInspectionService service = new XmlInspectionService();
XmlDocument xmlDocument = service.inspectXmlDocument(source);
Assert.assertNotNull(xmlDocument);
Assert.assertNotNull(xmlDocument.getFields());
Assert.assertThat(xmlDocument.getFields().getField().size(), Is.is(1));
XmlComplexType root = (XmlComplexType) xmlDocument.getFields().getField().get(0);
Assert.assertNotNull(root);
Assert.assertThat(root.getXmlFields().getXmlField().size(), Is.is(1));
// debugFields(xmlDocument.getFields());
}
use of io.atlasmap.xml.v2.XmlDocument in project atlasmap by atlasmap.
the class XmlInstanceInspectionTest method testInspectXmlStringAsSource.
@Test
public void testInspectXmlStringAsSource() throws Exception {
final String source = "<data>\n" + " <intField>32000</intField>\n" + " <longField>12421</longField>\n" + " <stringField>abc</stringField>\n" + " <booleanField>true</booleanField>\n" + " <doubleField>12.0</doubleField>\n" + " <shortField>1000</shortField>\n" + " <floatField>234.5f</floatField>\n" + " <charField>A</charField>\n" + "</data>";
XmlInspectionService service = new XmlInspectionService();
XmlDocument xmlDocument = service.inspectXmlDocument(source);
Assert.assertNotNull(xmlDocument);
Assert.assertNotNull(xmlDocument.getFields());
Assert.assertThat(xmlDocument.getFields().getField().size(), Is.is(1));
List<XmlComplexType> complexTypeList = xmlDocument.getFields().getField().stream().filter(xmlField -> xmlField instanceof XmlComplexType).map(xmlField -> (XmlComplexType) xmlField).collect(Collectors.toList());
Assert.assertThat(complexTypeList.size(), Is.is(1));
XmlComplexType root = (XmlComplexType) xmlDocument.getFields().getField().get(0);
Assert.assertNotNull(root);
Assert.assertThat(root.getXmlFields().getXmlField().size(), Is.is(8));
complexTypeList = root.getXmlFields().getXmlField().stream().filter(xmlField -> xmlField instanceof XmlComplexType).map(xmlField -> (XmlComplexType) xmlField).collect(Collectors.toList());
Assert.assertThat(complexTypeList.size(), Is.is(0));
// debugFields(xmlDocument.getFields());
}
use of io.atlasmap.xml.v2.XmlDocument in project atlasmap by atlasmap.
the class XmlInstanceInspectionTest method testInspectXmlStringAsSourceElementsWithAttrs.
@Test
public void testInspectXmlStringAsSourceElementsWithAttrs() throws Exception {
final String source = "<data>\n" + " <intField a='1'>32000</intField>\n" + " <longField>12421</longField>\n" + " <stringField>abc</stringField>\n" + " <booleanField>true</booleanField>\n" + " <doubleField b='2'>12.0</doubleField>\n" + " <shortField>1000</shortField>\n" + " <floatField>234.5f</floatField>\n" + " <charField>A</charField>\n" + "</data>";
XmlInspectionService service = new XmlInspectionService();
XmlDocument xmlDocument = service.inspectXmlDocument(source);
Assert.assertNotNull(xmlDocument);
Assert.assertNotNull(xmlDocument.getFields());
Assert.assertThat(xmlDocument.getFields().getField().size(), Is.is(1));
XmlComplexType root = (XmlComplexType) xmlDocument.getFields().getField().get(0);
Assert.assertNotNull(root);
Assert.assertThat(root.getXmlFields().getXmlField().size(), Is.is(10));
// debugFields(xmlDocument.getFields());
}
Aggregations