XML в 10 тезисах


Оглавление (нажмите, чтобы открыть):

йОЖПТНБГЙС П DocBook

DocBook љ— ЬФП ПРЙУБОЙЕ ФЙРБ ДПЛХНЕОФБ ( DTD ) ДМС СЪЩЛБ XML , ТБЪТБВПФБООПЕ ДМС УПЪДБОЙС ДПЛХНЕОФБГЙЙ.

уУЩМЛЙ ОБ ЙОЖПТНБГЙА РП XML (ОБ ТХУУЛПН СЪЩЛЕ):

рЕТЕЧПДЩ ч. сТПЫЕЧЙЮБ УФБФЕК ПВ XML Й ОЕ ФПМШЛП;

оПЧПУФЙ XML Й ТЕУХТУЩ ДМС ТБЪТБВПФЮЙЛПЧ ОБ xmlhack.ru;

уФТБОЙГБ SGML вПТЙУБ фПВПФТБУБ. SGML љ— ВМЙЪЛЙК ТПДУФЧЕООЙЛ XML , РПЬФПНХ НОПЗПЕ ОБ ЬФПК УФТБОЙГЕ РТЙНЕОЙНП Й Л XML . йОФЕТЕУОБ УФБФШС « SGML : У ЮЕН ЬФП ЕДСФ? »;

лОЙЗЙ РП XML (ОБ ТХУУЛПН СЪЩЛЕ):

ьТЙЛ тЬК « йЪХЮБЕН XML », ПТЙЗЙОБМ ЙЪДБФЕМШУФЧБ O’Reilly , РЕТЕЧПД у. нБЛЛБЧЕЕЧБ , ЙЪДБФЕМШУФЧП « уЙНЧПМ-рМАУ », ISBN 5-93286-023-5;

о. рЙФГ-нПХМФЙУ, ю. лЙТЛ « XML Black Book », ПТЙЗЙОБМ ЙЪДБФЕМШУФЧБ « The Coriolis Group », РЕТЕЧПД ЙЪДБФЕМШУФЧБ « BHVљ— уБОЛФ-рЕФЕТВХТЗ », ISBN 5-7791-0112-4;

уУЩМЛЙ ОБ ЙОЖПТНБГЙА РП XML (ОБ БОЗМЙКУЛПН СЪЩЛЕ):

дПЛХНЕОФЩ РП XML ОБ W3C . уЧПВПДОП ЧМБДЕАЭЙН БОЗМЙКУЛЙН СЪЩЛПН ФХФ ТБЪДПМШЕ, РПЬФПНХ ВПМШЫЕ УУЩМПЛ НПЦОП ОЕ ХЛБЪЩЧБФШ 🙂

уУЩМЛЙ ОБ ЙОЖПТНБГЙА РП Docbook (ОБ ТХУУЛПН СЪЩЛЕ):

рЕТЕЧПД УФБФШЙ « оБРЙУБОЙЕ ДПЛХНЕОФБГЙЙ, ЮБУФШ III: DocBook / XML » ОБ УБКФЕ ТХУУЛПК ЧЕТУЙЙ « Linux Gazette »;

уУЩМЛЙ ОБ ЙОЖПТНБГЙА РП Docbook (ОБ БОЗМЙКУЛПН СЪЩЛЕ):

дПЛХНЕОФБГЙС тПВЕТФБ уФЕКФПОБ (Robert Stayton) ПВ ЙУРПМШЪПЧБОЙЙ УФЙМЕК, НПДХМШОЩИ ДПЛХНЕОФПЧ Й УУЩМПЛ НЕЦДХ ОЙНЙ.

XML в 10 тезисах

OWL, язык веб-онтологий. Перевод: Дмитрий Щербина, 2004.
OWL Web Ontology Language. W3C Recommendation, 10 February 2004.

Операционная система Интернет-масштаба. Перевод: Роман Мамедов, февраль 2002.
The Worldwide Computer. By John Kubiatowicz & David P. Anderson. In Scientific American, March 2002. (Версия для печати)
Примечание: лишь первая страница оригинальной статьи доступна бесплатно в он-лайн.

XML в 10 тезисах. Перевод: Василь Ярошевич, декабрь 2001.
XML в 10 тезисах. Перевод: Александр Савенков, ноябрь 2001.
XML in 10 points. By Bert Bos. At W3C XML Homepage, March 1999.

Linux.yaroslavl.ru

Информация о DocBook/XML 4.1.2
Пред. Принципы создания документов для ALT Linux Team Documentation След.

Информация о DocBook /XML 4.1.2

DocBook /XML 4.1.2 — это описание типа документа (DTD) для языка XML, разработанное для создания документации.

Ссылки на информацию по XML (на русском языке):

Переводы В. Ярошевича статей об XML и не только;

Новости XML и ресурсы для разработчиков на xmlhack.ru;

Страница SGML Бориса Тоботраса. SGML — близкий родственник XML, поэтому многое на этой странице применимо и к XML. Интересна статья “SGML: с чем это едят?”;

Книги по XML (на русском языке):

Эрик Рэй ‘Изучаем XML’, оригинал издательства O’Reilly , перевод С. Маккавеева , издательство “Символ-Плюс”, ISBN 5-93286-023-5;

Н. Питц-Моултис, Ч. Кирк ‘XML Black Book’, оригинал издательства ‘The Coriolis Group’, перевод издательства “BHV — Санкт-Петербург”, ISBN 5-7791-0112-4;

Ссылки на информацию по XML (на английском языке):

Документы по XML на W3C. Свободно владеющим английским языком тут раздолье, поэтому больше ссылок можно не указывать 🙂

Ссылки на информацию по Docbook (на русском языке):

Перевод статьи ‘Написание документации, часть III: DocBook /XML ’ на сайте русской версии ‘Linux Gazette’;

Ссылки на информацию по Docbook (на английском языке):

Правила синтаксиса XML

Правила синтаксиса XML крайне просты и логичны. Их легко запомнить и легко использовать.

Все XML элементы должны иметь закрывающий тег

В HTML некоторые элементы могут не иметь закрывающего тега:

В XML нельзя опускать закрывающий тег. Абсолютно все элементы должны закрываться:

Возможно, вы заметили из предыдущих примеров, что XML декларация не имеет закрывающего тега. Это не ошибка. Дело в том, что декларация не относится к XML документу, поэтому у нее и нет закрывающего тега.

Теги XML регистрозависимы

Теги XML являются регистрозависимыми. Так, тег не то же самое, что тег .

Открывающий и закрывающий теги должны определяться в одном регистре:

Замечание: «Открывающий и закрывающий теги» иногда еще называют «начальный и конечный теги». Используйте то определение, которое вам более симпатично. По сути это одно и то же.

XML элементы должны соблюдать корректную вложенность

В HTML иногда можно наблюдать такую картину:

и иногда это даже работает должным образом.

В XML все элементы обязаны соблюдать корректную вложенность:

Понятие «корректная вложенность» по отношению к приведенным примерам просто означает, что так как элемент открывается внутри элемента , то и закрываться он должен внутри элемента .

