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

Иллюстрации

Показать все

Изобретение относится к вычислительной технике. Техническим результатом является устранение несовместимости при вставке. Данные выбирают из документа, чтобы вставить их во второй документ. Выбранные данные сохраняются в памяти, например в буфере обмена. Совместно с выбранными данными сохраняется информация или данные, связанные с выбранными данными, для предоставления прикладной программе, осуществляющей вставку, или приложению-потребителю информации о любых типах данных, связанных с выбранными данными. Соответственно, приложение-потребитель может получить пространство имен и соответствующий ресурс, например файл преобразования расширяемого языка стилей, для преобразования выбранных данных из первого типа данных, связанного с первым документом, во второй тип данных для вставки выбранных данных во второй документ, чтобы сохранить во вставленных данных структуру и форматирование данных, которые применялись к выбранным данным до вставки. 4 н. и 29 з.п. ф-лы, 6 ил.

Реферат

Область техники, к которой относится изобретение

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

Предшествующий уровень техники

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

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

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

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

Эти и другие соображения привели к созданию настоящего изобретения.

Сущность изобретения

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

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

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

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

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

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

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

Перечень фигур чертежей

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

Фиг.2 - упрощенная блок-схема, иллюстрирующая взаимодействие между приложением-поставщиком и приложением потребителем при вырезании или копировании данных с использованием приложения-поставщика и вставке с использованием приложения-потребителя.

Фиг.3 - упрощенная блок-схема, иллюстрирующая пользовательские интерфейсы для предоставления пользователям расширенных функций вставки согласно иллюстративному варианту осуществления настоящего изобретения.

Фиг.4 - отображение на экране компьютера прикладной программы, вставляющей и потребляющей данные, вырезанные или скопированные из приложения-поставщика.

Фиг.5 и 6 - логические блок-схемы способа расширения функций вставки приложения-потребителя согласно варианту осуществления настоящего изобретения.

Подробное описание предпочтительного варианта осуществления

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

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

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

Операционная среда

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

Согласно фиг.1 иллюстративная система для реализации изобретения включает в себя традиционный персональный компьютер 20, содержащий процессор 21, системную память 22 и системную шину 23, которая подключает системную память к процессору 21. Системная память 22 включает в себя постоянную память (ПЗУ) 24 и оперативную память (ОЗУ) 25. Базовая система ввода/вывода 26 (BIOS), содержащая основные процедуры, помогающие переносить информацию между элементами персонального компьютера 20, например, при запуске, хранится в ПЗУ 24. Персональный компьютер 20 также содержит жесткий диск 27, привод 28 магнитного диска, например, для чтения или записи сменного диска 29, и привод 30 оптического диска, например, для чтения диска 31 CD-ROM или чтения или записи другого оптического носителя. Жесткий диск 27, привод 28 магнитного диска и привод 30 оптического диска подключены к системной шине 23 посредством интерфейса 32 жесткого диска, интерфейса 33 привода магнитного диска и интерфейса 34 привода оптического диска соответственно. Приводы и соответствующие машиночитаемые носители обеспечивают энергонезависимые запоминающие устройства персонального компьютера 20. Хотя описание вышеупомянутых машиночитаемых носителей относится к жесткому диску, сменному магнитному диску и диску CD-ROM, специалистам в данной области техники очевидно, что в иллюстративной операционной среде можно использовать и другие типы машиночитаемых носителей, например магнитные кассеты, карты флэш-памяти, цифровые видеодиски, картриджи Бернулли и т.п.

На дисках и в ОЗУ 25 могут храниться различные программные модули, в том числе операционная система 35, одна или несколько прикладных программ 200, 220, данные программ, например список 225 доступных пространств имен, и другие программные модули (не показаны).

Пользователь может вводить команды и информацию в персональный компьютер 20 через клавиатуру 40 и указательное устройство, например мышь 42. Другие устройства ввода (не показаны) могут включать в себя микрофон, джойстик, игровую панель, спутниковую антенну, сканер и т.п. Для подключения этих и других устройств ввода к процессору 21 обычно используется интерфейс 46 последовательного порта, подключенный к системной шине, но могут использоваться и другие интерфейсы, например игровой порт или универсальная последовательная шина (USB). Монитор 47 или устройство отображения другого типа также подключен к системной шине 23 через интерфейс, например видеоадаптер 48. Помимо монитора, персональные компьютеры обычно включают в себя другие периферийные устройства вывода (не показаны), например громкоговорители или принтеры.

