/**
 * JDOM XMLユーティリティモジュール
 *
 * このモジュールの利用・改変は自由に行ってかまいません。
 *
 * JDOMを利用してXMLを操作するための補助モジュールです。
 * このモジュールを利用するためには jdom.jar をクラスパスに含めてください
 * JDOM: http://www.jdom.org/ 
 * (本モジュールではJDOMβ9を利用して作成しています)
 *
 * 使用例１ パース〜操作〜文字列化
 *   var src = "<SEND comment=\"メッセージ\"/>";
 *   var send = XML.parse(src); //文字列をXMLとして解析
 *   var name = send.getName(); //タグ名を取得
 *   var comment = send.getAttributeValue("comment"); //属性値を取得
 *   send.setName("RESULT"); //タグ名を変更
 *   send.setAttribute("status", "ok"); //属性を追加
 *   var result = XML.output(send); //文字列 <RESULT comment="メッセージ" status="ok"/> を生成
 *
 * 使用例２ 生成〜操作〜文字列化
 *   var user = new XML.Element("USER"); //新しいElementを生成 <USER/>
 *   user.addContent(new XML.Element("ITEM")); //子エレメントの追加 <USER><ITEM/></USER>
 *   var result = XML.output(user); //文字列 <USER><ITEM/></USER> を生成
 */
XML = new Object();

_JDOM = Packages.org.jdom;
XML.Document = _JDOM.Document;
XML.Element = _JDOM.Element;
XML.Attribute = _JDOM.Attribute;
XML.Text = _JDOM.Text;

/**
 * Stringで与えられたXML文をパースします。
 * ルートエレメントをorg.jdom.Element型で返します
 */
XML.parse = function(xml){
	try{
		var src = new java.io.StringReader(xml);
		var parser = new _JDOM.input.SAXBuilder();
		return parser.build(src).getRootElement();
	} catch(e) {
		java.lang.System.out.println(e);
	}
	return null;
}

/**
 * Element(またはDocument)からXML文を生成します。
 */
XML.output = function(src) {
	try{
		var out = new _JDOM.output.XMLOutputter("", false);
		out.setLineSeparator("");
		out.setOmitDeclaration(true);
		return out.outputString(src);
	} catch (e) {
		java.lang.System.out.println(e);
	}
	return null;
}
