Я пытаюсь сделать несколько резюме моего опыта работы с XML:
Pros
Формат для чтения:
Каждый может проверить свой контент, просто прочитав его. Это делает его простой в использовании и понятной форме общения. Даже деловым людям нравится это (насколько я знаю в финансовых институтах в течение многих лет), поскольку они это понимают, и они могут легко проверять сообщения, например, в системах обмена сообщениями. Только они могут решить, какая система ошибается. Делает их счастливыми:) Сравните это с JSON . Я думаю, JSON далека от дружественной к читателю, поскольку закрытие скобок сложнее отслеживать, чем закрытие элементов в XML. Вы должны вернуться к странице, чтобы узнать, что было началом. Вам не нужны навыки программирования для понимания XML. Даже ваша бабушка может понять это через полчаса.
Независимость платформы:
Неважно, какой язык и платформа вы используете, у вас обязательно будет синтаксический анализатор, чтобы его прочитать. Это делает его, вероятно, лучшей формой связи между гетерогенными системами. Посмотрите, что люди обычно переносят XML файлы поверх очередей JMS, отправляют XML файлы в веб-службы, они переносят объекты в документы XML перед транспортировкой. XML - это настолько фундаментальный материал, что нет больших проблем с разными парсерами. Все они понимают XML.
Великие инструменты для преобразования
Отличный инструмент для проверки с помощью
Против
Многословность
Он может потреблять любое дисковое пространство. XML файлы делают журналы большими и трудными для чтения и извлечения. С другой стороны, вы можете сжимать журналы. Даже веб-службы или сообщения JMS могут быть сжаты, чтобы уменьшить нагрузку на канал. Но даже в этом случае сжатие - это издержки процессора и памяти. С другой стороны, в моем опыте XML и смежные технологии могут сократить развитие, и то, что вы экономите в мандатах, достаточно далеко, чтобы купить еще один процессор. Процессоры дешевле людей.
Неэффективное использование
Далеко не тривиально, какие объекты (выражения XPath, шаблоны XSL, схемы XSD, синтаксические анализаторы XML и т.д.) имеют какой жизненный цикл. Что можно кэшировать? Многие люди не делают это правильно, чтобы избежать проблем безопасности нитей. И это приведет вас к ужасной медлительности. И я хочу подчеркнуть, что это не проблема технологии, а неправильное использование . Многие люди застряли в старом партере DOM, который является уродливым. Они абстрагировали некоторый слой над ним и создали собственные API для обработки XML, что плохо. Двигайтесь дальше, используйте DOM4j или STAX или JAXB или что-то стандартное.
Ложная свобода создания чего-то особенного
Многие компании создали языки, специфичные для домена, или ужасные конфигурационные файлы с XML. Поскольку это легко разобрать и пройти, они создали даже переводчиков для совершенно нового языка. Язык застрял, и запланированные инструменты разработки никогда не создавались. Никогда не используйте XML для создания программ. Его нельзя использовать. Не программируйте в XPath, так как это не проверенное время разработки. Держите вещи на месте. XML в основном предназначен для транспортировки данных в некоторой стандартной форме. Не изобретайте колесо в XML. Это было бы программным креслом для себя, а не автомобилем.
Лучшие учебники по XML находятся на ZVON Я думаю. Используйте их, если хотите.
Зачем он нужен, этот XML ?[В последнее время, в связи с появлением этих
страничек, самым частым
вопросом ко мне оказался такой: "Расскажи, а
зачем он вообще нужен, XML?
Разве нам мало HTML? " Не имея многого
времени (или ума;) на изготовление собственных публикаций, а также
глубоко чтя классиков, я предпочел лучше бегло перевести отличную статью
по названной subj
- возможно, это первый эпизод сериала "в помощь" ]
Jon Bosak, Tim Bray
XML and the
Second-Generation Web
из журнала "Scientific
American", май 1999
Дайте людям пару наводок, остальное они сообразят сами. Посмотрев на страницу, где более крупные блоки текста делятся на более мелкие, все быстро понимают, что перед ними начало статьи. Посмотрев на список бакалейных товаров, можно быстро догадаться, что это "инструкция" на посещение магазина. Увидев колонки цифр - понять, что это банковский счет. Компьютеры пока еще не так умны - до них все это приходится доносить точно - с чем конкретно они должны иметь дело и что для этого от них требуется.
Именно для этого - сделать информацию само-описанной - и был придуман новый язык разметки документов - Extensible Markup Language (XML). Эти легко выговариваемые изменения ("само-описанный" документ, смена правил общения с компьютерами) несут в себе огромный потенциал - роль Internet от среды доставки информации начинает расширяться на другие виды человеческой деятельности. И действительно, с момента утверждения ее W3C в 1998г, XML-спецификация со скоростью лесного пожара стала проникать повсюду - в промышленность и науку, в производство товаров и медицину.
Энтузиасты надеялись, что XML даст возможность решить ряд глобальных проблем Web. Проблемы эти известны: во-первых, Internet - суперскоростная сеть, зачастую ведет себя хуже черепахи; а во-вторых, хотя в сети присутствует едва ли не вся информация, найти в ней что-то необходимое нередко бывает до бешенства трудно.
Обе эти проблемы обусловлены, главным образом, природой основного языка Сети - HTML. И хотя успех HTML по сравнению с другими когда-либо предложенными языками электронных публикаций очевиден, HTML слишком скуден: в сущности, он лишь говорит браузеру, как тому разместить на странице текст, картинки и кнопки. HTML упирает на представление информации, и поэтому довольно прост в изучении, однако за это приходится расплачиваться.
Это отражается на сложности разработки web-сайтов, если только эти сайты не должны походить на факсы, рассылающие страницы всем желающим, кто попросит. Более половины людей и компаний во всем мире предпочли бы web-сайты, которые умеют принимать от пользователей заказы, пересылать диагнозы болезней и даже запускать тонкие инструментальные операции в заводских цехах и научных лабораториях. Подобные задачи _НИКОГДА_ не стояли перед HTML!.
К примеру, если даже у вашего врача и получается "извлекать" в свой просмотрщик анализы, взятые из вашей мед.карточки, то вряд ли у него уже получается послать их по сети другому специалисту, чтобы полученный ответ вставить обратно в свою БД. Его компьютер не знает, что делать с информацией, которая ему столь же ясна, как
бе бе бе
илиЛегендарный Керниган однажды заметил, что вся хитрость принципа WYSIWYG (что вижу, то и получаю) состоит в том, что когда ничего не видно, то обычно и получить удается ровно столько же.
Те слова выше, что заключены в угловые скобки, называются тегами. В HTML нет никакого тега для анализов, и отсюда другой его недостаток: негибкость. Добавление в язык нового тега - это такая бюрократическая волокита, столь длительная, что никто с этим и связываться не будет. А ведь свои собственные теги не помешали бы каждой программе, а не только такой, как в приведенном примере с врачом.
Это во многом объясняет сегодняшние медленные темпы создания онлайновых магазинов, каталогов по почте и прочих интерактивных сайтов. Изменив количество единиц заказа и способ доставки, и увидев горсточку поменявшихся в поле "сумма" цифр, вам все равно придется запрашивать удаленный (и без того перегруженный работой) сервер прислать вам обратно полную вновь сформированную страницу с графикой и всем остальным. Тогда как ваш собственный мощный компьютер будет праздно простаивать, потому что только что узнал нечто типа
и
, но не цены с вариантами доставки.Добавьте к этому и
неудовлетворительное качество возможностей поиска в Web. Поскольку не
существует способа как-то особо пометить информацию о ценах, решительно
невозможно осуществлять в web поиск страниц по признаку "цена".
Что-то старое, что-то новое
В принципе, решение
элементарно: в тегах нужно указывать, что это за информация, а не то, как
она должна выглядеть. Например, размечать компоненты заказа на рубашку
тегами "цена, размер, количество, цвет", а не "bold, paragraph, row,
column", как это предлагается в HTML. Тогда программе проще
идентифицировать документ как заказ и выполнить остальную часть работы:
показать этот заказ в том или ином виде, провести через бухгалтерскую
систему, или сделать все так, чтобы назавтра новая рубашка была бы
доставлена к вашему порогу.
Мы, рабочая группа W3C, еще в 1996 г.
приступили к разработке такого проекта. Идея была сильная, хотя и не
совсем оригинальная. На протяжении поколений редакторы и печатники
маркировали рукописные тексты пометками для наборщиков. Подобный "язык
разметки" развивался самостийно до 1986г., пока, в результате десятилетней
работы, Международная Организация по стандартизации (ISO) не ввела систему
создания новых языков разметки.
Получив имя SGML (Standard
Generalized Markup Language), этот язык описания языков - метаязык -
доказал свою полезность на примере многих крупных систем подготовки
публикаций. И даже HTML получил свое определение через SGML. Единственная
трудность с SGML заключалась в его всеядности - там масса заумных вещей
для минимизации нажатий на клавиши, так как в ту пору каждый байт был на
счету. Вот почему сегодня web-браузеры с ним не в ладах.
Создавая
XML, наша рабочая группа очистила SGML от всей шелухи и предложила
строго-целевой и удобоваримый метаязык. Базой XML является набор правил,
руководствуясь которыми, каждый может создать собственный язык разметки.
Эти правила выбраны так, чтобы одна единственная небольшая программа (ее
еще называют парсером или синтаксическим анализатором) могла справиться с
распознаванием любого нового языка. Обратимся снова к примеру с доктором,
который хотел бы передать анализы специалисту. Если бы врачи-профессионалы
выстроили из XML свой язык разметки для кодирования врачебных записей (ряд
групп уже давно работают над проблемой), то в сообщении доктора своему
коллеге могло бы быть нечто вроде
<имя
пациента> blah blah имя пациента>
<аллергия на
лекарство> blah blah blah аллергия на
лекарство>
В такой постановке уже не сложно
написать программу для произвольно взятого компьютера так, чтобы она могла
распознать эти стандартизованные врачебные записи и умела заносить эту в
прямом смысле жизненно важную информацию в свою базу данных.
Точно
так же, как HTML создавался, чтобы любой пользователь мог читать
Internet-документы, XML дает нам то эсперанто, на котором любой может
читать и писать, невзирая на вавилон несовместимых платформ. Да даже с
точки зрения рядового человека в языке XML больше смысловой нагрузки (в
отличие от других форматов данных), ибо в нем нет чего-то такого, что
выглядело бы нечитабельным текстом.
Мощь универсальности XML
обусловлена минимальным набором правильно выбранных правил. Во-первых -
теги всегда составляют пару, окружая своеобразными скобками текст, к
которому они применяются. Во-вторых - спаренные теги могут вкладываться
друг в друга наподобие кавычек, позволяя выстраивать сложные
многоуровневые структуры.
Правило вкладывания автоматически
обуславливает простоту любого XML-документа, производя структуру,
известную в информатике как дерево. Аналогично генеалогическому дереву,
любой графический или текстовый элемент документа есть отец, сын или брат
(parent, child, sibling) какого-то другого элемента, и это отношение
родства всегда однозначно. Конечно, деревья не описывают все многообразие
структур данных, однако покрывают большую часть типовых случаев применения
компьютеров. Кроме того, деревья необычайно удобны для программистов. Нет
проблем написать небольшой кусочек кода для переупорядочивания транзакций
или вывода на экран вполне понятного чека, когда этот чек представлен в
виде дерева.
Второй источник универсальной силы XML - это опора на
новый стандарт Unicode - систему кодирования, допускающую взаимосмешение
текстов на всех основных языках мира. Напротив, в HTML, как и в массе
текстовых процессоров, документ, как правило, может быть только на одном
конкретном языке, не важно каком - английском, японском или арабском.
А
если программа не знает кодировки какого-то языка, о документе (в HTML)
можно забыть. Бывает и хуже: к примеру, из-за несогласованности кодировок
программы, написанные на Тайване, часто не умеют читать тексты,
ориентированные на материковый Китай. В случае с XML, если программа умеет
правильно с ним работать, она справится с любой комбинацией кодировок.
Таким образом, XML позволяет обмениваться данными не только между разными
компьютерными платформами, но и дает возможность преодолевать национальные
и культурные барьеры.
Конец вселенскому ожиданию (World Wide Wait)
С
распространением XML Сеть должна стать намного "отзывчивее". Сегодня все,
что умеют делать компьютерные устройства в сети, не важно, мощные это
десктопы или карманные органайзеры, это не больше, чем получить форму по
"GET", заполнить ее, потом гонять на web-сервер туда-сюда, пока работа с
формой не будет завершена. XML дает нам возможность передать в форму
структуру и семантику данных, и, следовательно, все эти устройства смогут
делать основную обработку в нужном месте и незамедлительно. Это не только
уменьшит нагрузку на сервера, но и должно привести к существенному
сокращению сетевого трафика.
Для иллюстрации представьте себе, как
в онлайновом бюро путешествий вам нужно подобрать рейс из Лондона в
Нью-Йорк на 4 июля. Скорее всего, вы увидите список в несколько раз
длиннее, чем может поместиться на экране. Этот список можно сократить,
задав более точные параметры типа времени вылета, цены или авиакомпании,
но в этом случае вы просто "нагружаете" сервер бюро путешествий своим
запросом и вынуждены дожидаться ответа. Однако если бы этот длинный список
рейсов вам предоставили в XML, то бюро могло бы сопроводить его небольшим
Java-аплетом, с помощью которого моментально и легко отсортировать и
отсеять ненужное, не прибегая к какому-либо взаимодействию с сервером.
Помножьте это на миллионы пользователей Web, и общий эффект окажется
впечатляющим.
Чем больше сетевой информации будет размечено
"отраслевыми" XML-тегами, тем легче будет найти то, что вы ищете. Сегодня
поиск в Internet по запросу "работа для биржевого брокера" захлестнет вас
лавиной рекламных объявлений, но вероятно, о работе их там будет всего
несколько штук - в основном работа прячется на бесплатных досках
объявлений газетных сайтов, с которыми не любят работать поисковые роботы.
И сейчас Ассоциация Газет Америки (Newspaper Association of America)
создает на XML свой язык разметки объявлений, обещающий сделать процесс
поиска намного эффективнее.
Неважно, пусть это просто промежуточный
шаг. Библиотекари давно знают способы найти что-то быстро - просматривать
не документы, а их компактные ключевые описания, лишь указывающие на сами
источники. А именно, это каталоги с образцом в виде библиотечных карточек.
Подобную информацию об информации и называют "метаданные".
Поэтому
с самого начала важная роль в XML-проекте отводилась созданию
сопутствующего стандарта метаданных. Ту же самую роль, как каталожные
карточки для библиотечных книг, для информации в Web должна сыграть
февральская Спецификация Описаний Ресурсов (Resource Description
Framework, RDF). Распространяясь по Сети, метаданные RDF сделают поиск
намного более быстрым и релевантным, чем сейчас. В Сети нет библиотекарей,
но каждый веб-мастер, ко всему прочему, стремится к легкой "находимости"
его сайта, поэтому мы ожидаем, что RDF, как только людям откроется его
мощь, окажет огромное влияние на развитие Internet.
Разумеется,
информацию можно получать и без поиска. В конце концов, Сеть это
гипертекст - миллиарды страниц, пронизанных гиперссылками - теми
подчеркнутыми словами, по которым достаточно щелкнуть, чтобы умчаться на
какую-то другую страницу. В XML механизм гиперссылок так же многократно
усилен. Спецификация ссылок в XML, называемая XLink и которую W3C готовит
к концу года, даст возможность пользователю выбирать из нескольких адресов
назначения. Еще одна разновидность гиперссылок позволит получать текст или
изображение прямо по месту нажатия, давая возможность посетителю не
покидать страницу.
Вероятно, полезнее всего в XLink окажется та
часть спецификации, которая позволяет авторам прибегать к опосредованным
ссылкам, отсылающим вместо самих страниц в некую сводную БД. Так, если
автор изменил адрес страницы, простым авторским редактированием одной
записи в такой базе данных легко обновить все ссылки, ведущие на его
страницу. Это позволит избавиться от становящихся привычными сообщений
"404 File Not Found", сигнализирующих о "сломавшейся" ссылке.
Сочетание более эффективной обработки, более точного поиска и
более гибкого связывания революционизирует структуру Сети и открывает
совершенно новые методы доступа к информации. Для пользователей эта новая
Сеть станет существенно быстрее, мощнее и полезнее, чем Сеть
сегодняшняя.
Необходимо сотрудничество
Разумеется, не все так просто.
XML позволяет любому сконструировать новый язык на свой лад, однако
создать хороший язык - задача, сложность которой не следует недооценивать.
Придумать язык - лишь самое начало: наивно ожидать, что значения ваших
тегов будут очевидны другим людям, пока вы не снабдили язык руководством,
и будут понятны компьютерам, пока вы не написали программы, работающих с
тегами языка.
Нетрудно объяснить, почему это так. Если бы все
необходимое для того, чтобы научить компьютер обрабатывать заказы,
сводилось к разметке тегами, тогда и XML не понадобился бы. Не нужны были
бы даже программисты - раз компьютеры достаточно умны, чтобы уметь все
делать самостоятельно.
То, зачем нам нужен XML, это не магия, а
результативность. XML устанавливает базовые правила, на один пласт
упрощающие детали программирования - чтобы люди со сходными интересами
могли сконцентрироваться на другом твердом орешке - соглашениях о том, как
именно они хотели бы оформлять данные, которыми им хотят обмениваться. Это
очень непростая проблема, хотя и не новая.
И такие соглашения
будут, поскольку множащаяся несовместимость компьютерных платформ дает нам
в результате задержки сроков, финансовые потери и ведет к неразберихе
почти во всех сферах деятельности. Люди хотят обмениваться идеями и делать
дело, независимо от того, что у всех разные компьютеры - и чтобы это стало
реальностью, взаиморазвитию частных (для разных сфер деятельности) языков
предстоит еще долгий путь. Однако шквал новых аббревиатур с окончанием
"ML" свидетельствует о несомненно прогрессивной (inventiveness) струе,
которую XML внес в науку, бизнес и образование.
Создавая новый язык
разметки на XML, его создатели должны договориться о трех вещах: какие там
будут теги, как они могут вкладываться друг в друга, и как они должны
обрабатываться. Первые два пункта - словарь языка и структура - кодируются
сейчас посредством DTD (Document Type Definition). Стандарт XML не
обязывает разработчиков языка прибегать к DTD, но у большинства новых
языков DTD-описания, по-видимому, будут - программистам так проще писать
программы, понимающие данную разметку и извлекающие из нее что-то
толковое. Нужны будут также комплекты руководств, где на человеческом
языке описаны значения всех тегов. Например, HTML имеет DTD-описание, но
по HTML есть и сотни страниц привычных руководств, с которыми сверяются
программисты, разрабатывая браузеры и другие программы для Web.
Эссе о стиле
Для пользователей главное - это что умеет
делать программа, а не то, что написано в ее описании. Как правило, люди
предпочитают, чтобы программы позволяли им видеть закодированную на языке
XML информацию в читабельном виде. Но в тегах самого XML нет никакой
специальной разметки, указывающей. как данные должны быть представлены на
экране или печатном листе.
Для публикаторов, стремящихся написать
однажды, а потом постоянно издавать ("write once and publish everywhere"),
самое главное - "родить" публикацию, а затем "разливать" ее в мириады
видов изданий, как печатных, так и электронных. XML помогает им так:
контент размечается описательными тегами, независимыми от среды
визуализации. Далее публикатор может оформить правила представления в виде
т. н. stylesheets (листов стилей), автоматически "стилизующих" его
произведение под разные устройства и среды. Стандарт такого XML-языка,
разрабатываемый для этих целей, носит название Extensible Stylesheet
Language (XSL).
Последние версии браузера умеют читать
XML-документы, выбирать соответствующие файлы стиля, и применять их для
сортировки и форматирования информации на экране. Читатель может даже и не
догадаться, что имеет дело с XML, а не HTML, если только не обратит
внимания, что сайты с XML шустрее и проще в использовании.
Люди с
недостатками зрения также получают бесплатный выигрыш от XSL-принципов
публикации документов, так как XSL дает им возможность читать XML в
системе Брэйля или с голоса. Эти преимущества касаются и остальных:
например, коммивояжеру, желающему заниматься сетевым серфингом, не выходя
из автомобиля, наверняка показалось бы довольно удобным слушать страницы в
звуковом сопровождении.
Хотя поначалу ядро Сети составляли научные
и образовательные программы, сегодняшняя Сеть - это уже коммерция (ну, или
можно сказать, коммерческие ожидания), запасающая топливо для быстрого
старта. Все помнят недавний резонанс, вызванный всплеском онлайновых
продаж, а стоит ли говорить о том, как стремительно взаимодействуют
бизнесмены в сети между собой. Потоки товаров крупных производителей так и
напрашиваются на автоматизацию в сети. Но в сегодняшних бизнес-схемах
используются сложные взаимодействия program-to-program, и на практике это
работает из рук вон плохо, ибо для успеха необходимо единообразие
процессов обработки, до которого пока еще далеко.
На протяжении
столетий люди успешно занимались бизнесом, обмениваясь типовыми
документами: заказами, счетами, декларациями, квитанциями и т.д. и т.д.
Документы работали на бизнес, и никто не требовал, чтобы одна участвующая
сторона знала внутреннюю кухню другой. Любой документ показывался ровно
настолько, насколько получателю информации следовало его показать, и не
более. По-видимому, обмен документами и есть самый правильный способ
заниматься бизнесом и в Web тоже. Но это вовсе не было той задачей, под
которую создавался HTML.
И наоборот, XML задуман именно с целью
обмена документами и очевидно, что основа электронной коммерции будет
опираться на соглашения, выраженные миллионами курсирующих по Internet
XML-документов.
Таким образом, Сеть, усиленная XML, должна стать
для своих пользователей быстрым, дружественным и лучшим местом для
бизнеса. Еще больше XML необходим web-мастерам и web-дизайнерам. "На
полную катушку" потребуется знание новых XML-языков армиям программистов.
И хотя дни самообразованных хакеров [авторы имели в виду лучший смысл
этого слова] еще длятся, над их популяцией уже нависла угроза.
Завтрашний web-дизайнер обязан быть сведущ не только в
изготовлении текста и графики, но и в строительстве многоуровневых,
взаимозависимых систем на основе DTD, деревьев данных, гиперссылочных
структурах, метаданных и стилевых компонентах - сильной и передовой
инфраструктуре Web второго поколения.
XML-схема является более мощным, чем DTD.
Поддержка схемы XML типы данных
Одним из наиболее важных является способность типов данных XML-схемы поддерживаются.
Благодаря поддержке типов данных:
- Он может быть легко описано допустимое содержание документа
- Это может быть более легко проверить правильность данных
- Можно более легко работать вместе с данными из базы данных
- Данные могут быть более легко, определенные ограничения (фасеты данных)
- Можно легко определить модель данных (или формат данных)
- Это может быть более легко преобразовывать данные между различными типами данных
Примечание редактора:
Ограничения данных, или указанные аспекты, является XML - схемы прототип термина, китайский можно перевести как "лицо", используется, чтобы ограничить допустимое значение типа данных.
XML-схемы с использованием синтаксиса XML
Еще одной важной особенностью XML-схемы является то, что они написаны XML.
XML написать XML-схемы имеет много преимуществ:
- Без того, чтобы выучить новый язык
- Вы можете использовать редактор XML для редактирования файлов схемы
- Вы можете использовать XML-анализатор для анализа ваших файлов схемы
- Схема может быть обработана с помощью XML DOM
- Схема может быть преобразован с помощью XSLT
XML-схема может защитить передачу данных
Когда данные передаются от отправителя к получателю, дело в том, что обе стороны должны уважать содержание тех же «ожидания».
В XML-схеме, отправитель может в получатель может понять способ описания данных.
А Данные, такие как "03.11.2004" в некоторых странах, можно интерпретировать как 3 ноября, в то время как в других странах 11 марта.
Тем не менее, тип данных XML элемента, например: <дата типа = "дата"> 2004-03-11 дата>, чтобы обеспечить согласованное понимание содержания, так как тип данных XML "дата" требование формат "ГГГГ-ММ-ДД".
XML-схема может быть расширена
Схема XML является расширяемым, потому что они написаны XML.
По расширяемого определения схемы вы можете:
- Повторное использование вашей схемы в другой схеме
- Создано с помощью стандартных типов, полученных из ваших собственных типов данных
- Схемы несколько ссылок в одном документе
Хорошая форма не достаточно
Мы назвали этот документ соответствует XML синтаксису хорошо сформированные документы XML, такие как:
- Оно должно начинаться с объявления XML
- Он должен иметь уникальный корневой элемент
- Начальный тег должен соответствовать конечный тег
- Элементы чувствительны к регистру
- Все элементы должны быть закрыты
- Все элементы должны быть правильно вложены
- Специальные символы должны использовать объект
Даже хорошая форма документа, до сих пор не может гарантировать, что они не будут содержать ошибки, и эти ошибки могут иметь серьезные последствия.
Рассмотрим следующую ситуацию: вы заказываете 5 десятков лазерных принтеров, вместо пяти. В XML-схеме, большинство из этих ошибок может быть пойман в вашем программном обеспечении для проверки.
Достаточно часто многие пользователи современных компьютерных систем и программных продуктов разного типа сталкиваются с файлами, имеющими расширение.xml. Многие просто не представляют себе, что это за документ, как его открыть. Сейчас будет рассмотрено, Заодно выясним, что же он собой представляет и для чего нужен.
Что представляет собой файл XML
Начнем, пожалуй, с того, что, с точки зрения современных компьютерных технологий и программ, используемых для создания документов такого типа, представляет собой текстовый файл, в котором прописаны команды универсального расширяемого языка (Extensible Markup Language), который достаточно сильно напоминает известное средство разметки HTML.
Как правило, файл XML содержит общую информацию о каком-либо объекте, которая выражена описательными средствами (об этом несколько позже). Что же касается данных, хранимых в таких контейнерах, это могут быть базы данных, часто используемые для каталогов видео и аудио в Интернете, сохраненные пользовательские настройки программ и приложений, а также веб-страницы целиком.
![](https://i2.wp.com/fb.ru/misc/i/gallery/26550/1196337.jpg)
В качестве примера можно взять, скажем, аудио-альбом какого-то исполнителя. Файл XML включает в себя информацию о годе выпуска, жанре, количестве и названиях треков, популярности и т. д. Правда, при посещении ресурсов во Всемирной паутине серферу не нужно задумываться о физическом открытии такого информационного файла, поскольку даже при воспроизведении песни онлайн в проигрывателе будут отображаться все данные по типу тех, которые содержатся в стандартных MP3-файлах в виде ID3-тегов. Информация как бы подгружается к воспроизводимому треку.
Вид XML-файла
Если посмотреть на вид файла, можно сразу заметить, что в нем свойства любого объекта описаны при помощи тегов и атрибутов, которые задаются вручную.
![](https://i0.wp.com/fb.ru/misc/i/gallery/26550/1196338.jpg)
Об основных командах самого языка речь сейчас не идет, поскольку рядовому юзеру такие сведения и не нужны. Единственное, что можно отметить, так это только то, что определенного количества используемых для описания объекта элементов в данном формате не существует: сколько нужно, столько и задается.
Чем открыть стандартный XML-формат
Теперь посмотрим, как открыть файл XML. Как уже, наверное, многие поняли, это файл текстовый, а значит, проще всего использовать для его просмотра или редактирования любой, пусть даже самый примитивный редактор. Да хоть тот же «Блокнот» из стандартного набора Windows.
![](https://i1.wp.com/fb.ru/misc/i/gallery/26550/1196339.jpg)
Однако здесь не все так просто. Дело в том, что по двойному клику файл без задания соответствующей ассоциации с какой-либо программой не откроется. В лучшем случае система предложит список наиболее подходящих приложений. Можно выбрать программу по своему усмотрению, а заодно поставить галочку напротив пункта постоянного использования выбранного приложения для всех файлов такого типа.
Можно поступить иначе, используя правый клик на файле с последующим выбором команды «Открыть с помощью…», после чего, опять же, выбрать нужное приложение либо из списка, либо указать местоположение основного исполняемого компонента (чаще всего это файл EXE).
Третий способ, позволяющий открыть файл XML, состоит в начальном запуске программы, а затем в использовании меню открытия файла (в большинстве случаев это сочетание Ctrl + O). При этом совершенно необязательно использовать «Блокнот». Пожалуйста, файл открывается без всяких проблем в том же приложении Word и ему подобных. Даже «майкрософтовский» Excel способен открывать данные такого формата.
Впрочем, если возникает необходимость редактирования XML-формата, тогда лучше применять профессиональные утилиты с поддержкой языкового синтаксиса, например, Oxygen XML Editor, XML Marker или EditiX Lite Version. Естественно, это далеко не все утилиты, способные работать с языком файла на высшем уровне. Сегодня таких программ можно найти очень много.
Теперь несколько слов о том, почему иногда появляется ошибка XML-файла при открытии. Чаще всего это связано с нарушением целостности самого файла, а также с некорректным введением описательных атрибутов или тегов. Кроме того, в Excel существует ограничение по лимиту отображаемых строк, так что в этом случае данные при открытии могут быть неполными.
Возможные ошибки при открытии XML-файла в виде вложения электронной почты
Иногда ошибки могут появляться, когда производится попытка открытия файла, являющегося вложением электронного сообщения. Чащу всего это относится к стандартным почтовым клиентам вроде Outlook Express.
Дело в том, что сначала вложение сохраняется в виде временных данных (очень часто с добавлением к основному расширению дополнительного.tmp), и обращение производится именно к нему.
![](https://i1.wp.com/fb.ru/misc/i/gallery/26550/1196340.jpg)
Чтобы избежать такой ситуации, достаточно просто изначально сохранить вложение в оригинальном формате в любое удобное место на диске или на съемном носителе, после чего использовать описанные выше стандартные методы.
Вместо итога
Как видим, ничего сложного в понимании структуры и способов открытия файлов такого формата нет. Здесь, правда, принципиально не рассматривался вопрос создания XML-данных, поскольку для полного понимания процесса нужно знать хотя бы азы самого языка. В остальном же, думается, сложностей с файлами такого формата у пользователей не возникнет.
Язык XML
привлек к себе уже достаточно много
внимания со стороны разработчиков
и пользователей Интернет. Сегодня
количество приверженцев этой новой
технологии возрастает также
стремительно, как и число сообщений
об очередных взятых ею преградах на
пути к всеобщему признанию.
Несмотря на то, что XML очень молод
(международная организация W3C
утвердила спецификацию "Extensible
Markup Language(XML) 1.0" чуть меньше года
назад - в начале февраля 1998 г) и
отдельные компоненты этого языка
находятся еще в стадии доработки,
уже сегодня появляются новые языки,
созданные на основе XML, возникают
многочисленные Web-сервера,
использующие эту технологию для
организации хранящейся на них
информации. Мир Интернет вокруг нас
в очередной раз преображается, и мы
можем стать участниками этого
процесса уже сегодня
Целью данной статьи является
попытка на конкретных примерах
показать некоторые из возможностей
XML, ответить на ряд часто
возникающих при знакомстве с новым
языком вопросов. Что же такое XML? В
чем заключаются его преимущества
перед привычным уже нам языком HTML?
Можно ли использовать XML на своих
Web-страничках уже сегодня? А если
можно, то как?
В конце статьи приведены ссылки
на другие ресурсы Интернет, с
помощью которых Вы сможете также
получить более полную информацию
по конкретным интересующим Вас
вопросам, связанным с применением
XML и незатронутых нами в этой
статье. Полные спецификации XML и
связанных с ним языков доступны на
официальной странице W3C -
Для чего нужен новый язык
разметки?
Гораздо более простой и удобный,
чем SGML, язык HTML позволяет
определять оформление элементов
документа и имеет некий
ограниченный набор инструкций -
тэгов, при помощи которых
осуществляется процесс разметки.
Инструкции HTML, в первую очередь,
предназначены для управления
процессом вывода содержимого
документа на экране
программы-клиента и определяют
этим самым способ представления
документа, но не его структуру. В
качестве элемента гипертекстовой
базы данных, описываемой HTML,
используется текстовый файл,
который может легко передаваться
по сети с использованием протокола
HTTP. Эта особенность, а также то, что
HTML является открытым стандартом и
огромное количество пользователей
имеет возможность применять
возможности этого языка для
оформления своих документов,
безусловно, повлияли на рост
популярности HTML и сделали его
сегодня главным механизмом
представления информации в Web
Однако современные приложения
нуждаются не только в языке
представления данных на экране
клиента, но и в механизме,
позволяющем определять структуру
документа, описывать содержащиеся
в нем элементы. HTML обладает
несложным набором команд и вполне
успешно справляется с задачей
описания текстовой информации и
отображением ее на экране
программы просмотра- броузера.
Однако сами отображаемые данные
никак не связаны с теми тэгами,
которые используются для
форматирования, поэтому у
программ-анализаторов нет
возможности использовать тэги HTML
для поиска нужных нам фрагментов
документа. Т.е. встретив, например,
такое описание
rose,
программа просмотра будет знать,
каким цветом отобразить текст,
содержащийся внутри тэгов
и, вероятно,
отобразит его правильно, но ей
абсолютно безразлично, в каком
месте документа встретился этот
тэг, в какие другие тэги заключен
текущий фрагмент, существуют ли
вложенные в него фрагменты,
правильно ли построены отношения
между объектами. Такое
"безразличие" к структуре
документа приводит к тому, что
поиск или анализ информации внутри
него ничем не будет отличаться от
работы со сплошным, не разбитым на
элементы текстовым файлом. А это,
как известно, не самый эффективный
способ работы с информацией.
Другим существенным недостатком
HTML можно назвать ограниченность
набора его тэгов. DTD- правила для HTML
определяют фиксированный набор
дескрипторов и поэтому у
разработчика нет возможности
вводить собственные, специальные
тэги. Хотя время от времени
появляются новые расширения
языка(на сегодняшний день
последней версией HTML является HTML
4.0), но долгий путь их
стандартизации, сопровождаемый
постоянными разногласиями между
основными производителями
броузеров делают практически
невозможной быструю адаптацию
языка, его использование для
отображения специализированной
информации(например,
мультимедийной, математических,
химических формул и т.д.).
Подводя итог всему сказанному,
можно утверждать, что HTML уже
сегодня не удовлетворяет в полной
мере требованиям, предъявляемым
современными разработчиками к
языкам подобного рода. И ему на
смену был предложен новый язык
гипертекстовой разметки, мощный,
гибкий, и, одновременно с этим,
удобный язык XML. В чем же
заключается его достоинства?
XML (Extensible Markup Language
)
- это язык разметки, описывающий
целый класс объектов данных,
называемых XML- документами. Этот
язык используется в качестве
средства для описания грамматики
других языков и контроля за
правильностью составления
документов. Т.е. сам по себе XML не
содержит никаких тэгов,
предназначенных для разметки, он
просто определяет порядок их
создания. Таким образом, если,
например, мы считаем, что для
обозначения элемента rose
в
документе необходимо использовать
тэг
;, то XML позволяет
свободно использовать
определяемый нами тэг и мы можем
включать в документ фрагменты,
подобные следующему:
rose
Набор тэгов может быть легко
расширен. Если, предположим, мы
хотим также указать, что описание
цветка должно по смыслу идти внутри
описания оранжереи, в которой он
цветет, то просто задаем новые тэги
и выбираем порядок их следования:
rose
Если мы хотим посадить туда еще
несколько цветочков, то должны
внести следующие изменения:
rose
tulip
cactus
Как видно, сам процесс создания XML
документа очень прост и требует от
нас лишь базовых знаний HTML и
понимания тех задач, которые мы
хотим выполнить, используя XML в
качестве языка разметки. Таким
образом, у разработчиков
появляется уникальная возможность
определять собственные команды,
позволяющие им наиболее эффективно
определять данные, содержащиеся в
документе. Автор документа создает
его структуру, строит необходимые
связи между элементами, используя
те команды, которые удовлетворяют
его требованиям и добивается
такого типа разметки, которое
необходимо ему для выполнения
операций просмотра, поиска, анализа
документа.
Еще одним из очевидных достоинств
XML является возможность
использования его в качестве
универсального языка запросов к
хранилищам информации. Сегодня в
глубинах W3C находится на
рассмотрении рабочий вариант
стандарта XML-QL(или XQL), который,
возможно, в будущем составит
серьезную конкуренцию SQL. Кроме
того, XML-документы могут выступать в
качестве уникального способа
хранения данных, который включает в
себя одновременно средства для
разбора информации и представления
ее на стороне клиента. В этой
области одним из перспективных
направлений является интеграция Java
и XML - технологий, позволяющая
использовать мощь обеих технологий
при построении машинно-независимых
приложений, использующих, кроме
того, универсальный формат данных
при обмене информации.
XML позволяет также осуществлять
контроль за корректностью данных,
хранящихся в документах,
производить проверки
иерархических соотношений внутри
документа и устанавливать единый
стандарт на структуру документов,
содержимым которых могут быть
самые различные данные. Это
означает, что его можно
использовать при построении
сложных информационных систем, в
которых очень важным является
вопрос обмена информацией между
различными приложениями,
работающими в одной системе.
Создавая структуру механизма
обмена информации в самом начале
работы над проектом, менеджер может
избавить себя в будущем от многих
проблем, связанных с
несовместимостью используемых
различными компонентами системы
форматов данных.
Также одним из достоинств XML
является то, что
программы-обработчики XML-
документов не сложны и уже сегодня
появились и свободно
распространяются всевозможные
программные продукты,
предназначенные для работы с
XML-документами. XML поддерживается
сегодня в Microsoft Internet Explorer 4/0 и в
бэта-версиях IE5. Было заявлено о его
поддержке в последующих версиях
Netscape Communicator, СУБД Oracle, DB-2, в
приложениях MS-Office . Все это дает
основания предполагать, что, скорее
всего, в ближайшем будущем XML станет
основным языком обмена информации
для информационных систем, заменив
собой, тем самым, HTML. На основе XML уже
сегодня созданы такие известные
специализированные языки разметки,
как SMIL, CDF, MathML, XSL, и список рабочих
проектов новых языков, находящихся
на рассмотрении W3C, постоянно
пополняется.
Как выглядит XML-документ?
Первый
- Второй
подпункт 1
- Третий
Последний
Правила создания XML-
документа
- В заголовке документа
помещается объявление XML, в
котором указывается язык
разметки документа, номер его
версии и дополнительная
информация
- Каждый открывающий тэг,
определяющий некоторую
область данных в документе
обязательно должен иметь
своего закрывающего
"напарника", т.е., в отличие
от HTML, нельзя опускать
закрывающие тэги
- Все значения атрибутов,
используемых в определении
тэгов, должны быть заключены в
кавычки
- Вложенность тэгов в XML
строго контролируется, поэтому
необходимо следить за порядком
следования открывающих и
закрывающих тэгов
- Вся информация,
располагающаяся между
начальным и конечными тэгами,
рассматривается в XML как данные
и поэтому учитываются все
символы форматирования (т.е.
пробелы, переводы строк,
табуляции не игнорируются, как
в HTML)
Russia Novosibirsk
Конструкции языка
Элементы данных
rose
Novosibirsk
rose
Новосибирск
Siberia
Новосибирский Государственный Технический Университет
очень хороший институт
Новосибирский Государственный Университет
тоже не плохой
Добавьте к этому и неудовлетворительное качество возможностей поиска в Web. Поскольку не существует способа как-то особо пометить информацию о ценах, решительно невозможно осуществлять в web поиск страниц по признаку "цена".
Что-то старое, что-то новое
В принципе, решение элементарно: в тегах нужно указывать, что это за информация, а не то, как она должна выглядеть. Например, размечать компоненты заказа на рубашку тегами "цена, размер, количество, цвет", а не "bold, paragraph, row, column", как это предлагается в HTML. Тогда программе проще идентифицировать документ как заказ и выполнить остальную часть работы: показать этот заказ в том или ином виде, провести через бухгалтерскую систему, или сделать все так, чтобы назавтра новая рубашка была бы доставлена к вашему порогу.
Мы, рабочая группа W3C, еще в 1996 г. приступили к разработке такого проекта. Идея была сильная, хотя и не совсем оригинальная. На протяжении поколений редакторы и печатники маркировали рукописные тексты пометками для наборщиков. Подобный "язык разметки" развивался самостийно до 1986г., пока, в результате десятилетней работы, Международная Организация по стандартизации (ISO) не ввела систему создания новых языков разметки.
Получив имя SGML (Standard Generalized Markup Language), этот язык описания языков - метаязык - доказал свою полезность на примере многих крупных систем подготовки публикаций. И даже HTML получил свое определение через SGML. Единственная трудность с SGML заключалась в его всеядности - там масса заумных вещей для минимизации нажатий на клавиши, так как в ту пору каждый байт был на счету. Вот почему сегодня web-браузеры с ним не в ладах.
Создавая XML, наша рабочая группа очистила SGML от всей шелухи и предложила строго-целевой и удобоваримый метаязык. Базой XML является набор правил, руководствуясь которыми, каждый может создать собственный язык разметки. Эти правила выбраны так, чтобы одна единственная небольшая программа (ее еще называют парсером или синтаксическим анализатором) могла справиться с распознаванием любого нового языка. Обратимся снова к примеру с доктором, который хотел бы передать анализы специалисту. Если бы врачи-профессионалы выстроили из XML свой язык разметки для кодирования врачебных записей (ряд групп уже давно работают над проблемой), то в сообщении доктора своему коллеге могло бы быть нечто вроде
<имя
пациента> blah blah имя пациента>
<аллергия на
лекарство> blah blah blah аллергия на
лекарство>
В такой постановке уже не сложно написать программу для произвольно взятого компьютера так, чтобы она могла распознать эти стандартизованные врачебные записи и умела заносить эту в прямом смысле жизненно важную информацию в свою базу данных.
Точно так же, как HTML создавался, чтобы любой пользователь мог читать Internet-документы, XML дает нам то эсперанто, на котором любой может читать и писать, невзирая на вавилон несовместимых платформ. Да даже с точки зрения рядового человека в языке XML больше смысловой нагрузки (в отличие от других форматов данных), ибо в нем нет чего-то такого, что выглядело бы нечитабельным текстом.
Мощь универсальности XML обусловлена минимальным набором правильно выбранных правил. Во-первых - теги всегда составляют пару, окружая своеобразными скобками текст, к которому они применяются. Во-вторых - спаренные теги могут вкладываться друг в друга наподобие кавычек, позволяя выстраивать сложные многоуровневые структуры.
Правило вкладывания автоматически обуславливает простоту любого XML-документа, производя структуру, известную в информатике как дерево. Аналогично генеалогическому дереву, любой графический или текстовый элемент документа есть отец, сын или брат (parent, child, sibling) какого-то другого элемента, и это отношение родства всегда однозначно. Конечно, деревья не описывают все многообразие структур данных, однако покрывают большую часть типовых случаев применения компьютеров. Кроме того, деревья необычайно удобны для программистов. Нет проблем написать небольшой кусочек кода для переупорядочивания транзакций или вывода на экран вполне понятного чека, когда этот чек представлен в виде дерева.
Второй источник универсальной силы XML - это опора на
новый стандарт Unicode - систему кодирования, допускающую взаимосмешение
текстов на всех основных языках мира. Напротив, в HTML, как и в массе
текстовых процессоров, документ, как правило, может быть только на одном
конкретном языке, не важно каком - английском, японском или арабском.
А
если программа не знает кодировки какого-то языка, о документе (в HTML)
можно забыть. Бывает и хуже: к примеру, из-за несогласованности кодировок
программы, написанные на Тайване, часто не умеют читать тексты,
ориентированные на материковый Китай. В случае с XML, если программа умеет
правильно с ним работать, она справится с любой комбинацией кодировок.
Таким образом, XML позволяет обмениваться данными не только между разными
компьютерными платформами, но и дает возможность преодолевать национальные
и культурные барьеры.
Конец вселенскому ожиданию (World Wide Wait)
С распространением XML Сеть должна стать намного "отзывчивее". Сегодня все, что умеют делать компьютерные устройства в сети, не важно, мощные это десктопы или карманные органайзеры, это не больше, чем получить форму по "GET", заполнить ее, потом гонять на web-сервер туда-сюда, пока работа с формой не будет завершена. XML дает нам возможность передать в форму структуру и семантику данных, и, следовательно, все эти устройства смогут делать основную обработку в нужном месте и незамедлительно. Это не только уменьшит нагрузку на сервера, но и должно привести к существенному сокращению сетевого трафика.
Для иллюстрации представьте себе, как в онлайновом бюро путешествий вам нужно подобрать рейс из Лондона в Нью-Йорк на 4 июля. Скорее всего, вы увидите список в несколько раз длиннее, чем может поместиться на экране. Этот список можно сократить, задав более точные параметры типа времени вылета, цены или авиакомпании, но в этом случае вы просто "нагружаете" сервер бюро путешествий своим запросом и вынуждены дожидаться ответа. Однако если бы этот длинный список рейсов вам предоставили в XML, то бюро могло бы сопроводить его небольшим Java-аплетом, с помощью которого моментально и легко отсортировать и отсеять ненужное, не прибегая к какому-либо взаимодействию с сервером. Помножьте это на миллионы пользователей Web, и общий эффект окажется впечатляющим.
Чем больше сетевой информации будет размечено "отраслевыми" XML-тегами, тем легче будет найти то, что вы ищете. Сегодня поиск в Internet по запросу "работа для биржевого брокера" захлестнет вас лавиной рекламных объявлений, но вероятно, о работе их там будет всего несколько штук - в основном работа прячется на бесплатных досках объявлений газетных сайтов, с которыми не любят работать поисковые роботы. И сейчас Ассоциация Газет Америки (Newspaper Association of America) создает на XML свой язык разметки объявлений, обещающий сделать процесс поиска намного эффективнее.
Неважно, пусть это просто промежуточный шаг. Библиотекари давно знают способы найти что-то быстро - просматривать не документы, а их компактные ключевые описания, лишь указывающие на сами источники. А именно, это каталоги с образцом в виде библиотечных карточек. Подобную информацию об информации и называют "метаданные".
Поэтому с самого начала важная роль в XML-проекте отводилась созданию сопутствующего стандарта метаданных. Ту же самую роль, как каталожные карточки для библиотечных книг, для информации в Web должна сыграть февральская Спецификация Описаний Ресурсов (Resource Description Framework, RDF). Распространяясь по Сети, метаданные RDF сделают поиск намного более быстрым и релевантным, чем сейчас. В Сети нет библиотекарей, но каждый веб-мастер, ко всему прочему, стремится к легкой "находимости" его сайта, поэтому мы ожидаем, что RDF, как только людям откроется его мощь, окажет огромное влияние на развитие Internet.
Разумеется, информацию можно получать и без поиска. В конце концов, Сеть это гипертекст - миллиарды страниц, пронизанных гиперссылками - теми подчеркнутыми словами, по которым достаточно щелкнуть, чтобы умчаться на какую-то другую страницу. В XML механизм гиперссылок так же многократно усилен. Спецификация ссылок в XML, называемая XLink и которую W3C готовит к концу года, даст возможность пользователю выбирать из нескольких адресов назначения. Еще одна разновидность гиперссылок позволит получать текст или изображение прямо по месту нажатия, давая возможность посетителю не покидать страницу.
Вероятно, полезнее всего в XLink окажется та часть спецификации, которая позволяет авторам прибегать к опосредованным ссылкам, отсылающим вместо самих страниц в некую сводную БД. Так, если автор изменил адрес страницы, простым авторским редактированием одной записи в такой базе данных легко обновить все ссылки, ведущие на его страницу. Это позволит избавиться от становящихся привычными сообщений "404 File Not Found", сигнализирующих о "сломавшейся" ссылке.
Сочетание более эффективной обработки, более точного поиска и более гибкого связывания революционизирует структуру Сети и открывает совершенно новые методы доступа к информации. Для пользователей эта новая Сеть станет существенно быстрее, мощнее и полезнее, чем Сеть сегодняшняя.
Необходимо сотрудничество
Разумеется, не все так просто. XML позволяет любому сконструировать новый язык на свой лад, однако создать хороший язык - задача, сложность которой не следует недооценивать. Придумать язык - лишь самое начало: наивно ожидать, что значения ваших тегов будут очевидны другим людям, пока вы не снабдили язык руководством, и будут понятны компьютерам, пока вы не написали программы, работающих с тегами языка.
Нетрудно объяснить, почему это так. Если бы все необходимое для того, чтобы научить компьютер обрабатывать заказы, сводилось к разметке тегами, тогда и XML не понадобился бы. Не нужны были бы даже программисты - раз компьютеры достаточно умны, чтобы уметь все делать самостоятельно.
То, зачем нам нужен XML, это не магия, а результативность. XML устанавливает базовые правила, на один пласт упрощающие детали программирования - чтобы люди со сходными интересами могли сконцентрироваться на другом твердом орешке - соглашениях о том, как именно они хотели бы оформлять данные, которыми им хотят обмениваться. Это очень непростая проблема, хотя и не новая.
И такие соглашения будут, поскольку множащаяся несовместимость компьютерных платформ дает нам в результате задержки сроков, финансовые потери и ведет к неразберихе почти во всех сферах деятельности. Люди хотят обмениваться идеями и делать дело, независимо от того, что у всех разные компьютеры - и чтобы это стало реальностью, взаиморазвитию частных (для разных сфер деятельности) языков предстоит еще долгий путь. Однако шквал новых аббревиатур с окончанием "ML" свидетельствует о несомненно прогрессивной (inventiveness) струе, которую XML внес в науку, бизнес и образование.
Создавая новый язык разметки на XML, его создатели должны договориться о трех вещах: какие там будут теги, как они могут вкладываться друг в друга, и как они должны обрабатываться. Первые два пункта - словарь языка и структура - кодируются сейчас посредством DTD (Document Type Definition). Стандарт XML не обязывает разработчиков языка прибегать к DTD, но у большинства новых языков DTD-описания, по-видимому, будут - программистам так проще писать программы, понимающие данную разметку и извлекающие из нее что-то толковое. Нужны будут также комплекты руководств, где на человеческом языке описаны значения всех тегов. Например, HTML имеет DTD-описание, но по HTML есть и сотни страниц привычных руководств, с которыми сверяются программисты, разрабатывая браузеры и другие программы для Web.
Эссе о стиле
Для пользователей главное - это что умеет делать программа, а не то, что написано в ее описании. Как правило, люди предпочитают, чтобы программы позволяли им видеть закодированную на языке XML информацию в читабельном виде. Но в тегах самого XML нет никакой специальной разметки, указывающей. как данные должны быть представлены на экране или печатном листе.
Для публикаторов, стремящихся написать однажды, а потом постоянно издавать ("write once and publish everywhere"), самое главное - "родить" публикацию, а затем "разливать" ее в мириады видов изданий, как печатных, так и электронных. XML помогает им так: контент размечается описательными тегами, независимыми от среды визуализации. Далее публикатор может оформить правила представления в виде т. н. stylesheets (листов стилей), автоматически "стилизующих" его произведение под разные устройства и среды. Стандарт такого XML-языка, разрабатываемый для этих целей, носит название Extensible Stylesheet Language (XSL).
Последние версии браузера умеют читать XML-документы, выбирать соответствующие файлы стиля, и применять их для сортировки и форматирования информации на экране. Читатель может даже и не догадаться, что имеет дело с XML, а не HTML, если только не обратит внимания, что сайты с XML шустрее и проще в использовании.
Люди с недостатками зрения также получают бесплатный выигрыш от XSL-принципов публикации документов, так как XSL дает им возможность читать XML в системе Брэйля или с голоса. Эти преимущества касаются и остальных: например, коммивояжеру, желающему заниматься сетевым серфингом, не выходя из автомобиля, наверняка показалось бы довольно удобным слушать страницы в звуковом сопровождении.
Хотя поначалу ядро Сети составляли научные и образовательные программы, сегодняшняя Сеть - это уже коммерция (ну, или можно сказать, коммерческие ожидания), запасающая топливо для быстрого старта. Все помнят недавний резонанс, вызванный всплеском онлайновых продаж, а стоит ли говорить о том, как стремительно взаимодействуют бизнесмены в сети между собой. Потоки товаров крупных производителей так и напрашиваются на автоматизацию в сети. Но в сегодняшних бизнес-схемах используются сложные взаимодействия program-to-program, и на практике это работает из рук вон плохо, ибо для успеха необходимо единообразие процессов обработки, до которого пока еще далеко.
На протяжении столетий люди успешно занимались бизнесом, обмениваясь типовыми документами: заказами, счетами, декларациями, квитанциями и т.д. и т.д. Документы работали на бизнес, и никто не требовал, чтобы одна участвующая сторона знала внутреннюю кухню другой. Любой документ показывался ровно настолько, насколько получателю информации следовало его показать, и не более. По-видимому, обмен документами и есть самый правильный способ заниматься бизнесом и в Web тоже. Но это вовсе не было той задачей, под которую создавался HTML.
И наоборот, XML задуман именно с целью обмена документами и очевидно, что основа электронной коммерции будет опираться на соглашения, выраженные миллионами курсирующих по Internet XML-документов.
Таким образом, Сеть, усиленная XML, должна стать для своих пользователей быстрым, дружественным и лучшим местом для бизнеса. Еще больше XML необходим web-мастерам и web-дизайнерам. "На полную катушку" потребуется знание новых XML-языков армиям программистов. И хотя дни самообразованных хакеров [авторы имели в виду лучший смысл этого слова] еще длятся, над их популяцией уже нависла угроза.
Завтрашний web-дизайнер обязан быть сведущ не только в изготовлении текста и графики, но и в строительстве многоуровневых, взаимозависимых систем на основе DTD, деревьев данных, гиперссылочных структурах, метаданных и стилевых компонентах - сильной и передовой инфраструктуре Web второго поколения.
XML-схема является более мощным, чем DTD.
Поддержка схемы XML типы данных
Одним из наиболее важных является способность типов данных XML-схемы поддерживаются.
Благодаря поддержке типов данных:
- Он может быть легко описано допустимое содержание документа
- Это может быть более легко проверить правильность данных
- Можно более легко работать вместе с данными из базы данных
- Данные могут быть более легко, определенные ограничения (фасеты данных)
- Можно легко определить модель данных (или формат данных)
- Это может быть более легко преобразовывать данные между различными типами данных
Примечание редактора: Ограничения данных, или указанные аспекты, является XML - схемы прототип термина, китайский можно перевести как "лицо", используется, чтобы ограничить допустимое значение типа данных.
XML-схемы с использованием синтаксиса XML
Еще одной важной особенностью XML-схемы является то, что они написаны XML.
XML написать XML-схемы имеет много преимуществ:
- Без того, чтобы выучить новый язык
- Вы можете использовать редактор XML для редактирования файлов схемы
- Вы можете использовать XML-анализатор для анализа ваших файлов схемы
- Схема может быть обработана с помощью XML DOM
- Схема может быть преобразован с помощью XSLT
XML-схема может защитить передачу данных
Когда данные передаются от отправителя к получателю, дело в том, что обе стороны должны уважать содержание тех же «ожидания».
В XML-схеме, отправитель может в получатель может понять способ описания данных.
А Данные, такие как "03.11.2004" в некоторых странах, можно интерпретировать как 3 ноября, в то время как в других странах 11 марта.
Тем не менее, тип данных XML элемента, например: <дата типа = "дата"> 2004-03-11 дата>, чтобы обеспечить согласованное понимание содержания, так как тип данных XML "дата" требование формат "ГГГГ-ММ-ДД".
XML-схема может быть расширена
Схема XML является расширяемым, потому что они написаны XML.
По расширяемого определения схемы вы можете:
- Повторное использование вашей схемы в другой схеме
- Создано с помощью стандартных типов, полученных из ваших собственных типов данных
- Схемы несколько ссылок в одном документе
Хорошая форма не достаточно
Мы назвали этот документ соответствует XML синтаксису хорошо сформированные документы XML, такие как:
- Оно должно начинаться с объявления XML
- Он должен иметь уникальный корневой элемент
- Начальный тег должен соответствовать конечный тег
- Элементы чувствительны к регистру
- Все элементы должны быть закрыты
- Все элементы должны быть правильно вложены
- Специальные символы должны использовать объект
Даже хорошая форма документа, до сих пор не может гарантировать, что они не будут содержать ошибки, и эти ошибки могут иметь серьезные последствия.
Рассмотрим следующую ситуацию: вы заказываете 5 десятков лазерных принтеров, вместо пяти. В XML-схеме, большинство из этих ошибок может быть пойман в вашем программном обеспечении для проверки.
Достаточно часто многие пользователи современных компьютерных систем и программных продуктов разного типа сталкиваются с файлами, имеющими расширение.xml. Многие просто не представляют себе, что это за документ, как его открыть. Сейчас будет рассмотрено, Заодно выясним, что же он собой представляет и для чего нужен.
Что представляет собой файл XML
Начнем, пожалуй, с того, что, с точки зрения современных компьютерных технологий и программ, используемых для создания документов такого типа, представляет собой текстовый файл, в котором прописаны команды универсального расширяемого языка (Extensible Markup Language), который достаточно сильно напоминает известное средство разметки HTML.
Как правило, файл XML содержит общую информацию о каком-либо объекте, которая выражена описательными средствами (об этом несколько позже). Что же касается данных, хранимых в таких контейнерах, это могут быть базы данных, часто используемые для каталогов видео и аудио в Интернете, сохраненные пользовательские настройки программ и приложений, а также веб-страницы целиком.
В качестве примера можно взять, скажем, аудио-альбом какого-то исполнителя. Файл XML включает в себя информацию о годе выпуска, жанре, количестве и названиях треков, популярности и т. д. Правда, при посещении ресурсов во Всемирной паутине серферу не нужно задумываться о физическом открытии такого информационного файла, поскольку даже при воспроизведении песни онлайн в проигрывателе будут отображаться все данные по типу тех, которые содержатся в стандартных MP3-файлах в виде ID3-тегов. Информация как бы подгружается к воспроизводимому треку.
Вид XML-файла
Если посмотреть на вид файла, можно сразу заметить, что в нем свойства любого объекта описаны при помощи тегов и атрибутов, которые задаются вручную.
Об основных командах самого языка речь сейчас не идет, поскольку рядовому юзеру такие сведения и не нужны. Единственное, что можно отметить, так это только то, что определенного количества используемых для описания объекта элементов в данном формате не существует: сколько нужно, столько и задается.
Чем открыть стандартный XML-формат
Теперь посмотрим, как открыть файл XML. Как уже, наверное, многие поняли, это файл текстовый, а значит, проще всего использовать для его просмотра или редактирования любой, пусть даже самый примитивный редактор. Да хоть тот же «Блокнот» из стандартного набора Windows.
Однако здесь не все так просто. Дело в том, что по двойному клику файл без задания соответствующей ассоциации с какой-либо программой не откроется. В лучшем случае система предложит список наиболее подходящих приложений. Можно выбрать программу по своему усмотрению, а заодно поставить галочку напротив пункта постоянного использования выбранного приложения для всех файлов такого типа.
Можно поступить иначе, используя правый клик на файле с последующим выбором команды «Открыть с помощью…», после чего, опять же, выбрать нужное приложение либо из списка, либо указать местоположение основного исполняемого компонента (чаще всего это файл EXE).
Третий способ, позволяющий открыть файл XML, состоит в начальном запуске программы, а затем в использовании меню открытия файла (в большинстве случаев это сочетание Ctrl + O). При этом совершенно необязательно использовать «Блокнот». Пожалуйста, файл открывается без всяких проблем в том же приложении Word и ему подобных. Даже «майкрософтовский» Excel способен открывать данные такого формата.
Впрочем, если возникает необходимость редактирования XML-формата, тогда лучше применять профессиональные утилиты с поддержкой языкового синтаксиса, например, Oxygen XML Editor, XML Marker или EditiX Lite Version. Естественно, это далеко не все утилиты, способные работать с языком файла на высшем уровне. Сегодня таких программ можно найти очень много.
Теперь несколько слов о том, почему иногда появляется ошибка XML-файла при открытии. Чаще всего это связано с нарушением целостности самого файла, а также с некорректным введением описательных атрибутов или тегов. Кроме того, в Excel существует ограничение по лимиту отображаемых строк, так что в этом случае данные при открытии могут быть неполными.
Возможные ошибки при открытии XML-файла в виде вложения электронной почты
Иногда ошибки могут появляться, когда производится попытка открытия файла, являющегося вложением электронного сообщения. Чащу всего это относится к стандартным почтовым клиентам вроде Outlook Express.
Дело в том, что сначала вложение сохраняется в виде временных данных (очень часто с добавлением к основному расширению дополнительного.tmp), и обращение производится именно к нему.
Чтобы избежать такой ситуации, достаточно просто изначально сохранить вложение в оригинальном формате в любое удобное место на диске или на съемном носителе, после чего использовать описанные выше стандартные методы.
Вместо итога
Как видим, ничего сложного в понимании структуры и способов открытия файлов такого формата нет. Здесь, правда, принципиально не рассматривался вопрос создания XML-данных, поскольку для полного понимания процесса нужно знать хотя бы азы самого языка. В остальном же, думается, сложностей с файлами такого формата у пользователей не возникнет.
Язык XML привлек к себе уже достаточно много внимания со стороны разработчиков и пользователей Интернет. Сегодня количество приверженцев этой новой технологии возрастает также стремительно, как и число сообщений об очередных взятых ею преградах на пути к всеобщему признанию. Несмотря на то, что XML очень молод (международная организация W3C утвердила спецификацию "Extensible Markup Language(XML) 1.0" чуть меньше года назад - в начале февраля 1998 г) и отдельные компоненты этого языка находятся еще в стадии доработки, уже сегодня появляются новые языки, созданные на основе XML, возникают многочисленные Web-сервера, использующие эту технологию для организации хранящейся на них информации. Мир Интернет вокруг нас в очередной раз преображается, и мы можем стать участниками этого процесса уже сегодня
Целью данной статьи является попытка на конкретных примерах показать некоторые из возможностей XML, ответить на ряд часто возникающих при знакомстве с новым языком вопросов. Что же такое XML? В чем заключаются его преимущества перед привычным уже нам языком HTML? Можно ли использовать XML на своих Web-страничках уже сегодня? А если можно, то как?
В конце статьи приведены ссылки на другие ресурсы Интернет, с помощью которых Вы сможете также получить более полную информацию по конкретным интересующим Вас вопросам, связанным с применением XML и незатронутых нами в этой статье. Полные спецификации XML и связанных с ним языков доступны на официальной странице W3C -
Для чего нужен новый язык разметки?
Гораздо более простой и удобный, чем SGML, язык HTML позволяет определять оформление элементов документа и имеет некий ограниченный набор инструкций - тэгов, при помощи которых осуществляется процесс разметки. Инструкции HTML, в первую очередь, предназначены для управления процессом вывода содержимого документа на экране программы-клиента и определяют этим самым способ представления документа, но не его структуру. В качестве элемента гипертекстовой базы данных, описываемой HTML, используется текстовый файл, который может легко передаваться по сети с использованием протокола HTTP. Эта особенность, а также то, что HTML является открытым стандартом и огромное количество пользователей имеет возможность применять возможности этого языка для оформления своих документов, безусловно, повлияли на рост популярности HTML и сделали его сегодня главным механизмом представления информации в Web
Однако современные приложения нуждаются не только в языке представления данных на экране клиента, но и в механизме, позволяющем определять структуру документа, описывать содержащиеся в нем элементы. HTML обладает несложным набором команд и вполне успешно справляется с задачей описания текстовой информации и отображением ее на экране программы просмотра- броузера. Однако сами отображаемые данные никак не связаны с теми тэгами, которые используются для форматирования, поэтому у программ-анализаторов нет возможности использовать тэги HTML для поиска нужных нам фрагментов документа. Т.е. встретив, например, такое описание
rose,
программа просмотра будет знать, каким цветом отобразить текст, содержащийся внутри тэгов и, вероятно, отобразит его правильно, но ей абсолютно безразлично, в каком месте документа встретился этот тэг, в какие другие тэги заключен текущий фрагмент, существуют ли вложенные в него фрагменты, правильно ли построены отношения между объектами. Такое "безразличие" к структуре документа приводит к тому, что поиск или анализ информации внутри него ничем не будет отличаться от работы со сплошным, не разбитым на элементы текстовым файлом. А это, как известно, не самый эффективный способ работы с информацией.
Другим существенным недостатком HTML можно назвать ограниченность набора его тэгов. DTD- правила для HTML определяют фиксированный набор дескрипторов и поэтому у разработчика нет возможности вводить собственные, специальные тэги. Хотя время от времени появляются новые расширения языка(на сегодняшний день последней версией HTML является HTML 4.0), но долгий путь их стандартизации, сопровождаемый постоянными разногласиями между основными производителями броузеров делают практически невозможной быструю адаптацию языка, его использование для отображения специализированной информации(например, мультимедийной, математических, химических формул и т.д.).
Подводя итог всему сказанному, можно утверждать, что HTML уже сегодня не удовлетворяет в полной мере требованиям, предъявляемым современными разработчиками к языкам подобного рода. И ему на смену был предложен новый язык гипертекстовой разметки, мощный, гибкий, и, одновременно с этим, удобный язык XML. В чем же заключается его достоинства?
XML (Extensible Markup Language
)
- это язык разметки, описывающий
целый класс объектов данных,
называемых XML- документами. Этот
язык используется в качестве
средства для описания грамматики
других языков и контроля за
правильностью составления
документов. Т.е. сам по себе XML не
содержит никаких тэгов,
предназначенных для разметки, он
просто определяет порядок их
создания. Таким образом, если,
например, мы считаем, что для
обозначения элемента rose
в
документе необходимо использовать
тэг
Набор тэгов может быть легко расширен. Если, предположим, мы хотим также указать, что описание цветка должно по смыслу идти внутри описания оранжереи, в которой он цветет, то просто задаем новые тэги и выбираем порядок их следования:
Если мы хотим посадить туда еще несколько цветочков, то должны внести следующие изменения:
Как видно, сам процесс создания XML документа очень прост и требует от нас лишь базовых знаний HTML и понимания тех задач, которые мы хотим выполнить, используя XML в качестве языка разметки. Таким образом, у разработчиков появляется уникальная возможность определять собственные команды, позволяющие им наиболее эффективно определять данные, содержащиеся в документе. Автор документа создает его структуру, строит необходимые связи между элементами, используя те команды, которые удовлетворяют его требованиям и добивается такого типа разметки, которое необходимо ему для выполнения операций просмотра, поиска, анализа документа.
Еще одним из очевидных достоинств XML является возможность использования его в качестве универсального языка запросов к хранилищам информации. Сегодня в глубинах W3C находится на рассмотрении рабочий вариант стандарта XML-QL(или XQL), который, возможно, в будущем составит серьезную конкуренцию SQL. Кроме того, XML-документы могут выступать в качестве уникального способа хранения данных, который включает в себя одновременно средства для разбора информации и представления ее на стороне клиента. В этой области одним из перспективных направлений является интеграция Java и XML - технологий, позволяющая использовать мощь обеих технологий при построении машинно-независимых приложений, использующих, кроме того, универсальный формат данных при обмене информации.
XML позволяет также осуществлять контроль за корректностью данных, хранящихся в документах, производить проверки иерархических соотношений внутри документа и устанавливать единый стандарт на структуру документов, содержимым которых могут быть самые различные данные. Это означает, что его можно использовать при построении сложных информационных систем, в которых очень важным является вопрос обмена информацией между различными приложениями, работающими в одной системе. Создавая структуру механизма обмена информации в самом начале работы над проектом, менеджер может избавить себя в будущем от многих проблем, связанных с несовместимостью используемых различными компонентами системы форматов данных.
Также одним из достоинств XML является то, что программы-обработчики XML- документов не сложны и уже сегодня появились и свободно распространяются всевозможные программные продукты, предназначенные для работы с XML-документами. XML поддерживается сегодня в Microsoft Internet Explorer 4/0 и в бэта-версиях IE5. Было заявлено о его поддержке в последующих версиях Netscape Communicator, СУБД Oracle, DB-2, в приложениях MS-Office . Все это дает основания предполагать, что, скорее всего, в ближайшем будущем XML станет основным языком обмена информации для информационных систем, заменив собой, тем самым, HTML. На основе XML уже сегодня созданы такие известные специализированные языки разметки, как SMIL, CDF, MathML, XSL, и список рабочих проектов новых языков, находящихся на рассмотрении W3C, постоянно пополняется.
Как выглядит XML-документ?
Правила создания XML- документа
- В заголовке документа помещается объявление XML, в котором указывается язык разметки документа, номер его версии и дополнительная информация
- Каждый открывающий тэг, определяющий некоторую область данных в документе обязательно должен иметь своего закрывающего "напарника", т.е., в отличие от HTML, нельзя опускать закрывающие тэги
- Все значения атрибутов, используемых в определении тэгов, должны быть заключены в кавычки
- Вложенность тэгов в XML строго контролируется, поэтому необходимо следить за порядком следования открывающих и закрывающих тэгов
- Вся информация, располагающаяся между начальным и конечными тэгами, рассматривается в XML как данные и поэтому учитываются все символы форматирования (т.е. пробелы, переводы строк, табуляции не игнорируются, как в HTML)