RU2417420C2 - Programmability for xml data store for documents - Google Patents

Programmability for xml data store for documents Download PDF

Info

Publication number
RU2417420C2
RU2417420C2 RU2008109014/08A RU2008109014A RU2417420C2 RU 2417420 C2 RU2417420 C2 RU 2417420C2 RU 2008109014/08 A RU2008109014/08 A RU 2008109014/08A RU 2008109014 A RU2008109014 A RU 2008109014A RU 2417420 C2 RU2417420 C2 RU 2417420C2
Authority
RU
Russia
Prior art keywords
data
xml
change
document
vertex
Prior art date
Application number
RU2008109014/08A
Other languages
Russian (ru)
Other versions
RU2008109014A (en
Inventor
Тристан А. ДЭВИС (US)
Тристан А. ДЭВИС
Али ТАЛЕГХАНИ (US)
Али ТАЛЕГХАНИ
Брайан М. ДЖОУНЗ (US)
Брайан М. ДЖОУНЗ
Марсин САВИЦКИ (US)
Марсин САВИЦКИ
Роберт А. ЛИТТЛ (US)
Роберт А. ЛИТТЛ
Альнур АЛИ (US)
Альнур АЛИ
Original Assignee
Майкрософт Корпорейшн
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US11/331,586 external-priority patent/US7752224B2/en
Application filed by Майкрософт Корпорейшн filed Critical Майкрософт Корпорейшн
Publication of RU2008109014A publication Critical patent/RU2008109014A/en
Application granted granted Critical
Publication of RU2417420C2 publication Critical patent/RU2417420C2/en

Links

Images

Abstract

FIELD: information technology.
SUBSTANCE: system includes a processor, a computer readable carrier; applications which consume data; document data store; and a data store connected to applications which consume data, wherein the data store includes: an XML data store, API broker; a changes store which is adapted to store changes; and a cancellation store which is adapted to chancel any changes made after a change which was made to structured data elements; the API broker provides an application programming interface (API), which provides programmed access to documents and the structured data element, which are contained in the data store; and the application can execute the API to access structured data elements in data stores when the document is open or closed.
EFFECT: high reliability of resolving access conflicts and data editing.
16 cl, 5 dwg

Description

Уровень техникиState of the art

Пользователи компьютеров все больше привыкают к удобному для пользователя прикладному программному обеспечению, которое помогает им писать, вычислять, организовывать, подготавливать презентации, передавать и принимать электронную почту, сочинять музыку и т.п. Например, приложения - текстовые редакторы позволяют пользователям подготавливать различные полезные документы. Приложения - электронные таблицы позволяют пользователям вводить данные, манипулировать ими и организовать данные. Приложения - презентации слайдов позволяют пользователям создавать различные презентации слайдов, содержащие текст, изображения, данные или другие полезные объекты.Computer users are getting more and more used to user-friendly application software that helps them write, calculate, organize, prepare presentations, send and receive e-mail, compose music, etc. For example, text editor applications allow users to prepare various useful documents. Applications - spreadsheets allow users to enter data, manipulate it and organize data. Applications - slide presentations allow users to create various slide presentations containing text, images, data or other useful objects.

Документы, созданные такими приложениями (например, документы текстовых редакторов, электронные таблицы, документы - презентации слайдов), однако, обладают ограниченными возможностями для хранения/транспортирования содержания произвольных метаданных, требуемых контекстом документов. Например, решение, построенное поверх документа текстового редактора, может потребовать сохранения данных для делопроизводства, которые описывают различные состояния документа, например, предыдущие подтвержденные состояния в ходе делопроизводства (даты, время, имена), текущие состояния утверждения, будущие состояния делопроизводства до окончания работы над документом, имя и адрес офиса автора документа, изменения документа и т.п. Возможные варианты сохранения этой информации в основном ограничены использованием переменных документа или существующими свойствами связывания и встраивания объектов (OLE, СВО) документа, которые имеют ограничения. Например, невозможно сохранять иерархические данные; длина знака ограничена и т.п. Свойства таких способов сохраняют в одном хранилище, например, хранилище свойств OLE, что означает, что между свойствами могут возникать конфликты. Кроме того, такие сохраненные свойства не обладают возможностями проверки действительности данных. Пользователю таких приложений и соответствующих документов трудно сохранять произвольные данные вместе с документами, которые часто требуются для множества пользователей.Documents created by such applications (for example, text editor documents, spreadsheets, documents - slide presentations), however, have limited capabilities for storing / transporting the content of arbitrary metadata required by the document context. For example, a solution built on top of a text editor document may require storing data for clerical work that describes various document states, for example, previous confirmed states during clerical work (dates, times, names), current approval states, future clerical states until work is completed document, name and office of the author of the document, document changes, etc. Possible options for storing this information are mainly limited by the use of document variables or the existing properties of linking and embedding document objects (OLE, CBO), which have limitations. For example, it is not possible to store hierarchical data; the length of the character is limited, etc. The properties of such methods are stored in one store, for example, the OLE property store, which means that conflicts can occur between properties. In addition, such stored properties do not have the ability to validate data. It is difficult for a user of such applications and related documents to store arbitrary data along with documents that are often required by many users.

Сущность изобретенияSUMMARY OF THE INVENTION

Данный раздел "Сущность изобретения" предназначен для введения в упрощенной форме выбранных концепций, которые более подробно описаны ниже в разделе "Подробное описание изобретения". Данный раздел "Сущность изобретения" не предназначен для идентификации основных свойств или существенных свойств заявленного предмета изобретения и при этом не предполагается его использовать в качестве средства определения объема заявленного предмета изобретения.This section "Summary of the invention" is intended to introduce in a simplified form the selected concepts, which are described in more detail below in the section "Detailed description of the invention". This section "Summary of the invention" is not intended to identify the main properties or essential properties of the claimed subject matter, nor is it intended to be used as a means of determining the scope of the claimed subject matter.

Одни или более хранилищ данных содержатся отдельно от хранилища первичного представления в документе для сохранения, сопоставления и обеспечения возможности использования произвольных данных, которые ассоциированы с документом, созданном на компьютере. Данные для структурирования информации, ассоциированной с документом, такие как метаданные документа, содержатся в хранилище данных, в котором поддерживаются взаимосвязи между разными частями данных. Хранилище данных предоставляет интерфейсы прикладного программирования (API, ИПП) для различных частей данных, находящихся в хранилище данных, что обеспечивает для разных приложений возможность обращаться к одним или более таким частям данных и оперировать с ними.One or more data storages are contained separately from the primary presentation repository in a document for storing, collating and enabling the use of arbitrary data that is associated with a document created on a computer. Data for structuring information associated with a document, such as document metadata, is contained in a data warehouse that maintains relationships between different pieces of data. The data warehouse provides application programming interfaces (APIs, APIs) for various parts of the data that are in the data warehouse, which provides for different applications the ability to access and operate on one or more of these data parts.

Части данных могут быть структурированы в соответствии с языком разметки, например, таким как расширяемый язык разметки (XML, РЯР). Схемы XML могут быть ассоциированы с каждой частью данных, и хранилище данных может удостоверять действительность структуры XML, приложенной к данным, на основе схемы XML, ассоциированной с такой частью данных. Программный доступ обеспечивается к данным в их XML форме во время редактирования документа. Множество клиентских приложений могут обращаться и могут редактировать одни и те же части данных документа, и при этом разрешаются любые конфликтующие изменения данной части данных. Стандартные схемы XML (XSD, ОСР, определение схемы XML) также можно использовать для определения содержания любых частей специализированных данных XML, ассоциированных с метаданными документа, для обеспечения действительности данных XML, применяемых к данным документа.Parts of the data may be structured according to a markup language, such as, for example, an extensible markup language (XML, PHP). XML schemas can be associated with each piece of data, and the data store can validate the XML structure attached to the data based on the XML schema associated with that piece of data. Programmatic access is provided to data in their XML form during document editing. Many client applications can access and edit the same parts of the document data, and any conflicting changes to this part of the data are allowed. Standard XML Schemas (XSD, OCP, XML Schema Definition) can also be used to determine the content of any parts of the specialized XML data associated with the document metadata, to ensure the validity of the XML data applied to the document data.

Краткое описание чертежейBrief Description of the Drawings

На фиг.1 иллюстрируется примерная вычислительная архитектура для компьютера;Figure 1 illustrates an exemplary computing architecture for a computer;

на фиг.2 показана блок-схема, иллюстрирующая взаимосвязи между одним или более клиентских приложений и одним или более хранилищами данных и содержанием хранилища (хранилищ) данных;figure 2 shows a block diagram illustrating the relationship between one or more client applications and one or more data stores and the contents of the data store (s);

на фиг.3 иллюстрируется схема системы, представляющая взаимодействие между внутренними и внешними потребителями данных с хранилищами данных XML;Figure 3 illustrates a system diagram representing the interaction between internal and external data consumers with XML data stores;

на фиг.4 иллюстрируется процесс обработки событий, которые ассоциированы с хранилищем данных;figure 4 illustrates the process of processing events that are associated with a data warehouse;

на фиг.5 иллюстрируется процесс обработки события, которое включает в себя побочные эффекты, в соответствии с аспектами настоящего изобретения.5 illustrates an event processing process that includes side effects in accordance with aspects of the present invention.

Подробное описание изобретенияDETAILED DESCRIPTION OF THE INVENTION

Ниже со ссылкой на чертежи, на которых одинаковыми номерами ссылочных позиций обозначены одинаковые элементы, будут описаны различные аспекты настоящего изобретения. В частности, фиг.1 и соответствующее описание предназначены для представления краткого общего описания соответствующей вычислительной среды, в которой могут быть воплощены варианты воплощения изобретения.Various aspects of the present invention will be described below with reference to the drawings, in which the same reference numerals denote the same elements. In particular, FIG. 1 and the corresponding description are intended to provide a brief, general description of an appropriate computing environment in which embodiments of the invention may be embodied.

Обычно программные модули включают в себя процедуры, программы, компоненты, структуры данных и другие типы структур, которые выполняют конкретные задачи или воплощают конкретные типы абстрактных данных. Также могут использоваться другие конфигурации компьютерной системы, включая переносные устройства, многопроцессорные системы, электронные устройства на основе микропропроцессора или программируемые бытовые электронные приборы, мини-компьютеры, большие электронно-вычислительные машины и т.п. Также можно использовать распределенные вычислительные среды, в которых задачи выполняются устройствами удаленной обработки, соединенными через сеть передачи данных. В распределенной вычислительной среде программные модули могут быть расположены как в локальном, так и в удаленном запоминающих устройствах.Typically, program modules include procedures, programs, components, data structures, and other types of structures that perform specific tasks or embody specific types of abstract data. Other computer system configurations may also be used, including portable devices, multiprocessor systems, microprocessor-based electronic devices or programmable household electronic devices, mini-computers, large electronic computers, and the like. You can also use distributed computing environments in which tasks are performed by remote processing devices connected through a data network. In a distributed computing environment, program modules may be located in both local and remote memory storage devices.

На фиг.1 показана одна примерная система, предназначенная для воплощения изобретения, которая включает в себя вычислительное устройство, такое как вычислительное устройство 100. В самой простой конфигурации вычислительное устройство 100 обычно включает в себя по меньшей мере одно процессорное устройство 102 и системную память 104. В зависимости от точной конфигурации и типа вычислительного устройства системная память 104 может быть энергозависимой (такой как ОЗУ), энергонезависимой (такой как ПЗУ, запоминающее устройство типа флэш и т.д.) или представлять собой некоторую комбинацию этих двух видов. Системная память 104 обычно включает в себя операционную систему 105, одно или более приложений 106 и может включать в себя программные данные 107. В одном варианте воплощения приложение 106 может включать в себя приложение 120 - текстовый редактор. Такая основная конфигурация иллюстрируется на фиг.1, и эти компоненты представлены внутри пунктирной линией 108.Figure 1 shows one exemplary system for implementing the invention, which includes a computing device, such as computing device 100. In the simplest configuration, computing device 100 typically includes at least one processor device 102 and system memory 104. Depending on the exact configuration and type of computing device, system memory 104 may be volatile (such as RAM), non-volatile (such as ROM, flash memory, etc.) or be a combination of these two. System memory 104 typically includes an operating system 105, one or more applications 106, and may include program data 107. In one embodiment, the application 106 may include a text editor application 120. Such a basic configuration is illustrated in FIG. 1, and these components are represented internally by dashed line 108.

Вычислительное устройство 100 может иметь дополнительные свойства или функции. Например, вычислительное устройство 100 может также включать в себя дополнительные (съемные и/или несъемные) устройства-накопители данных, такие как например, магнитные диски, оптические диски или лента. Такие дополнительные накопители представлены на фиг.1 в виде съемного накопителя 109 и несъемного накопителя 110. Компьютерные носители информации могут включать в себя энергозависимые и энергонезависимые, съемные и несъемные носители, воплощенные с использованием любого способа или технологии для хранения информации, такой как считываемые компьютером инструкции, структуры данных, программные модули или другие данные. Системная память 104, съемный накопитель 109 и несъемный накопитель 110, все представляют собой примеры компьютерных носителей информации. Компьютерные носители информации включают в себя, но не ограничиваются этим, ОЗУ, ПЗУ, СППЗУ, запоминающее устройство типа флэш или запоминающее устройство, построенное по другой технологии, CD-ROM, цифровые универсальные диски (DVD) или другие оптические накопители, магнитные кассеты, магнитную ленту, накопитель на магнитном диске или другие магнитные устройства хранения информации, или любой другой носитель, который можно использовать для сохранения требуемой информации и доступ к которому может осуществляться компьютерным устройством 100. Любой такой компьютерный носитель, предназначенный для хранения компьютерной информации, может составлять собой часть устройства 100. Вычислительное устройство 100 также может иметь устройство (устройства) 112 ввода, такие как клавиатура, мышь, перо, устройство голосового ввода, устройство сенсорного ввода и т.д. Устройство (устройства) 114 вывода, такие как дисплей, громкоговорители, принтер и т.д., также могут быть включены. Эти устройства хорошо известны в данной области техники и их подробное описание не требуется.Computing device 100 may have additional properties or functions. For example, computing device 100 may also include additional (removable and / or non-removable) data storage devices, such as, for example, magnetic disks, optical disks, or tape. Such additional drives are shown in FIG. 1 as a removable drive 109 and a non-removable drive 110. Computer storage media may include volatile and non-volatile, removable and non-removable media implemented using any method or technology for storing information, such as computer readable instructions , data structures, program modules or other data. System memory 104, removable storage 109 and non-removable storage 110 are all examples of computer storage media. Computer storage media includes, but is not limited to, RAM, ROM, EPROM, flash memory or another technology storage device, CD-ROM, digital versatile disks (DVD) or other optical drives, magnetic tapes, magnetic tape, magnetic disk drive or other magnetic information storage devices, or any other medium that can be used to store the required information and which can be accessed by computer device 100. Any such computer storage medium for storing computer information may be part of a device 100. Computing device 100 may also have input device (s) 112, such as a keyboard, mouse, pen, voice input device, touch input device, etc. . Output device (s) 114, such as a display, speakers, printer, etc., may also be included. These devices are well known in the art and a detailed description thereof is not required.

Вычислительное устройство 100 также может содержать соединение 116 для передачи данных, которое позволяет устройству связываться с другими вычислительными устройствами 118, например, через сеть. Соединение 116 передачи данных представляет собой один пример среды передачи данных. Среды передачи данных обычно могут быть воплощены с использованием считываемых компьютером инструкций, структур данных, программных модулей или других данных в виде модулированного сигнала данных, таких как несущая волна или другой механизм транспортирования, и включают в себя любую среду доставки информации. Термин "модулированный сигнал данных" означает сигнал, одна или более характеристик которого установлены или изменены таким образом, чтобы кодировать информацию в сигнале. В качестве примера и без ограничений среды передачи данных включают в себя проводную среду, такую как проводная сеть или непосредственное проводное соединение, и беспроводную среду, такую как акустическая, РИ, инфракрасная и другая беспроводная среда. Термин «считываемый компьютером носитель информации», в том виде, как он используется в настоящем описании, включает в себя как носители информации, так и среды передачи данных.Computing device 100 may also include a data connection 116 that allows the device to communicate with other computing devices 118, for example, through a network. The data connection 116 is one example of a data medium. Media can usually be implemented using computer-readable instructions, data structures, program modules or other data in the form of a modulated data signal, such as a carrier wave or other transport mechanism, and include any information delivery medium. The term "modulated data signal" means a signal, one or more of whose characteristics are set or changed in such a way as to encode information in the signal. By way of example and without limitation, the data transmission medium includes a wired medium, such as a wired network or a direct wired connection, and a wireless medium, such as acoustic, RI, infrared, and other wireless medium. The term "computer-readable storage medium", as used in the present description, includes both storage media and media.

Ряд программных модулей и файлов данных могут быть сохранены в системной памяти 104 вычислительного устройства 100, включая в себя в операционную систему 105, которая предназначена для управления работой сетевого персонального компьютера, такую как операционная система WINDOWS компании MICROSOFT Corporation г. Редмонд, штат Вашингтон. В системной памяти 104 также может храниться один или более программных модулей, таких как приложение 120 текстового редактора, и другие, описанные ниже модули. Приложение 120 текстового редактора во время работы предоставляет функции формирования, редактирования и обработки электронных документов.A number of program modules and data files can be stored in the system memory 104 of the computing device 100, including an operating system 105 that is designed to control the operation of a networked personal computer, such as the WINDOWS operating system of the MICROSOFT Corporation of Redmond, Washington. The system memory 104 may also store one or more program modules, such as a text editor application 120, and other modules described below. The application 120 of the text editor during operation provides the functions of the formation, editing and processing of electronic documents.

В соответствии с одним вариантом воплощения изобретения приложение 120 текстового редактора содержит программу WORD компании MICROSOFT Corporation. Однако следует понимать, что можно использовать программы приложения текстового редактора других производителей. Приложение текстового редактора представлено на чертеже только в качестве примера и не ограничивается другими типами приложений, которые могут формировать документы и позволяют выполнять операции с документами. Например, другие прикладные программы 106, позволяющие обрабатывать различные формы содержания (например, текст, изображения, и т.д.), такие как прикладные программы - электронные таблицы, прикладные программы - базы данных, прикладные программы - презентации слайдов, прикладные программы для рисования или программы автоматизированного проектирования и т.д. в равной степени применимы. Пример прикладной программы 106, которая формирует и которая позволяет выполнять операции с другими типами документов, включает в себя прикладную программу OFFICE компании MICROSOFT Corporation.In accordance with one embodiment of the invention, the text editor application 120 comprises a WORD program from MICROSOFT Corporation. However, it should be understood that you can use the program application text editor from other manufacturers. The text editor application is presented in the drawing as an example only and is not limited to other types of applications that can generate documents and allow you to perform operations with documents. For example, other applications 106 that allow you to process various forms of content (for example, text, images, etc.), such as applications - spreadsheets, applications - databases, applications - slide presentations, drawing applications or CAD programs, etc. equally applicable. An example application 106 that generates and allows operations with other types of documents includes an OFFICE application from MICROSOFT Corporation.

Варианты воплощения могут быть реализованы как компьютерный процесс, компьютерная система или как продукт производства, такой как компьютерный программный продукт или считываемый компьютером носитель информации. Компьютерный программный продукт может представлять собой компьютерный носитель информации, считываемый компьютерной системой, и в котором закодирована компьютерная программа, состоящая из инструкций, предназначенных для выполнения компьютерного процесса. Компьютерный программный продукт также может представлять собой сигнал, распространяющийся по несущей, считываемый вычислительной системой, и в котором закодирована компьютерная программа, состоящая из инструкций, предназначенных для выполнения компьютерного процесса.Embodiments may be implemented as a computer process, a computer system, or as a production product, such as a computer program product or a computer readable medium. The computer program product may be a computer storage medium readable by a computer system, and in which a computer program is encoded, consisting of instructions for performing the computer process. A computer program product may also be a carrier propagating signal read by a computing system and in which a computer program is encoded consisting of instructions for performing a computer process.

Во всем описании и в формуле изобретения следующие термины имеют ассоциированные здесь значения, если только контекст этих терминов не будет диктовать другое.Throughout the description and in the claims, the following terms have the meanings associated here, unless the context of these terms dictates otherwise.

Термин "данные" может относиться к информации поверхностного уровня документа или уровня представления, такой как слова, предложения, абзацы и т.п., а также к вспомогательной информации, например метаданным, которая переносится вместе с документом текстового редактора, которые относятся к нему или которые используются документом текстового редактора. Такая информация часто бывает объемной и, как правило, ее не представляют на уровне представления документа.The term “data” may refer to information at the surface level of a document or presentation level, such as words, sentences, paragraphs, etc., as well as supporting information, such as metadata, that is carried along with a text editor document that relates to it or which are used by a text editor document. Such information is often voluminous and, as a rule, it does not represent at the level of presentation of the document.

Термин "представление" относится к видимой части документа, такой как текст и компоновка, которая может проявляться, если документ был напечатан.The term “presentation” refers to the visible part of a document, such as text and layout, which may occur if the document was printed.

Термин "тег" относится к знакам, вставленным в документ, которые ограничивают элементы в документе XML. Каждый элемент обычно включает в себя два тега: начальный тег и конечный тег. Возможно использовать также пустой элемент (без содержания), и в этом случае разрешено использовать один тег.The term tag refers to characters inserted in a document that delimit elements in an XML document. Each element typically includes two tags: the start tag and end tag. It is also possible to use an empty element (no content), and in this case, be allowed to use a single tag.

Термины "язык разметки" или "ML" (ЯР) относятся к языку для специальных кодов, содержащихся в документе, которые определяют, как части документа должны интерпретироваться прикладной программой. В файле текстового редактора язык разметки определяет, как текст должен быть отформатирован или скомпонован.The terms “markup language” or “ML” (NR) refer to the language for special codes contained in a document that define how parts of the document should be interpreted by the application program. In a text editor file, the markup language determines how the text should be formatted or composed.

Термин "элемент" относится к основному модулю документа XML. Элемент может содержать атрибуты, другие элементы, текст и другие области содержания для документа XML.The term "element" refers to the core module of an XML document. An element may contain attributes, other elements, text, and other content areas for an XML document.

Термин "строительный блок" относится к связанной и потенциально помеченной области в документе, которая используется как контейнер для конкретного типа содержания (контента), вводимого пользователем.The term “building block” refers to a related and potentially labeled area in a document that is used as a container for a particular type of content entered by a user.

Термин "связывание данных, отображение данных и поле данных" относится к свойству строительного блока, который определяет XPath к DOM XML, сохраненным в документе, где должно быть сохранено содержимое строительного блока.The term “data binding, data mapping, and data field” refers to a building block property that defines XPath for the XML DOM stored in the document where the contents of the building block should be stored.

Содержание (контент) XML между тегами рассматривается как "дочерние элементы" (или потомок) для элемента. Следовательно, другие элементы, внедренные в контент элемента, называются "дочерними элементами" или "дочерними вершинами" или элементом. Текст, внедренный непосредственно в контент элемента, рассматривается как "дочерние текстовые вершины элемента". Вместе дочерние элементы и текст, находящийся в элементе, составляют "содержание" («контент») элемента.The content (content) of the XML between the tags is treated as the "children" (or descendant) of the element. Therefore, other elements embedded in the content of an element are called “children” or “child nodes” or element. Text embedded directly in the content of an element is considered to be "child text vertices of the element." Together, the child elements and the text in the element make up the "content" ("content") of the element.

Термин "атрибут" относится к дополнительному свойству, установленному для конкретного значения и ассоциированному с элементом. Элементы могут иметь произвольное количество установок атрибута, ассоциированных с ними, включая нулевое количество. Атрибуты используются для ассоциирования дополнительной информации с элементом, которая не будет содержать дополнительные элементы или не будет рассматриваться как текстовая вершина (узел).The term “attribute” refers to an additional property set for a particular value and associated with an element. Elements can have an arbitrary number of attribute settings associated with them, including zero. Attributes are used to associate additional information with an element that will not contain additional elements or will not be considered as a text vertex (node).

"XPath" представляет собой оператор, который использует выражение пути для идентификации вершин в документе XML. Путь XPath представляет собой разделенный косой чертой список наименований дочерних элементов, которые описывают путь через документ XML. Структура "выбирает" элементы, которые соответствуют этому пути."XPath" is an operator that uses a path expression to identify nodes in an XML document. The XPath path is a slash-separated list of child element names that describe the path through an XML document. The structure "selects" the elements that correspond to this path.

Термин "хранилище данных XML или хранилище данных" относится к контейнеру в документе, такому как документ текстового редактора, документ - электронная таблица, документ - презентация слайдов и т.д., который обеспечивает доступ для хранения и модификации данных (например, в формате XML), сохраненных в документе, когда файл открыт. Дополнительное определение хранилища данных XML представлено ниже со ссылкой на фиг.2.The term “XML data warehouse or data warehouse” refers to a container in a document, such as a text editor document, a spreadsheet document, a slide presentation document, etc., that provides access for storing and modifying data (for example, in XML format ) saved in the document when the file is open. An additional definition of an XML data store is presented below with reference to FIG.

На фиг.2 показана блок-схема, иллюстрирующая взаимосвязи (соотношение) между одним или более дочерним приложением и одним или более хранилищами данных и содержанием хранилища (хранилищ) данных. В общих словах, одно или более хранилищ данных содержатся отдельно от хранилища первичного представления в документе для сохранения, сопоставления и для обеспечения возможности использования произвольных данных, которые ассоциированы с документом, генерируемым компьютером. Данные для структурирования информации, ассоциированной с документом, такие как метаданные документа, содержатся в хранилище данных, где поддерживаются взаимосвязи между различными частями данных. Хранилище данных предоставляет интерфейсы прикладного программирования (API) для различных частей данных в хранилище данных, обеспечивая возможность доступа и выполнения операций для различных прикладных программ с одними или более частями данных. Используемые в данном описании термины "потребители данных", "прикладные программы" и "процессы" можно использовать взаимозаменяемо, если только контекст явно не диктует другое.Figure 2 shows a block diagram illustrating the relationship (relationship) between one or more child applications and one or more data stores and the contents of the data store (s). In general terms, one or more data warehouses are contained separately from the primary representation store in a document for storing, collating, and for enabling the use of arbitrary data that is associated with a computer-generated document. Data for structuring the information associated with the document, such as document metadata, is contained in a data warehouse, where relationships between different pieces of data are maintained. The data warehouse provides application programming interfaces (APIs) for various pieces of data in a data warehouse, providing the ability to access and perform operations for various applications with one or more pieces of data. Used in this description, the terms "data consumers", "application programs" and "processes" can be used interchangeably, unless the context clearly dictates otherwise.

Части данных могут быть структурированы в соответствии с языком разметки, таким как расширяемый язык разметки (XML). Схемы XML могут быть ассоциированы с каждой частью данных, и хранилище данных может подтверждать действительность структуры XML, применяемой к данным, на основе схемы XML, ассоциированной с заданной частью данных. Хранилища данных могут содержать любое количество элементов произвольных данных, например метаданные, структурированные в соответствии с расширяемым языком разметки (XML). В соответствии с этим, провайдеры решений документа могут сохранять произвольные метаданные как XML с заданным документом и обрабатывать эту информацию с использованием заданного решения, имея доступ к данным после возникновения события, например, когда данные удаляют или загружают в хранилище данных, и/или когда пользователь открывает/редактирует/сохраняет документ.Parts of the data may be structured according to a markup language, such as an extensible markup language (XML). XML schemas can be associated with each piece of data, and the data store can validate the XML structure applied to the data based on the XML schema associated with the given piece of data. Data warehouses can contain any number of arbitrary data elements, such as metadata, structured in accordance with an extensible markup language (XML). Accordingly, document solution providers can save arbitrary metadata as XML with a given document and process this information using a given solution, having access to data after an event occurs, for example, when data is deleted or loaded into the data warehouse, and / or when the user opens / edits / saves a document.

Программный доступ также может быть обеспечен для данных в их форме XML во время редактирования документа. В соответствии с одним вариантом воплощения предусмотрен стандартный механизм, который известен для разработчиков решения, с помощью которого можно обращаться к данным и модифицировать их программным способом, когда документ открыт. Такой программный доступ имитирует стандартные интерфейсы XML. Программный доступ к данным обеспечивается через интерфейсы прикладной программы к одному или более редактирующим приложениям клиента (например, приложениям редактирования или создания документа и/или к приложениям - добавленным решениям третьей стороны и т.п.). В соответствии с этим множество клиентских приложений могут обращаться и могут редактировать одни и те же части данных документа и любые конфликтующие изменения для данной части данных разрешаются. Могут быть выполнены "побочные эффекты" любого данного изменения (например, в ответ на установку названия компании "Microsoft," оно изменяются на стандартные символы "MSFT"). Кроме того, изменения данных и любых ассоциированных побочных эффектов могут быть "взаимосвязаны" хранилищем данных таким образом, что отмена одного или более изменений приводит к обратному выполнению всех соответствующих изменений. Это помогает устранять нагрузку при разработке от самого решения для того, чтобы обеспечить отмену всех изменений, когда пользователь инициирует отмену первоначального изменения на поверхности документа, например, нажимая на команду Undo (отменить).Programmatic access can also be provided for data in their XML form during document editing. In accordance with one embodiment, a standard mechanism is provided that is known to developers of a solution by which you can access data and modify it programmatically when the document is open. Such programmatic access mimics standard XML interfaces. Programmatic access to data is provided through the application program interfaces to one or more editing client applications (for example, editing or document creation applications and / or to applications - added third-party solutions, etc.). Accordingly, many client applications can access and edit the same parts of the document data and any conflicting changes for this part of the data are allowed. "Side effects" of any given change can be performed (for example, in response to setting the company name to "Microsoft," it changes to standard "MSFT" characters). In addition, changes to the data and any associated side effects may be “interconnected” by the data store in such a way that canceling one or more changes will reverse all relevant changes. This helps to remove the development load from the solution itself in order to ensure that all changes are discarded when the user initiates the cancellation of the initial change on the document surface, for example, by clicking on the Undo command.

Стандартные схемы XML (XSD) также можно использовать для определения содержания любых частей пользовательских данных XML, ассоциированных с метаданными документа, для обеспечения действительности данных XML, применяемых к данным документа. Такие схемы могут быть прикреплены к любому экземпляру данных XML, сохраненных в документе, и хранилище данных будет запрещать любое изменение данных XML, которое приведет к тому, что структура XML (то есть теги XML, в отличие от их содержания) этих данных станут недействительными. Это помогает обеспечить возможность для разработчика решения прикрепить конкретную часть метаданных XML к документу и обеспечить структурную "правильность" данных XML в соответствии с ассоциированной схемой, независимо от потребителей данных (например, дополнения), использующих для изменения этих данных.Standard XML Schemas (XSDs) can also be used to determine the content of any parts of custom XML data associated with document metadata, to ensure the validity of XML data applied to document data. Such schemas can be attached to any instance of the XML data stored in the document, and the data warehouse will prohibit any modification of the XML data, which will cause the XML structure (i.e., XML tags, as opposed to their contents) to become invalid. This helps ensure that the solution developer can attach a specific piece of XML metadata to the document and ensure that the XML data is structurally "consistent" with the associated schema, regardless of the data consumers (for example, add-ons) that use the data to modify it.

Рассмотрим теперь фиг.2, на которой данные 220 документа включают в себя данные структуры XML и ассоциированные данные документа, представляющие виды поверхности или уровня представления документа. Например, данные 220 документа могут включать в себя структуру XML (например, теги заголовков, теги тела документа, теги завершения) и ассоциированные данные просмотра поверхности (например, слова, предложения, абзацы) документа текстового редактора, документа электронной таблицы, документа презентации слайдов и т.п.Consider now FIG. 2, in which document data 220 includes XML structure data and associated document data representing views of a surface or presentation level of a document. For example, document data 220 may include an XML structure (e.g., title tags, document body tags, completion tags) and associated surface view data (e.g. words, sentences, paragraphs) of a text editor document, spreadsheet document, slide presentation document, and etc.

Хранилище 208 данных представляет собой склад (репозитарий) данных документа, предназначенный для сохранения одной или более частей структурированных данных, ассоциированных с одним или более типами данных, ассоциированных с данным документом. Хотя только одно хранилище данных представлено на чертеже, более чем одно хранилище данных может использоваться на практике. Метаданные 1 225 (элемент структурированных данных) могут включать в себя данные структуры XML и ассоциированные данные для первой части метаданных, ассоциированных с документом. Например, метаданные 1 225 могут включать в себя данные структуры XML (например, теги даты, теги названия и т.д.), в которых содержится имя автора документа, дата создания документа, дата последнего изменения/сохранения документа и т.п. Метаданные 2 230 (элемент структурированных данных) могут включать в себя данные (теги) структуры XML и ассоциированные метаданные, представляющие вторую часть метаданных, ассоциированных с документом. Как должно быть понятно, метаданные 1 и метаданные 2 представлены с целью примера и не ограничивают многообразие и множество различных типов данных, которые могут содержаться в хранилище 208 данных в ассоциации с данным документом. Например, как описано в настоящем описании, произвольные данные могут быть структурированы и добавлены к документу одной или более прикладных программ в соответствии с пожеланиями провайдеров решений или пользователей, имеющих доступ к данным документа.A data warehouse 208 is a warehouse (repository) of document data designed to store one or more pieces of structured data associated with one or more data types associated with this document. Although only one data warehouse is shown in the drawing, more than one data warehouse can be used in practice. Metadata 1 225 (structured data element) may include XML structure data and associated data for the first part of the metadata associated with the document. For example, metadata 1 225 may include XML structure data (for example, date tags, title tags, etc.), which contains the name of the author of the document, the date the document was created, the date the document was last modified / saved, etc. Metadata 2,230 (structured data element) may include XML structure data (tags) and associated metadata representing the second part of the metadata associated with the document. As should be understood, metadata 1 and metadata 2 are presented for the purpose of example and do not limit the variety and many different types of data that may be stored in the data warehouse 208 in association with this document. For example, as described herein, arbitrary data can be structured and added to the document of one or more application programs in accordance with the wishes of solution providers or users who have access to document data.

Файл 240, 245 схемы может быть в случае необходимости добавлен к каждой части данных, сохраненных в хранилище 208 данных, для того, чтобы диктовать правила синтаксиса и проверки, ассоциированные с данными расширяемого языка разметки (XML) для каждой части данных 225, 230. Файлы схемы XML обеспечивают способ описания и проверки правильности данных в среде XML. Файл схемы определяет, какие данные разметки XML, включающие в себя элементы и атрибуты, используются для описания содержания в документе XML, и файл схемы определяет синтаксис разметки XML, включающий в себя то, разрешен ли каждый элемент, какие типы содержания (контента) разрешены в пределах элемента и какие элементы могут появляться в пределах других элементов. Использование файлов схемы обеспечивает то, что документ (или, в данном случае, отдельная часть данных) будет структурирован последовательным и прогнозируемым способом. Файлы 240, 245 схемы могут быть созданы пользователем и обычно поддерживаются соответствующим языком разметки, таким как XML.A schema file 240, 245 can, if necessary, be added to each piece of data stored in the data warehouse 208, in order to dictate the syntax and validation rules associated with the Extensible Markup Language (XML) data for each piece of data 225, 230. Files XML schemas provide a way to describe and validate data in an XML environment. The schema file determines which XML markup data, including elements and attributes, is used to describe the content in the XML document, and the schema file determines the XML markup syntax, including whether each element is allowed, what types of content are allowed in within an element and which elements may appear within other elements. Using schema files ensures that the document (or, in this case, a separate piece of data) is structured in a consistent and predictable way. Schema files 240, 245 can be created by the user and are usually supported by an appropriate markup language such as XML.

Такая схематизация документа позволяет для хранилища данных обеспечивать возможность "гарантировать" структурную действительность документа путем отклонения какого-либо изменения, которое нарушает данный файл схемы, на уровне хранилища данных. В соответствии с вариантом воплощения в хранилище 208 данных используется модуль 260 проверки правильности схемы для подтверждения правильности структуры XML, добавленной к заданной части данных, или изменений, выполненных в заданной части данных, в соответствии с ассоциированным файлом схемы. Например, если автор документа или редактор выполняет структурные изменения XML в отношении заданной части данных, например, метаданных 1, при которых редактор добавляет или удаляет заданный тег XML, хранилище 208 данных будет использовать модуль проверки правильности схемы для проверки структурных изменений XML в соответствии с ассоциированным файлом схемы, для обеспечения действительности изменения. Если изменение является недействительным, может быть сгенерирована ошибка для редактора. Понятно, что такое управление структурой XML, применяемое для заданной части данных, позволяет обеспечить структурную последовательность и прогнозируемость, которые являются особенно важными для обеспечения возможности для клиентского приложения и третьей стороны взаимодействовать с ассоциированными данными.Such a schematization of the document allows the data warehouse to provide the ability to "guarantee" the structural validity of the document by rejecting any change that violates the given schema file at the data warehouse level. According to an embodiment, the data validation module 208 uses the schema validation module 260 to validate the XML structure added to the given data part or the changes made to the given data part in accordance with the associated schema file. For example, if a document author or editor performs XML structural changes on a given piece of data, such as metadata 1, in which the editor adds or removes a given XML tag, the data warehouse 208 will use a schema validation module to validate XML structural changes according to the associated schema file to ensure the validity of the change. If the change is invalid, an error may be generated for the editor. It is understood that such control of the XML structure used for a given part of the data provides structural consistency and predictability, which are especially important for enabling the client application and the third party to interact with the associated data.

Хранилище 208 данных обеспечивает один или более интерфейсов 270 прикладного программирования (API), к которым может обращаться приложение 205 клиента (например, приложения текстового редактора, приложения - электронные таблицы, приложения - презентации слайдов и т.д.), а также приложения 210, 215, разработанные третьей стороной, через объектные объекты (OM, МО) соответствующих приложений 205, 210, 215. Эти API позволяют клиентским приложениям и приложениям третьей стороны загружать любой существующий файл XML в хранилище 208 данных заданного документа, обеспечивая таким образом то, что эти данные теперь будут составлять часть документа и будут перемещаться в пределах этого документа в течение срока его существования (например, при открытии/редактировании/сохранении/переименовании/и т.д.), или до тех пор, пока эти данные не будут удалены из хранилища данных. В соответствии с одним вариантом воплощения данные в хранилище данных будут доступны в их формате XML, даже когда приложение-источник для заданной части данных 225, 230 будет закрыто или по какой-либо другой причине не будет доступно. Таким образом, доступ к заданной части данных 225, 230 может осуществляться через API 270 другими приложениями (отличными от приложения-источника). Как описано ниже, API также позволяют клиентским приложениям и приложениям, разработанным третьей стороной, выполнять изменения в данных разметки XML, применяемых для элементов 225, 230 данных.The data warehouse 208 provides one or more application programming interfaces (APIs) 270 that the client application 205 can access (e.g., text editor applications, spreadsheet applications, slide presentation presentations, etc.), as well as applications 210, 215, developed by a third party, through the object objects (OM, MO) of the respective applications 205, 210, 215. These APIs allow client applications and third-party applications to load any existing XML file into the data warehouse 208 of the specified document, providing assuming in this way that this data will now form part of the document and will move within this document for the duration of its existence (for example, when opening / editing / saving / renaming / etc.), or until this data will not be deleted from the data warehouse. In accordance with one embodiment, the data in the data warehouse will be available in their XML format, even when the source application for a given piece of data 225, 230 is closed or for some other reason is not available. Thus, access to a given part of the data 225, 230 can be done through API 270 by other applications (other than the source application). As described below, the APIs also allow client and third-party applications to make changes to the XML markup data applied to the data elements 225, 230.

После того как данные 225, 230 XML загружены в хранилище данных для ассоциирования с документом 220, ими можно манипулировать как стандартным XML с использованием интерфейсов хранилища данных, разработанных для предоставления способов, аналогичных существующим интерфейсам редактирования XML, для того, чтобы использовать существующее знание разработчика стандарта программирования XML. Это позволяет пользователям выполнять стандартные операции XML в отношении данных XML, добавленных к хранилищу данных для документа, например, добавления элементов и атрибутов, удаления элементов и атрибутов, изменения значения существующих элементов/атрибутов и считывания значения любой существующей части ассоциированного дерева XML. Используя эти стандартные операции XML, решения могут сохранять структурированные комплексные (сложенные) метаданные в документе, к которому не применяются никакие предыдущие ограничения в отношении длины/размера данных или структуры данных, что позволяет использовать это хранилище данных XML для существенно большего количества структурных решений, чем в решениях предшествующего уровня техники. Например, для приложения 215 третьей стороной может быть установлена возможность размещения и выделения имен автора документа и дат создания документов из множества документов путем считывания метаданных 1 225, добавленных к хранилищу 208 данных для каждого документа. Пример приложения третьей стороны может быть запрограммирован на уровне прикладной программы так, что он будет составлять список имен авторов документа и дат создания документа для всех документов, созданных заданной организацией. В соответствии с вариантами воплощения настоящего изобретения приложение третьей стороны может использовать структуру XML, применяемую к метаданным 1 для эффективного поиска и извлечения требуемых данных. Например, приложение третьей стороны может быть написано так, что оно будет выполнять разбор структуры XML файла метаданных 1 для поиска местонахождения тегов XML, таких как <docauthor> и <doccreationdate>, для получения и использования данных, ассоциированных с этими тегами. Следует понимать, что указанное выше представляет собой только один пример множества способов, с помощью которых одно или более приложений могут взаимодействовать со структурными данными, которые ассоциированы с документом, через хранилище 208 данных.Once the XML data 225, 230 is loaded into the data warehouse to associate with document 220, it can be manipulated as standard XML using data warehouse interfaces designed to provide methods similar to existing XML editing interfaces in order to use existing knowledge of the standard developer XML programming. This allows users to perform standard XML operations on XML data added to the data store for the document, for example, adding elements and attributes, deleting elements and attributes, changing the value of existing elements / attributes, and reading the value of any existing part of the associated XML tree. Using these standard XML operations, solutions can store structured complex (folded) metadata in a document that does not have any previous restrictions on the length / size of the data or data structure, which allows you to use this XML data warehouse for a significantly larger number of structural decisions than in prior art solutions. For example, for application 215, a third party may be able to post and highlight the document’s author names and document creation dates from multiple documents by reading the 1,225 metadata added to the data store 208 for each document. An example of a third-party application can be programmed at the application program level so that it will compile a list of document authors names and document creation dates for all documents created by a given organization. In accordance with embodiments of the present invention, a third-party application may use an XML structure applied to metadata 1 to efficiently find and retrieve the required data. For example, a third-party application may be written such that it parses the structure of the XML metadata file 1 to locate XML tags, such as <docauthor> and <doccreationdate>, to retrieve and use the data associated with these tags. It should be understood that the above is only one example of a variety of ways in which one or more applications can interact with structural data that is associated with a document through data storage 208.

Кроме того, хранилище 208 данных обеспечивает любое количество интерфейсов 270 API для любой отдельной части данных 220, 225, 230 XML (также известных как элемент хранения), для обеспечения возможности работы множества приложений 205, 210, 215 с одной и той же частью данных. Например, несколько решений, таких как приложение - клиент (например, приложение текстового редактора), и решение приложения третьей стороны (например, описанные выше приложения) могут работать с одним и тем же набором свойств документа (например, свойствами, содержащимися в метаданных 2 файла 230). Используя хранилище 208 данных, каждое из этих приложений получает отдельный доступ к требуемым данным 230 XML через их собственный интерфейс 270 API хранилища данных, что обеспечивает для каждого приложения возможность связи с данными через его собственную OM без необходимости использования сложного решения для доступа множества потребителей данных к одной и той же части данных.In addition, data warehouse 208 provides any number of APIs 270 for any single piece of XML data 220, 225, 230 (also known as a storage element), to enable multiple applications 205, 210, 215 to work with the same piece of data. For example, several solutions, such as a client application (for example, a text editor application), and a third-party application solution (for example, the applications described above) can work with the same set of document properties (for example, properties contained in 2 file metadata 230). Using the data warehouse 208, each of these applications has separate access to the required XML data 230 through their own data warehouse API 270. This allows each application to communicate with the data through its own OM without the need for a complex solution for accessing multiple data consumers to the same piece of data.

Для того чтобы обеспечить возможность доступа для такого множества приложений 205, 210, 215 - потребителей данных к одним и тем же данным, хранилище 208 данных уведомляет каждое из этих приложений, когда любая часть данных XML изменяется другим приложением, так что заданное приложение может ответить на это изменение (как внутри себя, в соответствии со своим собственным процессом, так и внешним образом путем других изменений тех же данных). Когда одно приложение запрашивает изменение заданного элемента данных, этот запрос автоматически поступает во все другие приложения, что обеспечивает для других приложений возможность определения, каким образом отвечать и требуется ли отвечать на запрашиваемое изменение. В соответствии с одним вариантом воплощения это осуществляется путем обеспечения возможности для каждого приложения регистрировать возможность "прослушивания" любой части данных XML, с которыми оно имеет интерфейс, таким образом, что данное решение приложения/программа принимает только те сообщения, которые соответствуют его собственной логике. Например, один тип приложения 210 может пожелать зарегистрировать прослушивание всех изменений, выполняемых для заданных данных XML, с тем чтобы обеспечить возможность предоставления подробной деловой логики для решения третьей стороны, но другой тип приложения 215 может пожелать прослушивать только изменения одного или двух конкретных элементов XML в пределах одних и тех же данных, поскольку его логику не интересуют изменения любой другой части данных XML.In order to provide access for so many data applications 205, 210, 215 - data consumers to the same data, the data warehouse 208 notifies each of these applications when any part of the XML data is changed by another application, so that the specified application can respond to this change (both within itself, in accordance with its own process, and externally through other changes to the same data). When one application requests a change in a given data item, this request is automatically sent to all other applications, which allows other applications to determine how to respond and whether to respond to a requested change. In accordance with one embodiment, this is accomplished by allowing each application to register the ability to "listen" to any part of the XML data with which it has an interface, so that this application / program decision only accepts messages that correspond to its own logic. For example, one type of application 210 may wish to register listening for all changes made to given XML data in order to provide the ability to provide detailed business logic for a third-party solution, but another type of application 215 may wish to listen only for changes to one or two specific XML elements in within the same data, since its logic is not interested in changes to any other part of the XML data.

В соответствии с этим вариантом воплощения множество приложений 205, 210, 215 могут обращаться и могут редактировать одну и ту же часть данных документа, и при этом разрешаются любые конфликтующие изменения данной части данных. Например, "побочные эффекты" любого заданного изменения могут быть выполнены, когда одно изменение, выполняемое одним приложением, приводит к изменению - побочному эффекту другого приложения. Например, первое приложение 210 может получить задачу извлечения названий компаний из одного или более элементов 225, 230 данных, ассоциированных с заданным документом, для перевода этих названий в соответствующие стандартные символы, если они доступны, для составления списка стандартных символов компаний, относящихся к данному документу. Если второе приложение 215 добавляет или изменяет заданное название компании в заданной части метаданных, например, изменяет название компании с "Company ABC" на "Company XYZ," первое приложение может прослушивать это изменение для автоматического обновления своего списка стандартных символов, для включения этих стандартных символов в "Company XYZ" вместо "Company ABC". Кроме того, такие изменения и любые ассоциированные побочные эффекты могут быть взаимосвязаны хранилищем 208 данных таким образом, что отмена одного или более изменений приводит к отмене всех связанных с ним изменений.According to this embodiment, a plurality of applications 205, 210, 215 can access and edit the same piece of document data, and any conflicting changes to that piece of data are allowed. For example, “side effects” of any given change can be made when one change made by one application results in a change - a side effect of another application. For example, the first application 210 may obtain the task of extracting company names from one or more data elements 225, 230 associated with a given document, to translate these names into corresponding standard characters, if available, to compile a list of standard company symbols related to this document . If the second application 215 adds or changes the specified company name in the specified part of the metadata, for example, changes the company name from "Company ABC" to "Company XYZ," the first application can listen to this change to automatically update its list of standard symbols, to include these standard symbols in Company XYZ instead of Company ABC. In addition, such changes and any associated side effects may be interconnected by the data store 208 in such a way that canceling one or more changes will cancel all associated changes.

На фиг.3 иллюстрируется схема системы, представляющая взаимодействие между внутренним и внешним потребителями данных с хранилищами данных XML. Как представлено, система 300 включает в себя хранилище 302 данных, включающее в себя уровень 304 представления, хранилища 1-N (306) XML, каждое из которых включает в себя хранилище ошибки и хранилище отмены, хранилище 308 глобального изменения, необязательное хранилище 310 глобальной отмены, внутренний брокер 312, который соединен с потребителями 1-N 314 внутренних данных, и внешний брокер 316, который соединен с потребителями 1-N 318 внешних данных.Figure 3 illustrates a system diagram representing the interaction between internal and external data consumers with XML data stores. As presented, system 300 includes a data store 302 including presentation layer 304, XML stores 1-N (306), each of which includes an error store and a cancellation store, a global change store 308, an optional global cancel store 310 , an internal broker 312, which is connected to external data consumers 1-N 314, and an external broker 316, which is connected to external data consumers 1-N 318.

Используя хранилище (хранилища) 306 данных XML, документы имеют возможность содержать любое количество произвольных элементов данных (если только каждый из них соответствует стандартному синтаксису XML). Произвольные метаданные могут быть сохранены в XML в пределах документа, и эта информация автоматически может быть передана в прямом и обратном направлении, когда пользователь открывает/редактирует/сохраняет документ.Using a repository (s) 306 of XML data, documents have the ability to contain any number of arbitrary data elements (if only each of them corresponds to the standard XML syntax). Custom metadata can be stored in XML within the document, and this information can be automatically transferred in the forward and backward direction when the user opens / edits / saves the document.

Как описано выше, программный доступ к этим данным обеспечивается через API, который может использоваться во время редактирования документа, предоставляя стандартный механизм, известный разработчикам решения, через который к этой информации можно обращаться и можно ее модифицировать программно, когда данный документ будет открыт. В соответствии с одним вариантом воплощения такой программный доступ разработан таким образом, чтобы он имитировал стандартные интерфейсы XML. Используя API, данные можно добавлять/удалять, в то время как приложение, такое как приложение текстового редактора, работает; заполнение данными может производиться в пределах элемента хранилища (часть в пределах хранилища данных); данными можно манипулировать, используя стандартные конструкции XML; схемы могут быть ассоциированы с любыми произвольными данными XML в хранилище данных; схемы можно добавлять/удалять/изменять после их ассоциирования с элементом хранилища данных; и изменения XML могут представляться как события для всех осуществляющих прослушивание клиентов. Как иллюстрируется, API содержит внешний брокер (посредник) 316, который предоставляет интерфейс для внешних потребителей 318 данных, и внутренний брокер 312, который обеспечивает интерфейс для любых внутренних потребителей 314 данных, которые взаимодействуют с хранилищем 302 данных.As described above, programmatic access to this data is provided through the API, which can be used during document editing, providing a standard mechanism known to solution developers through which this information can be accessed and can be modified programmatically when this document is opened. In accordance with one embodiment, such programmatic access is designed to mimic standard XML interfaces. Using the API, data can be added / removed while an application, such as a text editor application, is running; data filling can be done within the storage element (a part within the data store); data can be manipulated using standard XML constructs; schemas can be associated with any arbitrary XML data in the data warehouse; schemes can be added / deleted / modified after their association with the data warehouse element; and XML changes can be represented as events for all listening clients. As illustrated, the API includes an external broker (intermediary) 316 that provides an interface for external data consumers 318, and an internal broker 312 that provides an interface for any internal data consumers 314 that interact with data storage 302.

Манипуляции с хранилищем 302 данных могут происходить в режиме реального времени. Как описано выше, хранилища 306 данных могут содержать один или более типов данных. Например, компании могут иметь одно хранилище данных, которое они используют для сохранения всех разных типов данных, которые они желают сохранять в пределах одного хранилища данных, в то время как другая компания может хотеть сохранять данные других типов данных в других хранилищах данных.Manipulations with data warehouse 302 can occur in real time. As described above, data stores 306 may contain one or more data types. For example, companies may have one data store that they use to store all the different types of data that they wish to store within the same data store, while another company may want to store data of other data types in other data stores.

Потребители 318 данных могут регистрироваться в отношении событий, которые относятся к действиям, относящимся к хранилищам 306 данных. Например, потребитель данных может зарегистрироваться на прием события, когда любой тип изменения выполняют для одного или более хранилищ данных. Другой потребитель данных может зарегистрироваться на изменения, которые происходят с некоторым элементом или набором элементов в хранилище данных. Общие события включают в себя загрузку хранилища данных, добавление к хранилищу данных и удаление из хранилища данных. Когда происходит событие, каждый зарегистрировавшийся потребитель данных может реагировать на это изменение, в то время как состояние хранилищ данных единообразно поддерживается. Много раз, когда происходит изменение, потребитель данных не будет выполнять какие-либо действия. В других случаях потребитель данных будет выполнять некоторое действие (действия) в ответ на событие. Например, потребитель данных может выполнять некоторые другие изменения в отношении хранилища данных в ответ на такие изменения, как изменение названия, обновление заголовков в документе. Потребитель данных также может выполнять некоторые другие операции, которые не влияют на документ. Например, если вставляют символ тикера (биржевого аппарата), потребитель данных может осуществлять поиск данных, которые ассоциируются с этим символом тикера, даже если все найденные данные не могут быть отображены в пределах документа на уровне представления. Потребитель данных также может отклонить изменение. Например, если потребитель 1 данных получает сообщение об изменении, которое не может быть им принято, этот потребитель данных может вернуть флаг брокеру, обозначающий, что это изменение не принято. Всякий раз, когда изменение не будет принято, это изменение отменяют вместе с любыми побочными эффектами так, как если бы это изменение никогда не происходило. Каждое хранилище 306 XML может использовать свое хранилище отмены для отмены изменений, которые оно выполнило. В качестве альтернативы, хранилище 310 глобальной отмены можно использовать для отмены изменений, произведенных в хранилищах данных. Предположим, что имеется три потребителя данных, которые заинтересованы в том, что происходит в отношении свойств документа, при этом каждый из этих потребителей данных зарегистрировался на прием событий, относящихся к изменению свойств. Когда происходит изменение, хранилище данных определяет каждого зарегистрировавшегося потребителя данных и информирует каждого из них об изменении в заданном порядке. Каждый потребитель данных, в свою очередь, может выполнять некоторое действие в ответ на это изменение. Если это изменение или любое из изменений, выполненное зарегистрированными потребителями данных в результате этого изменения, не будет принято каким-либо одним из потребителей данных, все изменения, относящиеся к исходному изменению, будут отменены.Data consumers 318 can register for events that relate to activities related to data stores 306. For example, a data consumer may register to receive an event when any type of change is made to one or more data stores. Another data consumer may register for changes that occur to some element or set of elements in the data warehouse. Common events include loading the data store, adding to the data store, and deleting from the data store. When an event occurs, each registered data consumer can respond to this change, while the state of the data stores is uniformly maintained. Many times when a change occurs, the data consumer will not take any action. In other cases, the data consumer will perform some action (s) in response to the event. For example, a data consumer may make some other changes to the data warehouse in response to changes such as a change in name, or updating the headers in a document. a data consumer may also perform some other operations that do not affect the document. For example, if a symbol of a ticker (exchange machine) is inserted, the data consumer can search for data that is associated with this symbol of the ticker, even if all the data found cannot be displayed within the document at the presentation level. The data consumer may also reject the change. For example, if data consumer 1 receives a message about a change that cannot be accepted by him, that data consumer may return a flag to the broker indicating that the change has not been accepted. Whenever a change is not accepted, that change is canceled along with any side effects as if that change never happened. Each XML repository 306 can use its cancellation store to cancel the changes that it has fulfilled. Alternatively, the global rollback store 310 can be used to roll back changes made to the data stores. Suppose there are three data consumers who are interested in what is happening with respect to the properties of the document, with each of these data consumers registering to receive events related to the change in properties. When a change occurs, the data warehouse identifies each registered data consumer and informs each of them of the change in the specified order. Each data consumer, in turn, can perform some action in response to this change. If this change or any of the changes made by registered data consumers as a result of this change is not accepted by any one of the data consumers, all changes related to the original change will be canceled.

Уровень 316 интерфейса программирования приложения внешнего брокера обеспечивает доступ к хранилищу 302 данных для потребителей 318 внешних данных и обеспечивает клиентам третьей стороны возможность взаимодействовать с хранилищем 302 данных так же, как и внутренним потребителям данных, которые ассоциированы с приложением, взаимодействующим с хранилищем данных. Для каждого из хранилищ 306 данных XML в хранилище 302 данных предусмотрен уникальный ID для идентификации. Это позволяет находить хранилище 306 данных XML.The external broker application programming interface level 316 provides access to the data store 302 for external data consumers 318 and allows third party customers to interact with the data store 302 in the same way as internal data consumers that are associated with the application interacting with the data store. For each of the 306 storage of XML data in the data store 302 contains a unique ID for identification. This allows you to find the storage 306 XML data.

В любой момент потребитель данных может добавить схему, которая используется для проверки правильности данных, находящихся в хранилище данных. Таким образом, если теперь любой поступающий код третьей стороны пытается изменить данные, первое, что делает хранилище данных, - определяет, имеет ли такое изменение смысл в соответствии с представленной схемой. Если схема приложена, брокер становится объектом удостоверения (проверяющим правильность).At any time, the data consumer can add a schema that is used to validate the data in the data warehouse. Thus, if now any incoming third-party code tries to change the data, the first thing that the data warehouse does is determine whether such a change makes sense in accordance with the presented scheme. If the scheme is applied, the broker becomes the object of identification (check the correctness).

Хранилища данных могут также принимать более чем один элемент одновременно. Предоставление данных (XML) в виде одного конкретного потока может обеспечить возможность удовлетворения схеме в некоторых ситуациях. Например, предположим, что в соответствии с приложенной схемой, если присутствуют биржевые данные, они должны содержать по меньшей мере две компании. Если бы биржевые данные были добавлены одни за другими, то они не могут быть действительными.Data warehouses can also accept more than one item at a time. Providing data (XML) as one particular stream can provide the ability to meet the scheme in some situations. For example, suppose that in accordance with the attached scheme, if exchange data is present, they must contain at least two companies. If stock data are added one after the other, they may not be valid.

Одиночный проход используют для проверки правильности данных. Вместо выполнения двух проходов, в результате которых можно было бы сделать изменения в хранилище данных, проверка правильности выполняется перед тем, как данные будут переданы в хранилище данных. Это помогает предотвратить введение ошибок потребителем данных в хранилище данных.A single pass is used to validate the data. Instead of performing two passes, as a result of which it would be possible to make changes to the data warehouse, validation is performed before the data is transferred to the data warehouse. This helps prevent data consumers from introducing errors into the data warehouse.

На фиг.4 и 5 иллюстрируется процесс обработки событий, относящихся к хранилищу данных. При чтении описания представленных в данном описании процедур следует понимать, что логические операции в соответствии с разными вариантами воплощения выполнены, (1) как последовательность выполняемых компьютером действий или программных модулей, работающих в компьютерной системе, и/или (2) как взаимно соединенные машинные логические схемы или схемные модули вычислительной системы. Воплощение представляет собой предмет выбора, который зависит от требований к рабочим характеристикам вычислительной системы, в которой воплощается изобретение. В соответствии с этим логические операции, иллюстрируемые и составляющие описанные здесь варианты воплощения, называются по-разному - как операции, структурные устройства, действия или модули. Эти операции, структурные устройства, действия и модули могут быть воплощены в виде программных средств, в виде программно-аппаратных средств, в виде специализированных цифровых логических схем и в виде любой их комбинации.4 and 5 illustrate the process of processing events related to the data warehouse. When reading the description of the procedures presented in this description, it should be understood that the logical operations in accordance with various embodiments are performed, (1) as a sequence of actions performed by a computer or program modules operating in a computer system, and / or (2) as mutually connected machine logical circuits or circuit modules of a computing system. Embodiment is a matter of choice that depends on the performance requirements of the computing system in which the invention is embodied. Accordingly, the logical operations illustrated and constituting the embodiments described herein are referred to differently as operations, structural devices, actions, or modules. These operations, structural devices, actions and modules can be embodied in the form of software, in the form of software and hardware, in the form of specialized digital logic circuits and in the form of any combination thereof.

На фиг.4 иллюстрируется процесс обработки событий, которые ассоциированы с хранилищем данных. В общем, когда хранилище данных принимает запрос на изменение от потребителя данных, это изменение передают всем зарегистрированным потребителям данных, чтобы обеспечить для них возможность отклонить это изменение или запросить побочные эффекты (другие изменения XML) в результате изменения.Figure 4 illustrates the process of processing events that are associated with a data warehouse. In general, when a data warehouse receives a change request from a data consumer, the change is passed on to all registered data consumers to enable them to reject the change or request side effects (other XML changes) as a result of the change.

После начала работы процесс переходит к операции 410, где потребитель данных регистрируется по отношению к какому-либо событию (событиям), в приеме которых он заинтересован. Эти события могут относиться к добавлению данных к хранилищу данных, удалению данных из хранилища данных, изменению данных в хранилище данных и т.п. Событие может быть закреплено за глобальными изменениями или конкретными изменениям элементов, которые хранятся в одном или более хранилищ данных. Например, один потребитель данных может захотеть знать, когда происходит любое изменение, в то время как другой клиент заинтересован только в изменениях одного конкретного значения в хранилище данных.After the start of work, the process proceeds to operation 410, where the data consumer is registered with respect to any event (s) in the reception of which he is interested. These events may include adding data to the data warehouse, deleting data from the data warehouse, changing data in the data warehouse, etc. An event can be assigned to global changes or specific changes to elements that are stored in one or more data stores. For example, one data consumer may want to know when any change occurs, while another customer is only interested in changes to one particular value in the data warehouse.

Переходя к операции 420 принятия решения, определятся, произошло ли событие. Событие относится к изменению хранилища данных. Например, как описано выше, событие может включать в себя добавление, удаление или какое-либо другое изменение хранилища данных. Например, изменение может состоять в добавлении вершины (узла) к хранилищу данных. Когда событие не произошло, процесс возвращается к операции 420 принятия решения. Когда событие произошло, процесс переходит к операции 430.Proceeding to decision operation 420, it is determined whether an event has occurred. An event refers to a data warehouse change. For example, as described above, the event may include the addition, deletion, or some other change to the data store. For example, a change may consist of adding a vertex (node) to the data store. When the event has not occurred, the process returns to decision operation 420. When an event has occurred, the process proceeds to operation 430.

В операции 430 изменение передают каждому из потребителей данных, которые зарегистрировались в отношении этого изменения. В соответствии с одним вариантом воплощения, каждого потребителя данных уведомляют в заданном порядке. Например, порядок может быть основан на порядке регистрации потребителей данных.In step 430 changes are transmitted to each of these customers, who have registered in respect of this change. In accordance with one embodiment, each data user is notified in a predetermined order. For example, the order may be based on the order of registration of data consumers.

Переходя к операции 440, получают ответ от каждого из потребителей данных, которые получили уведомление о событии. Каждый из клиентов может принять или отклонить изменение. Ответы определяют, будет ли изменение передано в хранилище данных.Going to operation 440, a response is received from each of the data consumers who received the event notification. Each customer can accept or reject the change. The responses determine whether the change will be transferred to the data warehouse.

Переходя к операции 450 принятия решения, определяют, отклонил ли один из потребителей данных изменение в хранилище данных. Когда изменение было отклонено каким-либо из потребителей данных, процесс переходит на этап 460, где любые изменения, которые были выполнены в ответ на изменение, отменяют, как если бы изменение никогда не происходило.Proceeding to decision operation 450, it is determined whether one of the data consumers rejected the change in the data warehouse. When the change has been rejected by any of the data consumers, the process proceeds to step 460, where any changes that were made in response to the change are canceled, as if the change never occurred.

Когда все уведомленные клиенты принимают изменение, процесс переходит к операции 470, где изменение в случае необходимости удостоверяют, и затем процесс переходит к операции 480, где изменение передают в соответствующее хранилище данных.When all notified clients accept the change, the process proceeds to operation 470, where the change is verified if necessary, and then the process proceeds to operation 480, where the change is transferred to the corresponding data store.

Исходный потребитель данных, который инициировал изменение, затем принимает уведомление о том, что изменение было принято (операция 490). Процесс затем переходит на конечный этап и возвращается к обработке других действий.The original data consumer that initiated the change then receives a notification that the change has been accepted (step 490). The process then proceeds to the final stage and returns to processing other actions.

На фиг.5 иллюстрируется процесс обработки события, которое включает в себя побочные эффекты. Обычно, когда хранилище данных принимает запрос на изменение от потребителя данных, это изменение передают всем зарегистрированным клиентам, обеспечивая для них возможность отклонить изменение или запросить побочные эффекты (другие изменения XML) в качестве результата изменения. Например, клиент может быть проинформирован об изменении одного элемента в хранилище данных, и в результате изменения потребитель данных производит другое изменение в хранилище данных. Когда запрашивают изменение в качестве побочного эффекта, тогда процесс несколько отличается от процесса, представленного на фиг.4.5 illustrates an event processing process that includes side effects. Typically, when a data warehouse receives a change request from a data consumer, the change is passed on to all registered customers, providing them with the opportunity to reject the change or request side effects (other XML changes) as a result of the change. For example, a client may be informed of a change in one item in the data store, and as a result of the change, the data consumer makes another change in the data store. When a change is requested as a side effect, then the process is slightly different from the process shown in FIG. 4.

После начала работы процесс переходит к операции 510, в которой клиент инициирует изменение побочного эффекта в отношении хранилища данных в результате изменения, которое в настоящий момент принимают или отклоняют.After the start of work, the process proceeds to operation 510, in which the client initiates a side effect change in relation to the data store as a result of the change that is currently being accepted or rejected.

Переходя к операции 520, такое изменение побочного эффекта ставят в очередь, но не выполняют. Другими словами, изменение побочного эффекта не выполняется немедленно в хранилище данных. Основываясь на этом факте, альтернативы для событий включают в себя следующее:Turning to step 520, the change side effect put in place, but do not perform. In other words, a side effect change is not performed immediately in the data warehouse. Based on this fact, alternatives for events include the following:

Принудительно выполнить операции узла (например, добавление, замена) для возврата пустого значения вместо узла и документа, который составляет запрос, а не действие.Force node operations (for example, adding, replacing) to return an empty value instead of the node and the document that makes up the request, not the action. Делает результат операции узла последовательным
Отсутствие выполнения
Удаляют из истории тот факт, что, если вы хотите манипулировать с узлом, вы должны делать это в его событии AfterAdd
Makes the result of a node operation consistent
Lack of execution
Remove from history the fact that if you want to manipulate a node, you should do it in his event AfterAdd
Отразить тот факт, что вызывающий "запрашивает" изменение вместо выполнения измененияReflect the fact that the caller "requests" a change instead of making the change Делает результат операции узла последовательным
Отсутствие выполнения
Makes the result of a node operation consistent
Lack of execution
Выполняет необходимые изменения для каждого вызывающего, затем отменяет их, когда вызывающий возвращается в исходное состояниеPerforms the necessary changes for each caller, then discards them when the caller returns to its original state. Возвращает вызывающему активный узел Returns the active node to the caller Возвращает разъединенную (следует понимать: еще не переданный узел), когда изменения выполнены в виде событияReturns disconnected (it should be understood: a node not yet transferred) when changes are made as an event Возвращает узел до изменения во всех случаях Returns the node before the change in all cases Поддерживает отдельный DOM для клиента OMSupports separate DOM for OM client Возвращает вызывающему активный узелReturns the active node to the caller

Переходя к операции 530 принятия решения, определяют, отклонил ли кто-либо из потребителей данных исходное изменение в хранилище данных.Proceeding to decision operation 530, it is determined whether one of the data consumers rejected the original change in the data warehouse.

Когда изменение было отклонено каким-либо из потребителей данных, процесс переходит к этапу 540, где любые изменения, которые были выполнены в ответ на изменение, и любые побочные изменения, которые поставлены в очередь, отменяются, как если бы никакого изменения не происходило.When the change has been rejected by any of the data consumers, the process proceeds to step 540, where any changes that were made in response to the change and any side changes that are queued are canceled as if no change had occurred.

Когда клиенты принимают исходное изменение, процесс переходит к операции 550, где изменение в случае необходимости удостоверяют, и затем процесс переходит к операции 560, на которой исходное изменение передают в соответствующее хранилище данных.When clients accept the original change, the process proceeds to operation 550, where the change is verified if necessary, and then the process proceeds to operation 560, where the original change is transferred to the corresponding data store.

Процесс затем переходит к операции 570, в которой изменения побочного эффекта выполняют по одному в хранилище данных. Каждое изменение побочного эффекта может затем быть принято или отклонено любым из зарегистрированных клиентов. Когда любое из изменений побочного эффекта будет отклонено, все изменения, которые были выполнены, отклоняют, как если бы никаких изменений не было выполнено вообще.The process then continues to operation 570, in which side effect changes are performed one at a time in the data warehouse. Each change of side effect can then be accepted or rejected by any of the registered clients. When any of the side effect changes is rejected, all changes that have been made are rejected, as if no changes were made at all.

Процесс затем переходит к конечному этапу и возвращается к обработке других действий.The process then proceeds to the final stage and returns to processing other actions.

Ниже приведен пример сегментов кода, которые иллюстрируют некоторые общие функции, открываемые через OM хранилища данных:The following is an example of code segments that illustrate some of the common functions that are opened through the OM data warehouse:

Первый пример иллюстрирует добавление потока к хранилищу данных:The first example illustrates adding a stream to a data warehouse:

Dim oStream As CustomXMLPartDim oStream As CustomXMLPart

Set oStream = Document.XMLStreams.AddSet oStream = Document.XMLStreams.Add

oStream.Load("c:\specSolution.xml")oStream.Load ("c: \ specSolution.xml")

Второй пример иллюстрирует определение местоположения данных в хранилище.The second example illustrates the location of data in a warehouse.

Dim oStream As CustomXMLPartDim oStream As CustomXMLPart

Set oStream = Document.XMLStreams("http://www.microsoft.com/office/12/specs")Set oStream = Document.XMLStreams ("http://www.microsoft.com/office/12/specs")

Третий пример иллюстрирует добавление поддерева в хранилище данных.The third example illustrates adding a subtree to the data warehouse.

oStream.SelectionNamespaces = oStream.SelectionNamespaces & "xmlns:s=1http://www.microsoft.com/office/12/specs"'oStream.SelectionNamespaces = oStream.SelectionNamespaces & "xmlns: s = 1http: //www.microsoft.com/office/12/specs" '

oStream.SelectSingleNode("/s:spec/s:specBody/s:issues").oStream.SelectSingleNode ("/ s: spec / s: specBody / s: issues").

AppendSubtree("<s:issue><s:issueBy/><s:issueDate/><s:issueDesc/></s:issue>")AppendSubtree ("<s: issue> <s: issueBy /> <s: issueDate /> <s: issueDesc /> </ s: issue>")

В соответствии с одним вариантом воплощения ниже приведены примерные функции, которые ассоциированы с API.In accordance with one embodiment, the following are exemplary functions that are associated with an API.

События по CustomXMLNodeCustomXMLNode Events

События могут возникать по CustomXMLNode, также как только на уровне документа.Events can occur on CustomXMLNode, as well as once at the document level.

AfterInsert (NewNode as CustomXMLNode, InUndoRedo as Boolean)AfterInsert (NewNode as CustomXMLNode, InUndoRedo as Boolean)

Параметры: NewNode: объект CustomXMLNode, соответствующий только что добавленному узлу в CustomXMLNode. Примечание: этот узел может иметь дочерний узел (если поддерево было только что добавлено к документу). InUndoRedo: Boolean возвращает значение TRUE, если узел был добавлен как часть действия Undo/Redo пользователем, FALSE в других случаях.Parameters: NewNode: a CustomXMLNode object corresponding to the newly added node in CustomXMLNode. Note: this node may have a child node (if the subtree has just been added to the document). InUndoRedo: Boolean returns TRUE if the node was added as part of the Undo / Redo action by the user, FALSE in other cases.

Такое событие происходит всякий раз, когда узлы XML предполагается добавить к текущему документу. Если операция подразумевает добавление поддерева к документу XML в CustomXMLNode, это событие выполняется один раз для самого верхнего узла во время изменения. Такое событие выполняется один раз для каждого изменения, объявленного для хранилища данных, поэтому побочные эффекты изменения, представленные этим событием, также инициируют событие.Such an event occurs whenever XML nodes are supposed to be added to the current document. If the operation involves adding a subtree to the XML document in CustomXMLNode, this event is fired once for the topmost node during the change. Such an event is fired once for each change declared to the data store, so the side effects of the change represented by this event also trigger the event.

AfterDelete (ОldNode as CustomXMLNode, OldParentNode as CustomXMLNode, OldNextSibling as CustomXMLNode, InUndoRedo as Boolean)AfterDelete (OldNode as CustomXMLNode, OldParentNode as CustomXMLNode, OldNextSibling as CustomXMLNode, InUndoRedo as Boolean)

Параметры: OldNode: объект CustomXMLNode, соответствующий узлу, который был только что удален из CustomXMLPart. Примечание: №1: эта вершина может иметь дочерние вершины (если поддерево удаляется из документа). Примечание: №2: Эта вершина будет "отсоединенной" вершиной в том смысле, что запрос мог быть послан из вершины, но не мог быть передан вверх - вероятно, она существует одна (то есть, она представляет собой элемент документа с тем же OwnerStream). OldParentNode: объект CustomXMLNode, соответствующий прежней родительской вершине для OldNode. OldNextSibling: объект CustomXMLNode, соответствующий прежней следующей вершине того же уровня OldNode. InUndoRedo: Boolean возвращает значение TRUE, если вершина была добавлена пользователем, как часть действия Undo/Redo, FALSE в других случаях.Parameters: OldNode: a CustomXMLNode object corresponding to the node that has just been removed from CustomXMLPart. Note: No. 1: this vertex may have child vertices (if the subtree is removed from the document). Note: No. 2: This vertex will be a "disconnected" vertex in the sense that the request could be sent from the vertex, but could not be sent up - it probably exists alone (that is, it is a document element with the same OwnerStream) . OldParentNode: A CustomXMLNode object corresponding to the previous parent node for OldNode. OldNextSibling: A CustomXMLNode object corresponding to the previous next vertex of the same OldNode level. InUndoRedo: Boolean returns TRUE if the vertex was added by the user, as part of the Undo / Redo, FALSE action in other cases.

Это событие происходит всякий раз, когда вершины (узлы) XML удаляют из текущего элемента в хранилище данных. Если операция удаления подразумевает удаление поддерева документа XML в CustomXMLPart, это событие происходит один раз для самой верхней изменяемой вершины. Такое событие происходит один раз для каждого изменения, сообщаемого в хранилище данных, поэтому побочные эффекты изменения, представленные этим событием, также инициируют событие.This event occurs whenever XML vertices (nodes) are removed from the current item in the data store. If the delete operation involves deleting the subtree of the XML document in CustomXMLPart, this event occurs once for the highest mutable vertex. Such an event occurs once for each change reported in the data store, so the side effects of the change represented by this event also trigger the event.

AfterReplace (ОldNode as CustomXMLNode, NewNode as CustomXMLNode, InUndoRedo as Boolean)AfterReplace (OldNode as CustomXMLNode, NewNode as CustomXMLNode, InUndoRedo as Boolean)

Параметры: OldNode: объект CustomXMLNode, соответствующий вершине, которая была только что удалена из CustomXMLPart. Примечание: №1: Эта вершина может иметь дочернюю вершину (если поддерево удаляют из документа). Примечание: №2: Эта вершина будет "отсоединенной" вершиной в том, что запрос может быть выполнен вниз из вершины, но не будет передан вверх - она, вероятно, существует одна (то есть, она представляет собой элемент документа с тем же OwnerStream). NewNode: объект CustomXMLNode, соответствующий только что добавленной вершине к CustomXMLPart. Примечание: Эта вершина может иметь дочернюю вершину (если поддерево было только что добавлено к документу). InUndoRedo: Boolean возвращает значение TRUE, если вершина была добавлена пользователем как часть действия Undo/Redo, FALSE в других случаях.Parameters: OldNode: a CustomXMLNode object corresponding to the vertex that has just been removed from CustomXMLPart. Note: No. 1: This vertex may have a child vertex (if the subtree is removed from the document). Note: No. 2: This vertex will be a “disconnected” vertex in that the request can be executed down from the vertex, but will not be passed up — it probably exists alone (that is, it is a document element with the same OwnerStream) . NewNode: A CustomXMLNode object corresponding to the just added vertex to CustomXMLPart. Note: This vertex may have a child vertex (if the subtree has just been added to the document). InUndoRedo: Boolean returns TRUE if the vertex was added by the user as part of the Undo / Redo, FALSE action in other cases.

Это событие возникает всякий раз, когда вершины XML заменяют в хранилище данных. Если операция замены подразумевает замену поддерева документа XML в CustomXMLPart, такое событие возникает один раз для самой верхней вершины, для которой происходит изменение. Такое событие возникает один раз для каждого изменения, объявленного для хранилища данных, поэтому побочные эффекты изменения, представленного этим событием, также инициирует событие.This event occurs whenever XML vertices are replaced in the data store. If the replacement operation involves replacing the subtree of the XML document in CustomXMLPart, such an event occurs once for the highest vertex for which the change occurs. Such an event occurs once for each change declared for the data store, so the side effects of the change represented by this event also trigger the event.

CustomXMLParts(): Точки для сбора всех элементов хранилища данных, доступных в файле, включающем в себя потоки свойств документа OLE и потоки свойств WSS.CustomXMLParts (): Points for collecting all the data warehouse items available in a file that includes OLE document property streams and WSS property streams.

CustomXMLPrefixMappings: объект, представляющий все преобразования префикса для текущей части.CustomXMLPrefixMappings: an object representing all the prefix conversions for the current part.

AddNamespace (Prefix as как String, NamespaceURI as String), as (Void)AddNamespace (Prefix as as String, NamespaceURI as String), as (Void)

Параметры: Префикс: String, представляющая префикс, для добавления к списку преобразования префикса. NamespaceURI: String, представляющая пространство имен, которое назначают для вновь добавленного префикса.Parameters: Prefix: String representing the prefix to add a prefix to the conversion list. NamespaceURI: String representing the namespace that is assigned to the newly added prefix.

Позволяет разработчику добавлять настраиваемое пространство имен/префикса для использования, когда запрашивают этот элемент. Если префикс уже существует в администраторе, он перезаписывает значение старого префикса, за исключением случаев, когда префикс представляет собой префикс, добавленный/используемый внутри хранилища данных, в этом случае возвращается ошибка: "Этот префикс уже используется и не может быть модифицирован".Allows the developer to add a custom name / prefix space to use when this item is requested. If the prefix already exists in the administrator, it overwrites the value of the old prefix, unless the prefix is a prefix added / used inside the data warehouse, in which case an error is returned: "This prefix is already used and cannot be modified."

Count как Long: Возвращает количество преобразований префикса в подборке коллекции.Count as Long: Returns the number of prefix conversions in the collection collection.

Item (Index as Long) as CustomXMLPrefixMappingItem (Index as Long) as CustomXMLPrefixMapping

Параметры: Index: значение Long, представляющее индекс в требуемой схеме в подборке.Parameters: Index: A Long value representing the index in the desired schema in the collection.

Возвращает запрашиваемый CustomXMLPrefixMapping из подборки. Принятый по умолчанию член этого объекта.Returns the requested CustomXMLPrefixMapping from the collection. The default member of this object.

LookupNamespace (Prefix as String) as StringLookupNamespace (Prefix as String) as String

Параметры: Префикс: значение String, представляющее префикс в списке преобразования префикса. Позволяет разработчику получить пространство имен, соответствующее упомянутому префиксу. Если пространство имен не назначено для запрашиваемого префикса, возвращается "".Parameters: Prefix: A String value that represents the prefix in the prefix conversion list. Allows the developer to obtain a namespace corresponding to the mentioned prefix. If no namespace is assigned to the requested prefix, "" is returned.

LookupPrefix (NamespaceURI as String) as StringLookupPrefix (NamespaceURI as String) as String

Параметры: NamespaceURI: значение String, представляющее пространство имен в списке преобразования префикса;Parameters: NamespaceURI: String value representing the namespace in the prefix conversion list;

Позволяет разработчику получить префикс, соответствующий упомянутому пространству имен. Если префикс не назначен для запрашиваемого пространства имен, возвращается "". Если имеется множество префиксов, указанных в пространстве имен, администратор возвращает первый один, который соответствует предоставленному пространству имен.Allows the developer to obtain a prefix corresponding to the namespace mentioned. If no prefix is assigned to the requested namespace, "" is returned. If there are many prefixes specified in the namespace, the administrator returns the first one that matches the provided namespace.

CustomXMLPrefixMapping: Объект, представляющий преобразования префикса.CustomXMLPrefixMapping: Object representing a prefix conversion.

Prefix as String: Возвращает префикс для этого преобразования префикса.Prefix as String: Returns the prefix for this prefix conversion.

NamespaceURI as String: Возвращает пространство имен для этого преобразования префикса.NamespaceURI as String: Returns the namespace for this prefix conversion.

CustomXMLSchema: Объект, представляющий схему, которая составляет часть подборки коллекции схемы.CustomXMLSchema: An object representing the schema that is part of the collection of the schema collection.

Delete as Void: Удаляет эту схему из подборки схемы. Если это выполняется для схемы в подборке, которая уже проверена или прикреплена к потоку (активная подборка сортов), тогда представляется сообщение об ошибке: "Эта схема не может быть удалена, поскольку подборка схемы используется в настоящее время".Delete as Void: Deletes this schema from the schema selection. If this is done for a schema in a collection that has already been verified or attached to the stream (active selection of varieties), then the error message appears: "This scheme cannot be deleted because the collection of the scheme is currently in use."

Location as String: Возвращает строку, которая представляет местоположение этой схемы в устройстве пользователя.Location as String: Returns a string that represents the location of this scheme in the user's device.

NamespaceURI as String: Возвращает целевое пространство имен этой схемы, "", если ни одно из них не указано XSD.NamespaceURI as String: Returns the target namespace of this schema, "" if none of them are XSD.

Reload as Void значение: Перезагружает эту схему с диска, которая переходит к повторному прикреплению копии этой схемы на диске для: обновления ее местоположения (если SL изменился), и для того, чтобы удостовериться, что она все еще является действительной схемой. Если это выполняется для схемы в подборке, которая уже была проверена или привязана к потоку (активная подборка сортов), тогда будет выведено сообщение об ошибке: "Данная схема не может быть повторно загружена, поскольку подборка схемы в настоящее время используется".Reload as Void value: Reloads this scheme from disk, which proceeds to reattach a copy of this scheme to disk to: update its location (if SL has changed), and to make sure that it is still a valid scheme. If this is done for a schema in a collection that has already been checked or is tied to a thread (active selection of varieties), then an error message will be displayed: "This scheme cannot be reloaded because the selection of the scheme is currently being used."

CustomXMLSchemaCollection(): Объект, представляющий подборку (коллекцию) схем (которые прикреплены/будут прикреплены к потоку).CustomXMLSchemaCollection (): An object representing the collection (collection) of schemes (which are / will be attached to the stream).

Add([NamespaceURI as String], [Alias as String], [FileName as String], [InstallForAllUsers as Boolean=False]) as CustomXMLSchemaAdd ([NamespaceURI as String], [Alias as String], [FileName as String], [InstallForAllUsers as Boolean = False]) as CustomXMLSchema

Параметры: NamespaceURI: значение String, представляющее пространство имен схемы, которая будет добавлена к подборке. Если схема существует в библиотеке схемы, ее получают из нее. Alias: значение String, представляющее псевдоним схемы, которая будет добавлена к подборке. Если псевдоним существует в SL, найти его, используя этот аргумент. FileName: значение String, представляющее местоположение на диске, где может быть найдена схема. Если этот параметр указан, схему добавляют не только к подборке, но также добавляют ее к SL. InstallForAllUsers: Булево выражение, представляющее, следует ли в случае, когда схему добавляют в библиотеку схемы, записывать ключи SL в HKLM (для всех пользователей) или HKCU (только для текущего пользователя). Принятое по умолчанию значение False (запись в HKCU).Parameters: NamespaceURI: A String value representing the namespace of the schema to be added to the collection. If a schema exists in the schema library, it is obtained from it. Alias: String value representing the alias of the schema to be added to the collection. If an alias exists in SL, find it using this argument. FileName: A String value representing the location on the disk where the circuit can be found. If this parameter is specified, the scheme is added not only to the selection, but also added to the SL. InstallForAllUsers: A Boolean expression representing whether, in the case when a scheme is added to the scheme library, write the SL keys in HKLM (for all users) or HKCU (only for the current user). The default value is False (entry in HKCU).

Этот метод позволяет разработчику добавлять одну или более схем в подборку схем, которую добавляют к потоку в хранилище данных, а также к библиотеке схемы. Он может быть активирован со следующими наборами параметров (в случае конфликта, попытка использования параметров в следующем порядке): [NamespaceURI], [Alias], FileName, [InstallForAHUsers] (добавляет схему к библиотеке схемы, если схема не существует в этом пространстве имен). Только NamespaceURI (осуществляет поиск XSD из библиотеки схемы). Только Alias (осуществляет поиск XSD из библиотеки схемы).This method allows the developer to add one or more schemas to the schema collection that is added to the stream in the data warehouse, as well as to the schema library. It can be activated with the following sets of parameters (in case of conflict, an attempt to use the parameters in the following order): [NamespaceURI], [Alias], FileName, [InstallForAHUsers] (adds a scheme to the library of the scheme if the scheme does not exist in this namespace) . NamespaceURI only (searches for XSD from the schema library). Alias only (searches for XSD from the schema library).

AddCollection (SchemaCollection as CustomXMLSchemas())as VoidAddCollection (SchemaCollection as CustomXMLSchemas ()) as Void

Параметры: SchemaCollection: объект CustomXMLSchemas(), представляющий подборку (коллекцию) схем, которые будут импортированы в текущую подборку.Parameters: SchemaCollection: a CustomXMLSchemas () object that represents the selection (collection) of schemes that will be imported into the current selection.

Добавляет уже существующую подборку к текущей подборке. Если происходит столкновение пространства имен во время импорта (например, если a.xsd уже связан с "fooNamespace", но поступающая подборка имеет b.xsd для того же пространства имен), поступающая подборка побеждает.Adds an existing collection to the current collection. If a namespace clashes during import (for example, if a.xsd is already associated with "fooNamespace" but the incoming collection has b.xsd for the same namespace), the incoming collection wins.

Count as Long: Возвращает количество схем в подборке.Count as Long: Returns the number of circuits in the collection.

Item (Index as Variant) as CustomXMLSchemaItem (Index as Variant) as CustomXMLSchema

Параметры: Index: значение Variant, обозначающее желательный элемент в подборке. Он может быть любым из: значения String, представляющего целевое пространство имен желательной схемы; или значения Long, представляющего индекс требуемой схемы в подборке.Parameters: Index: Variant value indicating the desired item in the collection. It can be any of: a String value representing the target namespace of the desired schema; or Long values representing the index of the desired schema in the collection.

Возвращает запрашиваемый CustomXMLSchema из подборки. Принятый по умолчанию член этого объекта.Returns the requested CustomXMLSchema from the collection. The default member of this object.

NamespaceURI (Index as Long) as StringNamespaceURI (Index as Long) as String

Параметры: Index: значение Long, представляющее индекс схемы в подборке.Parameters: Index: A Long value that represents the index of the schema in the collection.

Возвращает целевое пространство имен упомянутого члена подборки схемы.Returns the target namespace of the referenced schema member.

Проверить как Boolean: Возвращает значение Boolean, представляющее, являются ли схемы в подборке проверенными или нет. Кроме того, это также происходит, когда Includes перемещаются для каждой схемы в подборке и их добавляют к схемам, которые их запрашивали.Check as Boolean: Returns a Boolean value representing whether the circuits in the collection are checked or not. In addition, this also happens when Includes are moved for each schema in the collection and are added to the schemas that requested them.

CustomXMLParts (): Подборка, представляющая набор объектов CustomXMLPart.CustomXMLParts (): A collection representing a collection of CustomXMLPart objects.

Add ([XML as String], [SchemaCollection as CustomXMLSchemaCollectionO]) as CustomXMLPartAdd ([XML as String], [SchemaCollection as CustomXMLSchemaCollectionO]) as CustomXMLPart

Параметры: XML: необязательное значение String, представляющее XML, добавляемое к вновь созданному CustomXMLPart. SchemaCollection: необязательный объект CustomDataSchemaCollection(), представляющий набор схем, предназначенных для использования при проверке этого потока.Parameters: XML: an optional String value representing XML added to the newly created CustomXMLPart. SchemaCollection: an optional CustomDataSchemaCollection () object that represents a set of schemes to use when validating this stream.

Позволяет пользователю добавить новый CustomXMLPart к файлу. Если XML в параметре XML неправильно сформирован, вырабатывается сообщение об ошибке: "Для добавления содержания к этому потоку, он должен быть действительным, правильно сформированным XML". Если пользователь предоставляет SchemaCollection: Проверить ее (если она еще до сих пор не была проверена). Запустить любой MSXML, анализирующий ошибки, принимаемые обратно в клиент OM, и невозможно добавлять поток. Проверить, можно ли загрузить параметр XML в DOM. В противном случае выдать сообщение об ошибке: "Чтобы добавить содержание к потоку, оно должен быть действительным правильно сформированным XML". Прикрепить подборку схемы к DOM и попытаться проверить данный документ. Если его нельзя проверить, выдать сообщение об ошибке и запустить XML, анализирующий ошибку, принятую обратно в клиент OM, и не добавлять поток к подборке.Allows the user to add a new CustomXMLPart to the file. If the XML in the XML parameter is incorrectly generated, an error message is generated: "To add content to this stream, it must be valid, correctly formed XML." If the user provides a SchemaCollection: Check it (if it has not yet been verified). Run any MSXML that parses errors received back to the OM client, and it is not possible to add a stream. Check if the XML parameter can be loaded into the DOM. Otherwise, give an error message: "To add content to the stream, it must be valid correctly formed XML." Attach a schema selection to the DOM and try to validate this document. If it cannot be verified, issue an error message and run XML that parses the error received back to the OM client and does not add the stream to the collection.

Если пользователь НЕ предоставляет SchemaCollection: проверить, можно ли загрузить параметр XML в DOM. В противном случае выдать сообщение об ошибке: "Чтобы добавить содержание к потоку, он должен быть действительным правильно сформированным XML". Просмотреть список пространств имен, представленных в файле XML. Найти схемы из SL и логически вывести подборку схем для них. Попытаться проверить полученную в результате подборку схем. Если ее нельзя проверить, все еще добавить поток к подборке, но он не будет ассоциирован с какой-либо подборкой схем и, следовательно, не будет проверен. Прибавить подборку схем к DOM и попытаться проверить текущий документ. Если его нельзя проверить, выдать ошибку и запустить XML, анализирующий ошибку, принятую обратно в клиенте OM, и не добавлять поток к подборке. Если его нельзя проверить, все же добавить поток к подборке, но он не будет ассоциирован с какой-либо подборкой схем и, следовательно, не будет проверен. Предоставление пустой SchemaCollection будет представлять собой явное действие, которое предпринимают и которое означает "никогда не проверяйте этот поток".If the user does NOT provide a SchemaCollection: check to see if the XML parameter can be loaded into the DOM. Otherwise, give an error message: "To add content to the stream, it must be valid correctly formed XML." View the list of namespaces represented in the XML file. Find circuits from SL and logically infer a selection of circuits for them. Try to verify the resulting selection of circuits. If it cannot be verified, still add the stream to the collection, but it will not be associated with any selection of schemes and, therefore, will not be checked. Add a selection of schemas to the DOM and try to check the current document. If it cannot be verified, throw an error and run XML that parses the error received back in the OM client and does not add the stream to the collection. If it cannot be verified, still add the stream to the collection, but it will not be associated with any selection of schemes and, therefore, will not be checked. Providing an empty SchemaCollection will be the explicit action that is taken and which means "never check this thread."

Count As Long: Возвращает количество потоков данных потребителя в подборке.Count As Long: Returns the number of consumer data streams in the collection.

Item (Index as Variant) as CustomXMLPartItem (Index as Variant) as CustomXMLPart

Параметры: Индекс: Variant, который может представлять собой один из следующих двух типов: значение Long, представляющее индекс требуемого CustomXMLPart в подборке; или значение String, представляющее корневое пространство имен заданного CustomXMLPart в подборке. Если более чем одна часть соответствует этому корневому пространству имен, то будет возвращено первое соответствие в порядке индекса.Parameters: Index: Variant, which can be one of the following two types: Long, representing the index of the desired CustomXMLPart in the collection; or a String value representing the root namespace specified by CustomXMLPart in the collection. If more than one part matches this root namespace, the first match will be returned in index order.

Это представляет собой принятый по умолчанию член объекта CustomXMLParts, и он возвращает объект CustomXMLPart, соответствующий запрашиваемому объекту.This is the default member of the CustomXMLParts object, and it returns the CustomXMLPart object corresponding to the requested object.

SelectByID (ID as String) as CustomXMLPartSelectByID (ID as String) as CustomXMLPart

Параметры: ID: значение String, содержащее ID для элемента хранилища данных, который должен быть возвращен из подборки.Parameters: ID: String value containing the ID for the data store item to be returned from the collection.

Позволяет разработчику захватывать конкретный элемент из хранилища данных, используя его ID. Если элемент хранилища с этим ID не существует, возвращается Nothing.Allows the developer to capture a specific item from the data store using its ID. If the storage item with this ID does not exist, Nothing is returned.

SelectByNamespace (NamespaceURI as String) as CustomXMLParts()SelectByNamespace (NamespaceURI as String) as CustomXMLParts ()

Параметры: NamespaceURI: String, представляющая корневое пространство имен требуемых элементов из подборки хранилища данных.Parameters: NamespaceURI: String representing the root namespace of the required items from the data warehouse collection.

Возвращает все элементы хранилища данных, корневое пространство имен которых соответствует запрашиваемой записи. Если отсутствуют потоки с таким корневым пространством имен, возвращает пустую подборку CustomXMLParts().Returns all data warehouse items whose root namespace matches the requested record. If there are no streams with such a root namespace, returns an empty CustomXMLParts () collection.

StreamAfterAdd (NewStream as CustomXMLPart)StreamAfterAdd (NewStream as CustomXMLPart)

Параметры: NewStream: объект CustomXMLPart, содержащий поток, который был только что добавлен.Parameters: NewStream: a CustomXMLPart object containing the stream that has just been added.

Это событие возникает всякий раз, когда новый поток добавляют к хранилищу данных. Если добавляют множество потоков, события запускают один раз для каждого нового потока. Если поток был добавлен с контентом XML (используя соответствующий метод Add (добавление)), тогда это событие не будет запущено до тех пор, пока элемент не будет заполнен содержанием.This event occurs whenever a new stream is added to the data store. If multiple threads are added, events fire once for each new thread. If the stream was added with XML content (using the appropriate Add method), then this event will not be fired until the element is filled with content.

StreamBeforeDelete (OldStream as CustomXMLPart)StreamBeforeDelete (OldStream as CustomXMLPart)

Параметры: OldStream: объект CustomXMLPart, содержащий поток, который вот-вот будет удален из хранилища данных.Parameters: OldStream: a CustomXMLPart object containing the stream that is about to be removed from the data store.

Это событие возникает всякий раз, когда поток удаляют из хранилища данных. Если множество потоков удаляют, события возникают по одному разу для каждого потока, который был удален. Кроме того, для этого потока устанавливают флаг, такой как "вот-вот будет удален" так, что с ним действительны только операции считывания (например, запрос вершин, проверка значений и т.д.), но операция записи не будет осуществляться и будет выдано сообщение об ошибке: "Эта операция не может быть выполнена для потока, который вот-вот будет удален".This event occurs whenever a stream is deleted from the data store. If multiple threads are deleted, events occur once for each thread that has been deleted. In addition, a flag is set for this stream, such as “about to be deleted” so that only read operations are valid with it (for example, querying vertices, checking values, etc.), but the write operation will not be performed and will be an error message was issued: "This operation cannot be performed for a thread that is about to be deleted."

CustomXMLPart: объект, представляющий один поток XML в хранилище данных.CustomXMLPart: An object that represents a single XML stream in a data warehouse.

AddNode ([Name as String], [NamespaceURI as String], Parent As CustomXMLNode, [NextSibling as CustomXMLNode], [NodeType as msoCustomXMLNodeType], [NodeValue as String]) as VoidAddNode ([Name as String], [NamespaceURI as String], Parent As CustomXMLNode, [NextSibling as CustomXMLNode], [NodeType as msoCustomXMLNodeType], [NodeValue as String]) as Void

Параметры: Name: значение String, которое представляет базовое название вершины, которая должна быть добавлена к XML DOM. Namespace: необязательное значение String, которое представляет пространство имен для вершины, которая должна быть добавлена к XML DOM. Требуется добавлять вершины типа msoCustomXMLNodeElement или msoCustomXMLNodeAttribute, игнорируя другие. Parent: CustomXMLNode, представляющий вершину, ниже которой эта вершина должна быть добавлена. При добавлении атрибута обозначает элемент, к которому должен быть добавлен атрибут. NextSibling: Необязательный CustomXMLNode, представляющий вершину, которая должна стать следующей, равнозначной по уровню вершиной для новой вершины. Если это не указано, вершину добавляют в конце дочерних вершин родительской вершины. Игнорируется для добавления типа msoXMLNodeAttribute. Если NextSibling не является дочерним вершиной для родительской вершины, возвращается сообщение об ошибке: "Эта вершина не может быть добавлена, поскольку следующая равнозначная по уровню вершина не является дочерней для родительской вершины". NodeType: необязательный msoCustomXMLNodeType, который определяет тип создаваемой вершины. Если он не указан, предполагается, что он представляет собой msoCustomXMLNodeElement. NodeValue: необязательное значение String, которое используется для установки значения вершины для вершин, в которых разрешен текст. Если в вершине не разрешен текст, этот параметр игнорируется.Parameters: Name: a String value that represents the base name of the vertex to be added to the XML DOM. Namespace: an optional String value that represents the namespace for the vertex to be added to the XML DOM. It is required to add vertices of type msoCustomXMLNodeElement or msoCustomXMLNodeAttribute, ignoring the others. Parent: CustomXMLNode representing the vertex below which this vertex should be added. When adding an attribute, indicates the element to which the attribute is to be added. NextSibling: An optional CustomXMLNode representing the vertex that should become the next equal level vertex for the new vertex. If not specified, a vertex is added at the end of the child vertices of the parent vertex. Ignored to add type msoXMLNodeAttribute. If NextSibling is not a child vertex for the parent vertex, an error message is returned: "This vertex cannot be added because the next vertex of the same level is not a child for the parent vertex." NodeType: optional msoCustomXMLNodeType, which determines the type of vertex to be created. If not specified, it is assumed to be msoCustomXMLNodeElement. NodeValue: An optional String value that is used to set the vertex value for vertices where text is allowed. If no text is allowed at the vertex, this parameter is ignored.

Обобщенный метод добавления XML вершины к элементу сохранения данных. Требуется родительская вершина и NodeType по умолчанию принимает значение msoXMLNodeElement. Если полученное в результате добавление будет конструктивно недействительным, вырабатывается сообщение об ошибке: "Эта операция не может быть выполнена, поскольку она могла бы привести к конструктивно недействительному потоку данных". Если пространство имен не находится в подборке ссылок схемы, вырабатывается сообщение об ошибке: "Для добавления этого элемента Вы должны вначале прикрепить его схему к потоку данных".A generic method for adding XML vertices to a data store element. A parent vertex is required and NodeType defaults to msoXMLNodeElement. If the resulting addition is structurally invalid, an error message is generated: "This operation cannot be performed because it could lead to a structurally invalid data stream." If the namespace is not in the collection of schema links, an error message is generated: "To add this element, you must first attach its schema to the data stream."

DocumentElement as CustomXMLNodeDocumentElement as CustomXMLNode

Получить корневой элемент потока. Если поток пустой, вернуть Nothing.Get the root element of the stream. If the stream is empty, return Nothing.

Удалить как пустые данные: Удаляет текущий CustomXMLPart из хранилища данных. Если пользователь пытается удалить часть основных свойств, вырабатывается сообщение об ошибке: "Эта часть специализированного XML требуется для правильного функционирования Office и не может быть удалена".Delete as empty data: Deletes the current CustomXMLPart from the data store. If the user tries to remove part of the basic properties, an error message is generated: "This part of the specialized XML is required for Office to function properly and cannot be deleted."

ID as String: Возвращает строку, содержащую GUID, назначенный для текущего CustomXMLPart.ID as String: Returns a string containing the GUID assigned to the current CustomXMLPart.

Load(FilePath as String) as BooleanLoad (FilePath as String) as Boolean

Параметры: FilePath: Объект String соответствует файлу устройства пользователя (или сетевому устройству и т.д.), из которого XML для этого CustomXMLPart должен быть загружен.Parameters: FilePath: The String object corresponds to the file of the user's device (or network device, etc.) from which the XML for this CustomXMLPart must be loaded.

Позволяет автору шаблона заполнять CustomXMLPart из ранее существующего файла на его устройстве. Возвращает значение TRUE, если нагрузка была успешной, значение FALSE, если нет (что включает в себя случай, в котором включают форсирование структуры, и XML является структурно недействительным, или случай, когда XML не был действительным и/или правильно сформированным). После загрузки DOM вырабатывается сообщение об ошибке "Этот DOM не может быть загружен дважды".Allows the template author to populate CustomXMLPart from a previously existing file on his device. Returns TRUE if the load was successful, FALSE if not (which includes the case in which the structure is forced and the XML is structurally invalid, or the case when the XML was not valid and / or correctly formed). After loading the DOM, the error message "This DOM cannot be loaded twice" is generated.

LoadXML (XML as String) as BooleanLoadXML (XML as String) as Boolean

Параметры: XML: объект String, соответствующий XML, с которым этот CustomXMLPart должен быть загружен.Parameters: XML: String object corresponding to the XML with which this CustomXMLPart should be loaded.

Позволяет автору шаблона заполнить CustomXMLPart из строки XML. Возвращает значение TRUE, если загрузка была успешной, FALSE, если нет (что включает в себя случай, в котором форсирование структуры будет включено, и XML будет структурно не действительным, или случай, в котором XML не является действительным и/или правильно сформированным). После загрузки DOM вырабатывается сообщение об ошибке "Этот DOM не может быть загружен дважды".Allows the template author to populate CustomXMLPart from an XML string. Returns TRUE if the load was successful, FALSE if not (which includes the case in which the structure is forced and XML is structurally invalid, or the case in which the XML is not valid and / or correctly formed). After loading the DOM, the error message "This DOM cannot be loaded twice" is generated.

NamespaceURI as String: возвращает строку, содержащую полное пространство имен URI для корневой вершины текущего CustomXMLPart. Если поток пустой (созданный, но вершины не добавлены), возвращает "".NamespaceURI as String: returns a string containing the full namespace URI for the root vertex of the current CustomXMLPart. If the stream is empty (created but no vertices added), returns "".

SchemaCollection as CustomXMLSchemaCollection(): Получает/устанавливает подборку CustomXMLSchemaCollection(), представляющую набор схем, прикрепленных к этому потоку. Если пользователь представляет SchemaCollection: проверить ее действительность (если она еще не была подтверждена). Отбросить все ошибки анализа, принимаемые обратно в клиент, и не выполнять добавление в поток; и прикрепить подборку схемы к DOM и попытаться удостоверить данный документ. Если его невозможно удостоверить, выработать сообщение об ошибке и отбросить ошибку анализа, принятую обратно на сторону клиента, и не менять подборку схемы по потоку.SchemaCollection as CustomXMLSchemaCollection (): Gets / sets the CustomXMLSchemaCollection () collection that represents the set of schemas attached to this stream. If the user presents a SchemaCollection: check its validity (if it has not yet been confirmed). Discard all analysis errors received back to the client and do not add to the stream; and attach the schema selection to the DOM and try to authenticate this document. If it is impossible to verify it, generate an error message and discard the analysis error received back to the client side and do not change the flowchart selection.

NamespaceManager as CustomXMLPrefixMappings()NamespaceManager as CustomXMLPrefixMappings ()

Получает набор преобразований префикса пространства имен, используемых для текущего CustomXMLPart. Когда документ открывают, он автоматически заполняется содержимым преобразований префикса, внедренных в элемент хранилища данных, но автор шаблона не может его редактировать/добавлять/удалять. Однако в соответствии с этим вариантом воплощения, изменения для этого параметра не сохраняют для документа.Gets the set of namespace prefix conversions used for the current CustomXMLPart. When a document is opened, it is automatically filled with the contents of the prefix transformations embedded in the data warehouse element, but the author of the template cannot edit / add / delete it. However, in accordance with this embodiment, changes to this parameter are not saved for the document.

SelectNodes (XPath as String) as CustomXMLNodes()SelectNodes (XPath as String) as CustomXMLNodes ()

Параметры: XPath: значение String, содержащее выражение XPath для оценки против DOM. Отображения префикса для этого XPath получают из ассоциированного администратора пространства имен. Если XPath его не разрешает, перейти через любую генерируемую ошибку.Parameters: XPath: String value containing the XPath expression to evaluate against the DOM. The prefix mappings for this XPath are obtained from the associated namespace administrator. If XPath does not allow it, go through any generated error.

Этот метод позволяет разработчику получить обратно набор вершин из DOM.This method allows the developer to get back a set of vertices from the DOM.

SelectSingleNode (XPath as String) as CustomXMLNodeSelectSingleNode (XPath as String) as CustomXMLNode

Параметры: XPath: значение String, содержащее выражение XPath для оценки для DOM. Отображения префикса для этого XPath получают от соответствующего администратора пространства имен. Если XPath не обеспечивает разрешение, генерируется проход через любую ошибку.Parameters: XPath: String value containing the XPath expression to evaluate for the DOM. Prefix mappings for this XPath are obtained from the appropriate namespace administrator. If XPath does not provide resolution, a pass through any error is generated.

Этот метод позволяет разработчику получить обратно одиночную вершину из DOM.This method allows the developer to get back a single vertex from the DOM.

XML as String: Возвращает представление XML текущего CustomXMLPart.XML as String: Returns the XML representation of the current CustomXMLPart.

NodeAfterInsert (NewNode as CustomXMLNode, InUndoRedo as Boolean)NodeAfterInsert (NewNode as CustomXMLNode, InUndoRedo as Boolean)

Параметры: NewNode: объект CustomXMLNode, соответствующий только что добавленной вершине в CustomXMLPart. Примечание: Эта вершина может иметь дочернюю вершину (если поддерево было только что добавлено к документу). InUndoRedo: Boolean, возвращающий TRUE, если вершина была добавлена как часть действия Undo/Redo пользователем, FALSE в других случаях.Parameters: NewNode: a CustomXMLNode object corresponding to the just added vertex in CustomXMLPart. Note: This vertex may have a child vertex (if the subtree has just been added to the document). InUndoRedo: Boolean returning TRUE if the vertex was added as part of the Undo / Redo action by the user, FALSE in other cases.

Это событие запускается всякий раз, когда вершины XML вот-вот будут добавлены к текущему документу. Если операция добавления включает в себя поддерево документа XML, добавляемого в CustomXMLPart, это событие запускается один раз для самой верхней изменяемой вершины. Это событие запускается один раз для каждого изменения, объявленного для хранилища данных, поэтому побочные эффекты изменения, представленного этим событием, также инициируют событие.This event is fired whenever XML vertices are about to be added to the current document. If the add operation includes a subtree of the XML document being added to CustomXMLPart, this event is fired once for the top-most mutable vertex. This event is fired once for each change declared for the data store, so the side effects of the change represented by this event also trigger the event.

NodeAfterDelete (OldNode as CustomXMLNode, OldParentNode as CustomXMLNode, OldNextSibling as CustomXMLNode, InUndoRedo as Boolean).NodeAfterDelete (OldNode as CustomXMLNode, OldParentNode as CustomXMLNode, OldNextSibling as CustomXMLNode, InUndoRedo as Boolean).

Параметры: OldNode: объект CustomXMLNode, соответствующий вершине, которая была только что удалена из CustomXMLPart. Примечание №1: Эта вершина может иметь дочернюю вершину (если поддерево удаляют из документа). Примечание №2: Эта вершина будет "отсоединенной" вершиной, в которой запрос может быть передан вниз вплоть до этой вершины, но не проходит вверх: выглядит, как будто она существует одна (то есть, ее элемент документа с тем же OwnerStream). OldParentNode: объект CustomXMLNode, соответствующий предыдущей родительской вершине OldNode. OldNextSibling: объект CustomXMLNode, соответствующий предыдущей следующей равнозначной вершине для OldNode. InUndoRedo: Boolean, возвращающий TRUE, если вершина была добавлена пользователем как часть действия Undo/Redo, FALSE в других случаях.Parameters: OldNode: a CustomXMLNode object corresponding to the vertex that has just been removed from CustomXMLPart. Note # 1: This vertex may have a child vertex (if the subtree is removed from the document). Note 2: This vertex will be a “disconnected” vertex at which the request can be sent down to this vertex, but does not go up: it looks as if it exists alone (that is, its document element with the same OwnerStream). OldParentNode: A CustomXMLNode object corresponding to the previous parent node of OldNode. OldNextSibling: A CustomXMLNode object corresponding to the previous next peer for OldNode. InUndoRedo: Boolean that returns TRUE if the vertex was added by the user as part of the Undo / Redo, FALSE action in other cases.

Это событие вырабатывается всякий раз, когда вершины XML удаляют из текущего элемента в хранилище данных. Если операция удаления охватывает поддерево документа XML в CustomXMLPart, это событие запускают один раз для самой верхней изменяемой вершины. Эти событие запускают один раз для каждого изменения, объявленного в хранилище данных, поэтому побочные эффекты изменения, представленного этим событием, также инициируют событие.This event is raised whenever XML vertices are removed from the current item in the data store. If the delete operation spans the subtree of the XML document in CustomXMLPart, this event is fired once for the top-most mutable vertex. These events are fired once for each change declared in the data store, so the side effects of the change represented by this event also trigger the event.

NodeAfterReplace (OldNode as CustomXMLNode, NewNode as CustomXMLNode, InUndoRedo as Boolean)NodeAfterReplace (OldNode as CustomXMLNode, NewNode as CustomXMLNode, InUndoRedo as Boolean)

Параметры: OldNode: объект CustomaXMLNode, соответствующий вершине, которая была только что удалена из CustomXMLPart. Примечание №1: Эта вершина может иметь дочернюю вершину (если поддерево удаляют из документа). Примечание №2: Эта вершина будет "отсоединенной" вершиной, в которой запрос может быть передан вниз до вершины, но не может передан вверх, выглядит, как будто она существует одна (то есть, она представляет собой элемент документа с тем же OwnerStream). NewNode: объект CustomXMLNode, соответствующий только что добавленной вершине, в CustomXMLPart. Примечание: Эта вершина может иметь дочернюю вершину (если поддерево было только что добавлено к документу). InUndoRedo: Boolean, возвращает TRUE, если вершина была добавлена пользователем как часть действия Undo/Redo, FALSE в других случаях.Parameters: OldNode: CustomaXMLNode object corresponding to the vertex that has just been removed from CustomXMLPart. Note # 1: This vertex may have a child vertex (if the subtree is removed from the document). Note # 2: This vertex will be a “disconnected” vertex, in which the request can be sent down to the top, but cannot be sent up, it looks as if it exists alone (that is, it is a document element with the same OwnerStream). NewNode: The CustomXMLNode object corresponding to the just added vertex in CustomXMLPart. Note: This vertex may have a child vertex (if the subtree has just been added to the document). InUndoRedo: Boolean, returns TRUE if the vertex was added by the user as part of the Undo / Redo, FALSE action in other cases.

Это событие запускается всякий раз, когда вершины XML заменяют в хранилище данных. Если операция замены подразумевает поддерево документа XML в CustomXMLPart, это событие запускают один раз для самой верхней изменяемой вершины. Это событие запускается один раз для каждого изменения, объявляемого в хранилище данных, поэтому побочные эффекты изменения, представленные этим событием, также инициируются этим событие.This event is fired whenever XML vertices are replaced in the data store. If the substitution operation involves a subtree of the XML document in CustomXMLPart, this event is fired once for the top-most mutable vertex. This event is fired once for each change declared in the data store, so the side effects of the change represented by this event are also triggered by this event.

CustomXMLNodes(): подборка, представляющая набор объектов CustomXMLNode в текущем документе.CustomXMLNodes (): A collection representing a set of CustomXMLNode objects in the current document.

Count As Long: Возвращает количество CustomXMLNodes в подборке.Count As Long: Returns the number of CustomXMLNodes in the collection.

Item (Index As Long) as CustomXMLNodeItem (Index As Long) as CustomXMLNode

Параметры: Индекс: значение Long представляет собой индекс требуемого CustomXMLNode в подборке.Parameters: Index: The Long value is the index of the desired CustomXMLNode in the collection.

Он представляет собой принятый по умолчанию элемент объекта CustomXMLNodes и возвращает объект CustomXMLNode, соответствующий запрашиваемому элементу в подборке.It is the default element of the CustomXMLNodes object and returns a CustomXMLNode object corresponding to the requested element in the collection.

CustomXMLNodeCustomXMLNode

AppendChildNode ([Name as String], [NamespaceURI as String], [NodeType as msoCustomXMLNodeType], [NodeValue as String]) as VoidAppendChildNode ([Name as String], [NamespaceURI as String], [NodeType as msoCustomXMLNodeType], [NodeValue as String]) as Void

Параметры: Name: необязательное значение String, которое представляет базовое название элемента, добавляемого в XML DOM. Namespace: необязательное значение String, которое представляет пространство имен элемента, добавляемого к XML DOM. Требуется добавлять вершины типа msoCustomXMLNodeElement или msoCustomXMLNodeAttribute, игнорируя другие. NodeType: необязательный msoCustomXMLNodeType, который определяет тип создаваемой вершины. Если он не указан, предполагается, что он представляет собой msoCustomXMLNodeElement. Node Value: необязательное значение String, которое используется для установки значения вершины для вершин, которые разрешают текст. Если вершина не разрешает текст, этот параметр игнорируется.Parameters: Name: an optional String value that represents the base name of the element to be added to the XML DOM. Namespace: an optional String value that represents the namespace of the element being added to the XML DOM. It is required to add vertices of type msoCustomXMLNodeElement or msoCustomXMLNodeAttribute, ignoring the others. NodeType: optional msoCustomXMLNodeType, which determines the type of vertex to be created. If not specified, it is assumed to be msoCustomXMLNodeElement. Node Value: An optional String value that is used to set the vertex value for vertices that allow text. If the vertex does not allow text, this parameter is ignored.

Обеспечивает для разработчика возможность добавления одиночной вершины в виде, по меньшей мере, последней дочерней вершины в контексте элемента в дереве, если вершина контекста имеет тип msoXMLNodeElement. Если нет, тогда метод вырабатывает сообщение об ошибке: "Вы не можете прикрепить дочерний элемент к комментариям, инструкциям обработки или атрибутам". Кроме того, блокировать любой случай, в котором вершина, которая будет добавлена, имеет уже существующий атрибут: "атрибут с уже существующим названием текущего элемента".Provides the developer with the ability to add a single vertex in the form of at least the last child vertex in the context of an element in the tree if the context vertex is of type msoXMLNodeElement. If not, then the method generates an error message: "You cannot attach a child to comments, processing instructions, or attributes." In addition, block any case in which the vertex to be added has an existing attribute: "an attribute with an existing name for the current element."

AppendChildSubtree (XML as String) as VoidAppendChildSubtree (XML as String) as Void

Параметры: XML: String представляет поддерево, которое добавляют к XML DOM. Этот XML должен быть правильно сформированным документом XML (включающим в себя декларации пространства имен, одну корневую вершину и т.д.). Если это не так, выводится сообщение об ошибке: "Добавьте поддерево XML в Ваш документ, он должен содержать действительный правильно сформированный XML".Parameters: XML: String represents the subtree that is added to the XML DOM. This XML must be a well-formed XML document (including namespace declarations, one root vertex, etc.). If this is not the case, the error message is displayed: "Add the XML subtree to your document, it must contain valid correctly formed XML."

Позволяет разработчику добавлять существующее правильно сформированное поддерево XML как последнее дочернее поддерево под элементом контекста в DOM, если вершина контекста имеет тип msoXMLNodeElement. Если нет, тогда этот метод приводит к ошибке и сообщению: "Вы не можете прикрепить дочернее поддерево к содержанию, к инструкциям обработки или атрибутам".Allows the developer to add an existing, well-formed XML subtree as the last child subtree under the context element in the DOM if the context vertex is of type msoXMLNodeElement. If not, then this method leads to an error and the message: "You cannot attach a child subtree to the content, processing instructions or attributes."

Атрибуты как CustomXMLNodes(): Возвращает подборку CustomXMLNodes, представляющую атрибуты для текущего элемента.Attributes as CustomXMLNodes (): Returns a CustomXMLNodes collection representing the attributes for the current element.

BaseName as String: представляет собой принятый по умолчанию элемент CustomXMLNode. Он возвращает базовое название вершины без префикса пространства имен, если такое существует в DOM.BaseName as String: represents the default CustomXMLNode element. It returns the base name of the vertex without a namespace prefix, if one exists in the DOM.

ChildNodes as CustomXMLNodes: Возвращает подборку CustomXMLNodes, которая содержит все элементы, которые являются дочерними элементами для текущего вершины.ChildNodes as CustomXMLNodes: Returns a CustomXMLNodes collection that contains all the elements that are children of the current vertex.

Delete as Void: Удаляет текущую вершину из DOM XML (включая в все ее дочерние элементы, если существуют). Если полученное удаление будет структурно недействительным, выводится сообщение об ошибке: "Эта операция не может быть выполнена, поскольку она может привести к структурно недействительному DOM".Delete as Void: Deletes the current vertex from the DOM XML (including in all its children, if any). If the resulting deletion is structurally invalid, an error message is displayed: "This operation cannot be performed because it may lead to a structurally invalid DOM."

FirstChild as CustomXMLNode; Возвращает объект CustomXMLNode, соответствующий первому дочернему элементу текущей вершины. Если вершина не имеет дочерний элемент (или если она сама не имеет тип msoCustomXMLNodeElement), ничего не возвращается.FirstChild as CustomXMLNode; Returns a CustomXMLNode object corresponding to the first child of the current vertex. If the vertex does not have a child (or if it itself does not have the msoCustomXMLNodeElement type), nothing is returned.

HasChildNodes as Boolean: Возвращает значение Boolean, которое равно True, если текущая вершина имеет вершины - дочерние элементы, в других случаях False. Возвращает значение false, когда CustomXMLNode не имеет тип NodeType msoCustomXMLNodeElement.HasChildNodes as Boolean: Returns a Boolean value that is True if the current vertex has vertices - children, otherwise False. Returns false when CustomXMLNode is not of type NodeType msoCustomXMLNodeElement.

InsertNodeBefore ([Name as String], [NamespaceURI as String], [NodeType as msoCustomXMLNodeType], [NodeValue as String], [NextSibling as CustomXMLNode]) as VoidInsertNodeBefore ([Name as String], [NamespaceURI as String], [NodeType as msoCustomXMLNodeType], [NodeValue as String], [NextSibling as CustomXMLNode]) as Void

Параметры: Name: значение String, которое представляет базовое название элемента, добавляемого к XML DOM. Namespace: необязательное значение String, которое представляет пространство имен для элемента, добавляемого к XML DOM. Требует добавлять вершины типа msoCustomXMLNodeElement или msoCustomXMLNodeAttribute, другие игнорируются. NodeType: необязательный тип msoCustomXMLNodeType, который определяет тип создаваемой вершины. Если не указан, предполагается, что он представляет собой msoCustomXMLNodeElement. NodeValue: необязательное значение String, которое используется для установки значения вершины для вершин, которые обеспечивают возможность текста. Если вершина не обеспечивает возможность текста, параметр игнорируются. NextSibling: необязательный объект CustomXMLNode, который определяет вершину, перед которым требуется добавить новый элемент XML в дерево.Parameters: Name: A String value that represents the base name of the element to add to the XML DOM. Namespace: an optional String value that represents the namespace for the element being added to the XML DOM. Requires adding vertices of type msoCustomXMLNodeElement or msoCustomXMLNodeAttribute, others are ignored. NodeType: optional msoCustomXMLNodeType type, which determines the type of vertex to be created. If not specified, it is assumed to be msoCustomXMLNodeElement. NodeValue: An optional String value that is used to set the vertex value for the vertices that provide text capability. If the vertex does not provide the ability to text, the parameter is ignored. NextSibling: An optional CustomXMLNode object that defines the vertex in front of which you want to add a new XML element to the tree.

Вставляет новую дочернюю вершину в дерево в указанном местоположении. Если BeforeNode не присутствует, при добавлении вершины типа msoCustomXMLNodeElement, msoCustomXMLNodeComment или msoCustomXMLNodeProcessingInstruction, вершина добавляется к концу списка. Если будет добавлен для типа msoCustomXMLNodeAttribute, его игнорируют. Если NextSibling не является дочерним объектом для контекстной вершины, тогда метод выводит сообщение ошибки: "Эта вершина XML не может быть добавлена, поскольку следующий равнозначный элемент должен быть дочерним для контекстного элемента". Если полученное в результате добавление будет структурно не действительным (и включено принудительное выполнение схемы), будет выведено сообщение об ошибке: "Эта операция не может быть выполнена, поскольку она могла бы привести к структурно не действительному DOM". Также блокируется любой случай, когда вершина, которая могла бы быть добавлена, уже имеет существующий атрибут: "атрибут с таким же названием уже существует для текущего элемента".Inserts a new child vertex into the tree at the specified location. If BeforeNode is not present, when adding a node of type msoCustomXMLNodeElement, msoCustomXMLNodeComment or msoCustomXMLNodeProcessingInstruction, the vertex is added to the end of the list. If it is added for type msoCustomXMLNodeAttribute, it is ignored. If NextSibling is not a child of the context node, then the method displays an error message: "This XML vertex cannot be added because the next equivalent element must be a child of the context element." If the resulting addition is structurally invalid (and the forced execution of the circuit is enabled), an error message is displayed: "This operation could not be performed because it could lead to a structurally invalid DOM." It also blocks any case when a vertex that could be added already has an existing attribute: "an attribute with the same name already exists for the current element."

InsertSubtreeBefore (XML, as String, [NextSibling as CustomXMLNode]) as Void.InsertSubtreeBefore (XML, as String, [NextSibling as CustomXMLNode]) as Void.

Параметры: XML: значение String, представляющее поддерево, добавляемое к XML DOM. Этот XML должен быть правильно сформированным документом XML (включающим в себя декларации пространства имен, одну корневую вершину и т.д.). Если это не так, выводится сообщение об ошибке: "Для добавления поддерева XML в Ваш документ он должен содержать действительный, правильно сформированный XML. "NextSibling: не обязательный объект CustomXMLNode, который определяет вершину, до того, как новый элемент XML будет добавлен к дереву.Parameters: XML: A String value representing the subtree added to the XML DOM. This XML must be a well-formed XML document (including namespace declarations, one root vertex, etc.). If this is not the case, the error message is displayed: “To add the XML subtree to your document, it must contain valid, well-formed XML.” NextSibling: an optional CustomXMLNode object that defines the vertex before a new XML element is added to the tree .

Вставляет указанное поддерево XML в дочерний набор вершин в упомянутом местоположении. Если NextSibling не является дочерним для контекстной вершины, то метод выводит сообщение: "Эта вершина XML не может быть добавлена, поскольку следующая одноуровневая вершина должна быть дочерней для контекстного элемента". Если полученный после добавления результат будет структурно недействительным, выводится сообщение об ошибке: "Эта операция не может быть выполнена, поскольку она могла бы привести к структурно недействительному DOM".Inserts the specified XML subtree into the child vertex set at the referenced location. If NextSibling is not a child of the context node, the method displays the message: "This XML vertex cannot be added because the next sibling node must be a child of the context element." If the result obtained after adding is structurally invalid, an error message is displayed: "This operation could not be performed because it could lead to a structurally invalid DOM."

LastChild as CustomXMLNode: Возвращает объект CustomXMLNode, соответствующий последнему дочернему элементу текущей вершины. Если вершина не имеет дочерних элементов (или если она сама не имеет тип msoCustomXMLNodeElement), ничего не возвращается.LastChild as CustomXMLNode: Returns a CustomXMLNode object corresponding to the last child of the current vertex. If the vertex does not have children (or if it itself does not have the msoCustomXMLNodeElement type), nothing is returned.

NamespaceURI as String [только для чтения]NamespaceURI as String [read-only]

Возвращает значение String, соответствующее пространству имен текущей вершины. Если вершина имеет тип msoCustomXMLNodeComment msoCustomXMLNodeProcessingInstruction, возвращается "".Returns the String value corresponding to the namespace of the current vertex. If the vertex is of type msoCustomXMLNodeComment msoCustomXMLNodeProcessingInstruction, "" is returned.

NextSibling as CustomXMLNode: Возвращает следующую одноуровневую вершину (элемент, комментарий или инструкцию по машинной обработке) текущей вершины. Если вершина представляет собой последнюю одноуровневую вершину на ее уровне, ничего не возвращается.NextSibling as CustomXMLNode: Returns the next sibling vertex (element, comment, or machine instruction) of the current vertex. If the vertex is the last single-level vertex at its level, nothing is returned.

NodeType as msoCustomXMLNodeType: Возвращает константу msoCustomXMLNodeType, представляющую тип текущей вершины.NodeType as msoCustomXMLNodeType: Returns the constant msoCustomXMLNodeType representing the type of the current vertex.

NodeValue as String: Получает/устанавливает текст внутри вершин, содержащих только текст (то есть, текстовых вершин, комментариев, инструкций обработки, атрибутов). Для элементов выводится сообщение об ошибке: "Вы не можете установить параметры NodeValue для вершин элементов".NodeValue as String: Gets / sets the text inside vertices containing only text (i.e., text vertices, comments, processing instructions, attributes). An error message is displayed for elements: "You cannot set NodeValue parameters for element vertices."

OwnerDocument as Variant: Возвращает объект Document/Workbook/Presentation, представляющий документ Word, ассоциированный с этим вершиной.OwnerDocument as Variant: Returns a Document / Workbook / Presentation object representing the Word document associated with this vertex.

OwnerStream as CustomXMLPart: Возвращает объект CustomXMLPart, представляющий элемент хранилища данных, ассоциированный с этой вершиной.OwnerStream as CustomXMLPart: Returns a CustomXMLPart object representing the data store item associated with this vertex.

PreviousSibling as CustomXMLNode: Возвращает предыдущую одноуровневую вершину (элемент, комментарий, или машинную инструкцию по обработке) для текущей вершины. Если вершина представляет собой первую одноуровневую вершину на этом уровне, ничего не возвращается.PreviousSibling as CustomXMLNode: Returns the previous sibling vertex (item, comment, or machine processing instruction) for the current vertex. If the vertex is the first single-level vertex at this level, nothing is returned.

ParentNode as CustomXMLNode: Возвращает вершину - родительский элемент для текущей вершины. Если вершина находится на корневом уровне, ничего не возвращается.ParentNode as CustomXMLNode: Returns the vertex - the parent element for the current vertex. If the vertex is at the root level, nothing is returned.

RemoveChild (Child as CustomXMLNode) as VoidRemoveChild (Child as CustomXMLNode) as Void

Параметры: Child: объект CustomXMLNode, который представляет дочернюю вершину для контекстной вершины, предназначенной для удаления. Если эта вершина не является дочерней для контекстной вершины, выводится сообщение об ошибке: "Эта вершина не может быть удалена, поскольку она не является дочерней для текущего элемента".Parameters: Child: a CustomXMLNode object that represents the child node for the context node to be deleted. If this vertex is not a child of the context vertex, an error message is displayed: "This vertex cannot be deleted because it is not a child of the current element."

Удаляет указанную дочернюю вершину из потока. Если полученный в результате DOM будет структурно недействительным, выводится сообщение об ошибке: "Эта операция не может быть выполнена, поскольку она могла бы привести к структурно не действительному DOM".Removes the specified child vertex from the stream. If the resulting DOM is structurally invalid, an error message is displayed: "This operation could not be performed because it could lead to a structurally invalid DOM."

ReplaceChildNode (Name as String, [Namespace as String], [NodeType as msoCustomXMLNodeType], [NodeValue as String], OldNode as CustomXMLNode) as VoidReplaceChildNode (Name as String, [Namespace as String], [NodeType as msoCustomXMLNodeType], [NodeValue as String], OldNode as CustomXMLNode) as Void

Параметры: OldNode: CustomXMLNode, представляющий дочернюю вершину, который будет заменена. Название: значение String, которое представляет базовое название элемента, добавляемого к XML DOM. NameSpace: необязательное значение String, которое представляет пространство имен элемента, добавляемого к XML DOM. Требуется добавлять вершины типа msoCustomXMLNodeElement или msoCustomXMLNodeAttribute, другие игнорируются. NodeType: необязательный тип msoCustomXMLNodeType, который определяет тип создаваемой вершины. Если не указан, предполагается, что он представляет собой msoCustomXMLNodeElement. NodeValue: необязательное значение String, которое используется для установки значения вершины для вершин, которые обеспечивают возможность текста. Если вершина не обеспечивает возможность текста, этот параметр игнорируется.Parameters: OldNode: CustomXMLNode representing the child node to be replaced. Name: String value that represents the base name of the element to add to the XML DOM. NameSpace: an optional String value that represents the namespace of the element being added to the XML DOM. It is required to add vertices of type msoCustomXMLNodeElement or msoCustomXMLNodeAttribute, others are ignored. NodeType: optional msoCustomXMLNodeType type, which determines the type of vertex to be created. If not specified, it is assumed to be msoCustomXMLNodeElement. NodeValue: An optional String value that is used to set the vertex value for the vertices that provide text capability. If the vertex does not provide the ability to text, this parameter is ignored.

Удаляет упомянутую дочернюю вершина (и ее поддерево) из потока и заменяет его вершиной, указанной в том же местоположении. Если OldNode не является дочерней для контекстной вершины, выводится сообщение об ошибке: "OldNode должен быть дочерней для текущей вершины". Если полученная в результате замена будет структурно недействительной, выводится сообщение об ошибке: "Эта операция не может быть выполнена, поскольку она могла бы привести к структурно недействительному DOM". Кроме того, блокируется любой случай, когда вершина, которая могла бы быть добавлена, представляет собой уже существующий атрибут: "атрибут с таким же названием уже существует в текущем элементе".Removes the mentioned child vertex (and its subtree) from the stream and replaces it with the vertex specified at the same location. If OldNode is not a child of the context node, an error message is displayed: "OldNode must be a child of the current node." If the resulting replacement is structurally invalid, an error message is displayed: "This operation could not be performed because it could lead to a structurally invalid DOM." In addition, any case is blocked when the vertex that could be added is an existing attribute: "an attribute with the same name already exists in the current element."

ReplaceChildSubtree (XML, as String, OldNode as CustomXMLNode) as VoidReplaceChildSubtree (XML, as String, OldNode as CustomXMLNode) as Void

Параметры: OldNode: CustomXMLNode, представляющий дочернюю вершину, которая будет заменена. XML: значение String, представляющее поддерево, которое должно быть добавлено к XML DOM. Этот XML должен быть правильно сформированным документом XML (включая декларации пространства имен, одиночной корневой вершины и т.д.). Если это не так, выводится сообщение об ошибке: "Для добавления поддерева XML в Ваш документ, он должен содержать действительный, правильно сформированный XML".Parameters: OldNode: CustomXMLNode representing the child node to be replaced. XML: A String value representing the subtree to be added to the XML DOM. This XML must be a well-formed XML document (including declarations of namespace, single root vertex, etc.). If this is not the case, the error message is displayed: "To add an XML subtree to your document, it must contain valid, correctly formed XML."

Удаляет указанную вершину (и ее поддерево) из потока и заменяет ее в том же местоположении упомянутым поддеревом XML. Если OldNode не является дочерним для контекстной вершины, выводится сообщение об ошибке: "OldNode должен быть дочерним для текущей вершины". Если полученная в результате замена может быть структурно недействительной, выводится сообщение об ошибке: "Эта операция не может быть выполнена, поскольку она могла бы привести к структурно недействительному DOM".Removes the specified vertex (and its subtree) from the stream and replaces it at the same location with the mentioned XML subtree. If OldNode is not a child of the context vertex, an error message is displayed: "OldNode must be a child of the current vertex." If the resulting replacement may be structurally invalid, the error message is displayed: "This operation could not be performed because it could lead to a structurally invalid DOM."

SelectNodes (XPath as String) as CustomXMLNodes()SelectNodes (XPath as String) as CustomXMLNodes ()

Параметры: XPath: значение String, содержащее выражение XPath, для оценки для DOM. Преобразование префикса для этого XPath извлекают из свойства NamespaceManager. Если XPath не позволяет разрешить ситуацию, проходит через любые возникающие ошибки (аналогично существующему в настоящее время способу, применяемому к объекту Document с внедренным XML).Parameters: XPath: String value containing the XPath expression to evaluate for the DOM. The prefix conversion for this XPath is extracted from the NamespaceManager property. If XPath does not resolve the situation, it goes through any errors that occur (similar to the currently existing method applied to a Document object with embedded XML).

Такой метод позволяет разработчику получить обратно набор вершин из элемента хранилища данных.This method allows the developer to get back a set of vertices from the data store element.

SelectSingleNode (XPath as String) as CustomXMLNode()SelectSingleNode (XPath as String) as CustomXMLNode ()

Параметры: XPath: значение String, содержащее выражение XPath для оценки для DOM. Преобразования префикса для этого XPath извлекают из свойства NamespaceManager. Если XPath не позволяет разрешить ситуацию, проходит через любые возникающие ошибки (аналогично применяемому в настоящее время методу для объекта Document с внедренным XML).Parameters: XPath: String value containing the XPath expression to evaluate for the DOM. Prefix conversions for this XPath are extracted from the NamespaceManager property. If XPath does not resolve the situation, it passes through any errors that occur (similar to the method currently used for the Document object with embedded XML).

Этот метод позволяет разработчику получить обратно одну вершину среди элементов хранилища данных.This method allows the developer to get back one vertex among the elements of the data warehouse.

Text as String: Получает/устанавливает текст для текущей вершины. В отличие от MSXML установка его для вершины заменяет содержание этой вершины указанной строкой - например, установкой ее в значение "тест" на не листовом элементе <foo>, где содержание foo выглядит следующим образом:Text as String: Gets / sets the text for the current vertex. Unlike MSXML, setting it for a vertex replaces the contents of this vertex with the specified string — for example, setting it to “test” on a non-leaf <foo> element, where the contents of foo are as follows:

<foo><foo> BarBar <baz> hello </baz><baz> hello </baz> </foo></foo>

Не приведет к ошибке, но приведет к другому внутреннему сообщению для хранилища данных и внешнему для клиентов хранилища данных. Если полученная в результате замена будет конструктивно недействительной, выводится сообщение об ошибке: "Эта операция не может быть выполнена, поскольку она могла бы привести к конструктивно недействительному DOM".It will not result in an error, but will result in a different internal message for the data store and external for the data store clients. If the resulting replacement is structurally invalid, the error message is displayed: "This operation cannot be performed because it could lead to a structurally invalid DOM."

XML as String: возвращает не обработанное представление XML текущей вершины и ее дочерних элементов (если имеются).XML as String: returns the unprocessed XML representation of the current vertex and its children (if any).

XPath as String: Возвращает значение String с канонизированным XPath для текущей вершины. Если вершина больше не находится в DOM (была удалена), выводится сообщение об ошибке: "Эта вершина была удалена из соответствующей части XML пользователя)".XPath as String: Returns a String value with canonicalized XPath for the current vertex. If the vertex is no longer in the DOM (has been deleted), an error message is displayed: "This vertex has been deleted from the corresponding part of the XML user)".

Новые Enums:New Enums:

msoCustomXMLDataNodeType представляет типы доступных вершин XML, msoCustomXMLNodeAttribute представляет вершину атрибута XML. msoCustomXMLNodeCData представляет вершину CDATA. msoCustomXMLNodeComment представляет вершину комментария XML. msoCustomXMLNodeDocument представляет документ XML (/) вершину. msoCustomXMLNodeElement представляет вершину элемента XML. msoCustomXMLNodeProcessingInstruction представляет вершину инструкции обработки XML. msoCustomXMLNodeText представляет текстовую вершину.msoCustomXMLDataNodeType represents the types of XML vertices available; msoCustomXMLNodeAttribute represents the XML attribute vertex. msoCustomXMLNodeCData represents the top of CDATA. msoCustomXMLNodeComment represents the top of an XML comment. msoCustomXMLNodeDocument represents an XML document (/) vertex. msoCustomXMLNodeElement represents the top of an XML element. msoCustomXMLNodeProcessingInstruction represents the pinnacle of an XML processing instruction. msoCustomXMLNodeText represents a text vertex.

ReplaceChild (Child as CustomXMLNode, Name as String, [Namespace as String], [NodeType as String], [NodeValue as String]) as CustomXMLNodeReplaceChild (Child as CustomXMLNode, Name as String, [Namespace as String], [NodeType as String], [NodeValue as String]) as CustomXMLNode

Параметры: Child: объект CustomXMLNode, который представляет дочернюю вершину контекстной вершины, которая должен быть удалена. Если эта вершина не является дочерней для контекстной вершины, выводится сообщение об ошибке: "Эта вершина не может быть удалена, поскольку она не является дочерней для текущего элемента". Name: значение String, которое представляет базовое название элемента, добавляемого к XML DOM. Namespace: необязательное значение String, которое представляет собой пространство имен элементов, добавляемых в XML DOM. Требуется добавлять вершины типа msoXMLNodeElement или msoXMLNodeAttribute, другие игнорируются. NodeType: необязательный тип msoXMLNodeType, который определяет тип создаваемой вершины. Если он не указан, предполагается, что он представляет собой msoXMLNodeElement. Node Value: не обязательное значение String, которое используется для установки значения вершины для вершин, которые обеспечивают возможность текста. Если вершина не обеспечивает возможность текста, этот параметр игнорируется.Parameters: Child: a CustomXMLNode object that represents the child vertex of the context vertex to be deleted. If this vertex is not a child of the context vertex, an error message is displayed: "This vertex cannot be deleted because it is not a child of the current element." Name: String value that represents the base name of the element being added to the XML DOM. Namespace: an optional String value, which is the namespace of the elements added to the XML DOM. You need to add vertices of type msoXMLNodeElement or msoXMLNodeAttribute, others are ignored. NodeType: an optional msoXMLNodeType type that defines the type of vertex to create. If it is not specified, it is assumed to be msoXMLNodeElement. Node Value: An optional String value that is used to set the vertex value for vertices that allow text. If the vertex does not provide the ability to text, this parameter is ignored.

Удаляет упомянутую дочернюю вершину (и ее поддерево) из потока и заменяет ее вершиной, указанной в том же местоположении. Если результат удаления приводит к недействительной структуре (и схема принуждения включена), выводится сообщение об ошибке: "Эта операция не может быть выполнена, поскольку она могла бы привести к структурно недействительному DOM".Removes the mentioned child vertex (and its subtree) from the stream and replaces it with the vertex specified at the same location. If the result of the deletion results in an invalid structure (and the enforcement scheme is turned on), an error message is displayed: "This operation could not be performed because it could lead to a structurally invalid DOM."

XMLNamespace: объект, представляющий одиночное уникальное пространство имен в Schema Library.XMLNamespace: An object representing a single unique namespace in the Schema Library.

AttachToCustomXMLPart (CustomXMLPart as Variant) as VoidAttachToCustomXMLPart (CustomXMLPart as Variant) as Void

Параметры: CustomXMLPart: Variant, который может быть либо объектом CustomXMLPart для требуемого потока, или индексом этого потока в подборке CustomXMLParts.Parameters: CustomXMLPart: Variant, which can be either a CustomXMLPart object for the required stream, or an index of this stream in the CustomXMLParts collection.

Прикрепляют схему для этого пространства имен XML для заданной CustomXMLPart.Attach a schema for this XML namespace for the given CustomXMLPart.

XMLSchemaReference: объект, представляющий одиночное уникальное пространство имен, к которому обращаются в текущем документе,XMLSchemaReference: an object representing a single unique namespace referenced in the current document,

Delete() as Void: Удаляет пространство имен, а также все элементы в этом пространстве имен из CustomXMLPart. Однако в этом случае хранилище данных может отклонить эту операцию, поскольку принудительное выполнение структурной схемы включено, и удаление этих элементов приведет к структурно недействительному DOM. В этом случае выводится сообщение об ошибке: "Эта операция не может быть выполнена, поскольку включена схема принудительного выполнения, в связи с тем, что полученный поток был бы структурно недействительным".Delete () as Void: Deletes the namespace, as well as all elements in this namespace, from CustomXMLPart. However, in this case, the data warehouse may reject this operation, because the forced execution of the structural diagram is enabled, and the removal of these elements will lead to a structurally invalid DOM. In this case, the error message is displayed: "This operation cannot be performed because the forced execution scheme is enabled due to the fact that the received stream would be structurally invalid."

Add (Name as String, Namespace as String, [Parent as CustomXMLNode], [NextSibling as CustomXMLDataNode], [NodeType as msoXMLNodeType], [NodeValue as String]) as CustomXMLNodeAdd (Name as String, Namespace as String, [Parent as CustomXMLNode], [NextSibling as CustomXMLDataNode], [NodeType as msoXMLNodeType], [NodeValue as String]) as CustomXMLNode

Параметры: Name: значение String, которое представляет базовое название элемента, добавляемого к XML DOM. Namespace: необязательное значение String, которое представляет пространство имен элемента, который добавляют к XML DOM. Требуется добавлять вершины типов msoXMLNodeElement или msoXMLNodeAttribute, другие игнорируются. Parent: не обязательный CustomXMLNode, представляющий вершину, под которой должна быть добавлена данная вершина. Если его отзывают, подборка (коллекция) CustomXMLNodes возвращается по свойству Attributes и затем предполагается, что он представляет собой родительскую вершину для атрибутов. Если его вызывают в любом другом случае, тогда этот параметр указывает или возвращает ошибку: "Вы должны указать родительскую вершину для добавления этой вершины в Ваш документ". NextSibling: не обязательный CustomXMLNode, представляющий вершину, который должен стать следующей одноуровневой вершиной для новой вершины. Если она не указана, эту вершину добавляют в конце дочерней вершины для родительской вершины. Игнорируется для добавления типа msoXMLNodeAttribute. Если NextSibling не является дочерней или родительской вершиной, возвращается сообщение об ошибке: "Эта вершина не может быть добавлена, поскольку следующая одноуровневая вершина не является дочерней или родительской вершиной". NodeType: не обязательный msoXMLNodeType, который определяет тип создаваемой вершины. Если он не указан, предполагается, что он представляет собой msoXMLNodeElement, если только не будет отозвано свойство Attributes, тогда предполагается, что он представляет собой msoXMLNodeAttribute. NodeValue: не обязательное значение String, которое используется для установки значения вершины для вершин, которые обеспечивают возможность текста. Если вершина не обеспечивает возможность текста, этот параметр игнорируется.Parameters: Name: A String value that represents the base name of the element to add to the XML DOM. Namespace: an optional String value that represents the namespace of the element that is added to the XML DOM. It is required to add vertices of the msoXMLNodeElement or msoXMLNodeAttribute types, others are ignored. Parent: Optional CustomXMLNode representing the vertex below which this vertex should be added. If it is revoked, the CustomXMLNodes collection is returned by the Attributes property and then it is assumed that it represents the parent node for the attributes. If it is called in any other case, then this parameter indicates or returns an error: "You must specify the parent vertex to add this vertex to your document." NextSibling: Optional CustomXMLNode representing the vertex, which should be the next sibling vertex for the new vertex. If not specified, this vertex is added at the end of the child vertex for the parent vertex. Ignored to add type msoXMLNodeAttribute. If NextSibling is not a child or parent vertex, an error message is returned: "This vertex cannot be added because the next sibling vertex is not a child or parent vertex." NodeType: optional msoXMLNodeType, which determines the type of vertex to be created. If it is not specified, it is assumed that it is an msoXMLNodeElement, unless the Attributes property is revoked, then it is assumed that it is an msoXMLNodeAttribute. NodeValue: An optional String value that is used to set the vertex value for vertices that allow text. If the vertex does not provide the ability to text, this parameter is ignored.

Общий метод добавления XML вершины к элементу хранилища данных. Если его объект, возвращаемый свойством Attributes, отзывают из CustomXMLNodes, тогда Parent имеет значение, принятое по умолчанию для родительской вершины, и NodeType имеет значение, принятое по умолчанию для msoXMLNodeAttribute. Во всех других случаях требуется Parent, и NodeType устанавливается по умолчанию в значение msoXMLNodeElement. Если полученное в результате добавление будет структурно недействительным (и схема принудительного выполнения включена), выводится сообщение об ошибке: "Эта операция не может быть выполнена, пока схема принудительного выполнения включена, поскольку она могла бы привести к структурно недействительному потоку данных". Если пространство имен не содержится в подборке ссылок схемы, возникает ошибка и выводится сообщение: "Чтобы добавить этот элемент, Вы должны вначале прикрепить его схему к потоку данных".A general method of adding XML vertices to a data warehouse item. If its object returned by the Attributes property is revoked from CustomXMLNodes, then Parent has the default value for the parent vertex, and NodeType has the default value for msoXMLNodeAttribute. In all other cases, Parent is required, and NodeType is set to msoXMLNodeElement by default. If the resulting addition is structurally invalid (and the enforcement scheme is enabled), an error message is displayed: "This operation cannot be performed while the enforcement scheme is enabled, because it could lead to a structurally invalid data stream." If the namespace is not contained in the selection of schema links, an error occurs and the message: "To add this element, you must first attach its schema to the data stream."

CustomDataXMLSchemaReferences(): Подборка, представляющая все уникальные пространства имен, идентифицированные в CustomXMLPart. Примечание: По умолчанию его заполняют записями для каждого пространства имен, декларированного в файле XML.CustomDataXMLSchemaReferences (): A collection representing all the unique namespaces identified in CustomXMLPart. Note: By default, it is populated with entries for each namespace declared in the XML file.

Add([NamespaceURI as String], [Alias as String], [FileName as String], [InstallForAllUsers as Boolean=False]) as XMLSchemaReferenceAdd ([NamespaceURI as String], [Alias as String], [FileName as String], [InstallForAllUsers as Boolean = False]) as XMLSchemaReference

Параметры: NamespaceURI: значение String, содержащее пространство имен, определенное схемой, для добавления подборки схемы. Alias: значение String, содержащее псевдоним, для записи при добавлении этой схемы в библиотеку схемы. FileName: значение String, содержащее путь к схеме, которая должна быть добавлена к библиотеке схемы. InstallForAllUsers: булево значение, определяющее, следует ли добавлять ключи Schema Library к HKCU (принято по умолчанию) или HKLMParameters: NamespaceURI: String value containing the namespace defined by the schema to add the schema collection. Alias: String value containing an alias to write when this schema is added to the schema library. FileName: String value containing the path to the schema to be added to the schema library. InstallForAllUsers: a boolean value that determines whether to add Schema Library keys to HKCU (default) or HKLM

Этот метод добавляет ссылку к схеме. С этой целью добавляют соответствующую декларацию пространства имен к корневому элементу CustomXMLPart, если он уже не определен в файле. Во время открытия все декларируемые пространства имен используются для заполнения этой подборки.This method adds a link to the schema. To this end, add the appropriate namespace declaration to the root element of CustomXMLPart, if it is not already defined in the file. At the time of opening, all declared namespaces are used to populate this collection.

EnforceStructure as Boolean: получает и устанавливает значение Boolean, которое соответствует, следует ли принудительно сохранять структурную действительность хранилища данных по ассоциированной CustomXMLPart, в соответствии с ее схемой. Если пользователь пытается установить это свойство в значение TRUE, в то время как содержание CustomXMLPart является недействительным, возвращается сообщение об ошибке: "принудительное выполнение схемы не может быть включено, пока содержание этого потока данных является структурно недействительным".EnforceStructure as Boolean: Gets and sets a Boolean value that matches whether to force the structural validity of the data store to be associated with the associated CustomXMLPart in accordance with its scheme. If the user tries to set this property to TRUE while the content of CustomXMLPart is invalid, an error message is returned: "forced execution of the circuit cannot be enabled while the content of this data stream is structurally invalid".

Count as Long: Возвращает количество пространств имен, к которым в настоящий момент обращаются в этом CustomXMLPart.Count as Long: Returns the number of namespaces that are currently accessed in this CustomXMLPart.

Item (Index as Variant) as XMLSchemaReferenceItem (Index as Variant) as XMLSchemaReference

Параметры: Index: значение Variant, которое может быть одним из следующих двух типов: Значение Long, представляющее индекс требуемого CustomDataXMLSchemaReference в подборке; и значение String, представляющее пространство имен требуемого CustomDataXMLSchemaReference в подборке.Parameters: Index: a Variant value, which can be one of the following two types: Long, representing the index of the desired CustomDataXMLSchemaReference in the collection; and a String value representing the namespace of the required CustomDataXMLSchemaReference in the collection.

Представляет собой принятый по умолчанию элемент объекта CustomDataXMLSchemaReferences и возвращает объект XMLSchemaReference, соответствующий запрашиваемому объекту.It is the default element of the CustomDataXMLSchemaReferences object and returns an XMLSchemaReference object corresponding to the requested object.

Validate()as Void: Этот метод проверяет весь поток по всем схемам в подборке CustomDataXMLSchemaReferences. Об ошибках сообщают по отдельным вершинам (см. свойство ValidationStatus)/Validate () as Void: This method checks the entire stream for all schemes in the CustomDataXMLSchemaReferences collection. Errors are reported on individual vertices (see the ValidationStatus property) /

CustomXMLNodeCustomXMLNode

NodeAfterInsert (NewCustomXMLNode as CustomXMLNode, InUndoRedo as Boolean).NodeAfterInsert (NewCustomXMLNode as CustomXMLNode, InUndoRedo as Boolean).

Параметры: NewCustomXMLNode: объект CustomXMLNode, соответствующий вершине, только что добавленному CustomXMLPart. Примечание: Эта вершина может иметь дочернюю вершину (если поддерево было только что добавлено в документ). InUndoRedo: булево значение, возвращающее значение TRUE, если вершина была добавлена как часть действия Undo/Redo пользователем, FALSE в других случаях.Parameters: NewCustomXMLNode: a CustomXMLNode object corresponding to the top of the newly added CustomXMLPart. Note: This vertex may have a child vertex (if the subtree has just been added to the document). InUndoRedo: Boolean returning TRUE if the vertex was added as part of the Undo / Redo action by the user, FALSE in other cases.

Данное событие возникает всякий раз, когда вершины XML предполагается добавить к текущему документу. Если операция добавления подразумевает добавление поддерева документа XML в CustomXMLPart, это событие один раз возникает для самой верхней изменяющейся вершины. Данное событие возникает один раз для каждого изменения, объявленного для хранилища данных, поэтому побочные эффекты изменения, представленные этим событием, также инициируют событие.This event occurs whenever XML vertices are supposed to be added to the current document. If the add operation involves adding the subtree of the XML document to CustomXMLPart, this event occurs once for the topmost changing vertex. This event occurs once for each change declared to the data store, so the side effects of the change represented by this event also trigger the event.

NodeBeforeDelete (OldCustomXMLNode as CustomXMLNode, InUndoRedo as Boolean)NodeBeforeDelete (OldCustomXMLNode as CustomXMLNode, InUndoRedo as Boolean)

Параметры: OldCustomXMLNode: объект CustomXMLNode, соответствующий вершине, который должен быть удален из CustomXMLPart. Примечание: Эта вершина может иметь дочернюю вершину (если поддерево удаляют из документа). InUndoRedo: булево значение, возвращающее TRUE, если вершина была добавлена пользователем как часть действия Undo/Redo, в других случаях FALSE.Parameters: OldCustomXMLNode: a CustomXMLNode object corresponding to the vertex to be removed from CustomXMLPart. Note: This vertex may have a child vertex (if the subtree is removed from the document). InUndoRedo: a Boolean value that returns TRUE if the vertex was added by the user as part of the Undo / Redo action, in other cases FALSE.

Это событие возникает всякий раз, когда вершины XML удаляют из текущего предмета в хранилище данных. Если операция удаления подразумевает поддерево документа XML в CustomXMLPart, это событие возникает один раз для самой верхней изменяемой вершины. Такое событие возникает один раз для каждого изменения, объявляемого в хранилище данных, поэтому побочные эффекты изменения, представленного этим событием, также инициируют событие. Если обработчик события пытается модифицировать что-либо, что могло бы находиться под этой вершиной, возникает ошибка и выводится сообщение об ошибке: "Это изменение не разрешено, поскольку предполагается, что эта вершина будет удалена".This event occurs whenever XML vertices are removed from the current item in the data warehouse. If the delete operation involves a subtree of the XML document in CustomXMLPart, this event occurs once for the top-most mutable vertex. Such an event occurs once for each change declared in the data store, therefore the side effects of the change represented by this event also trigger the event. If the event handler tries to modify anything that might be under this vertex, an error occurs and an error message is displayed: "This change is not allowed because it is assumed that this vertex will be deleted."

Приведенное выше описание, примеры и данные предоставляют полное описание изготовления и использования состава изобретения. Поскольку множество вариантов воплощения изобретения могут быть выполнены без выхода за пределы сущности и объема изобретения, изобретение представлено в приложенной ниже формуле изобретения.The above description, examples and data provide a complete description of the manufacture and use of the composition of the invention. Since many embodiments of the invention can be made without departing from the spirit and scope of the invention, the invention is presented in the appended claims.

Claims (16)

1. Считываемый компьютером носитель информации, имеющий выполняемые компьютером инструкции для управления данными, ассоциированными с генерируемыми компьютером документами, посредством этапов, на которых:
сохраняют элементы структурированных данных, которые ассоциированы с документом, в хранилище данных, которое содержится отдельно от документа, причем элементы структурированных данных представлены на расширяемом языке разметки (XML),
форматируют структурированные данные так, что интерфейс прикладного программирования (API) предоставляют для множества приложений, потребляющих данные, для обеспечения возможности программного доступа приложениями, потребляющими данные, к элементам структурированных данных; причем выполнение API обеспечивает возможность доступа к элементам структурированных данных в пределах хранилища данных, когда документ открыт и когда документ закрыт, при этом API, который разрешает программный доступ к элементам структурированных данных приложениями, потребляющими данные, содержит этап, на котором разрешают множеству приложений, потребляющих данные, осуществлять доступ к одному и тому же элементу структурированных данных в один и тот же момент времени,
регистрируют для выполнения уведомления об изменениях посредством приложений, потребляющих данные,
определяют, когда сделано изменение одного из элементов структурированных данных с использованием API; и, когда изменение сделано, уведомляют зарегистрированные приложения, потребляющие данные, об этом изменении;
в ответ на уведомление об изменении ставят в очередь побочное изменение посредством одного из приложений, потребляющих данные, причем это побочное изменение генерируется на основе данных, относящихся к уведомленному изменению,
уведомляют зарегистрированные приложения, потребляющие данные, о побочном изменении.
1. A computer-readable medium having computer-executable instructions for managing data associated with computer-generated documents, by the steps of:
store the structured data elements that are associated with the document in a data warehouse that is separate from the document, and the structured data elements are presented in an extensible markup language (XML),
formatting structured data such that an application programming interface (API) is provided for a plurality of data consuming applications to provide programmatic access for data consuming applications to structured data elements; moreover, the execution of the API provides the ability to access structured data elements within the data warehouse when the document is open and when the document is closed, while the API, which allows programmatic access to structured data elements by data consuming applications, comprises the step of allowing multiple applications consuming data, access the same structured data element at the same time,
register to perform notification of changes through applications consuming data,
determine when a change is made to one of the elements of structured data using the API; and when the change is made, registered applications consuming data are notified of this change;
in response to the notification of the change, a side change is queued by one of the data consuming applications, this side change being generated based on data related to the notified change,
Notify registered applications that consume data of a side change.
2. Считываемый компьютером носитель информации по п.1, дополнительно содержащий этап, на котором отменяют изменения, когда одно из зарегистрированных приложений, потребляющих данные, отклоняет это изменение, и передают изменения в хранилище данных, когда каждое из зарегистрированных приложений, потребляющих данные, принимает изменение.2. The computer-readable storage medium according to claim 1, further comprising the step of canceling the changes when one of the registered data consuming applications rejects the change and transmitting the changes to the data store when each of the registered data consuming applications accepts change. 3. Считываемый компьютером носитель информации по п.2, дополнительно содержащий этап, на котором используют API для ассоциирования элемента структурированных данных с файлом схемы XML, который используется для проверки достоверности элемента структурированных данных прежде, чем изменение будет передано в хранилище данных.3. The computer-readable storage medium according to claim 2, further comprising the step of using the API to associate the structured data element with an XML schema file, which is used to validate the structured data element before the change is transferred to the data warehouse. 4. Считываемый компьютером носитель информации по п.1, в котором API предоставляет функцию регистрации для приема уведомления для уведомления об изменениях в отношении, по меньшей мере, одного из: изменения хранилища данных и изменения одного или более элементов структурированных данных; причем изменение может включать в себя удаление, добавление и модификацию, по меньшей мере, одного из хранилища данных и элемента структурированных данных.4. The computer-readable storage medium according to claim 1, wherein the API provides a registration function for receiving a notification for notification of changes in relation to at least one of: changes to the data store and changes to one or more structured data elements; moreover, the change may include the removal, addition and modification of at least one of the data warehouse and the structured data element. 5. Считываемый компьютером носитель информации по п.4, в котором API предоставляет интерфейс для добавления вершины к хранилищу данных; удаления вершины из хранилища данных; и замены вершины в хранилище данных.5. The computer-readable storage medium according to claim 4, wherein the API provides an interface for adding vertices to the data store; Removing vertices from the data warehouse and replacing the top in the data warehouse. 6. Считываемый компьютером носитель информации по п.4, в котором API предоставляет интерфейс для заполнения хранилища данных с использованием существующего файла; и заполнения хранилища данных с использованием строки XML.6. The computer-readable storage medium according to claim 4, wherein the API provides an interface for filling the data store using an existing file; and populating the data warehouse using an XML string. 7. Считываемый компьютером носитель информации по п.4, в котором API предоставляет интерфейс для добавления пространства имен; поиска в пространстве имен; добавления схемы; удаления схемы; и перезагрузки схемы.7. The computer-readable storage medium according to claim 4, wherein the API provides an interface for adding a namespace; namespace search; add schema; delete schema; and reloading the circuit. 8. Считываемый компьютером носитель информации по п.4, в котором API предоставляет интерфейс для добавления потока; удаления потока; добавления поддерева; удаления поддерева; получения следующей одноуровневой вершины для текущей вершины; и получения предыдущей одноуровневой вершины для текущей вершины, получающей тип вершины.8. The computer-readable storage medium according to claim 4, wherein the API provides an interface for adding a stream; stream removal; add subtree; delete subtree; getting the next sibling vertex for the current vertex; and obtaining the previous sibling vertex for the current vertex receiving the vertex type. 9. Считываемый компьютером носитель информации по п.4, в котором API предоставляет интерфейс для получения значения вершины; и принудительного выполнения структуры.9. The computer-readable storage medium according to claim 4, wherein the API provides an interface for obtaining vertex values; and enforcing the structure. 10. Выполняемый компьютером способ управления данными, ассоциированными с документами, генерируемыми компьютером, содержащий этапы, на которых:
сохраняют элементы структурированных данных, которые ассоциированы с документами, с использованием хранилищ данных; при этом элемент структурированных данных является структурированным в соответствии с расширяемым языком разметки (XML); и
форматируют структурированные данные так, что интерфейс прикладного программирования (API) предоставляется для приложений, потребляющих данные, который обеспечивает программный доступ к документам и к элементам структурированных данных, которые содержатся в хранилищах данных; и
выполняют этот API для доступа к элементам структурированных данных, находящихся в хранилище данных, в то время как документ редактируют и когда документ закрыт, так что структурированные данные связываются с документами и функциями как метаданные, описывающие характеристики документа; и при этом приложение, потребляющее данные, когда оно зарегистрировано, принимает уведомление об изменении, выполненном в хранилище данных,
инициируют изменение в одном из хранилищ данных, используя API,
передают уведомление ко второму зарегистрированному приложению, потребляющему данные, об изменении,
в ответ на уведомление во втором зарегистрированном приложении, потребляющем данные, ставят в очередь побочное изменение,
определяют, когда ответ от второго зарегистрированного приложения, потребляющего данные, является отклонением, и когда ответ есть отклонение, отменяют изменение и побочное изменение,
определяют, когда первое и второе зарегистрированное приложение, потребляющее данные, принимают изменение и побочное изменение, и когда первое и второе зарегистрированное приложение, потребляющее данные, принимают изменение и побочное изменение, необязательно проверяют правильность изменения и побочного изменения, используя схему XML, которая обеспечивается посредством одного из приложений, потребляющих данные, с помощью API,
передают изменение и побочное изменение в одно или более хранилищ данных.
10. A computer-implemented method for managing data associated with documents generated by a computer, comprising the steps of:
store structured data elements that are associated with documents using data warehouses; wherein the structured data element is structured in accordance with an extensible markup language (XML); and
format structured data such that an application programming interface (API) is provided for data consuming applications that provide programmatic access to documents and structured data elements contained in data warehouses; and
perform this API to access structured data elements located in the data warehouse while the document is being edited and when the document is closed, so that structured data is associated with documents and functions as metadata describing the characteristics of the document; and while the application consuming data when it is registered, receives a notification of a change made in the data warehouse,
initiate a change in one of the data stores using the API,
transmit a notification to the second registered application consuming data about the change,
in response to the notification in the second registered application consuming data, they queue a side change,
determining when the response from the second registered application consuming the data is a deviation, and when the response is a deviation, cancel the change and collateral change,
determining when the first and second registered data consuming application accepts the change and side change, and when the first and second registered data consuming application accepts the change and the side change, it is not necessary to verify the change and side change using the XML schema, which is provided by one of the applications that consume data using the API,
transmit the change and side change to one or more data stores.
11. Выполняемый компьютером способ по п.10, в котором использование API дополнительно содержит этапы, на которых:
предоставляют интерфейс программирования для получения значения для вершины; добавления вершины; удаления вершины; перемещения вершины;
добавления схемы; удаления схемы; перезагрузки схемы; добавления пространства имен и удаления пространства имен.
11. The computer-executed method of claim 10, wherein the use of the API further comprises the steps of:
provide a programming interface to get the value for the top; adding tops; top removal; vertex movement;
add schema; delete schema; reloading the circuit; Add a namespace and delete a namespace.
12. Система управления данными, ассоциированная с генерируемыми компьютером документами, содержащая:
процессор,
считываемый компьютером носитель, подсоединенный к процессору,
приложения, потребляющие данные, выполненные с возможностью выполнения в процессоре;
хранилище данных документа, которое выполнено с возможностью сохранения документов на считываемом компьютером носителе; и
хранилище данных, соединенное с приложениями, потребляющими данные, выполненное с возможностью сохранения элементов структурированных данных, которые ассоциированы с одним или более документами; причем хранилища данных включают в себя: хранилища данных XML; брокер API, выполненный с возможностью взаимодействия с приложениями, потребляющими данные; хранилище изменения, которое выполнено с возможностью хранения изменений, которые ассоциированы с изменением, которое выполнено в отношении элементов структурированных данных; и хранилище отмены, которое выполнено с возможностью отмены любых изменений, выполненных в результате изменения, которое было выполнено в отношении элементов структурированных данных; при этом брокер API предоставляет интерфейс прикладного программирования (API), который позволяет обеспечить программный доступ к документам и к элементу структурированных данных, которые содержатся в хранилищах данных; и при этом приложение, потребляющее данные, выполнено с возможностью выполнять API, для доступа к элементам структурированных данных в хранилищах данных, как в случае, когда документ открыт, так и в случае, когда документ закрыт, так что API обеспечивает программную связь с приложением, потребляющим данные, для связывания элементов в хранилище данных с документом, и при этом приложение, потребляющее данные, также выполнено с возможностью ставить в очередь побочное изменение, когда элемент в хранилище данных изменен.
12. A data management system associated with computer-generated documents, comprising:
CPU,
computer-readable media connected to the processor,
applications consuming data capable of being executed in a processor;
document data storage, which is arranged to save documents on computer-readable media; and
a data warehouse connected to data consuming applications configured to store structured data elements that are associated with one or more documents; wherein the data stores include: XML data stores; API broker configured to interact with data consuming applications; a change repository that is configured to store changes that are associated with a change that is made with respect to the structured data elements; and cancel the store, which is arranged to cancel any changes made as a result of changes which have been made in relation to the structured data element; at the same time, the API broker provides an application programming interface (API) that allows you to provide programmatic access to documents and to the structured data element contained in data warehouses; and while the data consuming application is configured to execute the API to access structured data elements in the data stores, both when the document is open and when the document is closed, so that the API provides programmatic communication with the application, consuming data to associate items in the data store with the document, and the data consuming application is also configured to queue a side change when the item in the data store is changed.
13. Система по п.12, в которой хранилище данных дополнительно выполнено с возможностью:
приема изменения данных разметки расширяемого языка разметки (XML), применяемых к элементу структурированных данных;
считывания файла схемы XML, ассоциированного с элементом структурированных данных, на который направлены изменения данных разметки XML;
определения, являются ли данные XML разметки действительными в соответствии со считанным файлом схемы XML; и
запрета изменения данных XML разметки, если изменение данных XML разметки окажется не действительным в соответствии со считанным файлом схемы XML; и передачи изменения в одно или более хранилищ XML, когда изменение данных XML разметки является действительным в соответствии со считанным файлом схемы XML.
13. The system of claim 12, wherein the data warehouse is further configured to:
receiving change markup data of an extensible markup language (XML) applied to the structured data element;
reading the XML schema file associated with the structured data element to which changes to the XML markup data are directed;
determining whether the markup XML data is valid according to the read XML schema file; and
prohibiting changes to the XML markup data if the change to the XML markup data is not valid in accordance with the read XML schema file; and transfer changes in one or more XML storage when the XML markup data change is valid according to the read XML schema file.
14. Система по п.12, в которой каждое из хранилищ данных XML содержит хранилище отмены и хранилище изменения.14. The system of claim 12, wherein each of the XML data stores contains a cancellation store and a change store. 15. Система по п.12, в которой API предоставляет интерфейс для добавления вершины к хранилищу данных; удаления вершины из хранилища данных; замены вершины в хранилище данных; и получения значения из хранилища данных.15. The system of claim 12, wherein the API provides an interface for adding vertices to the data store; Removing vertices from the data warehouse vertex replacements in the data warehouse; and getting the value from the data store. 16. Система по п.15, в которой API предоставляет интерфейс для добавления схемы; удаления схемы; и перезагрузки схемы. 16. The system of claim 15, wherein the API provides an interface for adding a circuit; delete schema; and reloading the circuit.
RU2008109014/08A 2005-09-09 2006-09-08 Programmability for xml data store for documents RU2417420C2 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US71588605P 2005-09-09 2005-09-09
US60/715,886 2005-09-09
US11/331,586 US7752224B2 (en) 2005-02-25 2006-01-13 Programmability for XML data store for documents
US11/331,586 2006-01-13

Publications (2)

Publication Number Publication Date
RU2008109014A RU2008109014A (en) 2009-10-10
RU2417420C2 true RU2417420C2 (en) 2011-04-27

Family

ID=39661992

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2008109014/08A RU2417420C2 (en) 2005-09-09 2006-09-08 Programmability for xml data store for documents

Country Status (5)

Country Link
JP (1) JP5072845B2 (en)
KR (1) KR101311123B1 (en)
CN (1) CN101263477B (en)
BR (1) BRPI0615761A2 (en)
RU (1) RU2417420C2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9460099B2 (en) 2012-11-13 2016-10-04 Amazon Technologies, Inc. Dynamic selection of storage tiers
RU2683690C1 (en) * 2017-12-27 2019-04-01 Публичное Акционерное Общество "Сбербанк России" (Пао Сбербанк) Method and system for automatic generation of a program code for an enterprise data warehouse

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7707498B2 (en) 2004-09-30 2010-04-27 Microsoft Corporation Specific type content manager in an electronic document
DE102008059197A1 (en) * 2008-11-27 2010-06-02 Bayerische Motoren Werke Aktiengesellschaft Method and device for the distributed configuration of telematics services in motor vehicle systems
CN104639361B (en) * 2013-11-15 2019-04-19 中兴通讯股份有限公司 The management method and device of network service moulding plate
US11120210B2 (en) 2014-07-18 2021-09-14 Microsoft Technology Licensing, Llc Entity recognition for enhanced document productivity
RU2613026C1 (en) * 2015-09-30 2017-03-14 Общество с ограниченной ответственностью "Интерсофт" Method of preparing documents in markup languages while implementing user interface for working with information system data
EP3358470B1 (en) 2015-09-30 2020-11-04 Obschestvo S Ogranichennoy Otvetstvennostyu "Intersoft" Method of preparing documents in markup languages
CN106528506B (en) * 2016-10-20 2019-05-03 广东小天才科技有限公司 A kind of data processing method based on XML tag, device and terminal device
CN110489085A (en) * 2019-02-21 2019-11-22 贵州广思信息网络有限公司 A kind of method of WORD content control extension storage data
CN110458471B (en) * 2019-08-19 2022-05-20 绍兴数纺科技有限公司 Standardized dye information management system
CN113297081A (en) * 2021-05-26 2021-08-24 北京京东振世信息技术有限公司 Execution method and device of continuous integration assembly line

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US650785A (en) * 1900-03-21 1900-05-29 Warner Brothers Co Clamp-plate for garment-supporters.
US5903902A (en) 1996-09-09 1999-05-11 Design Intelligence, Inc. Design engine with tree and component structure
US6731314B1 (en) 1998-08-17 2004-05-04 Muse Corporation Network-based three-dimensional multiple-user shared environment apparatus and method
JP2001075949A (en) * 1999-09-02 2001-03-23 Mitsubishi Materials Corp Device and method for sharing information and recording medium therefor
US7716676B2 (en) * 2002-06-25 2010-05-11 Microsoft Corporation System and method for issuing a message to a program
JP2004199446A (en) * 2002-12-19 2004-07-15 Fujitsu Social Science Laboratory Ltd Shared document management system, member terminal device, document sharing processing program for member terminal and shared document management program

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9460099B2 (en) 2012-11-13 2016-10-04 Amazon Technologies, Inc. Dynamic selection of storage tiers
RU2616168C2 (en) * 2012-11-13 2017-04-12 Амазон Текнолоджиз, Инк. Dynamic selection of storage levels
US10642491B2 (en) 2012-11-13 2020-05-05 Amazon Technologies, Inc. Dynamic selection of storage tiers
RU2683690C1 (en) * 2017-12-27 2019-04-01 Публичное Акционерное Общество "Сбербанк России" (Пао Сбербанк) Method and system for automatic generation of a program code for an enterprise data warehouse

Also Published As

Publication number Publication date
BRPI0615761A2 (en) 2011-05-24
CN101263477B (en) 2011-10-19
CN101263477A (en) 2008-09-10
JP2009508228A (en) 2009-02-26
KR20080043813A (en) 2008-05-19
JP5072845B2 (en) 2012-11-14
KR101311123B1 (en) 2013-09-25
RU2008109014A (en) 2009-10-10

Similar Documents

Publication Publication Date Title
US7752224B2 (en) Programmability for XML data store for documents
RU2417420C2 (en) Programmability for xml data store for documents
US11573949B2 (en) Semantic diff and automerge
KR101310988B1 (en) Real-time synchronization of xml data between applications
RU2398274C2 (en) Data bank for program application documents
KR101608099B1 (en) Simultaneous collaborative review of a document
US7945590B2 (en) Programmability for binding data
KR101213812B1 (en) Data binding in a word?processing application
US7644095B2 (en) Method and system for compound document assembly with domain-specific rules processing and generic schema mapping
US20090216801A1 (en) Service Registry Document Loader
US8423518B2 (en) Representation of multiple markup language files in one file for the production of new markup language files

Legal Events

Date Code Title Description
PC41 Official registration of the transfer of exclusive right

Effective date: 20150526

MM4A The patent is invalid due to non-payment of fees

Effective date: 20180909