Latest topics
Search
 
 

Display results as :
 


Rechercher Advanced Search

Keywords

Source  code  download  

October 2017
MonTueWedThuFriSatSun
      1
2345678
9101112131415
16171819202122
23242526272829
3031     

Calendar Calendar

Партнеры
Создать форум
Language
Top posting users this week


Отказ от скриптов на базе XML

View previous topic View next topic Go down

Отказ от скриптов на базе XML

Post by kohedlo on Sun Jan 23, 2011 3:27 pm

В ПОЛЬЗУ ОТКАЗА МОЖНО ПРИВЕСТИ СЛЕДУЮШЕЕ:

XML. Преимущества и недостатки

В прошлый раз, когда рассматривался XML. Базовый синтаксис. Основные понятия, были выделены основные характеристики XML:
Формат текстовый.
Содержит данные, размеченные тегами.
Документ имеет иерархическую структуру.
Теги могут отражать содержание данных.
Нет заранее определенного набора тегов.
Документ частично самодокументируем. Выбор осмысленных названий тегов позволяет понять какие данные в каких элементах содержатся. При этом названия тегов далеко не всегда достаточно для понимания сути документа
Следует также отметить ряд характеристик, не следующих непосредственно из формата документа, но тем не менее весьма существенных:
Наличие стандартов, описывающих формат документа.
Поддержка Unicode.
Наличие средств разбора.
Наличие средств описания структуры документа для конкретной предметной области и средств валидации.
Наличие средств преобразования документа.
Наша задача - определиться какие преимущества и недостатки мы при этом получаем, в каких случаях применение XML оправдано, а в каких нет.
Прежде всего, стоит выделить две области применения XML и связанных с ним технологий. Первая область применения - программные системы, использующие XML для хранения данных или как формат представления данных при обмене. Вторая - использование XML и его подмножеств в WEB. То, что хорошо в одном случае может быть нейтрально или отрицательно в другом.
Текстовый формат
С точки зрения построения программных систем:
Исключается проблема порядка следования байт при представлении чисел, формата представления строк (нуль-терминальные, многобайтные символы, формат длинна строки - строка);
требует больше вычислительных ресурсов на формирование, разбор и анализ данных;
Увеличивает требуемое дисковое пространство и, что иногда более критично, загрузку канала;
С точки зрения применения в Web:
Позволяет, в случае необходимости, модифицировать документ, используя любой текстовый редактор;
JavaScript содержит множество функций для работы со строками (о средствах разбора XML ниже);
Общее:
Текстовый формат занимает больше чем аналогичные данные, представленные в бинарном виде. Также больше чем данные, представленные в с помощью некоторых других языков разметки (JSON, YAML). Эта проблема может решаться сжатием данных. Поскольку формат текстовый - достигается высокий коэфициент сжатия. Но это приводит к дополнительной вычислительной нагрузке.
Содержит данные, размеченные тегами
Стоит выделить два утверждения. Во-первых “содержит данные”, во-вторых “размеченные тегами”.
С точки зрения построения программных систем:
Тот факт, что XML содержит данные, делает вообще возможным его применение для передачи и хранения данных.
Факт разметки данных с помощью специальных маркеров (тегов) позволяет реализовать средства для разбора документа (парсеры). Кроме того, использование тегов позволяет описывать более сложные структуры данных, чем простой текст (plain text).
С точки зрения применения в Web:
С помощью XML описываются как правило данные, а не способ их визуального представления (за исключением тех случаев, когда визуальное представление и является данными). Такой подход, в отличии от некоторых языков разметки (например html). позволяет разделить данные и их визуальное представление, что позволяет производить операции над данными, будь то фильтрация, сортировка или модификация, не беспокоясь о отображении этих данных.
Документ имеет иерархическую структуру
С точки зрения построения программных систем:
Иерархичность XML документа позволяет удобно представлять записи, списки, деревья
С точки зрения применения в Web:
Используемый с давних времен HTML по сути тоже имеет иерархическую, соответственно веб-разработчики легко представляют часто используемые на сайтах данные (таблицы, меню, списковые структуры и т.д.).
Теги могут отражать содержание данных
Если вы в XML описании отчета о посещаемости сайта встретите тег VisitorsCount, то вполне логично предположить что это данные о количестве посетителей. С точки зрения программных систем это несущественно, поскольку программы не занимаются смысловым анализом имен тегов (что впрочем не мешает анализировать названия тегов разработчикам программных систем). С точки зрения применения в Web - осмысленные имена тегов могут облегчить жизнь разработчикам. Осмысленные названия тегов в XML документе наиболее полезно в задачах, требующих ручного редактирования документа, например файлы конфигурации.
Нет заранее определенного набора тегов
Отсутствие заранее определенного набора тегов позволяет сформировать набор тегов, который наиболее оптимально подходит к конкретной решаемой задаче. Таким образом на основе XML создано множество специализированных языков разметки. Например MathML (язык описания математических выражений), CML (язык описания химических выражений), NNML (язык описания нейронных сетей) и многие другие.
Документ частично самодокументируем
Осмысленные названия элементов и атрибутов позволяет разобраться в структуре документа. Но в то же время можно говорить только о частичной самодокументируемости. Одна из причин - по документу в большинстве случаев невозможно определить все допустимые элементы и атрибуты и их допустимые значения. Более того, в случае программной обработки XML документа, программа не сможет провести анализ названий тегов и выдвинуть предположение о смысле и структуре документа. Потому говорить можно лишь о частичной самодокументируемости и только в контексте анализа документа человеком а не машиной. Но в подавляющем большинстве задач стоит вопрос о проверке соответствия полученного документа требуемой структуре и проверка значений на соответствие определенным ограничениям. Потому, для описания структуры XML документа созданы специальные средства, такие как DTD, XML Schema, Relax NG.
Наличие стандартов, описывающих формат документа
Наличие и открытость стандартов обеспечивает одинаковую обработку XML документа средствами различных производителей. Стоит отметить, что некоторые компании вносят свои расширения, не описанные в стандарте. В случае использования таких расширений - обработка документа другими програмными средствами может завершиться ошибкой.
Поддержка Unicode
Не стоит выделять этот пункт как что-то выдающееся, поскольку Unicode поддерживается многими. Но факт поддержки Unicode делает XML более жизнеспособным.
Наличие средств разбора
Если вы когда либо придумывали свой формат хранения чего-то, то знаете, что потом приходится писать средства, которые бы этот формат разбирали (парсеры). Ситуация усложняется, если нужно, чтобы различные части системы были реализованы на различных языках. В случае же использования XML, вы получаете готовые парсеры во всех более-менее известных языках (C++/C#, Java, PHP, Python, Delphi, JavaScript/JScript и т.д.).
Наличие средств описания структуры документа для конкретной предметной области и средств валидации
Следующей задачей, с которой сталкивается разработчик собственного формата представления данный - проверка корректности данных. В случае применения XML, достаточно описать структуру документа (используемые элементы, их атрибуты и вложенность, ограничения на значения) и ограничения на значения элементов с помощью одного из перечисленных выше языков (DTD, XML Schema, Relax NG). После чего можно использовать стандартные средства (XML валидаторы) для проверки корректности документа (соответствия документа его описанию).
Наличие средств преобразования документа
Последний, но не менее важный пункт. Во множестве задач, особенно в случае применения XML в WEB, возникает задача не просто отдать данные пользователю, но предварительно провести ряд преобразований и привести их определенному виду (например из списка писем выбрать только новые, упорядочить их по дате получения. сформировать из них табличку в соответствии с темой, выбранной пользователем). Либо другая часто возникающая задача - представить данные в нескольких форматах (html, pdf, rtf и т.д.). Наличие стандартных средств для проведения такого преобразования (XSLT) позволяет, как и в случае с разбором и валидацией, не реализовывать свой конвертер для каждой задачи и абстрагироваться от используемого языка программирования.
Подводя итоги

Суммируя все сказанное выше, можно сказать, что XML позволяет избавиться от ряда проблем, связанных с разбором, проверкой и преобразованием данных, облегчает взаимодействие компонент различных производителей, позволяет использовать его как при обмене данными между программами, так и в Web. То, что формат текстовый, позволяет в случае надобности воспользоваться текстовыми редакторами для модификации документа. В то же время, его существенным недостатком является его избыточность, что в совокупности с текстовым форматом повышает затраты на обработку данных. В некоторых случаях этот факт перевешивает достоинства XML. Кроме того, не следует использовать XML там, где он не нужен. Например, если структура данных позволяет комфортно использовать реляционную СУБД, то нет смысла представлять их в формате XML, поскольку в этом случае мы теряем быстродействие, ничего не получая взамен.



kohedlo
Admin

Сообщения : 949
Experiance Points : 2197
Reputation : 2
Дата регистрации : 2009-08-30

View user profile

Back to top Go down

View previous topic View next topic Back to top


 
Permissions in this forum:
You cannot reply to topics in this forum