Search in sources :

Example 1 with XmlDocument

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();
}
Also used : XmlInspectionService(io.atlasmap.xml.inspect.XmlInspectionService) XmlDocument(io.atlasmap.xml.v2.XmlDocument) IOException(java.io.IOException) JsonProcessingException(com.fasterxml.jackson.core.JsonProcessingException) WebApplicationException(javax.ws.rs.WebApplicationException) XmlInspectionResponse(io.atlasmap.xml.v2.XmlInspectionResponse)

Example 2 with XmlDocument

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());
}
Also used : Response(javax.ws.rs.core.Response) XmlInspectionResponse(io.atlasmap.xml.v2.XmlInspectionResponse) XmlComplexType(io.atlasmap.xml.v2.XmlComplexType) XmlDocument(io.atlasmap.xml.v2.XmlDocument) XmlInspectionRequest(io.atlasmap.xml.v2.XmlInspectionRequest) XmlInspectionResponse(io.atlasmap.xml.v2.XmlInspectionResponse) Test(org.junit.Test)

Example 3 with XmlDocument

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());
}
Also used : XmlComplexType(io.atlasmap.xml.v2.XmlComplexType) XmlDocument(io.atlasmap.xml.v2.XmlDocument) Test(org.junit.Test)

Example 4 with XmlDocument

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());
}
Also used : List(java.util.List) XmlNamespace(io.atlasmap.xml.v2.XmlNamespace) Files(java.nio.file.Files) Paths(java.nio.file.Paths) XmlDocument(io.atlasmap.xml.v2.XmlDocument) Document(org.w3c.dom.Document) XmlComplexType(io.atlasmap.xml.v2.XmlComplexType) Test(org.junit.Test) Assert(org.junit.Assert) Collectors(java.util.stream.Collectors) XmlField(io.atlasmap.xml.v2.XmlField) Is(org.hamcrest.core.Is) XmlComplexType(io.atlasmap.xml.v2.XmlComplexType) XmlDocument(io.atlasmap.xml.v2.XmlDocument) Test(org.junit.Test)

Example 5 with XmlDocument

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());
}
Also used : XmlComplexType(io.atlasmap.xml.v2.XmlComplexType) XmlDocument(io.atlasmap.xml.v2.XmlDocument) Test(org.junit.Test)

Aggregations

XmlDocument (io.atlasmap.xml.v2.XmlDocument)25 Test (org.junit.Test)22 XmlComplexType (io.atlasmap.xml.v2.XmlComplexType)20 XmlNamespace (io.atlasmap.xml.v2.XmlNamespace)10 File (java.io.File)10 XmlField (io.atlasmap.xml.v2.XmlField)8 Document (org.w3c.dom.Document)3 JsonProcessingException (com.fasterxml.jackson.core.JsonProcessingException)2 Field (io.atlasmap.v2.Field)2 XmlInspectionService (io.atlasmap.xml.inspect.XmlInspectionService)2 XmlInspectionResponse (io.atlasmap.xml.v2.XmlInspectionResponse)2 IOException (java.io.IOException)2 WebApplicationException (javax.ws.rs.WebApplicationException)2 XSSchemaSet (com.sun.xml.xsom.XSSchemaSet)1 XSOMParser (com.sun.xml.xsom.parser.XSOMParser)1 DomAnnotationParserFactory (com.sun.xml.xsom.util.DomAnnotationParserFactory)1 Fields (io.atlasmap.v2.Fields)1 InspectionType (io.atlasmap.xml.v2.InspectionType)1 Restriction (io.atlasmap.xml.v2.Restriction)1 XmlFields (io.atlasmap.xml.v2.XmlFields)1