发表时间:2009-08-25
最后修改:2009-08-25
//从XML文件中读取信息,并写入fw.
private void processFile(File file, FileWriter fw) throws Exception {
String sObject = "";
String dObject = "";
String sCondition = "";
String dCondition = "";
String sCardinality = "";
String dCardinality = "";
boolean isSourceFound = false;
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(file);
doc.getDocumentElement().normalize();
System.out.println("Root element " +
doc.getDocumentElement().getNodeName());
String aoName = doc.getDocumentElement().getAttribute("Name");
System.out.println(aoName);
NodeList nodeLst = doc.getElementsByTagName("AssociationEnd");
for (int s = 0; s < nodeLst.getLength(); s++) {
Node fstNode = nodeLst.item(s);
if (fstNode.getNodeType() == Node.ELEMENT_NODE) {
Element fstElmnt = (Element)fstNode;
String eo = fstElmnt.getAttribute("Name");
if (isSourceFound) {
dObject = eo;
} else {
sObject = eo;
}
String cardinality = fstElmnt.getAttribute("Cardinality");
if (cardinality.equals("-1")) {
cardinality = "*";
}
if (isSourceFound) {
dCardinality = cardinality;
} else {
sCardinality = cardinality;
}
NodeList fstNmElmntLst = fstElmnt.getElementsByTagName("AttrArray");
Element attElmnt = (Element)fstNmElmntLst.item(0);
NodeList itemNodes = attElmnt.getElementsByTagName("Item");
Element itemElmnt = (Element)itemNodes.item(0);
String condition = itemElmnt.getAttribute("Value");
if (isSourceFound) {
dCondition = condition;
} else {
sCondition = condition;
}
isSourceFound = !isSourceFound;
}
}
String Cardinality = sCardinality + "..." + dCardinality;
String joinCondion = sCondition + "=" + dCondition;
String outString =
aoName + "\t" + sObject + "\t" + dObject + "\t" + Cardinality + "\t" +
joinCondion + "\t" + "Y" + "\n";
System.out.println(outString);
fw.write(outString);
}