use of io.atlasmap.xml.v2.XmlComplexType in project atlasmap by atlasmap.
the class XmlInstanceInspectionTest method testInspectXmlStringAsSourceAT370A.
@Test
public void testInspectXmlStringAsSourceAT370A() throws Exception {
final String source = "<order>\n" + " <orders>\n" + " <order>\n" + "\t <items>\n" + "\t\t <item sku=\"4\"/>\n" + "\t\t <item sku=\"5\"/>\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.XmlComplexType in project atlasmap by atlasmap.
the class XmlInstanceInspectionTest method testInspectXmlStringWithNamespaces.
@Test
public void testInspectXmlStringWithNamespaces() throws Exception {
final String source = "<x:data xmlns:x=\"http://x.namespace.com/\">\n" + " <x:intField>32000</x:intField>\n" + " <x:longField>12421</x:longField>\n" + " <x:stringField>abc</x:stringField>\n" + " <x:booleanField>true</x:booleanField>\n" + " <x:doubleField>12.0</x:doubleField>\n" + " <x:shortField>1000</x:shortField>\n" + " <x:floatField>234.5f</x:floatField>\n" + " <x:charField>A</x:charField>\n" + "</x:data>";
XmlInspectionService service = new XmlInspectionService();
XmlDocument xmlDocument = service.inspectXmlDocument(source);
Assert.assertNotNull(xmlDocument);
Assert.assertNotNull(xmlDocument.getFields());
// check for namespace
Assert.assertNotNull(xmlDocument.getXmlNamespaces());
XmlNamespace namespace = xmlDocument.getXmlNamespaces().getXmlNamespace().get(0);
Assert.assertThat(xmlDocument.getXmlNamespaces().getXmlNamespace().size(), Is.is(1));
Assert.assertNotNull(namespace);
Assert.assertEquals("x", namespace.getAlias());
Assert.assertEquals("http://x.namespace.com/", namespace.getUri());
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(8));
// debugFields(xmlDocument.getFields());
}
use of io.atlasmap.xml.v2.XmlComplexType in project atlasmap by atlasmap.
the class XmlInstanceInspectionTest method testInspectInstanceFileWithXSIType.
@Test
public void testInspectInstanceFileWithXSIType() throws Exception {
final String instance = new String(Files.readAllBytes(Paths.get("src/test/resources/inspect/xsi-type-instance.xml")));
XmlInspectionService service = new XmlInspectionService();
XmlDocument xmlDocument = service.inspectXmlDocument(instance);
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(8));
// debugFields(xmlDocument.getFields());
}
use of io.atlasmap.xml.v2.XmlComplexType in project atlasmap by atlasmap.
the class XmlSchemaInspectionMultipleNamespacesTest method testMultipleNoNamespaceSchemas.
@Test
public void testMultipleNoNamespaceSchemas() throws Exception {
File schemaFile = Paths.get("src/test/resources/inspect/multiple-no-namespace-schemas.xml").toFile();
XmlInspectionService service = new XmlInspectionService();
XmlDocument answer = service.inspectSchema(schemaFile);
Assert.assertEquals(1, answer.getXmlNamespaces().getXmlNamespace().size());
XmlNamespace namespace = answer.getXmlNamespaces().getXmlNamespace().get(0);
Assert.assertEquals("tns", namespace.getAlias());
Assert.assertEquals("io.atlasmap.xml.test:Root", namespace.getUri());
Assert.assertEquals(null, namespace.isTargetNamespace());
Assert.assertEquals(1, answer.getFields().getField().size());
XmlComplexType complex = XmlComplexType.class.cast(answer.getFields().getField().get(0));
Assert.assertEquals("tns:RootDocument", complex.getName());
Assert.assertEquals(2, complex.getXmlFields().getXmlField().size());
for (XmlField field : complex.getXmlFields().getXmlField()) {
switch(field.getName()) {
case "FirstElement":
Assert.assertEquals(FieldType.COMPLEX, field.getFieldType());
Assert.assertEquals("/tns:RootDocument/FirstElement", field.getPath());
List<XmlField> firstFields = XmlComplexType.class.cast(field).getXmlFields().getXmlField();
Assert.assertEquals(1, firstFields.size());
XmlField firstField = firstFields.get(0);
Assert.assertEquals("FirstValue", firstField.getName());
Assert.assertEquals(FieldType.STRING, firstField.getFieldType());
Assert.assertEquals("/tns:RootDocument/FirstElement/FirstValue", firstField.getPath());
break;
case "SecondElement":
Assert.assertEquals(FieldType.COMPLEX, field.getFieldType());
Assert.assertEquals("/tns:RootDocument/SecondElement", field.getPath());
List<XmlField> secondFields = XmlComplexType.class.cast(field).getXmlFields().getXmlField();
Assert.assertEquals(1, secondFields.size());
XmlField secondField = secondFields.get(0);
Assert.assertEquals("SecondValue", secondField.getName());
Assert.assertEquals(FieldType.STRING, secondField.getFieldType());
Assert.assertEquals("/tns:RootDocument/SecondElement/SecondValue", secondField.getPath());
break;
default:
Assert.fail(String.format("Unknown field '%s'", field.getPath()));
}
}
}
use of io.atlasmap.xml.v2.XmlComplexType in project atlasmap by atlasmap.
the class XmlSchemaInspectionTest method testInspectSchemaString.
@Test
public void testInspectSchemaString() 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>";
XmlInspectionService service = new XmlInspectionService();
XmlDocument xmlDocument = service.inspectSchema(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(8));
// debugFields(xmlDocument.getFields());
}
Aggregations