Ferhat Ayaz XML mit C++
Inhaltsverzeichnis Einleitung 11 Teil I XML-Grundlagen 15 i XML im Schnellkurs 17 I.I WasistXML? 18 1.2 Was ist XML nicht? 18 1.3 Der Aufbau eines XML-Dokuments 19 1.4 XML-Deklaration 20 1.5 Elemente (Tags) 22 1.6 Attribute 24 [.7 Text und CDATA 26 1.8 Entitätcn 26 1.9 Element-, Attribut- und Entitätsnamen 31 1.10 Namensräume (Namespaces) 32 2 Validierung und Schemas 35 2.1 Wohlgeformtheit (well-formed) 36 2.2 Document Type Definition (DTD) 36 2.3 XML-Schema Definition (XSD) 43 3 Vertiefung von XSD-Schema 57 3.T Komplexe Typen 57 3.2 XSD <any> 65 3.3 XSD <anyattribute> 66 3.4 XSD-ßeschränkungen für Complex-Typen 67 3.5 Erweitern von Datentypen mit extension 67 3.6 Datentypen 69 4 Zugriffsmodelle und Programmierschnittstellen 75 4.1 Simple API for XML 2 (SAX2) 75 4.2 Document Object Model (DOM) 83
sverzeichnis Teil II Xerces-XML-Parser 87 5 Einführung in Apache Xerces-C++ 89 5.1 Die elementaren Bausteine 89 5.2 Xerces-Features 95 5.3 Initialisierung des Parsers 96 6 Parsen mit der SAX- und SAXz-API 99 6. r Installation von Xerces-C++ 99 6.2 Parsen mit der SAX-API 99 6.3 Parsen mit der SAX2-API 105 7 Parsen mit der DOM-API 119 7.1 Die erste DOM-Applikation 119 7.2 Parsen mit XercesDOMParser 122 7.3 Validieren von XML-Dokumenten 123 7.4 Parsen mit DOMBuilder 124 8 Arbeiten mit der DOM-API 131 8.T DOMNode und XML-Elemente 131 8.2 DOMNamedNodeMap 135 8.3 Die XML-Schema-Bindung - DOMPSVITypelnfo 137 8.4 Auflösen von Referenzen 144 8.5 Erstellen und Modifizieren eines Dokumentbaumes 146 8.6 DOMNodelterator und DOMTreeWalker 160 8.7 Speicherverwaltung und Freigabe 165 8.8 Scrialisieren mit DOM Writer 167 9 Effektiv arbeiten mit Xerces-C++ 1 73 9.1 Versionsabfrage für Xerces-C++ 173 9.2 InputSource 173 9.3 SecurityManager 177 9.4 Scanner 178 9.5 Der Xerces-Namespace 180 9.6 Der MemoryManager 181 9.7 Der PanicHandler 182
Inhaltsverzeichnis Teil IM Weitere XML-Parser 185 10 Der Iibxml2-Parser 187 IO.I Einführung in libxmb 187 10.2 Die DOM-Parserfunktionen 190 10.3 Das DOM-Dokument 198 ro.4 Durchlauf von XML-Dokumenten 201 n Dokumentstruktur in libxmb 207 n.i DOM-Dokument erstellen und bearbeiten 207 11.2 Speichern und Ausgeben von DOM-Dokumenten 229 12 Der libxmb SAX-Parser 237 12.1 Der xmlsaxhandler 237 12.2 Die SAX-Parserfunktionen 240 T2.3 Umsetzung in C++ 244 13 libxmb für Fortgeschrittene 249 13.1 XmlTextReader-APl 249 13.2 I/O-Operationen 262 13.3 Multithreading-Unter Stützung 268 13.4 Die Speicherverwaltung xmlmemory 269 13.5 XPath 273 14 Der Microsoft XML-Parser (MSXML) 279 14.T Einführung und Installation 279 14.2 Anmerkung zu ATL 280 14.3 Include-Dateien 282 14.4 Parsen mit dem SAX-Parser 283 14.5 Parsen mit dem DOM-Parser 290 15 Parsen mit expat 297 15.1 Kompilieren von expat 297 15.2 Arbeiten mit expat 298 15.3 expat-funktionen 300 T5.4 Namensräume 305 7
tsverzeichnis Teil IV XSLT-Prozessoren 309 16 Arbeiten mit Xalan-C++ 311 16.1 Kurze Einführung in Xalan-C++ 311 16.2 Aufbau einer Xalan-Applikation 312 16.3 Ausnahmebehandlung 316 16.4 XSLTInputSource und XSLTResultTarget 318 16.5 Setzen von Stylesheet-Parametern 319 16.6 Kompilierte Stylesheets verwenden 321 16.7 Geparste Input-XML-Dokumente verwenden 321 16.8 Transformieren in ein DOM-Dokument 322 16.9 DOM-Dokumente als Input verwenden 323 16.10 XPath 324 16.11 Implementieren von externen XPath-Funktionen 333 16.12 ICU Unterstützung 338 17 Die Xalan C-API 343 17.1 Einfache C-Anwendung mit Xalan 343 17.2 Ergebnisse mit Callback-Funktioncn verarbeiten 346 17.3 Ergebnisse im Speicher als String erstellen 348 17.4 Vorkompilierte Stylesheets und XML-Daten 349 17.5 Setzen von Styiesheet-Parametern 354 17.6 Xalan-C APJ-Funktionen im Überblick 355 18 Arbeiten mit libxslt 357 18.r Die erste libxslt-applikation 357 18.2 XSI,-Parameter 363 Teil V Praktischer Einsatz 367 19 Die Beispielapplikation 369 19.1 Aufgabenstellung 369 19.2 Voraussetzungen 370 19.3 Erstellen der Datenbank 371 19.4 Die Datenbank-Klasse 372 19.5 Die Applikations-Klasse 375 19.6 Die Testapplikation 380
Inhaltsverzeichnis 20 SOAP mit Axis-C++ 383 20.1 Die Architektur von SOAP 383 20.2 Die Architektur von Axis-C++ 387 20.3 Die Installation von Axis-C++ 389 20.4 Eine einfache Client-Applikation 390 20.5 Eine einfache Server-Applikation 394 20.6 Pro und Contra 397 21 Arbeiten mit csoap 399 21.1 Installation 399 21.2 Grundwissen über csoap 400 21.3 Ein einfacher SOAP-Client 402 21.4 Ein einfacher SOAP-Server 404 21.5 Arbeiten mit SOAP-Envelope 409 21.6 SOAP mit Anhängen 412 Teil VI Anhänge 417 A Memberfunktionen von XMLString 419 B Mögliche Fehlercodes von DOMException.code 423 C Einige ausgewählte Features von Xerces-C++ 425 C.i Xerces- und SAX-Features im Überblick 425 C.2 Xerces-Features 425 C.3 SAX-Features 430 C.4 DOM-Features 430 D Einige ausgewählte Properties von Xerces-C++ 435 E Features des DOM-Parsers von Xerces-C++ 437 F Features von DOMWriter 441 Stichwortverzeichnis 445 9