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 аналізатори реалізують з використанням підходу передачі повідомлень[en], коли програмісту необхідно описати обробники подій, які викликаються аналізаторами під час обробки 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
- Document Object Model
- XSL Transformations (XSLT)
- Streaming Transformations for XML (STX)
- System Integrated Automaton parser
- Xerces
- MSXML
- Crimson XML
- JAXP: Java API for XML Processing
- 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
- SAX homepage
- Top Ten SAX2 Tips [Архівовано 14 травня 2007 у Wayback Machine.]
- Інтерфейси SAX для…
- Python [Архівовано 20 грудня 2016 у Wayback Machine.]
- Java [Архівовано 6 лютого 2007 у Wayback Machine.]
Це незавершена стаття про мови програмування. Ви можете допомогти проєкту, виправивши або дописавши її. |
Це незавершена стаття про програмування. Ви можете допомогти проєкту, виправивши або дописавши її. |