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()
Інтерфейси API SAX [ред.]
- XMLReader
- XMLFilter
- EntityResolver
- ErrorHandler
- ContentHandler
- DTDHandler
- Attributes
- AttributeList
- Locator
Див. також [ред.]
Інші технології обробки 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