У XML документа должен быть корневой элемент

XML документ должен содержать один элемент, который будет родительским для всех других элементов. Он называется корневым элементом.

XML пролог


Следующая строка называется XML прологом:

XML пролог необязателен. Но если он есть, то это должна быть первая строка XML документа.

В XML документе могут присутствовать международные символы, вроде русских букв, и чтобы не возникало ошибок необходимо указать кодировку, либо сохранить XML файл в формате UTF-8.

UTF-8 — кодировка XML документов по умолчанию.

Значения XML атрибутов должны заключаться в кавычки

Так же, как и в HTML, у XML элементов могут быть атрибуты в виде пары имя/значение.

В XML значения атрибутов должны заключаться в кавычки.

Посмотрите на следующие два примера XML документа. Первый с ошибкой, второй написан правильно:

Ошибка в первом XML документе заключается в том, что значение атрибута date элемента note не заключено в кавычки.

Сущности

Некоторые символы в XML имеют особые значения.

Если вы поместите, например, символ « > больше, чем & & амперсанд ‘ ‘ апостроф « « кавычки

Замечание: Только символы » » допустим, но лучше его всегда заменять на сущность.

Комментарии в XML

Синтаксис комментариев в XML такой же, как и в HTML.

Использование двух символов тире в середине комментария не допустимо.

Странно, но так можно:

В XML пробелы сохраняются

В HTML несколько последовательных пробельных символов усекаются до одного. В XML документе все пробельные символы сохраняются.

В XML новая строка сохраняется как LF

В приложениях Windows новая строка хранится в следующем виде: символ перевода каретки и символ новой строки (CR+LF).

Unix и Mac OSX используют LF.

Старые Mac системы используют CR.

XML сохраняет новую строку как LF.

Синтаксически верный XML документ

Если XML документ составлен в соответствии с приведенными синтаксическими правилами, то говорят, что это «синтаксически верный» XML документ.

Визуализация Xml-документов

Думаю, для многих не секрет, что xml является достаточно удобным способом хранения и передачи информации. Вот уже который раз натыкаюсь в литературе на утверждение, что в будущем xml должен заменить html, а появление xhtml является тому подтверждением. Но тут есть нюанс. все браузеры знают как отображать html-документы, но ни один из них не знает, как должны отображаться xml-документы. Это связано прежде всего с тем, что формируя xml-документ Вы можете ввести свои теги. Я хочу коротко (это очень большая тема, на самом деле) рассказать о так называемых «Таблицах преобразований xml-документов».
Думаю, что многие наверняка знакомы с ними, но надеюсь что кому-то это может быть полезно, а, учитывая мою любовь к практике, хочу показать всё на очень простом примере

Что мы имеем

  1. Это заголовок Xml-документа
  2. Habrahabr.ru
  3. В Хабрахабр заложена модель совместного творчества людей. Это
  4. универсальное средство для всех представителей нового поколения
  5. средств массовой информации.
  6. Bash.org.ru
  7. Вы добавляете цитату. После этого цитата попадает в Бездну, где
  8. ее могут увидеть и проголосовать за нее наши посетители, читающие
  9. сей суровый раздел.

Если мы попробуем просмотреть его в браузере, то увидим нечто подобное:

Существует несколько способов визуализировать содержимое этого документа.
К нему можно подключить обычную таблицу стилей (css-файл) или таблицу преобразований.
Таблица преобразований представляет из себя xml-документ, оформленный по определённым правилам и имеющий расширение .xslt.

XML для начинающих

Примечание: Мы стараемся как можно оперативнее обеспечивать вас актуальными справочными материалами на вашем языке. Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Просим вас уделить пару секунд и сообщить, помогла ли она вам, с помощью кнопок внизу страницы. Для удобства также приводим ссылку на оригинал (на английском языке).

Вероятно, вы слышали о языке XML и вам известно множество причин, по которым его необходимо использовать в вашей организации. Но что именно представляет собой XML? В этой статье объясняется, что такое XML и как он работает.

В этой статье

Пометки, разметка и теги

Чтобы понять XML, полезно вспомнить о том, как можно помечать данные. Документы создавались людьми в течение многих столетий, и на протяжении всего этого времени люди делали в них пометки. Например, учителя часто делают пометки в работах учащихся, указывая на необходимость переместить абзацы, сделать предложение более ясным, исправить орфографические ошибки и т. д. Посредством пометок в документе можно определить структуру, смысл и внешний вид информации. Если вы когда-либо использовали исправления в Microsoft Office Word, то вы знакомы с компьютеризованной формой добавления пометок.

В мире информационных технологий термин «пометка» превратился в термин «разметка». При разметке используются коды, называемые тегами (или иногда токенами), для определения структуры, визуального оформления и — в случае XML — смысла данных.

Текст этой статьи в формате HTML является хорошим примером применения компьютерной разметки. Если в Microsoft Internet Explorer щелкнуть эту страницу правой кнопкой мыши и выбрать команду Просмотр HTML-кода, вы увидите читаемый текст и теги HTML, например

. В HTML- и XML-документах теги легко распознать, поскольку они заключены в угловые скобки. В исходном тексте этой статьи теги HTML выполняют множество функций, например определяют начало и конец каждого абзаца (

) и местоположение рисунков.

Отличительные черты XML

Документы в форматах HTML и XML содержат данные, заключенные в теги, но на этом сходство между двумя языками заканчивается. В формате HTML теги определяют оформление данных — расположение заголовков, начало абзаца и т. д. В формате XML теги определяют структуру и смысл данных — то, чем они являются.

При описании структуры и смысла данных становится возможным их повторное использование несколькими способами. Например, если у вас есть блок данных о продажах, каждый элемент в котором четко определен, то можно загрузить в отчет о продажах только необходимые элементы, а другие данные передать в бухгалтерскую базу данных. Иначе говоря, можно использовать одну систему для генерации данных и пометки их тегами в формате XML, а затем обрабатывать эти данные в любых других системах вне зависимости от клиентской платформы или операционной системы. Благодаря такой совместимости XML является основой одной из самых популярных технологий обмена данными.

Учитывайте при работе следующее:

HTML нельзя использовать вместо XML. Однако XML-данные можно заключать в HTML-теги и отображать на веб-страницах.

Возможности HTML ограничены предопределенным набором тегов, общим для всех пользователей.

Правила XML разрешают создавать любые теги, требуемые для описания данных и их структуры. Допустим, что вам необходимо хранить и совместно использовать сведения о домашних животных. Для этого можно создать следующий XML-код:

Как видно, по тегам XML понятно, какие данные вы просматриваете. Например, ясно, что это данные о коте, и можно легко определить его имя, возраст и т. д. Благодаря возможности создавать теги, определяющие почти любую структуру данных, язык XML является расширяемым.

Но не путайте теги в данном примере с тегами в HTML-файле. Например, если приведенный выше текст в формате XML вставить в HTML-файл и открыть его в браузере, то результаты будут выглядеть следующим образом:

