Simple API for XML
Матеріал з Вікіпедії — вільної енциклопедії.
Simple API for XML (англ. Простий програмний інтерфейс для роботи з XML, скорочено SAX) — специфікація прикладного програмного інтерфейсу для послідовного отримання даних із структурованих XML документів. Цей інтерфейс є поширеною альтернативою Document Object Model (DOM).
Аналізатор, який реалізує інтерфейс SAX (англ. SAX Parser) обробляє інформацію із XML документа як єдиний потік даних. Цей потік даних доступний лише в одному напрямі, тобто, раніш оброблені дані неможливо повторно прочитати без повторного аналізу.
Більшість програмістів XML технологій вважають, що обробка XML документів відповідно парадигмі SAX, в цілому, швидша, аніж при використанні DOM. Це пояснюється тим, що потік SAX потребує набагато меншого об'єму пам'яті у порівнянні із побудовою повного дерева DOM.
SAX аналізатори реалізують з використанням підходу передачі повідомлень (event-driven), коли програмісту необхідно описати обробники подій (en:Callback (computer science)), які викликаються аналізаторами під час обробки XML документа.
SAX було розроблено зусиллями спільноти списку розсилки xml-dev, без формальних комітетів, але він був швидко визнаний компаніями, які спеціалізуються на засобах обробки XML документів. Першим головним розробником та інженером супроводу був Давід Маггінсон.
Зміст |
[ред.] Приклад роботи
Розглянемо принципи роботи використовуючи наступний документ в якості прикладу:
<?xml version="1.0" encoding="UTF-8"?> <greeting> <type age="20">Привіт</type> <?mark SAMPLE ?> </greeting>
SAX аналізатор, обробляючи цей документ, генеруватиме події та надсилатиме їх на відомі йому обробники подій в такій послідовності:
- startDocument()
- startElement("greeting")
- ignorableWhitespace(новий рядок та " ")
- startElement("type", з атрибутом "age")
- character("Привіт")
- endElement("type")
- ignorableWhitespace(новий рядок та " ")
- processingInstruction("mark", "SAMPLE")
- ignorableWhitespace(новий рядок)
- endElement("greeting")
- endDocument()
Послідовність цих подій можна розглядати як вхідні символи скінченного автомату, та будувати алгоритм переробки даних XML відповідним чином. Цей автомат, в свою чергу, також може генерувати SAX події (як вихідні символи автомату), та повідомляти про них далі по ланцюгу переробки даних.
[ред.] Дивіться також
[ред.] Інші технології обробки XML документів
- Document Object Model
- XSL Transformations (XSLT)
- Streaming Transformations for XML (STX)
- System Integrated Automaton parser
[ред.] XML аналізатори та API які підтримують SAX
- Xerces
- MSXML
- Crimson XML
- JAXP: Java API for XML Processing
[ред.] Джерела інформації
- Simple API for XML — стаття в англомовній вікіпедії.
- Simple API for XML — стаття в німецькомовній вікіпедії.
- David Brownell: SAX2, O'Reilly, ISBN 0-596-00237-8
- W. Scott Means, Michael A. Bodie: The Book of SAX, No Starch Press, ISBN 1-886411-77-8