Mon objectif est de créer simplement une frame en java à partir d'un fichier XML et de la DTD correspondante.
Voici mon fichier MySAXApp.java
*************************
Voici ma DTD: IHM.dtd
*****************
Et voici mon fichier d'exemple a tester: test.xml
************************************
Je me suis aidé des exemples du net pour faire mon code utilisant SAX et JAXP et je ne sais toujours pas ce qui ne va pas quand j'effectue java MySAXApp test.xml
Voilà, mon but et d'arriver à afficher le code d'une fenêtre java dérivant de ce fichier XML grâce à SAX/JAXP pour pouvoir implémenter de la même manière les boutons, menus...
Merci d'avance [/i]
Modifié par DjyRom (10 Nov 2006 - 16:07)
Voici mon fichier MySAXApp.java
*************************
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.FileReader;
import javax.xml.parsers.*;
import org.xml.sax.*;
import org.xml.sax.helpers.*;
import org.xml.sax.helpers.DefaultHandler;
class MySAXApp extends DefaultHandler
{
public MySAXApp ()
{
super();
}
public void startDocument(){
System.out.println("//TEST");
System.out.println("");
}
public void endDocument(){
}
public void startElement(String uri, String name, String qName, Attributes atts){
if(name=="Jframe"){
System.out.println("class "+atts.getValue("name")+" extends JFrame{");
}
}
public void endElement(String uri, String name, String qName){
if(name=="JFrame"){
System.out.println("}");
}
}
public static void main (String args[])throws Exception {
SAXParserFactory spf = SAXParserFactory.newInstance();
spf.setNamespaceAware(true);
spf.setValidating(true);
SAXParser saxParser = spf.newSAXParser();
XMLReader xr = XMLReaderFactory.createXMLReader();
MySAXApp handler = new MySAXApp();
xr.setContentHandler(handler);
xr.setErrorHandler(handler);
xr.setDTDHandler(handler) ;
for (int i = 0; i < args.length; i++) {
FileReader r = new FileReader(args[i]);
xr.parse(new InputSource(r));
}
}
}
Voici ma DTD: IHM.dtd
*****************
[#darkblue]<!DOCTYPE IHM>
<!ELEMENT IHM (JFrame*)>
<!ATTLIST JFrame
name CDATA #REQUIRED
>
[/#]
Et voici mon fichier d'exemple a tester: test.xml
************************************
[#indigo]
<?xml version="1.0"?>
<!DOCTYPE IHM SYSTEM "IHM.dtd">
<IHM>
<JFrame name="test1">
</JFrame>
</IHM>
[/#]
Je me suis aidé des exemples du net pour faire mon code utilisant SAX et JAXP et je ne sais toujours pas ce qui ne va pas quand j'effectue java MySAXApp test.xml
Voilà, mon but et d'arriver à afficher le code d'une fenêtre java dérivant de ce fichier XML grâce à SAX/JAXP pour pouvoir implémenter de la même manière les boutons, menus...
Merci d'avance [/i]
Modifié par DjyRom (10 Nov 2006 - 16:07)