Izzy Siamese 6 yes no Izz138bod Colin Wilcox

Веб-браузер проигнорирует теги XML и отобразит только данные.

Мастер Йода рекомендует:  Как защитить веб-приложение основные советы, инструменты, полезные ссылки

Правильно сформированные данные


Вероятно, вы слышали, как кто-то из ИТ-специалистов говорил о «правильно сформированном» XML-файле. Правильно сформированный XML-файл должен соответствовать очень строгим правилам. Если он не соответствует этим правилам, XML не работает. Например, в предыдущем примере каждый открывающий тег имеет соответствующий закрывающий тег, поэтому в данном примере соблюдено одно из правил правильно сформированного XML-файла. Если же удалить из файла какой-либо тег и попытаться открыть его в одной из программ Office, то появится сообщение об ошибке и использовать такой файл будет невозможно.

Правила создания правильно сформированного XML-файла знать необязательно (хотя понять их нетрудно), но следует помнить, что использовать в других приложениях и системах можно лишь правильно сформированные XML-данные. Если XML-файл не открывается, то он, вероятно, неправильно сформирован.

XML не зависит от платформы, и это значит, что любая программа, созданная для использования XML, может читать и обрабатывать XML-данные независимо от оборудования или операционной системы. Например, при применении правильных тегов XML можно использовать программу на настольном компьютере для открытия и обработки данных, полученных с мейнфрейма. И, независимо от того, кто создал XML-данные, с ними данными можно работать в различных приложениях Office. Благодаря своей совместимости XML стал одной из самых популярных технологий обмена данными между базами данных и пользовательскими компьютерами.

В дополнение к правильно сформированным данным с тегами XML-системы обычно используют два дополнительных компонента: схемы и преобразования. В следующих разделах описывается, как они работают.

Схемы

Не пугайтесь термина «схема». Схема — это просто XML-файл, содержащий правила для содержимого XML-файла данных. Файлы схем обычно имеют расширение XSD, тогда как для файлов данных XML используется расширение XML.

Схемы позволяют программам проверять данные. Они формируют структуру данных и обеспечивают их понятность создателю и другим людям. Например, если пользователь вводит недопустимые данные, например текст в поле даты, программа может предложить ему исправить их. Если данные в XML-файле соответствуют правилам в схеме, для их чтения, интерпретации и обработки можно использовать любую программу, поддерживающую XML. Например, как показано на приведенном ниже рисунке, Excel может проверять данные на соответствие схеме CAT.

Схемы могут быть сложными, и в данной статье невозможно объяснить, как их создавать. (Кроме того, скорее всего, в вашей организации есть ИТ-специалисты, которые знают, как это делать.) Однако полезно знать, как выглядят схемы. Следующая схема определяет правила для набора тегов . :

Не беспокойтесь, если в примере не все понятно. Просто обратите внимание на следующее:

Строковые элементы в приведенном примере схемы называются объявлениями. Если бы требовались дополнительные сведения о животном, например его цвет или особые признаки, то специалисты отдела ИТ добавили бы к схеме соответствующие объявления. Систему XML можно изменять по мере развития потребностей бизнеса.

Объявления являются мощным средством управления структурой данных. Например, объявление означает, что теги, такие как и
, должны следовать в указанном выше порядке. С помощью объявлений можно также проверять типы данных, вводимых пользователем. Например, приведенная выше схема требует ввода положительного целого числа для возраста кота и логических значений (TRUE или FALSE) для тегов ALTERED и DECLAWED.

Если данные в XML-файле соответствуют правилам схемы, то такие данные называют допустимыми. Процесс контроля соответствия XML-файла данных правилам схемы называют (достаточно логично) проверкой. Большим преимуществом использования схем является возможность предотвратить с их помощью повреждение данных. Схемы также облегчают поиск поврежденных данных, поскольку при возникновении такой проблемы обработка XML-файла останавливается.

Преобразования

Как говорилось выше, XML также позволяет эффективно использовать и повторно использовать данные. Механизм повторного использования данных называется преобразованием XSLT (или просто преобразованием).

Вы (или ваш ИТ-отдел) можете также использовать преобразования для обмена данными между серверными системами, например между базами данных. Предположим, что в базе данных А данные о продажах хранятся в таблице, удобной для отдела продаж. В базе данных Б хранятся данные о доходах и расходах в таблице, специально разработанной для бухгалтерии. База данных Б может использовать преобразование, чтобы принять данные от базы данных A и поместить их в соответствующие таблицы.

Сочетание файла данных, схемы и преобразования образует базовую систему XML. На следующем рисунке показана работа подобных систем. Файл данных проверяется на соответствие правилам схемы, а затем передается любым пригодным способом для преобразования. В этом случае преобразование размещает данные в таблице на веб-странице.

В следующем примере представлено преобразование, которое загружает данные в таблицу на веб-странице. Суть примера не в том, чтобы объяснить, как создавать преобразования, а в том, чтобы показать одну из форм, которую они могут принимать.

В этом примере показано, как может выглядеть текст одного из типов преобразования, но помните, что вы можете ограничиться четким описанием того, что вам нужно от данных, и это описание может быть сделано на вашем родном языке. Например, вы можете пойти в отдел ИТ и сказать, что необходимо напечатать данные о продажах для конкретных регионов за последние два года, и что эти сведения должны выглядеть так-то и так-то. После этого специалисты отдела могут написать (или изменить) преобразование, чтобы выполнить вашу просьбу.

Корпорация Майкрософт и растущее число других компаний создают преобразования для различных задач, что делает использование XML еще более удобным. В будущем, скорее всего, можно будет скачать преобразование, отвечающее вашим потребностям без дополнительной настройки или с небольшими изменениями. Это означает, что со временем использование XML будет требовать все меньше и меньше затрат.

XML в системе Microsoft Office

Профессиональные выпуски Office обеспечивают расширенную поддержку XML. Начиная с 2007 Microsoft Office System, Microsoft Office использует форматы файлов на основе XML, например DOCX, XLSX и PPTX. Так как XML хранит данные в текстовом формате, а не в собственном двоичном формате, клиенты могут определять собственные схемы и использовать ваши данные разными способами, без необходимости платить ройалтиес. Дополнительные сведения о новых форматах см. в статье форматы Open XML и расширения имен файлов. Ниже приведены другие преимущества.

Меньший размер файлов. Новый формат использует ZIP и другие технологии сжатия, поэтому размер файла на 75 процентов меньше, чем в двоичных форматах, применяемых в более ранних версиях Office.

Более простое восстановление данных и повышенная безопасность. XML — это читаемость, поэтому если файл поврежден, вы можете открыть его в Microsoft Notepad или в другом текстовом средстве чтения и восстановить по крайней мере часть ваших данных. Кроме того, новые файлы более безопасны, поскольку они не могут содержать код Visual Basic для приложений (VBA). Если для создания шаблонов используется новый формат, все элементы ActiveX и макросы VBA располагаются в отдельном, более безопасном разделе файла. Кроме того, для удаления личных данных можно использовать инструменты, такие как инспектор документов. Дополнительные сведения об использовании инспектора документов см. в статье Удаление скрытых и персональных данных путем проверки документов.

