JDBC (Java Database Connectivity)

Document Sample
JDBC (Java Database Connectivity) Powered By Docstoc
					                                                       Java
                                                       Prof. Dr. Michael Hendrix

           Überblick über die DOM-Schnittstelle



XML        XML Parser            DOM-Interfaces           Java Programm
Dokument
           konvertiert ein       liefern Zugriff auf      Zugriff auf die
           XML-Dokument in       die Objekte des          Informationen in
           einen Satz von        Dokumentes               XML-Dokumenten
           Objekten                                       über DOM-Interfaces




                                                                                   1
Java
Prof. Dr. Michael Hendrix

                            Package-Übersicht


Parsing

Package: org.xml.sax

        SAX-API Interfaces (Simple API to XML)
        Event-gesteuertes parsen

Package: org.xml.sax.helpers

       Hilfsklassen fürs SAX-API

Package: com.sun.xml.parser

        beinhaltet 2 XML-Parser-Implementierungen
             1. validierend
             2. nicht validierend


Object Model

Package: org.w3c.dom

        DOM-API Interfaces (Document Object Model)

Package: com.sun.xml.tree

        Navigation im Node-Baum
        Unterstützung von XML Namensräumen


Andere Packages

Package: com.sun.xml.util

        Utility-Klassen
                                                      2
                                                                Java
                                                                Prof. Dr. Michael Hendrix

          Hierarchische Struktur eines Dokument-Objektes


<?xml version="1.0" ?>                  node
                                                adressbuch

<adressbuch>                                   node    person

 <person>                                             node   name="Otto"
   <name>Otto</name>
   <email>otto@aol.com</email>                        node   email="otto@aol.com"
 </person>

 <person>
   <name>Kurt</name>
   <email>kurt@aol.com</email>                 node    person
 </person>
                                                      node   name="Kurt"
</adressbuch>
                                                      node   email="kurt@aol.com"




                                                                                            3
                                                                             Java
                                                                             Prof. Dr. Michael Hendrix

                        Wichtige DOM-Interfaces (org.w3c.dom)

            interface Node
                                                      interface NodeList
 short getNodeType()
 String getNodeValue()                               int getLength()
 NamedNodeMap getAttributes()                        Node item(int i)
 NodeList getChildNodes()
 boolean hasChildNodes()
 Node appendChild(Node childNode)




        interface Element                      interface Attr              interface CharacterData

String getTagName()                      String getName()                  void appendDate(String arg)
String getAttribute(String name)         String getValue()                 void deleteData(int o, int c)
NodeList getElementsByTagName            void setValue(String value)       String getData()
                      (String name)                                        void setData(String data)



                                      interface CDATASection                       interface Text



                                                                                                         4
                                                                           Java
                                                                           Prof. Dr. Michael Hendrix

                                            Node


      Node Typ                Node Name             Node Wert                   Attribute
Element                 Tag-Name              null                       NamedNodeMap
Attr                    Attribut-Name         Wert des Attributs         null
Text                    #text                 Inhalt der Text-Node       null
CDATASection            #cdata-section        Inhalt der CDATA Sektion   null
Document                #document             null                       null




Konstanten:

    static final short ELEMENT_NODE

    static final short ATTRIBUTE_NODE

    static final short TEXT_NODE

    static final short CDATA_SECTION_NODE

    static final short DOCUMENT_NODE




                                                                                                       5
                                   Java
                                   Prof. Dr. Michael Hendrix

               Document

        interface Node (org.w3c.dom)




     interface Document (org.w3c.dom)

Element createElement(String tagName)
Text createTextNode(String data)
Attr createAttribute(String name)
CDATASection createCDATASection (String data)
Element getDocumentElement()




  interface DocumentEx (com.sun.xml.tree)




   class XmlDocument (com.sun.xml.tree)

XmlDocument createXmlDocument
            (String uri, boolean doValidate)
XmlDocument createXmlDocument
            (InputStream in, boolean doValidate)
XmlDocument createXmlDocument
            (InputSource in, boolean doValidate)
void write(Writer out, String encoding)




                                                               6
                                                                       Java
                                                                       Prof. Dr. Michael Hendrix

                                   Ein XML-Dokument lesen


Beispiel:

    String datei = "test.xml";
    InputSource input = Resolver.createInputSource(new File(datei));

    XmlDocument doc = XmlDocument.CreateXmlDocument(input, true);

    Element rootElement = doc.getDocumentElement();




Klasse: com.sun.xml.parser.Resolver
        org.xml.sax.InputSource




                                                                                                   7
                                                                              Java
                                                                              Prof. Dr. Michael Hendrix

                                        Aktionen mit den Nodes

1. Beispiel:

     NamedNodeMap nnm = rootElement.getAttributes();
     for (int i=0; i < nnm.getLength(); i++)
           {
           Attr a = (Attr) nnm.item(i);
           System.out.println("Attribut: " + a.getName " = " + a.getValue);
           }

2. Beispiel:

     if (rootElement.hasCildNodes())
           {
           NodeList nl = rootElement.getChildNodes();
           for (int i=0; i < nl.getLength(); i++)
                 {
                 Node n = nl.item(i);
                 int nt = n.getNodeType();
                 if (nt == Node.TEXT_NODE)
                        {
                        Text t = (Text) n;
                        System.out.println("Text: " + t.getData());
                        }
                 }
           }

                                                                                                          8
                                                                        Java
                                                                        Prof. Dr. Michael Hendrix

                                   Ein XML-Dokument erzeugen
org.w3c.dom.Element person, name;
org.w3c.dom.Text

XmlDocument doc = new XmlDocument();
Element root = doc.createElement("adressbuch");
doc.appendChild(root);

Element person = doc.createElement("person");
root.appendChild(person);
Element name = doc.createElement("name");
person.appendChild(name);
Text text = doc.createTextNode("Otto");
name.appendChild(text);

person = doc.createElement("person");
root.appendChild(person);
name = doc.createElement("name");
person.appendChild(name);
text = doc.createTextNode("Kurt");
name.appendChild(text);

Writer out = new OutputStreamWriter(System.out);
try { doc.write(out, "ISO-8859-1"); }
catch (IOException e) { System.err.println("kann nicht schreiben"); }



                                                                                                    9