package com.xmlit.project.engine.test;
import java.io.File;
import java.io.IOException;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.Document;
import org.w3c.dom.bootstrap.DOMImplementationRegistry;
import org.w3c.dom.ls.DOMImplementationLS;
import org.w3c.dom.ls.LSSerializer;
import org.xml.sax.SAXException;
import com.xmlit.project.engine.kxsd.KXSDReader;
import com.xmlit.project.engine.marshal.MarshalImpl;
import com.xmlit.project.engine.marshal.UnmarshalImpl;
import com.xmlit.project.engine.struct.Struct;
import com.xmlit.project.engine.struct.impl.StructChoiceImpl;
public class KXSDTest {
/*static String msg = ":15A:\r\n" +
":20:00691\r\n" +
":21:16x\r\n" +
":22A:NEWT\r\n" +
":94A:BROK\r\n" +
":22B:MATU\r\n" +
":22C:PTSAIL8912PTSAF0\r\n" +
":21N:16x\r\n" +
":82A:TESTDEVT\r\n" +
":87A:TESTDEVT\r\n" +
":83A:TESTDEVT\r\n" +
":77D:35x\r\n" +
":15B:\r\n" +
":17R:L\r\n" +
":30T:20000101\r\n" +
":30V:20000101\r\n" +
":30P:20000101\r\n" +
":32B:USD123456789012,45\r\n" +
":32H:USD0,00\r\n" +
":34E:NUSD123456789012,45\r\n" +
":37G:N123456789,12\r\n" +
":14D:ACT/365\r\n" +
":15C:\r\n" +
":53A:TESTDEVT\r\n" +
":86A:TESTDEVT\r\n" +
":56A:TESTDEVT\r\n" +
":57A:TESTDEVT\r\n" +
":58A:TESTDEVT\r\n" +
":15D:\r\n" +
":53A:TESTDEVT\r\n" +
":86A:TESTDEVT\r\n" +
":56A:TESTDEVT\r\n" +
":57A:TESTDEVT\r\n" +
":58A:TESTDEVT\r\n" +
":15E:\r\n" +
":53A:TESTDEVT\r\n" +
":86A:TESTDEVT\r\n" +
":56A:TESTDEVT\r\n" +
":57A:TESTDEVT\r\n" +
":58A:TESTDEVT\r\n" +
":15F:\r\n" +
":53A:TESTDEVT\r\n" +
":86A:TESTDEVT\r\n" +
":56A:TESTDEVT\r\n" +
":57A:TESTDEVT\r\n" +
":58A:TESTDEVT\r\n" +
":15G:\r\n" +
":37L:12345678901,\r\n" +
":33B:BMD1,34\r\n" +
":36:1,3456789012\r\n" +
":33E:CAD1,34\r\n" +
":15H:";*/
/* static String msg = ":20:00059\r\n"+
":23:SPAY\r\n"+
":36:1,\r\n"+
":21:Ref 998877\r\n"+
":32B:USD55,44\r\n"+
":50A:TESTLUVT\r\n"+
":52A:TESTUSVT\r\n"+
":59:/9-xCHQ9-884\r\n"+
"BelleView MANITOBA\r\n"+
":33B:USN55,44\r\n"+
":71A:SHA\r\n"+
":71F:USD0,44\r\n"+
":21:Ref 998877\r\n"+
":32B:USD55,44\r\n"+
":50A:/D-95-3Px1402\r\n"+
"TESTMXVTXXX\r\n"+
":52A:TESTCAVT\r\n"+
":59:/9-xCHQ9-884\r\n"+
"BelleView MANITOBA\r\n"+
":26T:TTC\r\n"+
":33B:USD55,44\r\n"+
":71A:BEN\r\n"+
":71F:USD0,44\r\n"+
":71F:USD11,99\r\n"+
":71F:USD665,\r\n"+
":21:Ref 998877\r\n"+
":32B:USD55,44\r\n"+
":50A:TESTMXVTXXX\r\n"+
":52A:TESTDEVT\r\n"+
":59:/9-xCHQ9-884\r\n"+
"BelleView MANITOBA\r\n"+
":33B:USD55,44\r\n"+
":71A:OUR\r\n"+
":71G:USD1,\r\n"+
":21:Ref 998877\r\n"+
":32B:USD55,44\r\n"+
":50A:TESTMXVTXXX\r\n"+
":52A:TESTDEVT\r\n"+
":59:/9-xCHQ9-884\r\n"+
"BelleView MANITOBA\r\n"+
":33B:USD55,44\r\n"+
":71A:OUR\r\n"+
":71G:USD1,\r\n"+
":21:Ref 998877\r\n"+
":32B:USD55,44\r\n"+
":50A:TESTMXVTXXX\r\n"+
":52A:TESTDEVT\r\n"+
":59:/9-xCHQ9-884\r\n"+
"BelleView MANITOBA\r\n"+
":33B:USD55,44\r\n"+
":71A:OUR\r\n"+
":71G:USD1,\r\n"+
":21:Ref 998877\r\n"+
":32B:USD55,44\r\n"+
":50A:/Account Information Linex-34/41234\r\n"+
"TESTLUVT\r\n"+
":52A:TESTDKVT\r\n"+
":59:/9-xCHQ9-884\r\n"+
"BelleView MANITOBA\r\n"+
":26T:TTC\r\n"+
":33B:USD55,44\r\n"+
":71A:OUR\r\n"+
":32A:011231USD222,76\r\n"+
":71G:USD1,";*/
static String msg = ":16R:GENL\r\n"+
":20C::SEME//01203\r\n"+
":20C::SCTR//16x\r\n"+
":20C::RCTR//16x\r\n"+
":23G:NEWM/CODU\r\n"+
":16R:AGRE\r\n"+
":22F::AGRE/ODSSVL8C/MF4C\r\n"+
":70C::AGRE//35x\r\n"+
":16S:AGRE\r\n"+
":22H::COLA//EXTD\r\n"+
":95P::PTYA//TESTUSVT\r\n"+
":95P::PTYB//TESTUSVT\r\n"+
":16S:GENL\r\n"+
":16R:COLD\r\n"+
":20C::COLR//16x\r\n"+
":22H::COLL//CCOL\r\n"+
":22H::INOU//COLI\r\n"+
":16R:CCOL\r\n"+
":19B::DEPO//USD1,34\r\n"+
":22H::DEPO//CLNT\r\n"+
":16R:CASHSET\r\n"+
":22F::STCO/ODSSVL8C/NSSP\r\n"+
":16R:CSHPRTY\r\n"+
":95R::ACCW/MDSSVL8C/x\r\n"+
":97A::CASH//x\r\n"+
":97A::CHAR//x\r\n"+
":97A::COMM//x\r\n"+
":97A::TAXE//x\r\n"+
":70C::PACO//35x\r\n"+
"3X35x\r\n"+
":16S:CSHPRTY\r\n"+
":16R:CSHPRTY\r\n"+
":95R::PAYE/MDSSVL8C/x\r\n"+
":97A::CASH//x\r\n"+
":97A::CHAR//x\r\n"+
":97A::COMM//x\r\n"+
":97A::TAXE//x\r\n"+
":70C::PACO//35x\r\n"+
"3X35x\r\n"+
":16S:CSHPRTY\r\n"+
":16S:CASHSET\r\n"+
":16S:CCOL\r\n"+
":16S:COLD\r\n"+
":16R:COLD\r\n"+
":20C::COLR//16x\r\n"+
":22H::COLL//CCOL\r\n"+
":22H::INOU//COLI\r\n"+
":16R:CCOL\r\n"+
":19B::DEPO//USD1,34\r\n"+
":22H::DEPO//FIXT\r\n"+
":98A::TERM//20001118\r\n"+
":16S:CCOL\r\n"+
":16S:COLD\r\n"+
":16R:CASHSET1\r\n"+
":22F::STCO/ODSSVL8C/NSSP\r\n"+
":16R:CSHPRTY1\r\n"+
":95R::ACCW/MDSSVL8C/x\r\n"+
":97A::CASH//x\r\n"+
":97A::CHAR//x\r\n"+
":97A::COMM//x\r\n"+
":97A::TAXE//x\r\n"+
":16S:CSHPRTY1\r\n"+
":16R:CSHPRTY1\r\n"+
":95R::PAYE/MDSSVL8C/x\r\n"+
":97A::CASH//x\r\n"+
":97A::CHAR//x\r\n"+
":97A::COMM//x\r\n"+
":97A::TAXE//x\r\n"+
":16S:CSHPRTY1\r\n"+
":16S:CASHSET1";
public static void main(String[] args) throws Exception {
KXSDReader reader = new KXSDReader();
Struct root = reader.readSchema(MultiMessageTest.file2String(new File("c:/formats/fin.505.2008.xsd")));
DOMImplementationRegistry registry = DOMImplementationRegistry.newInstance();
DOMImplementationLS impl =
(DOMImplementationLS)registry.getDOMImplementation("LS");
LSSerializer writer = impl.createLSSerializer();
writer.getDomConfig().setParameter("format-pretty-print", Boolean.TRUE);
Document doc = new UnmarshalImpl().unmarshal(msg, root);
String str = writer.writeToString(doc);
System.out.println(str);
System.out.println(new MarshalImpl().marshal(doc, root));
/* long time = System.currentTimeMillis();
for (int i = 0;i < 10000;i++)
new UnmarshalImpl().unmarshal(msg, root);
System.out.println("time="+(System.currentTimeMillis() - time));
*/
}
}