Все это замечательно, но что делать, если у вас есть XML-данные без схемы? Это зависит от того, какую программу Office вы используете. Например, при открытии XML-файла без схемы в приложении Excel оно предполагает, что схема существует, и дает возможность загрузить данные в XML-таблицу. Вы можете использовать XML-списки и таблицы для сортировки, фильтрации и вычисления данных.

Включение средств XML в Office

По умолчанию вкладка «Разработчик» не отображается. Ее необходимо добавить на ленту для использования команд XML в Office.

В Office 2020, Office 2013 или Office 2010: Отображение вкладки «Разработчик».

Основы XML для начинающих пользователей

Введение в правильную разметку

XML означает Extensible Markup Language, с акцентом на markup (разметка). Вы можете создавать текст и размечать его при помощи обрамляющих тегов, превращая каждое слово, предложение или фрагмент в идентифицируемую, сортируемую информацию. Создаваемые вами файлы, или экземпляры документа, состоят из элементов (тегов) и текста, причем элементы помогают правильно понимать документ при чтении на бумаге или даже обрабатывать его в электронном виде. Чем больше описательных элементов, тем больше частей документа можно идентифицировать. С первых дней существования разметки одно из ее преимуществ заключается в том, что в случае потери компьютерной системы распечатанные данные все равно остаются читабельными благодаря тегам.

Языки разметки прошли путь от первых форм, создаваашихся компаниями и госучреждениями, до Стандартного языка обобщенной разметки (Standard Generalized Markup Language — SGML), Гипертекстового языка разметки (Hypertext Markup Language — HTML) и в конечном итоге до XML. SGML может показаться сложным, а HTML (который, по сути, сначала был просто набором элементов) оказался недостаточно мощным для идентификации информации. XML разрабатывался как простой в применении и удобный для расширения язык разметки.

В XML можно создавать свои собственные элементы, что позволяет точно представлять фрагменты данных. Документы можно не просто разделять на абзацы и заголовки, но и выделять любые фрагменты внутри документа. Чтобы это было эффективно, нужно определить конечный перечень своих элементов и придерживаться его. Элементы можно определять в Описании типа документа (Document Type Definition — DTD) или в схеме, что будет кратко обсуждено ниже. Когда вы освоите и начнете использовать XML, не бойтесь экспериментировать с именами элементов, создавая реальные файлы.

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

Как уже упоминалось, файлы XML состоят из текста и разметки. Большая часть текста помещается в элементы, в которых текст окружен тегами. Например, допустим, нужно создать поваренную книгу в формате XML. У нас есть рецепт под названием Ice Cream Sundae, который нужно преобразовать в XML. Чтобы разметить название рецепта, заключим его текст в элемент, который начинается и заканчивается тегами. Этот элемент можно назвать recipename . Чтобы отметить начальный тег элемента, поместим его имя в угловые скобки <> ), вот так: . Затем введем текст Ice Cream Sundae . После текста поставим замыкающий тег, который представляет собой имя элемента в угловых скобках, плюс косая черта завершения элемента ( / ) перед именем элемента, вот так: . Эти теги образуют элемент, в который можно вводить текст и даже другие элементы.

Имена элементов можно создавать как для отдельных документов, так и для групп документов. В соответствии с вашими требованиями можно указать правила, которые должны соблюдаться для элементов. Элементы могут быть строго специальными или достаточно общими. Правила должны также определять, что допустимо включать в каждый элемент. Они могут быть строгими, свободными или промежуточными. Просто создайте элементы, определяющие те части вашего документа, которые, на ваш взгляд, важны.

Начало создания файла XML

Первой строкой документа XML может быть декларация XML. Эта необязательная часть файла определяет его как файл XML, что может помочь автоматическим инструментам и людям распознавать файл как XML, а не SGML или другой способ разметки.

Декларация может выглядеть просто как или включать версию XML ( ) и даже кодировку символов, например, для Unicode. Поскольку эта декларация должна находиться в самом начале файла, если вы планируете комбинировать мелкие XML-файлы в более крупный файл, этот необязательный элемент лучше пропустить.

Создание корневого элемента

Начальный и замыкающий теги корневого элемента окружают весь текст XML-документа. В файле должен присутствовать только один корневой элемент, и это необходимая «обложка» для него. В листинге 1 показан фрагмент примера, который я здесь использую, с корневым элементом (рецепт). (Полный файл XML приведен в Загрузках.)

Листинг 1. Корневой элемент

По мере создания своего документа вы будете размещать текст и дополнительные теги между и .

Наименования элементов

Соблюдение регистра в тегах

При создании XML регистры начального и конечного тегов должны совпадать. В противном случае можно получить сообщение об ошибке при использовании или просмотре XML. Например, Internet Explorer не отображает текст в случае несовпадения регистров. Вместо этого он выводит сообщения о несовпадении начального и конечного тегов.

Итак, у нас есть корневой элемент . В XML сначала выбираются имена элементов, а затем на основе этих имен определяется соответствующее описание DTD или схема. Имена могут содержать буквы, цифры и специальные знаки, такие как знак подчеркивания ( _ ). Вот несколько правил об именах, которые нужно помнить:

  • Пробелы в именах элементов не допускаются.
  • Имена должны начинаться с буквы, а не с цифры или знака. (После этой первой буквы можно использовать любую комбинацию из букв, цифр и допустимых символов.)
  • Регистр не имеет значения, но во избежание путаницы соблюдайте его.

В предыдущем примере, если мы добавили элемент с именем , то его начальным тегом должен быть , а соответствующим замыкающим тегом — .

Листинг 2. Другие элементы

XML-документ может содержать пустые теги, внутри которых ничего нет и которые могут выражаться одним тегом, а не парой из открывающего и замыкающего тегов. Например, это может быть самостоятельный тег в стиле HTML . Он не содержит никаких дочерних элементов или текста, так что это пустой элемент, и его можно записать как (с пробелом и знакомой замыкающей косой чертой в конце).

Мастер Йода рекомендует:  PHP в примерах PHP

Вложение элементов

Вложение— это размещение элементов внутри других элементов. Эти новые элементы называются дочерними элементами, а элементы, которые их окружают, — их родительскими элементами. В листинге 3 в корневой элемент вложено несколько элементов. Это вложенные дочерние элементы , и

Добавление атрибутов

К элементам иногда добавляются Атрибуты. Атрибуты состоят из пары имя-значение, где значение берется в двойные кавычки ( » ), вот так: type=»dessert» . Атрибуты позволяют сохранять вместе с элементом дополнительные параметры, меняя значения этих параметров от элемента к элементу в одном и том же документе.


Атрибут —или даже несколько атрибутов —указывается внутри начального тега элемента: . При добавлении нескольких атрибутов они разделяются пробелами: . В листинге 4 показан файл XML, как он выглядит теперь.

Листинг 4. Наш файл XML с элементами и атрибутами

