public class XmlParser extends AbstractParser
Title: Service Event Fabric Runtime
Description: XmlParser parses incoming XML data and creates corrsponding XsdSchema
object .
string
typesMap
has the highest priority
<?xml version="1.0" encoding="iso-8859-1"?>
<SampleObject attr1='value1' attr2='5'>
<longField>2</longField>
<ComplexObjects>
<ComplexObject>
<SubObject>
<item>1</item>
<item>2</item>
</SubObject>
</ComplexObject>
<ComplexObject attr3='value3'>
<SubObject>
<item>1</item>
<item>2</item>
</SubObject>
</ComplexObject>
</ComplexObjects>
<ComplexObject>
<value>1</value>
</ComplexObject>
</SampleObject>
and the following types map
Map<String, String> typesMap = new HashMap<String, String>();
typesMap.put("//SampleObject/longField", "long");
typesMap.put("//SampleObject/ComplexObjects/ComplexObject", "ComplexObjectType");
typesMap.put("//SampleObject/ComplexObjects/ComplexObject/SubObject", "SubObjectType");
typesMap.put("//SampleObject/ComplexObjects/ComplexObject/SubObject/item", "int");
typesMap.put("//SampleObject/attr2", "int");
To generate 'create sdo' EDL statement we should do
EdlGenerator generator = new EdlGenerator();
generator.setNamespace("mynamespace");
generator.setArchiveName("myarchive");
generator.setPackageName("mypackge");
generator.setParser(new XmlParser());
generator.setTypesMap(typesMap);
Map<String, String> edls = generator.generateEdl(xmlfilename);
Or using slang command
create sdo from xml 'xsds/testxsd.xml'
save at './output.edl'
build
types('//SampleObject/longField' long, '//SampleObject/ComplexObjects/ComplexObject' ComplexObjectType,
'//SampleObject/ComplexObjects/ComplexObject/SubObject' SubObjectType, '//SampleObject/ComplexObjects/ComplexObject/SubObject/item' int,
'//SampleObject/attr2' int)
namespace mynamespace
replace archive myarchive.jar
replace package mypackge
And we get the following 'create sdo' statements
create sdo ComplexObjectType as { list(int alias item) SubObject; } namespace mynamespace replace archive myarchive replace package mypackge create sdo ComplexObject as { string(xml-attribute) attr3; string value; } namespace mynamespace replace archive myarchive replace package mypackge create sdo SampleObject as { string(xml-attribute) attr1; int(xml-attribute) attr2; long longField; list(ComplexObjectType alias ComplexObject) ComplexObjects; ComplexObject ComplexObject; } namespace mynamespace replace archive myarchive replace package mypackge
Copyright: Copyright (c) 2014
Company: StreamScape Technologies
Constructor and Description |
---|
XmlParser(java.util.function.Function semanticTypeExistsChecker) |
camelCaseName, parse, parse, parse, parse, resolveAlias
Copyright © 2015-2024 StreamScape Technologies. All rights reserved.