package xml.musicCatalog;
import java.io.*;
import futils.Futil;
public class MusicCatalog {
public static void main (String argv []) {
MusicCatalog music = new MusicCatalog();
music.parseTest();
music.parseTest2();
music.dtdTest();
music.xsdTest();
music.modTest();
music.htmlTest();
System.out.println ("\nEnd.");
}
public void parseTest () {
try {
System.out.println("\nParsing XML file using Xerces implementation api, No Validation...");
String file = selectFile("Select MusicCatalog.xml for No Validation.");
System.out.println("Selected:\n" + file);
MyDomParser.parse (file, System.out);
}
catch (Exception e) {
System.out.println(e.getMessage());
}
}
private MyJaxpDomParser parseTest2 () {
MyJaxpDomParser dp = new MyJaxpDomParser();;
try {
System.out.println("\nParsing XML file using JAXP api, No Validation...");
String file = selectFile("Select MusicCatalog.xml for No Validation.");
System.out.println("Selected:\n" + file);
dp.parse(file, System.out);
}
catch (Exception e) {
System.out.println(e.getMessage());
}
return dp;
}
private MyJaxpDomParser dtdTest () {
MyJaxpDomParser dp = new MyJaxpDomParser();;
try {
System.out.println("\nParsing XML file with DTD validation, using JAXP...");
String file = selectFile("Select MusicCatalog1.xml for DTD Validation.");
System.out.println("Selected:\n" + file);
dp.dtdParse(file, System.out);
}
catch (Exception e) {
System.out.println(e.getMessage());
}
return dp;
}
private MyJaxpDomParser xsdTest () {
MyJaxpDomParser dp = new MyJaxpDomParser();;
try {
System.out.println("\nParsing XML file with XSD validation, using JAXP...");
String file = selectFile("Select MusicCatalog2.xml for XSD Validation.");
System.out.println("Selected:\n" + file);
dp.xsdParse(file, System.out);
}
catch (Exception e) {
System.out.println(e.getMessage());
}
return dp;
}
private void modTest () {
try {
MyJaxpDomParser dp;
dp = xsdTest();
Item item = dp.createItem();
item.setMedia("cd");
item.setArtist("Aaron Copeland");
item.setTitle("Fanfare");
item.setYear("1970");
item.setMember("Aaron Copeland");
item.setMember("the rest of the band");
dp.addItem(item);
dp.toXml();
}
catch (Exception e) {
System.out.println(e.getMessage());
}
}
private void htmlTest () {
try {
MyJaxpDomParser dp;
dp = parseTest2();
File stylesheet = new File(selectFile(
"Select a stylesheet."));
dp.toHtml(stylesheet);
}
catch (Exception e) {
System.out.println(e.getMessage());
}
}
private String selectFile (String prompt) {
return Futil.getReadFile(prompt).getAbsolutePath();
}
}