Можно использовать любое количество атрибутов. Подумайте, какие подробности можно добавить в ваш документ. Атрибуты особенно полезны, если документы будут храниться —например, по типу рецептов. Имена атрибутов могут содержать такие же символы, что и имена элементов, с теми же правилами исключения пробелов и начала имени с буквы.

Правильно и неправильно построенный XML

Если вы следуете правилам, определенным в вашей структуре, вы сможете легко создавать правильно построенный код XML. Правильный XML— это код XML, составленный с соблюдением всех правил XML: правильное именование элементов, вложение, именование атрибутов и т.п.

В зависимости от того, что именно вы делаете с XML, вам может понадобиться работа с правильно построенным XML. Рассмотрим приведенный выше пример сортировки по типу рецептов. Нужно, чтобы элементы содержали атрибут type . Очень важно иметь возможность успешно проверить код и гарантировать постоянное присутствие значения этого атрибута.

Под проверкой (validation) понимается проверка структуры документа на соответствие установленным для нее правилам и определению дочерних элементов для каждого родительского элемента. Эти правила определяются в Описании типа документа (DTD) или в схеме. Для такой проверки требуется создать DTD или схему, а затем давать ссылку на файл DTD или схемы в своих XML-файлах.

Чтобы разрешить проверку, нужно ближе к началу своих XML-документов поместить декларацию типа документа ( DOCTYPE ). Эта строка содержит ссылку на DTD или схему (перечень элементов и правил), которая будет использоваться для проверки данного документа. Строка DOCTYPE может быть примерно такой, как в листинге 5.

Листинг 5. DOCTYPE

Этот пример означает, что ваш файл списка элементов с именем filename.dtd находится в вашем компьютере (то есть в каталоге SYSTEM , а не в общем каталоге PUBLIC ).

Использование сущностей

Сущности (entity)могут представлять собой фрагменты текста или специальные символы. Они могут указываться внутри документа или вне его. Во избежание ошибок и для правильности отображения сущности должны быть надлежащим образом объявлены и выражены.

Нельзя вводить специальные символы прямо в текст. Для использования в тексте специальных символов их нужно сделать сущностями и использовать коды этих символов. В качестве сущностей можно определить фразы, такие как название компании, а затем использовать их по всему тексту. Чтобы создать сущность, назначьте ей имя и вставляйте это имя и вставляйте это имя в текст после знака амперсанда ( & ) и заканчивая точкой с запятой — например, &coname; (или другое имя). Затем укажите этот код в своей строке DOCTYPE в квадратных скобках( [] ), как в листинге 6. Этот код определяет текст, который подставляется вместо сущности.

Листинг 6. Сущность

Использование сущностей помогает избежать многократного повторения одной и той же фразы или информации. Оно может также облегчить редактирование текста (например, если компания изменит название) сразу во многих местах с помощью простой настройки строки определения сущности.

Как избежать ошибок

Пока вы учитесь создавать XML-файлы, открывайте их в редакторе XML, чтобы удостовериться в их формальной правильности и убедиться, что правила XML соблюдены. Например, если у вас Windows® Internet Explorer®, вы можете просто открыть свой файл XML в браузере. Если ваши элементы, атрибуты и текст отображаются, значит файл XML составлен правильно. Если же присутствуют ошибки, вероятно, вы что-то напутали в синтаксисе, и вам нужно тщательно проверить свой документ на опечатки или пропуски тегов и знаков пунктуации.

Как упоминалось в разделе Вложение элементов, элемент, содержащий другой элемент, называетя родителем этого вложенного элемента. В приведенном ниже примере является корневым элементом и содержит весь текст файла. В этот родительский элемент вложены дочерние элементы , , и другие. Такая структура делает , и дочерними элементами. Не забывайте правильно вкладывать эти дочерние элементы. В листинге 7 приведен пример правильно построенного XML-документа с правильным вложением элементов.

Листинг 7. Правильно построенный документ XML

Примечание: Разрывы строк облегчают чтение кода, не влияют на сам XML.

Можно поэкспериментировать с тестовыми файлами и подвигать начальные и конечные теги, чтобы познакомиться с сообщениями об ошибках.

Проверка XML

На рисунке 1 показан XML-документ, элементы которого отображаются без сбоев в Internet Explorer. Текст обрамляют открывающий и замыкающий теги. Рядом с родительскими элементами расположены значки плюс ( + ) и минус( — ), которые позволяют убрать внутрь элементов все вложенные в них элементы (их потомков).

Рисунок 1. Пример файла XML со свернутыми потомками

Заключение

Усвоив несколько простых правил, вы можете гибко разрабатывать собственные элементы XML и их атрибуты. Правила XML не сложны. Набирать XML-документ тоже несложно. Главное — понять, что вы хотите от документов в смысле возможностей сортировки и поиска, а затем разработать элементы и атрибуты для удовлетворения этих требований.

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

Ресурсы для скачивания

  • этот контент в PDF
  • Пример исходного кода (example.zip | 2KБ)

Похожие темы

  • Оригинал статьи (EN).
  • Статьи на тему XML в Wikipedia: подробнее об XML.
  • Руководства по XML на сайте W3 Schools: от основ XML — к JavaScript и другим, более сложным предметам.
  • Спецификация XML от World W >

Комментарии

Войдите или зарегистрируйтесь для того чтобы оставлять комментарии или подписаться на них.

I. Коротко об XML¶

Введение в XML¶

XML ( англ. eXtensible Markup Language) — расширяемый язык разметки, предназначенный для хранения и передачи данных.

Простейший XML-документ выглядит следующим образом:

Первая строка — это XML декларация. Здесь определяется версия XML (1.0) и кодировка файла. На следующей строке описывается корневой элемент документа (открывающий тег). Следующие 4 строки описывают дочерние элементы корневого элемента ( title , author , year , price ). Последняя строка определяет конец корневого элемента (закрывающий тег).

Документ XML состоит из элементов (elements). Элемент начинается открывающим тегом (start-tag) в угловых скобках, затем идет содержимое (content) элемента, после него записывается закрывающий тег (end-teg) в угловых скобках.

Элементы могут содержать атрибуты, так, например, открывающий тег lang=»en»> имеет атрибут lang , который принимает значение en . Значения атрибутов заключаются в кавычки (двойные или ординарные).

Некоторые элементы, не содержащие значений, допустимо записывать без закрывающего тега. В таком случае символ / ставится в конце открывающего тега:

Структура XML¶

XML документ должен содержать корневой элемент. Этот элемент является «родительским» для всех других элементов.

Все элементы в XML документе формируют иерархическое дерево. Это дерево начинается с корневого элемента и разветвляется на более низкие уровни элементов.

Все элементы могут иметь подэлементы (дочерние элементы):

Правила синтаксиса (Валидность)¶

Структура XML документа должна соответствовать определенным правилам. XML документ отвечающий этим правилам называется валидным (англ. Valid — правильный) или синтаксически верным. Соответственно, если документ не отвечает правилам, он является невалидным .


Основные правила синтаксиса XML:

  1. Теги XML регистрозависимы — теги XML являются регистрозависимыми. Так, тег не то же самое, что тег .

