Programming & Webscripting FAQ: XML
Met dank aan MrX
Links
- http://dmoz.org/Computers/Data_Formats/Markup_Languages/XML/
- http://www.xmlfiles.com/
- http://www.zvon.org/
- http://www.xfront.com/
- PHP vervangen door XML en XSLT
Boeken
- Professional Xml 2nd Edition
Door: Mark Birbeck, WROX author team
ISBN: 1861005059
Wrox press - Python & XML
Door: Christopher A. Jones, Fred L., Jr. Drake
ISBN: 0596001282
O'Reilly & Associates, Inc. - The XML companion
Door: Neil Bradley
ISBN: 0-201-67486-6
Addison Wesley Longman, Inc. - A Programmer's Reference to XML, XPath, XSLT, XML Schema, SOAP, and more
Door: Aaron Skonnard, Martin Gudgin
ISBN: 0201740958
Addison-Wesley - XSLT Programmer's Reference: 2nd Edition
Door: Michael H. Kay
ISBN: 1861005067
Wrox Press - Professional XML: 2nd edition
Door: Mark Birbeck e.a.
ISBN: 1861005059
Wrox Press - Programming: the derivation of algorithms
Door: Anne Kaldewaij
ISBN: 0132041081
Prentice Hall
Wat is XML?
XML stelt je in staat om gegevens heel gestructureerd vast te leggen. Daarbij gaat het puur om content, niet layout. De structuur beschermt je al een beetje tegen het fouten maken, en bovendien zijn er manieren om fouten te voorkomen via DTD of XML Schema's.
Het prettige aan XML is dat je de stukken software om met XML te werken (maken, parsen, doorzoeken, etc) al voor vrijwel ieder platform hebt. Deze stukken software zitten soms in software ingebouwd of zijn als losse componenten met duidelijke API's beschikbaar.
Omdat XML een heel gestructureerde en op alle platformen beschikbare manier voor het vastleggen informatie is, is het uitermate geschikt voor koppelingen tussen systemen. Dat is mijns inziens dan ook de killer app voor XML.
Wat is XSL?
XSL stelt je in staat om relatief eenvoudig de content in een XML document om te zetten in een andere, nuttige vorm. Je legt feitelijk regels vast voor wat je met ieder stukje uit een XML document wil doen, drukt op de knop en klaar is Kees (of hoe je ook heet ).
XSL wordt bijvoorbeeld gebruikt om XML documenten in HTML om te zetten, zodat het er in een browser mooi uit ziet. Je kan ook XML mbv XSL naar andere formaten veranderen zoals fixed text, SGML, WML of zelfs gewoon een ander XML document.
XSL is handig omdat je, zonder een XML document aan te passen, de informatie uit dat document in een voor jou nuttige vorm om kan zetten. Zo scheid je de content van een document van de toepassing ervan (weergave in een browser, vastleggen in een logfile, doorgeven aan een ander systeem, etc.)
XSL ondersteuning is er ook op vrijwel alle platformen en in veel software, dus ook dat maakt het een krachtige tool.
Wat is SOAP?
SOAP staat voor Simple Object Access Protocol, wat al aangeeft dat je met objecten gaat werken.
SOAP is een set met standaarden die gezamelijk tot doel hebben om objecten platformonafhankelijk over een TCP/IP netwerk (zoals het Internet) met elkaar te laten communiceren.
Dat wordt gedaan door gebruik te maken van een aantal bestaande standaarden:
HTTP
HTTP is de manier waarop je webbrowser met een webserver communiceerd, maar het kan veel meer dan HTML heen en weer sturen. HTTP biedt een manier om te communiceren tussen een server en een client die heel flexibel is (er zijn geen/weinig beperkingen aan de inhoud van de calls en responses), al goed werkt op de huidige TCP/IP infrastructuren (PC's, servers, routers, firewalls, etc) en ook op vrijwel alle platformen ondersteund wordt
XML
De HTTP call bevat een XML document met de naam van het aan te roepen object, parameters met de datatypes etc. De HTTP response bevat een XML document met de output van het object
Verder...
Ook andere standaard zaken zoals XML Schema's (waarmee afgedwongen kan worden dat een XML document aan vooraf gedefinieerde voorwaarden voldoet) worden gebruikt. Ik weet hier ook lang niet alles vanaf, dus misschien kunnen anderen hier iets meer over zeggen.
In de SOAP standaarden staat precies omschreven hoe objecten aangesproken moeten worden, en daarnaast wordt ook omschreven welke ondersteunende services er moeten zijn om SOAP compatible te zijn. Zo moet je bijvoorbeeld van een object via SOAP kunnen opvragen welke methodes en properties die ondersteunt, welke datatypes verwacht worden, wat voor data er terug komt, welke versie van het component gebruikt wordt, etc. Services zoals SDL, SCL en DISCO zijn gemaakt om dit soort zaken te fasciliteren.
Voordeel van deze afspraken is dat ze alleen maar omschrijven hoe gecommuniceerd gaat worden, niet hoe het geimplementeerd wordt. Zo kan je met PHP onder Apache op Linux een SOAP service maken, maar op Windows met Visual Studio.Net en IIS ook.
Uiteindelijk zullen er toolkits komen waardoor een groot deel van de technische complexiteit voor de developer wordt weggenomen en de developer zich kan concentreren op de functionaliteit van zijn software. Hoewel dat vast wel even wennen zal zijn en het soms wat beperkend zal aanvoelen, zal je er wel veel voordeel me kunnen behalen. Denk bijvoorbeeld aan hoe veel makkelijker mensen PHP leren en krachtige dingen kunnen maken, terwijl men vroeger nog in C++ een CGI programma schreef waarbij op veel meer dingen gelet moest worden en daardoor vaak complexer en tijdrovender was.
[ Voor 204% gewijzigd door drm op 05-07-2003 15:51 ]
Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz