Практична робота з XML Досвід безпечного написання документів та додатків, Частина 1
Як уникнути поширених помилок у роботі з XML
Серія контенту:
Цей контент є частиною # із серії # статей: Практична робота з XML
Цей контент є частиною серії: Практична робота з XML
Слідкуйте за виходом нових статей цієї серії.
Коли XML був представлений публіці вперше, організації та розробники поставилися до цієї нової мови розмітки з ввічливою підозрою. Але в міру того, як вони використовували цю мову для вирішення все більшої кількості проблем, підозрілість змінилася ентузіазмом. Сьогодні вже дуже багато розробників та організацій використовують XML у своїх проектах.
На жаль, разом із зростанням популярності виникли і проблеми, пов'язані з неправильним застосуванням XML. Щодо цього процес впровадження XML не відрізняється від впровадження інших технологій. Перші користувачі будь-якої нової технології зазвичай є її ентузіастами (і вони повинні бути такими, якщо хочуть переконати колег та споживачів у перевагах цієї технології). Але у них також можуть бути й сумніви, тому вони зазвичай намагаються вивчити, як найкраще впроваджувати нову технологію.
З розвитком технології вона дедалі більше сприймається як належне. І, відповідно, що ширше використовується технологія з різними додатками, то більше вдається помилок. На щастя, одночасно накопичується і досвід роботи з цією технологією, і з'являються перевірені рішення для проблем, що найчастіше виникають. Ці рішення документуються, як і найпоширеніші проблеми.
Я почну з фундаментального, власне, з XML. Прихильність до загальноприйнятого синтаксису - це перший крок на шляху створення надійних додатків. Нижче розглядаються такізагальні питання:
- Використання парсерів та керуючі послідовності для зарезервованих символів;
- Кодування;
- Простір імен.
Наступні статті розглянуть, як використовувати XML-документи напевно, як перевіряти та тестувати XML-документи та як сполучити XML з багатьма іншими файловими форматами, такими як зображення, фільми, текст тощо.
Простий синтаксис
У першому розділі обговорюються деякі спільні питання синтаксису XML.
Але деякі програми можуть відмовлятися працювати з абсолютно точно допустимими документами. Такі програми можуть реалізовувати синтаксис XML в повному обсязі і, відповідно, бути нездатним розпізнати деякі символьні сутності (наприклад, î ).
Проблема полягає в простоті XML, що здається. Часто здається, що простіше і швидше щось прибрати, ніж вивчити якийсь новий компонент. Такий підхід може працювати в замкнутому циклі, коли програма має справу з документом, створеним самим цим додатком. Але в промисловій експлуатації, коли документ обробляється кількома програмами, цей підхід навряд чи виявиться успішним.
Рішення та виправлення
На щастя, всі ці проблеми можна повністю уникнути, використовуючи парсер XML. Парсери XML доступні у всіх мовах програмування (навіть Cobol підтримує XML), тому їх, безумовно, варто використовувати.
Якщо такий ретельний контроль, який забезпечує парсер, не потрібний, то компонент перетворення (такий як JAXB, Castor або Axis) може бути зручнішим. Ці компоненти безпосередньо перетворюють XML-теги на об'єкти Java™. JAXB та Castor працюють з документами у файлах, а Axis – з web-сервісами. Компоненти перетворення включають парсер XML, тому вони повністю підтримуютьсинтаксис XML.
Єдина небезпека у цьому підході - те, що потрібно коректно передавати зарезервовані символи (див. табл. 1). Особливу увагу слід звертати на символи сутностей (наприклад, î) оскільки вони залежать від кодування документа (див. розділ "Проблеми кодування" нижче).