Открывающий и закрывающий теги должны определяться в одном регистре:

  1. XML элементы должны соблюдать корректную вложенность:
  1. У XML документа должен быть корневой элемент — XML документ должен содержать один элемент, который будет родительским для всех других элементов. Он называется корневым элементом.
  1. Значения XML атрибутов должны заключаться в кавычки:

Сущности¶

Некоторые символы в XML имеют особые значения и являются служебными. Если вы поместите, например, символ внутри XML элемента, то будет сгенерирована ошибка, так как парсер интерпретирует его, как начало нового элемента.

В примере ниже будет сгенерирована ошибка, так как в значении «ООО » атрибута НаимОрг содержатся символы и > .

Также ошибка будет сгенерирована и в слудющем примере, если название организации взять в обычные кавычки (английские двойные):

Чтобы ошибки не возникали, нужно заменить символ на его сущность. В XML существует 5 предопределенных сущностей:

Таблица I.1 — Сущности ¶

Сущность Символ Значение
меньше, чем
> > больше, чем
& & амперсанд
апостроф
« « кавычки

Только символы и & строго запрещены в XML. Символ > допустим, но лучше его всегда заменять на сущность.

Таким образом, корректными будут следующие формы записей:

В последнем примере английские двойные кавычки заменены на французские кавычки («ёлочки»), которые не являются служебными символами.

Поиск информации в XML файлах (XPath)¶

XPath ( англ. XML Path Language) — язык запросов к элементам XML-документа. XPath расширяет возможности работы с XML.

XML имеет древовидную структуру. В документе всегда имеется корневой элемент (инструкция version=”1.0”?> к дереву отношения не имеет). У элемента дерева всегда существуют потомки и предки, кроме корневого элемента, у которого предков нет, а также тупиковых элементов (листьев дерева), у которых нет потомков. Каждый элемент дерева находится на определенном уровне вложенности (далее — «уровень»). У элементов на одном уровне бывают предыдущие и следующие элементы.

Это очень похоже на организацию каталогов в файловой системе, и строки XPath, фактически, — пути к «файлам» — элементам. Рассмотрим пример списка книг:

XPath запрос /bookstore/book/price вернет следующий результат:

Сокращенная форма этого запроса выглядит так: //price .

С помощью XPath запросов можно искать информацию по атрибутам. Например, можно найти информацию о книге на итальянском языке: //title[@lang=»it»] вернет lang=»it»>Everyday Italian .

Чтобы получить больше информации, необходимо модифицировать запрос //book[title[@lang=»it»]] вернет:

В приведенной ниже таблице представлены некоторые выражения XPath и результат их работы:

Таблица I.2 — Выражения XPath ¶

