// Decompiled by DJ v3.11.11.95 Copyright 2009 Atanas Neshkov Date: 29/10/2011 18:45:53
// Home Page: http://members.fortunecity.com/neshkov/dj.html http://www.neshkov.com/dj.html - Check often for new version!
// Decompiler options: packimports(3)
// Source File Name: Translate.java
package xlator.util;
import java.io.*;
import javax.xml.transform.dom.DOMResult;
import javax.xml.transform.dom.DOMSource;
import oracle.tip.pc.services.translation.framework.*;
import oracle.tip.pc.services.translation.xlators.dtd.DTDTranslator;
import oracle.tip.pc.services.translation.xlators.nxsd.ErrorList;
import oracle.tip.pc.services.translation.xlators.xsd.XSDTranslator;
import oracle.xml.parser.schema.*;
import oracle.xml.parser.v2.*;
import oracle.xml.schemavalidator.XSDValidator;
import org.w3c.dom.*;
public class Translate
{
public Translate()
{
}
public static void main(String args[])
{
System.out.println("");
try
{
if(args.length == 0 || args[0].equals("-help"))
{
showUsage();
System.exit(1);
}
for(int i = 0; i < args.length; i++)
if(args[i].startsWith("-"))
{
if(args[i].equals("-schema"))
{
if(++i == args.length)
{
System.out.println("[Error] :: Missing argument to -schema option.");
System.exit(1);
}
fSchemaLocation = args[i];
continue;
}
if(args[i].equals("-root"))
{
if(++i == args.length)
{
System.out.println("[Error] :: Missing argument to -root option.");
System.exit(1);
}
fRootElementName = args[i];
continue;
}
if(args[i].equals("-output"))
{
if(++i == args.length)
{
System.out.println("[Error] :: Missing argument to -output option.");
System.exit(1);
}
fOutput = args[i];
continue;
}
if(args[i].equals("-debatch"))
{
if(++i == args.length)
{
System.out.println("[Error] :: Missing argument to -debatch option.");
System.exit(1);
}
try
{
fPublishSize = Integer.parseInt(args[i]);
continue;
}
catch(Exception exception1)
{
System.out.println((new StringBuilder()).append("[Error] :: Invalid value {").append(args[i]).append("} for -debatch option.").toString());
}
System.exit(1);
continue;
}
if(args[i].equals("-inbound"))
{
fInbound = true;
continue;
}
if(args[i].equals("-buffer"))
{
fBuffer = true;
continue;
}
if(args[i].equals("-outbound"))
{
fOutbound = true;
continue;
}
if(args[i].equals("-validate"))
{
if(++i == args.length)
{
System.out.println("[Error] :: Missing argument to -validate option.");
System.exit(1);
}
if(args[i].equals("in"))
{
fValidateInput = true;
continue;
}
if(args[i].equals("out"))
{
fValidateOutput = true;
continue;
}
if(args[i].equals("both"))
{
fValidateInput = true;
fValidateOutput = true;
}
continue;
}
if(!args[i].equals("-debug"))
continue;
if(++i == args.length)
{
System.out.println("[Error] :: Missing argument to -debug option.");
System.exit(1);
}
if(args[i].equals("on"))
{
fDebug = true;
continue;
}
if(args[i].equals("off"))
fDebug = false;
} else
{
fInput = args[i];
}
if(fInput == null)
{
System.out.println("[Error] :: No input file specified.");
System.exit(1);
}
if(fOutput == null)
{
System.out.println("[Error] :: No output file specified.");
System.exit(1);
}
if(fInbound && fOutbound)
{
System.out.println("[Error] :: Both -inbound and -outbound option cannot be specified together.");
System.exit(1);
}
if(!fInbound && !fOutbound)
{
System.out.println("[Error] :: Must specify either -inbound or -outbound option.");
System.exit(1);
}
if(fSchemaLocation == null)
{
System.out.println("[Error] :: No NativeSchema specified.");
System.exit(1);
}
if(fRootElementName == null)
{
System.out.println("[Error] :: No root element declaration specified.");
System.exit(1);
}
debug("Using the following input parameters...");
debug((new StringBuilder()).append(" Input file = ").append(fInput).toString());
debug((new StringBuilder()).append(" Output file = ").append(fOutput).toString());
debug((new StringBuilder()).append(" Schema file = ").append(fSchemaLocation).toString());
debug((new StringBuilder()).append(" Root element = ").append(fRootElementName).toString());
if(fPublishSize > 0)
{
debug(" De-batching = true");
debug((new StringBuilder()).append(" Publish size = ").append(fPublishSize).toString());
} else
{
debug(" De-batching = false");
}
if(fInbound)
debug(" Translation = inbound");
else
debug(" Translation = outbound");
debug((new StringBuilder()).append(" Validate In = ").append(fValidateInput ? "true" : "false").toString());
debug((new StringBuilder()).append(" Validate Out = ").append(fValidateOutput ? "true" : "false").toString());
Translator translator = createXlator();
if(fInbound)
doInboundTranslation(translator);
else
doOutboundTranslation(translator);
}
catch(Exception exception)
{
System.out.println((new StringBuilder()).append("[Error] :: ").append(exception.getMessage()).toString());
exception.printStackTrace();
}
}
private static void showUsage()
{
System.out.println("usage: java xlator.util.Translate (options) ");
System.out.println();
System.out.println("options:");
System.out.println(" -schema The schema to use for translation.");
System.out.println(" -root Localname of the root element declaration to use.");
System.out.println(" -inbound | -outbound Do inbound/outbound translation.");
System.out.println(" -output