Procesor XML

Un procesor XML este un software pentru citirea și procesarea documentelor XML . Termenul analizor XML este, de asemenea, adesea folosit sinonim, deși acesta este mai mult un modul din componenta software "procesor XML" care efectuează citirea.

General

Un procesor XML are în esență trei componente:

  • parserul - formează partea frontală a documentelor care urmează a fi procesate
  • componenta de procesare - implementează logica reală de afaceri în termeni de transformare a modelului
  • procesorul de ieșire - asigură persistența documentelor țintă în formatul adecvat

De fapt, numai analizorul și procesorul de ieșire sunt specifice XML. Componenta de procesare poate procesa de fapt orice modele, dar are și caracteristici specifice XML, de exemplu

  • prin acces la așa-numitul set de informații de validare post-schemă PSVI permis
  • prin conceptualizarea construcțiilor XML în limbajul de procesare (nod, element, entitate ...)

Parser XML

Analizatorii XML din procesoare pot fi diferențiați pe baza a două criterii:

  • validarea sau nevalidarea
  • Tipul de interfață pentru accesarea documentului (ca un arbore similar cu DOM sau secvențial, de exemplu SAX )

Practic, pot fi utilizate și analizoare care citesc în alte formate sau chiar interogă baze de date. Acest lucru este util pentru migrarea datelor vechi în XML.

Analizatorii fără validare verifică numai dacă documentul este bine format, adică dacă îndeplinește specificațiile W3C. Procesoarele de validare, pe de altă parte, verifică și conformitatea cu un DTD sau un limbaj de schemă, cum ar fi schema XML sau RELAX NG .

Componenta de procesare

Componenta de procesare implementează de obicei propriul limbaj de programare optimizat pentru paradigma de procesare (de exemplu DSSSL , XSLT ). Aici trebuie făcută o distincție:

  • procesare secvențială - pot fi specificate reguli pentru intrarea / ieșirea dintr-un nod. Prelucrarea specifică este formulată în aceste reguli. Conținutul documentului este disponibil numai în măsura în care a fost citit sau prelucrat până acum.
  • Procesare orientată spre arbore - Componenta de procesare parcurge automat arborele (arborii) documentului și construiește arborele pentru documentul de ieșire. Traversarea poate avea loc pe arborele sursă (de exemplu cu XSLT) sau în arborele țintă (de exemplu cu MetaMorphosis ). Prin urmare, se vorbește despre procesoare „orientate către surse” sau „orientate spre țintă”. Procesoarele direcționate către țintă nu sunt atât de ușor de pătruns, dar oferă mult mai multă flexibilitate.

Cu toate acestea, este deosebit de avantajos în această abordare să formulăm procesarea (transformarea) în mare măsură independent de sintaxa specifică a formatului de ieșire. Specificațiile formatului de ieșire dorit (de exemplu, divizarea liniei, indentare și așa mai departe) pot fi tratate în procesorul de ieșire. Aceasta face uneori posibilă gestionarea mai multor formate de ieșire cu o singură transformare.

În esență, procesoarele XML sunt similare (deși definite înainte de hype MDA) cu MDD , în care are loc și o transformare a modelului descrisă formal, iar modelul este citit sau serializat în propriile sale procesoare. Prin urmare, se poate vedea o relație de limbaj între procesoarele XML și transformatoarele de model. Rolul meta modelelor este realizat de schema DTD sau XML. Persistența modelului are loc în XML.

Componenta de ieșire

Componenta de ieșire serializează arborele documentului furnizat de componenta de procesare în XML sau într-un alt format de text dorit (de exemplu TeX ). Procesorul de ieșire poate prelua specificul XML, cum ar fi gestionarea caracterelor speciale, gestionarea spațiilor și așa mai departe. Cu procesoare XML puternice, această componentă de ieșire poate fi configurată sau programată flexibil.

Implementări

literatură

  • Meike Klettke, Holger Meyer: XML și baze de date, concepte, limbaje și sisteme. 2003, ISBN 3-89864-148-1 .