Персональный компьютер 20 может работать в сетевой среде, используя логические соединения с одним или несколькими удаленными компьютерами, например удаленным компьютером 49. Удаленный компьютер 49 может представлять собой сервер, маршрутизатор, одноранговое устройство или другое общее сетевое устройство и обычно включает в себя многие или все элементы, описанные применительно к персональному компьютеру 20, хотя на фиг.1 изображено только запоминающее устройство 50. На сервере 49 и в памяти 50 могут размещаться прикладные программы, например приложение 220, и хранилище данных, например библиотека 230 пространств имен. Логические соединения, указанные на фиг.1, включают в себя локальную сеть (ЛС) 51 и глобальную сеть (ГС) 52. Такие сетевые среды обычно имеют место в учреждениях, компьютерных сетях предприятия, интрасетях и Интернете.

При использовании сетевой среды ЛС персональный компьютер 20 подключен к ЛС 51 через сетевой интерфейс 53. При использовании в сетевой среде ГС персональный компьютер 20 обычно содержит модем 54 или иное средство установления связи через ГС 52, например, Интернету. Модем 54, который может быть внутренним или внешним, подключен к системной шине 23 через интерфейс 46 последовательного порта. В сетевой среде программные модули, показанные применительно к персональному компьютеру 20, или некоторые из них могут храниться в удаленном запоминающем устройстве. Очевидно, что показанные сетевые соединения носят иллюстративный характер и что можно использовать другие средства установления линий связи между компьютерами.

Работа

На фиг.2 изображена упрощенная блок-схема, иллюстрирующая взаимодействие между приложением-поставщиком и приложением-потребителем, при котором данные вырезают или копируют с использованием приложения-поставщика и вставляют с использованием приложения-потребителя. Согласно фиг.2 данные, вырезанные или скопированные из приложения-поставщика 200, сохраняются для использования приложением-потребителем 220. Приложение-поставщик может представлять собой любую прикладную программу, из которой данные могут быть вырезаны или скопированы для последующей вставки, в том числе приложение текстового редактора, приложение электронной таблицы, приложение слайдовой презентации и т.д. Когда пользователь выбирает данные с использованием приложения-поставщика 200, выполняется операция 205 вырезания или копирования, которая может включать в себя вырезание выбранных данных из документа-поставщика или может включать в себя копирование выбранных данных из документа-поставщика. Выбранные данные, будучи вырезаны или скопированы, переносятся в память 210, например буфер обмена 210, показанный на фиг.2. Вырезанные или скопированные данные хранятся в памяти 210 для последующей вставки исходным приложением-поставщиком 200 или приложением-потребителем 220 по выбору пользователя.

Согласно варианту осуществления настоящего изобретения буфер обмена 210 является примером ресурса памяти, поддерживаемого операционной системой с многооконным интерфейсом. В буфере обмена хранится копия скопированных или вырезанных данных, и последующая операция вставки переносит данные из буфера обмена 210 в программу-потребитель. Как известно специалистам в данной области техники, буфер обмена 210 позволяет переносить данные из одного приложения в другое, как описано выше, при условии, что второе приложение или приложение-потребитель 220 может читать данные, сгенерированные приложением-поставщиком 200. Чтобы гарантировать, что приложение-потребитель может читать, понимать и использовать данные, вырезанные или скопированные приложением-поставщиком 200, данные, вырезанные или скопированные приложением-поставщиком, обычно сохраняют в буфере обмена 210 в базовом формате, например в формате языка гипертекстовой разметки, который с большой вероятностью позволяет использовать их разнообразными приложениями-потребителями 220. Данные также можно сохранять в формате RTF или в неформатированном виде. Когда первое приложение осуществляет копирование, все эти форматы объявляются в буфере обмена. Затем приложение, осуществляющее вставку, должно решить, какой из доступных форматов желательно запросить.

Когда приложение-потребитель 220 запущено для вставления вырезанных или скопированных данных из приложения-поставщика 200, выбирают операцию вставки 215, чтобы вставить вырезанные или скопированные данные в нужное место документа, обрабатываемого приложением-потребителем. Следует понимать, что операцию вырезания/копирования 205 и операцию вставки 215 можно комбинировать в виде операции перетаскивания и сброса, когда выбранные данные перетаскивают из документа приложения-поставщика и сбрасывают в документ приложения-потребителя. Если вырезанные или скопированные данные были форматированы приложением-поставщиком согласно нескольким базовым типам форматирования, описанным выше, при желании, можно вставить вырезанные или скопированные данные в приложение-потребитель, но многие особенности, обеспеченные данным приложением-поставщиком, включая специальное форматирование, часто утрачиваются. Например, если пользователь вырезает или копирует данные, введенные в табличной форме в приложение-поставщик 200 текстового редактора, а затем вставляет эти данные в приложение-потребитель 220 электронной таблицы, данные, первоначально форматированные в табличном виде, могут быть просто вставлены в одну ячейку электронной таблицы, что не позволяет приложению электронной таблицы совершать над данными операции, необходимые пользователю приложения-потребителя 220 электронной таблицы.

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

