以下のサンプル・コードは、Java アプリケーションのプログラムを 使用して XML スクリプト・ツールを使用する方法を示しています。
package com.ibm.mobileservices.xmlscripting.sample;
/**
* Title: XML Scripting tool Sample Application for DB2 Everyplace Sync Server
* Description: Example of using the XML tool API to write custom administration
utilities.
* Copyright: Copyright (c) 2002
* Company: IBM
*/
import java.io.FileWriter;
import java.io.FileReader;
import com.ibm.mobileservices.xmlscripting.XMLTool;
import com.ibm.mobileservices.xmlscripting.XMLToolFactory;
/**
* Main class for command line invocation of the XML Scripting sample tool.
*/
public class RunXML {
private RunXML(){}
/**
* Method used when running as an application from the command line.
* @param String[] an array of command line parameters
* @return void
*
* Command line arguments: -x|-d filename
*
* -x create XML file from control database.
* -d apply XML file to control database.
* -v validate XML file with its DTD.
* filename XML file name to process.
*
* Example: java com.ibm.mobileservices.xmlscripting.RunXML -x "c:¥mydb.xml"
* Example: java com.ibm.mobileservices.xmlscripting.RunXML -d "c:¥mycommands.xml"
*/
public static void main(String args[]){
String filename = null;
String toOrFromXML = null;
int xmlType = XMLTool.ADD;
String xml = null;
if (args != null && (args.length > 1 && args.length < 3) ){
toOrFromXML = args[0]; //create xml or db from xml? "-x" means create xml,
"-d" means populate control db from xml.
filename = args[1]; //xml file name.
}
//check if filename is passed in otherwise display help.
if (filename == null ||
filename.equals("") ||
filename.indexOf("?") > -1 ||
toOrFromXML.indexOf("?") > -1){
System.out.println("Command line arguments: -x|-d filename¥n"+
" -x create XML file from control database.¥n"+
" -d apply XML file to control database.¥n"+
" -v validate XML file with its DTD.¥n"+
" filename XML file name to process."+
" Example: java com.ibm.mobileservices.xmlscripting.sample.RunXML -x ¥
"c:¥¥mydb.xml¥"¥n"+
" Example: java com.ibm.mobileservices.xmlscripting.sample.RunXML -d ¥
"c:¥¥mycommands.xml¥"¥n¥n");
return;
}
if (toOrFromXML.equalsIgnoreCase("-x") || toOrFromXML.equalsIgnoreCase("/x"))
{ //generate xml file:
System.out.println("Generating xml file: " + filename);
try{
//backUpOldFile(filename);
FileWriter fileWriter = null;
try{
//get ready to write to the file:
fileWriter = new FileWriter(filename);
//create an instance of XMLTool. Each instance opens separate
//connections to the control database. It is strongly recommended
//that you use one instance to operate from single thread at a time.
//If you use the same instance from multiple threads, the threads will
//typically be synchronized on that database connection. If that causes
//a bottleneck,create multiple instances of the xml tool to use from
//multiple threads. Usually that should not be needed.The only case
//it may become handy is the creation and removalof users from the
//system.
//XMLTool xmlTool = XMLToolFactory.createXMLTool();
//set progress listener
// (ProgressListener provides hooks to intercept events).
//Default progress listener outputs messages to the System.out.
//A custom progress listener is typically used to re-throw an exception
//to abort processing of xml tags if the programmar thinks that
//is necessary.
xmlTool.setProgressListener
(XMLToolFactory.createDefaultProgressListener());
//There are different versions of generateXML, this is one of them:
xmlTool.generateXML(fileWriter,xmlType);
}
finally{
if (fileWriter!=null) fileWriter.close();
}
System.out.println("Done generating xml file: " + filename);
}catch(Exception ex){
System.out.println("Failed generating xml file.");
System.out.println(ex.getMessage());
}
}
else if (toOrFromXML.equalsIgnoreCase("-d") ||
toOrFromXML.equalsIgnoreCase("/d"))
{ //apply xml to database:
System.out.println("Applying xml file: " + filename);
try{
FileReader aReader = null;
try{
//get ready to read the file:
aReader = new FileReader(filename);
//create an instance of XML Tool:
XMLTool xmlTool = XMLToolFactory.createXMLTool();
//set progress listener:
xmlTool.setProgressListener
(XMLToolFactory.createDefaultProgressListener());
//apply the xml commands:
xmlTool.applyXML(aReader);
}
finally{
if (aReader!=null) aReader.close();
}
System.out.println("Done applying xml.");
}
catch(Exception ex){
System.out.println("Failed applying xml.");
System.out.println(ex.getMessage());
}
}
else if (toOrFromXML.equalsIgnoreCase("-v") ||
toOrFromXML.equalsIgnoreCase("/v"))
{ //validate xml System.out.println("Validating xml file: " + filename);
try{
FileReader aReader = null;
try{
aReader = new FileReader(filename);
XMLTool xmlTool = XMLToolFactory.createXMLTool();
xmlTool.setProgressListener
(XMLToolFactory.createDefaultProgressListener());
xmlTool.validateXML(aReader);
}
finally{
if (aReader!=null) aReader.close();
}
System.out.println("Done validating xml.");
}
catch(Exception ex){
System.out.println("Failed validating xml.");
System.out.println(ex.getMessage());
}
}
}
}
関連した概念
関連したタスク
関連した解説