Выражение XPath Результат
/bookstore/book[1] Выбирает первый элемент book , который является потомком элемента bookstore
/bookstore/book[position() Выбирает первые два элемента book , которые являются потомками элемента bookstore
//title[@lang] Выбирает все элементы title с атрибутом lang
//title[@lang=’en’] Выбирает все элементы title с атрибутом lang , который имеет значение en
/bookstore/book[price>35.00] Выбирает все элементы book , которые являются потомками элемента bookstore и которые содержать элемент price со значением больше 35.00
/bookstore/book[price>35.00]/title Выбирает все элементы title элементов book элементов bookstore , которые содержать элемент price со значением больше 35.00

Кодировки¶

И еще один важный момент, который стоит рассмотреть — кодировки. Существует множество кодировок, о них подробнее можно прочитать в статье Набор символов.

Самыми распространенными кириллическими кодировками являются Windows-1251 и UTF-8 . Последняя является одним из стандартов, но большая часть ФНС отчетности имеет кодировку Windows-1251 .

В XML файле кодировка объявляется в декларации:

Часто можно столкнуться с ситуацией, когда текстовый редаткор некорректно распознает кодировку и отображает кракозябры. В такой случае, необходимо выбрать кодировку вручную, для этого выполните:

Таблица I.3 — Смена кодировки в разных программах ¶

Программа Кодировка
Notepad++ «Документ → Кодировка»
Geany «Документ → Установить кодировку»
Firefox «Вид → Кодировка»
Chrome «Настройка → Дополнительные инструменты → Кодировка»

В большинстве случаев при работе с русскоязычными файлами помогает переключение кодировки на Windows-1251 или UTF-8 . Если все равно не удается прочитать содержимое XML документа, стоит открыть его в Mozilla Firefox, он отлично распознает кодировки.

Если ничего не помогает, вполне возможно, что файл был поврежден.

XSD схема¶

XML Schema — язык описания структуры XML-документа, его также называют XSD. Как большинство языков описания XML, XML Schema была задумана для определения правил, которым должен подчиняться документ. Но, в отличие от других языков, XML Schema была разработана так, чтобы её можно было использовать в создании программного обеспечения для обработки документов XML.

После проверки документа на соответствие XML Schema читающая программа может создать модель данных документа, которая включает:

  • словарь (названия элементов и атрибутов);
  • модель содержания (отношения между элементами и атрибутами и их структура);
  • типы данных.

Каждый элемент в этой модели ассоциируется с определённым типом данных, позволяя строить в памяти объект, соответствующий структуре XML-документа. Языкам объектно-ориентированного программирования гораздо легче иметь дело с таким объектом, чем с текстовым файлом.

Подробнее об XSD смотрите:

Примером использования XSD cхем может служить электронная отчетность:

Форум Экспорт/импорт в XML

Я бы предложил экпорт/импорт сделать при помощи XML файла — очень удобная вещь, в XML можно засунуть всё что угодно. И тогда можно будет использовать эти данные в других местах, например можно сделать укороченную версию для pocketpc.

Dervish: Ничего, что я перевёл Ваше сообщение с транслита на русский? Я сделал это буквально.

Наверное, но одно плохо: я совсем не знаю формата XML и никогда с ним не сталкивался. Ладно, формат наверняка описан в MSDN, но как им правильно пользоваться, для меня — тёмный лес.

Преимущества следующие:
Во-первых, текстовый файл нужно парсить, а XML парсит готовая библиотека
Во-вторых, очень удобно при использовании древовидных описаний — скажем, агенты
Я уже больше двух лет использую только XML и скажу, что я очень доволен.

Dervish: Не нравятся мне дополнительные библиотеки. Обратите внимание, в Cash MFC не используется.

Действительно, для Windows уже есть готовая библиотека MSXMLParser (или как там его?). Действительно, в один файл очень органично можно загнать всю базу. Но!
Во-первых, скорость. Этот парсер дополнительно нагружает программу, когда самостоятельный парсинг csv-файла это даже не парсинг, так, баловство. Очень просто и быстро.
Во-вторых. На сколько увеличится программа?
В-третьих, совместимость. С какой версии IE он поставляется? Хорошо, если с 4-ой.


Первые два пункта — самые важные.

Dervish: Ну вот, всё правильно, мне, если честно, больше нечего добавить.

По скорости разницы никакой и скорость в данном случае не нужна, мы говорим об экспорте/импорте
В системе он встроен, но есть возможность его проставить
И для чего заботиться о размере программы, по моему этот вопрос актуален только на PocketPC.
А парсинг CSV это тоже не такая и простая вещь, там тоже есть свои подводные камни.

Dervish: Как это, зачем не заботиться о размере? ИМХО, чем больше размер, тем больше кода; чем больше кода, тем программа медленнее работает. Плюс, лично меня временами даже просто необходимость закачать 2-3 мегабайта с интернета просто напрягает.

Никакой разницы в скорости. Да ну. Скорость парсинга csv это преимущественно скорость чтения файла с диска, в остальном. Для XML это скорость чтения файла, разбор всех его деревьев и параметров, и общение через COM интерфейс. Тем более этот парсер от MS, значит ко всему этому можно прибавить еще 50% нагрузки. Скажу сразу, я не работал с этим парсером, но жалобы на скорость читал.

Так какие же подводные камни с csv. Там, по-моему, проще некуда.

Во-первых, значения полей, если внутри них есть разделители (напр. запятая) берутся в кавычки.
1, «Наличные, в кармане», 2

Во-вторых, проблем с » тоже нет. Если надо использовать » в поле, пишем «».
1, «Наличные, «»в»» кармане», 2

В-третьих, у Excel`я самого значения разделителей меняются от версии к версии. Так что. В Excel есть ручная настройка разбора csv, где самому можно указать какими символами пользоваться.

Ну да ладно, это так, к слову.

Насчет XML. Еслииспользовать XML для импорта данных с PocketPC, то этот формат подходит как нельзя лучше, ИМХО. Хотя нет. Можно использовать и родной формат. Но тут у XML есть свои преимущества.
Вообщем, я не имею ничего против (я даже за , когда речь идет об импорте с PocketPC). Только csv не настолько плох, как Вы его описали ))

По поводу транслита сожалею, но у меня ноутбук без русских букв, живу я тоже за границей.

По поводу XML-a, я сам программист, и с удовольствием помог бы ответить на вопросы по этомцу поводу.

Dervish: Вы не поверите: у меня тоже ноутбук и тоже без русских букв!

Мне интересно вот какая вещь: как именно XML может помочь общаться с PocketPC? У меня есть Cassiopeia, есть пакеты для программирования для неё, но, честно говоря я нигде в доках не видел, как именно она работает с XML.

И ещё один вопрос по PalmPC. Не приходилось ли Вам сталкиваться с написанием Active Channels for desktop под PalmPC?

XML я предлагал для импорта/экспорта.
XML поддержан по WinCE
Отсюда: я делаю всякие программки под CE, и планирую написать укороченный вариант программы, где можно было бы использовать счета, расходы, . из программы cash.
Укороченная версия — это версия где можно вносить расходы/приходы, но без анализа и всех наворотов. А потом всё что было введено на pocket pc, через тот же импорт/экспорт внести в cash — а ля синхронизовать.

Dervish: Замечательно. А не лучше ли будет сделать полноценную синхронизацию, встроенную в ActiveSync?

Вы ничего не сказали про каналы для Active Desktop (см. предыдущий пост).

Сергей, в XML ничего особенного нет, если рассматривать формат как таковой. Наверняка вы знакомы с HTML, а HTML является подмножеством XML.

Другое дело — интерфейс к парсеру XML. В разных системах программирования — разные парсеры, разные объекты/синтаксис и т.п.

Сам по себе формат НИЧЕГО не решает. Он не имеет никаких преимуществ перед CSV, если система (чужая) не знает, как интерпретировать структуру XML.

Пользоваться XML как хранилищем данных в пределах одной программы очень неэффективно. Необходимость в нем реально может возникнуть только при обмене данными с другими системами.

Dervish: CSV мне не нравится только одним: в нём приходится изворачиваться, чтоб представить иерархическую структуру. Я верно понимаю, что в XML такой проблемы нет? Но понятно одно, что если и делать поддержку этого языка, то библиотеками я пользоваться не буду, сам сделаю парсер для него.

Я говорю о том, что есть разные библиотеки-парсеры, а не об использовании ОДНОЙ библиотеки из разных языков.

MSXML — одна библиотека, в MS SQL 2000 — другая, в Oracle 9 — третья, на PHP — четвертая, на Perl — пятая и т.д.

Вы же не станете утверждать, что у всех этих парсеров одинаковые названия и параметры функций?

Сергей, я согласен с тем, что НЕЛЬЗЯ пытаться писать свой парсер, только время зря потеряете. MSXML 4 — замечательный, быстрый парсер с кучей возможностей. И совершенно бесплатный для разработчика и пользователей.

Dervish: Насчёт написать собственный парсер, это я конечно же погорячился. Скорее всего, я просто не буду делать поддержку XML, поскольку не вижу, в чём именно это сможет помочь пользователю. Для экпорта/импорта ИМХО вполне достаточно текстовых (и/или CSV) файлов.
Поддержка же PocketPC мне представляется очень и очень желательной, правда, стандартными средствами синхронизации. Это возможно, я уже знаком с механизамами работы ActiveSync и написанием драйверов (библиотек) для этой синхронизации.

Dervish, возможно, вы уже изучили проблему, но если нет, то вкратце об XML:
1. Самый краткий вариант: XML — это группы из открывающих и закрывающих тегов.
2. Отсюда — http://www.gribuser.ru/xml/fictionbook/xml_what_is_it2.0.html

И чуть подлинее — XML в 10 тезисах — http://www.raleigh.ru/XML/2001/10points.php , там, кстати, о плюсах последний пункт.

В общем, это просто базовый формат, чтобы «договориться». По большому счету — о формате раздута большая шумиха, написаны мегатонные парсеры, которые по дефолту стоят не везде.

Лично я думаю, любой программист сможет распрасить CSV стандартными средствами.

. я знаю что такое XML.

Мало того, часть исходников у меня сделано в XML и транслируется в С++ при помощи XSLT.

2) Преимущество номер два — стандартизованный механизм преобразования xml-файла во что-то другое. Трансформ и стайл-шит — легко пишутся. Это не программы, это описания преобразования/форматирования. Потом любой процессор (опять таки, хоть MSSQL, хоть явовский, хоть оракловский, хоть из php, хоть из линукса etc) автоматически преобразует любой файл, соответвующий данной схеме в html, csv, pdf и т.д. Либо в xml другой структуры. И, наоборот xml другой структуры в данную, понимаемую Cash. Зачем? Масса применений. Сколько бы Вы не добавляли форм отчетов и графиков в программу, всех возможных вариаций все равно не охватить. Всю возможную аналитику не прикрутить.
3) Преимущество номер три — стандартизованный механизм запросов к данным. Вот есть у вас csv с данными из программы. Назовите средство, имеющееся в наличии на наладоннике, которое позволяет выбрать все данные, для которых число в третьем поле не более чем в два раза меньше числа в седьмом, и отосртировать результаты по восьмому полю asc, потом по одинадцатому desc? Для xml есть стандартный язык запросов, понимаемый, опять таки любым процессором (. см. выше ).

Dervish: Аргументация ясна и понятна. Я подумаю, что можно будет сделать во второй версии. И огромное спасибо за то время, которое вы уделили этому сообщению.

Юрий, мне тоже все понятно, но пока я вижу, что автор занят более первостепенными задачами: реализацией новых и совершенствованием старых функций. Это нужно всем пользователям. Гипотетичекое применение XML, утяжеляющее программу и уводящее в сторону — это уже наворачивание огорода. Ясно, что на этом можно сделать утилиты и доп-программы, но вот мне например, простому учитывальщику домашниго бюджета по уши хватит 2й версии программы.
Единственное видимое применение — это наладонник, но, учитывая, что там вообще надо только два момента реализовать:
— закидывание скелета (счетов, агентов) в наладонник
— получение из наладонника операций,
ради этого париться с XML — чересчур муторно. Да, можно заюзать библиотеку, однако, вижу, у автора несколько иной стиль программирования. И хорошо, т. к. компоненты Дельфей да НЕТов все научились склеивать (и я тоже, кстати), а вот как автор попробуйте-ка.

P. S. Гистлер до сих пор пишет Тотал Командер в Дельфи 2 и переходить на высшие версии не собирается. В итоге мы имеем звездный продукт.

эта хрень не установлена в моем win 2000 prof RUS, где ее взять, чтобы доустановить, заранее сенкс

Dervish: Наверное она должна быть на сайте Microsoft. Хочу обратить ваше внимание, что в Cash пока нет импорта/экспорта в XML и, честно говоря, пока не планируется.

. это не благоприятно скажется на взломостойкости базы.

Повторюсь, я могу сделать экспорт в XML. Вот чего мне не хотелось бы делать (ввиду трудоёмкости), так это импорт из XML.

Строго говоря, взломостойкость базы без шифрации при незашифрованном коде программы весьма сомнительна.

Лично мне было бы достаточно выставить шифрацию файла базы на NTFS.

Что касается XML, то хотябы даже экспорт черезвычайно желателен.

Начал использовать AbilityCash (210) — понравилось. Спасибо.
Но все-таки хотелось бы вытащить свои данные в виде xml.

IMHO, нет смысла экспортировать данные СРАЗУ в формате OpenOffice. Задача должна быть разбита на два этапа:
1) Экспорт данных в xml-структуру наиболее целостную и непротиворечивую с текущей структурой внутренней базы AbilityCash (я имею в виду наличие различных «классификаторов» и операций классифицированных по ним). То есть это должно быть как-бы XML-представление тех струтур, которые вы используете для для работы самой AbilityCash. =) Теоретически можно попытаться воспользоваться каким нибудь xml-сериализатором, но не знаю как с этим делом обстоит у сишников =( есть ли такие библиотеки вообще.

2) Трансформация (XSLT) в формат OpenOffice.

BTW, полученная на выходе целостная xml-структура может быть использована и для генерации отчетов.

P.S. Решение второй задачи могу взять на себя. Будут вопросы — пишите.

. XML — наиболее вероятный кандидат на экспорт (и импорт). После Экселя, уже реализованного.

У Си-шников дело с XML обстоит неплохо: можно пользовать DOM, можно одну из огромного количества частных библиотек. В конце концов, можно ручками текстовый файл записать.

Проблема как раз не в экспорте. Проблема в импорте. Очень нудная обработка (возможных) ошибок и сообщения о них. а делать экспорт без соответствующего импорта, не уверен, что это будет хорошо.

йОЖПТНБГЙС П DocBook

DocBook љ— ЬФП ПРЙУБОЙЕ ФЙРБ ДПЛХНЕОФБ ( DTD ) ДМС СЪЩЛБ XML , ТБЪТБВПФБООПЕ ДМС УПЪДБОЙС ДПЛХНЕОФБГЙЙ.

уУЩМЛЙ ОБ ЙОЖПТНБГЙА РП XML (ОБ ТХУУЛПН СЪЩЛЕ):

рЕТЕЧПДЩ ч. сТПЫЕЧЙЮБ УФБФЕК ПВ XML Й ОЕ ФПМШЛП;

оПЧПУФЙ XML Й ТЕУХТУЩ ДМС ТБЪТБВПФЮЙЛПЧ ОБ xmlhack.ru;

уФТБОЙГБ SGML вПТЙУБ фПВПФТБУБ. SGML љ— ВМЙЪЛЙК ТПДУФЧЕООЙЛ XML , РПЬФПНХ НОПЗПЕ ОБ ЬФПК УФТБОЙГЕ РТЙНЕОЙНП Й Л XML . йОФЕТЕУОБ УФБФШС « SGML : У ЮЕН ЬФП ЕДСФ? »;

лОЙЗЙ РП XML (ОБ ТХУУЛПН СЪЩЛЕ):

ьТЙЛ тЬК « йЪХЮБЕН XML », ПТЙЗЙОБМ ЙЪДБФЕМШУФЧБ O’Reilly , РЕТЕЧПД у. нБЛЛБЧЕЕЧБ , ЙЪДБФЕМШУФЧП « уЙНЧПМ-рМАУ », ISBN 5-93286-023-5;

о. рЙФГ-нПХМФЙУ, ю. лЙТЛ « XML Black Book », ПТЙЗЙОБМ ЙЪДБФЕМШУФЧБ « The Coriolis Group », РЕТЕЧПД ЙЪДБФЕМШУФЧБ « BHVљ— уБОЛФ-рЕФЕТВХТЗ », ISBN 5-7791-0112-4;

уУЩМЛЙ ОБ ЙОЖПТНБГЙА РП XML (ОБ БОЗМЙКУЛПН СЪЩЛЕ):

дПЛХНЕОФЩ РП XML ОБ W3C . уЧПВПДОП ЧМБДЕАЭЙН БОЗМЙКУЛЙН СЪЩЛПН ФХФ ТБЪДПМШЕ, РПЬФПНХ ВПМШЫЕ УУЩМПЛ НПЦОП ОЕ ХЛБЪЩЧБФШ 🙂

уУЩМЛЙ ОБ ЙОЖПТНБГЙА РП Docbook (ОБ ТХУУЛПН СЪЩЛЕ):

рЕТЕЧПД УФБФШЙ « оБРЙУБОЙЕ ДПЛХНЕОФБГЙЙ, ЮБУФШ III: DocBook / XML » ОБ УБКФЕ ТХУУЛПК ЧЕТУЙЙ « Linux Gazette »;

уУЩМЛЙ ОБ ЙОЖПТНБГЙА РП Docbook (ОБ БОЗМЙКУЛПН СЪЩЛЕ):

дПЛХНЕОФБГЙС тПВЕТФБ уФЕКФПОБ (Robert Stayton) ПВ ЙУРПМШЪПЧБОЙЙ УФЙМЕК, НПДХМШОЩИ ДПЛХНЕОФПЧ Й УУЩМПЛ НЕЦДХ ОЙНЙ.

Добавить комментарий