Ниже приведен пример структуры XML, которую можно применить к статье, написанной пользователем в приложении-поставщике 200 текстового редактора.

Образец структуры XML

<article>
<title>EXTRA EXTRA</title>
<body>
<summary>Today in New York...</summary>
<main> Today in New York...</main>
</body>
*
*
*
</article>

Как показано в образце структуры XML, ряд элементов XML аннотируют документ «статья». Например, в начало и конец документа включен тег (неотображаемый элемент разметки документа) <article>, определяющий документ как документ «статья», а внутрь структуры «статья» включены различные другие элементы, например элемент <title> и элемент <body>. Внутри элемента <body> имеются два дочерних элемента, <summary> и <main>, элемента <body>. XML-аннотация документа позволяет пользователю задавать участки документа для определенных типов данных и структуры данных. Например, пользователь может задать участок документа внутри элемента <title>, чтобы включить данные типа «название» и включить предписанную допустимую структуру для названия.

Чтобы снабдить документ набором правил для грамматики и типов данных, регламентирующих типы и структуру данных, которые могут содержаться в данном документе, например, проиллюстрированном выше документе «статья», к документу присоединяют или с ним связывают схему XML, обеспечивающую правила, регламентирующие каждый из элементов XML и тегов, с помощью которых пользователь может аннотировать данный документ. Например, документ «статья» может иметь присоединенную или связанную с ним схему, например article-schema.xsd, обеспечивающую допустимый набор элементов XML, состоящий, например, из элемента <article>, элемента <title>, элемента <body> и т.д. Схема содержит правила, определяющие порядок применения этих элементов к документу, и конкретные правила, связанные с отдельными элементами, применяемыми к документу. Например, схема, присоединенная или связанная с документом «статья», может предписывать, что данные, связанные с данным элементом, например элементом <date> (в вышеприведенном примере не показан), должны содержать элемент «число», затем элемент «месяц», а затем элемент «год». Дополнительно, схема может требовать, чтобы элемент <date> следовал сразу после элемента <title>.

Специалистам в данной области техники известно, что разработчики схем XML определяют имена элементов XML и соответствующие типы данных и структуры данных, допустимые для этих элементов. Соответственно, все пользователи документов, аннотированных структурой XML согласно данной схеме, могут использовать данные, содержащиеся в структуре XML, независимо от типа и структуры документа в целом. Например, если проиллюстрированный выше документ «статья» поступает издателю документа, то издатель может разработать прикладные программы для синтаксического анализа документа, позволяющего определить местоположение конкретных типов данных в документе, которые издатель может использовать. Например, издатель может пожелать опубликовать только название статьи в качестве анонса будущей публикации всей статьи. Идентификация XML осуществляется посредством пространства имен. Пространство имен обеспечивает идентификатор (ИД, ID), сообщающий любому потребителю XML тип потребляемого XML. Просматривая пространство имен, приложение-потребитель узнает, какая схема использовалась для создания файла XML. С использованием пространства имен, заданного в документе, издатель узнает, что данные, связанные с элементом XML <title>, были подготовлены согласно схеме, управляющей документом. Соответственно, издатель может разработать прикладную программу или файл преобразования XSLT для определения местоположения элемента <title> и для извлечения связанных с ним данных для вставки в собственный документ издателя (в том числе, в каком-то особом формате), чтобы использовать данные в качестве анонса будущей публикации всей статьи.

Следуя этому примеру, несколько разных издателей могут подписаться на то же пространство имен, определяющее правила, связанные с документом «статья», что позволит каждому издателю затем получить документ «статья» от автора документа и использовать данные, содержащиеся в статье, согласно элементам XML, структурирующим данные. Таким образом, первая издательская компания может вставить только данные, содержащиеся в элементе <summary>, а второй издатель может быть заинтересован в извлечении только данных, содержащихся в элементе <title>. Каждый издатель может извлекать нужные ему данные вне зависимости от других аспектов или элементов документа, используя свои собственные прикладные программы или файлы преобразования XSLT для определения местоположения нужных данных согласно структуре XML. Это возможно благодаря тому, что каждый пользователь документа следует правилам относительно типа данных и структуры данных, предписанным в пространстве имен, присоединенном к документу или связанном с ним.

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