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 аналізатор, обробляючи цей документ, генеруватиме події та надсилатиме їх на відомі йому обробники подій в такій послідовності:

  1. startDocument()
  2. startElement(«greeting»)
  3. ignorableWhitespace(новий рядок та «  »)
  4. startElement(«type», з атрибутом «age»)
  5. character(«Привіт»)
  6. endElement(«type»)
  7. ignorableWhitespace(новий рядок та «  »)
  8. processingInstruction(«mark», «SAMPLE»)
  9. ignorableWhitespace(новий рядок)
  10. endElement(«greeting»)
  11. endDocument()

Інтерфейси API SAX[ред.ред. код]

  • XMLReader
  • XMLFilter
  • EntityResolver
  • ErrorHandler
  • ContentHandler
  • DTDHandler
  • Attributes
  • AttributeList
  • Locator

Див. також[ред.ред. код]

Інші технології обробки XML документів[ред.ред. код]

XML аналізатори та API які підтримують SAX[ред.ред. код]

Джерела інформації[ред.ред. код]

Посилання[ред.ред. код]