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
Див. також[ред. | ред. код]
Інші технології обробки 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
Джерела інформації[ред. | ред. код]
- 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.]
![]() |
Це незавершена стаття про мови програмування. Ви можете допомогти проєкту, виправивши або дописавши її. |
![]() |
Це незавершена стаття про програмування. Ви можете допомогти проєкту, виправивши або дописавши її. |