Modular document format

FIELD: information technology.

SUBSTANCE: invention relates to methods and systems for modular framework of content and format of documents. Proposed framework and format define a set of standard assembly units for compiling, packetisation, distribution and imaging document-oriented content. The framework and format were designed in a flexible and extensible way. In addition to this general framework and format, a specific format, known as extended packet format, is determined using the general framework. The extended packet format is a format for storing paginated documents. Extended packet content can be displayed or printed with high reproduction accuracy on devices and in applications in a wide spectrum of media and in a wide spectrum of scenarios.

EFFECT: invention provides for platform-independent framework for document formats, which makes possible reliable and uniform generation and display of documents.

24 cl, 16 dwg

 

The technical field to which the invention relates

The present invention relates to the infrastructure of the content, the format of documents and related methods and systems that can use them.

Prior art

At the present time generally there are many different types of infrastructures content for presentation of content and many different types of document formats for formatting the different types of documents. Often each of these frameworks and formats requires its own associated software for assembling, receiving, processing or consumption of the associated document. For those who have specific associated software to a device, Assembly, receiving, processing or consumption of associated documents is not a big problem. For those who do not have the appropriate software, usually impossible Assembly, receiving, processing or consumption of associated documents.

Against this background, there is urgent need for versatility, as far as it concerns the receipt and consumption of documents.

The invention

Describes methods and systems modular infrastructure, content and format of the documents is impressive. The described infrastructure and format defines a set of building blocks for compiling, packaging, distribution and visualization of the document-oriented content. These building blocks define a platform-independent infrastructure for document formats, which allow software and hardware systems to generate, share and display the documents in a reliable and consistent manner. Referred to the infrastructure and the format has been designed in a flexible and extensible.

In addition to these General infrastructure and format specific format known asadvanced packageusing a common infrastructure. The format of theadvanced packageis a format for storing of paginated documents. The contents of the extended package can be displayed or printed with high precision playback on devices and applications in a wide range of environments and in a wide range of scenarios.

List of figures

Figure 1 - block diagram of exemplary components of the infrastructure and format according to one variant of execution.

Figure 2 - block diagram of an exemplary packet that stores a document containing a number of parts, according to one variant of execution.

Figure 3 is a block diagram that depicts an exemplary compiler, which sandalmaker, and reader, which reads the package, according to one variant of execution.

Figure 4 - a sample part that ties together three separate pages.

5 is a diagram which depicts an exemplary selector and sequence, intended to create a financial report contains both the English view, and the French report, according to one variant of execution.

6 - some examples of authors and readers working together and transmitting data packet, according to one variant of execution.

Fig.7 is an example of alternation of numerous parts of the document.

Fig and 9 different examples of bundling multiple parts of the document shown in Fig.7.

Figure 10 - example of extended package and each of the valid types of parts that can be a package or can be found in the package, according to one variant of execution.

11 is an exemplary display of the concepts of the common language runtime in extensible markup language (XML) according to one variant of execution.

Fig - vertical metrics of the glyph and the side metrics of the glyph according to one variant of execution.

Fig - display cluster “one to one” according to one variant of execution.

Fig - display cluster “many in one” according to one variant made who I am.

Fig - display cluster “one in many” according to one variant of execution.

Fig - display cluster “many to many” according to one variant of execution.

A detailed description of the preferred options of execution

Review

This paper describes a modular infrastructure, content and format of the documents. Infrastructure and format defines a set of standard building blocks for compiling, packaging, distribution and visualization of the document-oriented content. These standard building blocks define a platform-independent infrastructure for document formats, which enables software and hardware systems to generate, share and display the documents in a reliable and consistent manner. Infrastructure and the format has been designed in a flexible and extensible. In various embodiments, perform no restrictions on the type of content that can be included, how the content is presented, or a platform on which to create clients for content processing.

In addition to this shared infrastructure specific format is defined using a common infrastructure. This format is referred to as the formatadvanced packagethe present document represents the Wallpaper format for storing divide into pages or pre-paginated documents. The contents of the extended package can be displayed or printed with high precision playback on devices and applications in a wide range of environments and in a wide range of scenarios.

One of the purposes of the following infrastructure is ensuring interoperability of independently written software and hardware systems, read and write content created in accordance with the following infrastructure and format. To achieve such interoperability describes the format defines the formal requirements that must perform a system that read or write the contents.

The description below is organized in accordance with the following and presented in two main sections - one entitled “Infrastructure”and another entitled “the Format of the extended package.

The section titled “Infrastructure”is illustrative model of packaging and describes the various parts and relations that make up the package infrastructure. Describes information about the use of descriptive metadata in the package infrastructure, as well as the mapping process in physical containers, markup extension infrastructure and mechanisms for versioning infrastructure.

In the section titled “the Format is assertnull package”, we investigate the structure of a particular type are built on the infrastructure package, referred to asadvanced package. This section also describes part of the package, which is characteristic for a fixed payload, and is determined by the model markup advanced package and model drawing. This section ends with an exemplary elements of extended markup and their properties together with the drawn samples.

As a high-level overview of the following descriptions consider figure 1, which as a whole under item 100 is depicted aspects of the framework and format, with features of the invention. Some exemplary infrastructure components shown under the position 102, and some components of the expanded format of the package shown under item 104.

Infrastructure 102 contains sample components, which include without limitation, component relations, plug component containers, component rotation/streaming component and version control/extensibility, each of which is investigated in detail below. Format 104 advanced package contains components, which include the component selector lever/knob sequence component and define the layout of the package.

In the following description runs a periodic reference to figure 1 so that the reader can support in the long term, where the described components are placed in the infrastructure and the package format.

Infrastructure

Below is a description of the overall infrastructure. Separate main headings include “Model package”, “Composite parts: the selector and sequence”, “Descriptive metadata”, “Physical model”, “Physical mapping” and “versioning and extensibility”. Each master subtitle has one or more dependent subheadings.

Model package

This section describes the model package, and it includes the sub-headings under which describes the packages and parts, drivers, relations, relations of the package and the initial part.

Packages and parts

In the depicted and described model, the content is stored in the package.Packagerepresents a logical entity, which stores a collection of relatedparts. The purpose of the package is the collection of all parts of the document (or other content types) into a single object, which is easy to work with programmers and end users. For example, consider figure 2, which depicts an exemplary packet 200 that stores a document containing a number of parts, including part 202 XML markup representing the document, the font part 204 that describes the font used in the document, the page number frequent the th 206, describing the pages of the document, and an image representing the image in the document. Part 202 XML markup that represents the document is useful because it can provide easy search and reference without having to parse the entire contents of the package. It will become apparent below.

Throughout this paper introduces and discusses the concept of “readers” (also referred to as consumers) and “compilers” (also referred to as the creators). The reader in the form in which this term is used herein, refers to the entity that reads the files or packages, based on the modular format of the content. Compiled in the form in which this term is used herein, refers to the entity that writes the files or packages, based on the modular format of the content. As an example, consider figure 3, which shows the compiler, which creates the package, and the reader, which reads the package. Usually the compiler and the reader are implemented as software. In at least one embodiment, the majority of the processing overhead and complexity associated with the creation and formatting of packets is the responsibility of the originator. This, in turn, eliminates much of the complexity associated with processing, and Lazebnik data from the readers, that, as is clear to a person skilled in the art, represents a departure from many common models. This aspect will become apparent below.

According to at least one variant perform one package contains one or more representations of content that is stored in the package. Often the package is a single file, referred to in this application as a container. This gives end-users, for example, a convenient way to distribute their documents with all components of the document (images, fonts, data, and so on). Although the packages are often correspond directly to a single file, it doesn't always have to be so. The package is a logical entity that can be represented physically in many ways (for example, without limitation, a single file, a collection of loose files in the database, a short transmission on the network connection and so on). These containers store the packages, but not all packages are stored in containers.

The abstract model describes the packages regardless of any physical storage mechanism. For example, the abstract model does not refer to “files”, “streams” or other physical terms related to the physical world, in which is located the package. As described below, the abstract model allows users to create dry the minimum level for various physical formats, data transfer protocols, etc. By analogy, when an application wants to print the image, it uses the abstraction of the printer (represented by a driver who understands the specific type of printer). Thus, the application does not need to know about a particular printing device or how to send data to the printer device.

The container provides many advantages in comparison with the fact that, otherwise, could be a set of free, unbound files. For example, similar components can be grouped, and the content can be indexed and compressed. In addition, can be identified relationships between the components, and the components can be used rights management, digital signatures, encryption and metadata. Of course, the container may take other signs that are not specifically listed above.

General properties of parts

In the depicted and described embodiment, the section contains General properties (e.g., name) and a stream of bytes. It's similar to a file in the file system or resource on the server the hypertext transfer Protocol (http). In addition to its content, each part has someGeneral properties part. These includename,which is the name of the part, andthe content typewhich is a type of sod is reimage, stored in the part. Parts can also have one or more associated relationships, as described below.

Part namesused whenever it is necessary to refer in some way to part. In the depicted and described embodiment, the names are organized in a hierarchy, similar to the paths in the file system or the ways in universal information resource identifiers (URI). The following are examples of names of parts:

/document.xml

/tickets/ticket.xml

/images/march/summer.jpeg

/pages/page4.xml

As seen above, in this embodiment, the names of the parts have the following characteristics:

Part names similar to names of files in a traditional file system.

Part names must begin with a slash ('/').

Like the paths in the file system or the ways in URI names of the parts can be arranged in a hierarchy by a set catalogatori names (tickets images/march and pages in the above examples).

This hierarchy consists of segments, limited slashes.

The last segment in a name similar to the name of a file in a traditional file system.

It is important to note that the naming of the parts, especially the valid characters that can be used for the names of the parts that are specific to the infrastructure described in this document. These naming rules parts are based on the rules Imanova the Oia URI standard Internet. Under this option, run the grammar used to specify the names of the parts in this embodiment, corresponds exactly to the syntax abs_path defined in Section 3.3 (Path component) (The path component) and 5 (Relative URI References) (Links relative URI) document RFC2396, specifications (Uniform Resource Identifiers (URI: Generic Syntax)) ((Universal resource identifiers (URI: generic syntax))).

The following additional restrictions apply to abs_path as a valid part name:

The query component as defined in Section 3 (URI Syntactic Components) ((URI Syntactic components) and 3.4 (Query Component)(Component query))not applicable to the part name.

The fragment identifier, as defined in Section 4.1 (Fragment Identifier) ((fragment Identifier)), does not apply to the part name.

It is unacceptable to have any part with a name created by adding * (segment “/”) to the name of an existing part.

Grammar for names of the parts shown below:

Segments of the names of all parts in the package, as you can see, form a tree. This is similar to what takes place in file systems, in which all non-end nodes on the tree represent folders, and leaf nodes represent actual files that contain the content. These papaphobia nodes (i.e. non-end nodes) in the tree names service is t similar functions to the organization of parts in the package. It is important to remember, however, that these folders exist only as a concept in the hierarchy naming - they have no other manifestations in the persistence format.

The names of the parts may not act at the level of “folders”. Specifically, non-end nodes in the hierarchy (“folder”) naming of parts may not contain part and a subfolder with the same name.

In the depicted and described embodiment, each part has athe content typethat identifies what type of content is stored in the part. Examples of content types include:

image/jpeg

text/xml

text/plain; charset="us-ascii"

Content types are depicted in infrastructure, as defined in RFC2045 (Multipurpose Internet Mail Extensions; (MIME)). (Multipurpose expansion of postal services in the Internet (MME)). Specifically, each content type includes the payload type (e.g., text), subtype (e.g., outdoor) and an optional set of parameters in the form key=value (e.g. charset="us-ascii"); multiple parameters are separated by semicolons.

Addressing part

Often parts contain references to other parts. As a simple example, imagine a container with two parts: the markup file and the image. The markup file will need to keep a reference to the image, so that when the processing of the markup file associated image can be is about to identify and localize. Designers content types and XML schema can use URIs to represent these links. To make this possible, you must define a mapping between the “world” part names and “world” URI.

To provide the opportunity to use the URI in the package, should be a special rule of interpretation URI to assess URI-based package contents: the package itself should be considered as an “authoritative source” for reference URI, and URI's path component is used to navigate the hierarchy of the names of the parts in the package.

For example, if the URI of the package http://www.example.com/foo/something.package link to /abc/bar.xml interpreted, meaning that the part named /abc/bar.xml that is not a URI http://www.example.com/abc/bar.xml.

Relative URIs should be used when it is necessary to have a reference from one part to another in the container. Use relative references gives you the opportunity to jointly move the contents of the container into another container (or the container, for example, from the file system without modifying the links between the parts.

Relative references of the parts are interpreted relative to the “base URI” part that contains the link. The default base URI part represents the part name.

Consider a container that includes parts with the following names:

/markup/page.xml

/images/picture.jpeg

/images/other_picture.jpeg

p> If part “/markup/page.xml contains a URI reference to “../images/picture.jpeg”then this link should be interpreted as referring to the name of the part/images/picture.jpeg”according to the above-stated rules.

Some content types provide the ability to override the base URI of the default by specifying a different database in the content. When the presence of one of these overrides an explicit base URI should be used instead of URIs by default.

It is sometimes useful to “address” a share or a specific point in part. In “the world” URI uses the fragment identifier (see, for example, RFC2396). In the container, the mechanism works the same way. Specifically, the fragment is a string that contains additional information that is understood in the context of the type of content addressable part. For example, in the video fragment can identify the frame in the XML file, it can identify the proportion of the XML file using XPath.

The fragment identifier is used in conjunction with a URI that addresses part to identify fragments of addressable part. The fragment identifier is optional, and is separated from the URI sign of the cross hatch (“#”). As such, it is not part of the URI, but is often used in conjunction with the URI.

The following description provides some recommendations for aminoanisole, since the model naming service and parts is quite flexible. This flexibility allows a wide range of applications of the service infrastructure. However, it is important to understand that the infrastructure is designed to make it possible scenarios in which multiple unrelated software systems can manipulate “their own” parts of the package without conflictana with each other. To make this possible, some suggestions that, if followed, will make it possible.

The recommendations here describe a mechanism to minimize or at least reduce the number of conflicts when naming parts and control them when they do arise. Compilers that create part of the package, should take measures to detect and handle conflicts when naming with existing parts in the package. In the event of a conflict, the names of the authors may not blindly replace existing parts.

In situations where it is guaranteed that the service manipulates one compiler, this compiler can depart from these recommendations. However, if there is a possibility that many independent authors share package, all compilers should follow these recommendations. It is recommended, however, that all of the representatives have followed that recommendation in any case.

Requires compilers to adding parts to an existing container, did it in a new “folder” hierarchy of naming and not put part directly in the root or in a folder that already exists. Thus, the possibility of name conflicts is limited to the first segment of the part name. Parts created in this new folder, you can assign names without conflicting with existing parts.

If the “preferred” name for the folder is already used by an existing part, the compiler must use some strategy to select an alternate folder names. Compilers should use the strategy of accession numbers to the preferred name, until then, until it finds an available folder name (possibly resorting to a globally unique identifier (GUID) after some number of unsuccessful iterations).

One result of this policy is that readers should not attempt localization part using “magic” or “well-known” name part. Instead, the drafters must create a package with at least one part of each folder they create. Readers should use these relations package for localization of parts, and not relying on the well-known names.

If the reader found for less is th least one part of the folder (using one of the above relations package), he may use agreement about the well-known names of the parts in this folder to find the other parts.

Drivers

Described in this application, the file format can be used by different applications, different types of documents and so on, many of which have conflicting use, conflicting formats, etc. One or moredriversused to resolve a variety of conflicts, such as differences in file formats, differences in data transfer protocols, etc. for Example, different file formats include loose files and component files, and various data transmission protocols include http, network and wireless protocols. Driver group implements an abstract representation of various file formats and data transfer protocols in a single model. Can be designed with multiple drivers for different scenarios, different requirements of consumers, different physical configurations, etc.

Relations

Part in the service may contain links to other parts in this package. In General, however, these links are provided inside the referencing parts so that they are characteristic for the type of content parts; i.e. for an arbitrary markup or typical for the application coding. They effectively hide the internal binding is between their parts from readers, who do not understand the types of content parts that contain such references.

Even for common types of content (such as markup Fixed payload section Extended package) the reader will need to parse all of the contents in part, to detect and resolve references to other parts. For example, when implementing a print system that prints documents one page at a time, it may be desirable to identify the images and fonts contained on a particular page. Existing systems must parsing all the information for each page, which can be time-consuming, and must understand the language of each page that may not be the case with some devices or readers (e.g., which perform intermediate processing in respect of the document as it passes through the pipeline of processors on the path to the device). Instead, the systems and methods described in this application use relationships to identify the relationships between the parts and describe the nature of these relations. The language is simple and relations is defined once, so that readers can understand the relationship without having knowledge of many different languages. In one embodiment, the relationships are represented in XML as individual parts. Each is part I has associated part of the relationship, which contains relations for which the part is a source.

For example, the spreadsheet application uses this format and remembers a different spreadsheet in the form of parts. An application that knows nothing about the language spreadsheet, you may still find various relationships associated with spreadsheets. For example, the application can detect images in spreadsheets and metadata associated with spreadsheets. The estimated relationship is shown below:

This schema defines two XML elements, one called “relationships” (“Relationships”) and the other is named “attitude” (“Relationship”). This element of “relation” is used to describe a single relationship, as described in this application and has the following attributes: (1) target (goal), which specifies the part to which the part of the source, (2) “name” (name), which indicates the type or nature of the relationship. The element of “relationship” is defined so that it had the ability to store zero or more elements of “attitude” and just serves to collect these items “attitude” together in a block.

The systems and methods described in this application, enter a high-level mechanism to resolve such problems, called “relations”. Relationships provide additionally the second way to represent the type of connection between the part of the source and part of the goal in the package. Relationship make the connection between the parts directly found without viewing the content parts, so they are independent from the specific to the content schema and faster to resolve. Additionally, these relations are independent of the Protocol. Multiple relationships can be associated with a specific part.

Relationships provide a second important function: the possibility of binding of the parts without modification. Sometimes this information serves as a form of annotations, where the content type “annotated” part does not define a path joining the given information. Potential examples include the attached descriptive metadata, labels printing and valid annotation. Finally, some scenarios require information to join an existing part specially without modification of this part, for example, when the part is encrypted and cannot be decrypted, or when the part is signed with a digital signature, and the change would make the signature invalid. In another example, the user may want to attach an annotation to the image file in JPEG format (joint group of experts in the field of photography). The JPEG image format currently does not provide support for the identification of annotations. Change the JPEG to fulfill this desire of the user is not feasible. However, the systems and methods described in this application allow the user to provide an annotation to the JPEG file without modifying the JPEG image format.

In one embodiment, the relationships are represented using XML in parts of the relationship. Each piece in the container, which is a source of one or more relations, has associated part of the relationship. This part of the relationship stores (expressed in XML using the content typeapplication/PLACEHOLDERthe list of relations for this part of the source.

Figure 4 below shows the environment 400 in which part 402 “root” (similar FixedPanel) ties together three pages 406, 408 and 410. The set of pages that are linked together by the spine, is associated “label 404 print”. Additionally, page 2 has its own label 412 print. Communication from part 402 of the spine to the label 404 print from page 2 to the label 412 print represented using relations. In the arrangement according to figure 4, the portion 402 of the spine is associated part of the relationship, which contains a relation that connects the spine with ticket1, as shown in the example below.

Relationships are represented using elements <Relationship>, nested in a single element <Relationships>. These elements are defined in the namespace http://mmcfrels (PLACEHOLDER). See the e above a rough diagram and related description for the approximate relations.

Element relations has the following additional attributes:

AttributeRequiredValue
Target (goal)YesA URI that points to the side at the other end of the relationship. Relative URIs SHOULD be interpreted with respect to part of the source.
NameYesAn absolute URI that uniquely identifies the role or purpose of the relationship.

The Name attribute is not necessarily a valid address. Different types of relationships are identified by their Name. These names are defined in the same way as namespaces are defined for XML namespaces. Specifically, through the use of names formed by namespace Internet domain, coordinarussia part can safely create a non-interfering relationship names as they can for XML namespaces.

The relations are not allowed to participate in other ways. However, it is the Premier part in all other respects (for example, it is addressable by a URI, it can be opened, read, deleted, etc.. Relationships usually do not point to objects outside of the package. URI used to identify the goals of the relationship, do not include, mainly, the URI scheme.

Part and the associated part of the relationships associated with the naming Convention. In this example, the part of the relationship to the spine will be kept in /content/_rels/spine.xml.rels, and relationships to page 2 will be stored in /content/_rels/p2.xml.rels. Note that there are two special naming Convention. First, part of the relationship for some (other) parts in the specified “folder” in the hierarchy of names is stored in a subfolder named _rels (to identify relations). Secondly, the name of the storing part is formed by joining extension .rels to the name of the original part. In specific embodiments, the execution part relations are of content type application/xml+relationshipsPLACEHOLDER.

The attitude is directed connection between two parts. Due to the way that shows the relationship can effectively trace the relations of their parts source (as trivial to find the part of the relationship for any given part). However it is not efficient to trace the relationship back from the target relationship (as a way of finding all relationships with the part is the view of all relationships in the container).

To perform a reverse tracking possible the relationship, used a new relation to represent another (traceable) direction. It is a modeling technique that can be used by the designer of the relation type. Following the above example, if it would be important to be able to find the root, which has an attached label ticket1, you would use the second relation, linking the label to the spine, such as:

Package relationships

“Package relationships” are used to find the well-known parts in the package. This method eliminates the dependence on naming conventions for finding parts in the package and ensures that there will not be conflicts between identical names in different parts of the useful load.

Relations packages are a special relationship, the purpose of which is part of, but the source of which no part is: the source is the package as a whole. The possession of a “well-known” part really is the possession of an “open” relationship name, which helps to find this part. This works because there is a clearly defined mechanism to assign names to the relations coordinatewise parts, while some embodiments of the do not contain such a mechanism for the name part is these Varian is s perform a limited set of recommendations. Package relationships found in the relations of the package, and they are named using the default naming conventions for parts of the relationship. Thus: given name “/_rels/.rels”.

Relations in this part of the relations of the package is useful for finding well-known parts.

The initial part

One well-known example of the level of service is the “initial” part of the package. This is the part that usually handled when opening the package. It represents the logical root of the document content is stored in the package. The initial part of the package is localized in the following well-known relation of the package. In one example, this relation has the following name: http://mmcf-start-part-PLACEHOLDER.

Composite parts: the selector and sequence

Described infrastructure defines two mechanisms to build higher-level structures of the parts:selectorsandsequences.

The selector is the part that “selects” from a number of other parts. For example, the portion of the selector may select from a part that represents the English version of the document, and a part representing the French version of the document. This sequence is a part, which establishes the sequence of some quantity is CTB other parts. For example, some sequences can be combined (in a linear sequence) two parts, one of which represents five page long do document, and the other of which represents a ten-page document.

These two types of composite parts (sequence and selector) and the rules for their Assembly arecompositional model. Composite parts can be other composite parts, thus, it is possible to have, for example, a selector that selects from the two compositions. As an example, consider figure 5, which shows an example of a financial report contains both the English view, and the French view. Each of these concepts additionally consists of an introduction (title page), followed by financial documents (spreadsheets). In this example, the selector 500 selects between the English and French report view. If you select the English view, sequence 502 sets the sequence English introductory part 506 English financial part 508. Alternatively, if you select the French view, the sequence 504 sets the sequence French introductory part 510 with the French financial part 512.

XML composite part

In the depicted and described variations is the execution of composite parts are described using a small number of XML elements, all they are derived from a common namespace composition. As an example, consider the following:

Element: <selection>

Attributes: None

Allowed child elements: <item>

Element: <sequence>

Attributes: None

Allowed child elements: <item>

Element: <item>

Attributes: Target - name of part to part in the composition

As an example, here is the XML for the example in figure 5 above:

MainDocument. XML

EnglishRollup. XML

In this XML MainDocument.xml is all part of the package and indicates by tag (invisible element markup) “selection”that the choice should be made between different objects, encapsulated tag “item”, i.e. the “EnglishRollup.xml and FrenchRollup.xml”.

EnglishRollup.xml and FrenchRollup.xml are due to the tag “sequence” sequence, which establish the joint sequence of relevant objects, encapsulated by their respective tags “item”.

Thus, it provides a simple XML grammar for describing selectors and sequences. Each piece in this composite block is created and performs the same operation or the selection or sequencing. Through the use of a hierarchy of parts can be the ü built various reliable collection of the elections and sequences.

Composite block

Composite blockpackage contains the set of all composite parts (selector or sequence)that are reachable from the initial part of the package. If the initial part of the packet is neither a selector or sequence, then the composite block is empty. If the initial part is a composite part, then a child of <item> in these composite parts are recursively traced to obtain oriented acyclic graph of composite parts (stopping tracking, when she meets decompositional part). This graph is a composite block (and he must in accordance with this variant of execution to be acyclic for the package that it was valid).

The definition of the semantics of the composition

Setting the above relatively simple XML grammar, the following description describes how to present information so that elections can be made, based on the content type. I.e. the above XML provides enough information to enable readers to locate parts that are assembled together in the composition, but does not provide sufficient information to help the reader to learn more about the nature of the composition. For example, given the choice, which is leaves two parts, as the reader may know, on what basis to make a choice (for example, language, paper size etc)? The answer is that these rules are associated withcontent-typecomposite parts. Thus, part of the selector, which is used for the selection of views, based on language, will have different associated content type of the part of the selector, which selects from a view based on the sizes of paper.

General infrastructure determines the General form for these content types:

Application/XML+Selector-SOMETHING

Application/XML+Sequence-SOMETHING

SOMETHING in these content types is replaced by the word that indicates the nature of the choice or sequence, such as paper size, color, language, memory-resident software on the device reader, etc. In this infrastructure then you can come up with all kinds of selectors and sequences, and each may have very diverse semantics.

This framework also defines the following well-known content types for selectors and sequences, which all readers or reader must understand.

The content typeRules
Application/ML + Selector+SupportedContentType Selects from items based on their content types. Selects the first item for which there is software available that understands this content type.

As an example, consider the following. Assume that the package contains a document that has a page, and in the middle is the area where the video should appear. In this example, the part with videotronic can contain video as a video format QuickTime. One problem with this scenario is that the video in QuickTime format not everywhere understood. Suppose, however, that in accordance with this framework and, in particular, the following format advanced package exists everywhere understand the image format is JPEG. When creating a package, which contains the above-described document, the Creator may, in addition to identifying the video as part of the package, to determine the image in JPEG format for pages and insert the selector SupportedContentType, so if the user's computer has software that understands the video in QuickTime format, select QuickTime video format, otherwise select the image in JPEG format.

Thus, as described above, the components of the selector and sequence level infrastructure allow you to create a reliable hierarchy, which is this example is defined in XML. In addition, there is a clearly defined way of identifying the nature of the change selectors and sequences using content types. In addition, according to one variant of the General infrastructure contains one specific type of content, which is determined in advance and which enables the processing and use of packages, based on the fact that the consumer (for example, the reader or the reader) really understands and does not understand.

Other types of content composite part can be determined using similar rules, examples of which are described below.

Descriptive metadata

According to one variant part with descriptive metadata provides the authors or creators of the packet path for storing property values, which allow readers packets reliably detect values. These properties are typically used to record additional information about the package as a whole and the individual parts in the container. For example, part of the descriptive metadata in the package can store information such as the package author, keywords, summaries, etc.

In the depicted and described embodiment, the descriptive metadata expressed in XML, stored in the parts with alwaysbest the mi content types and can be detected using well-known types of relationships.

Descriptive metadata storemetadata properties. Metadata properties the name of the property and one or more property values. Property values have simple data types, thus each data type is described by one of the qname of the XML. The fact that the properties of descriptive metadata are simple types, does not mean that you cannot store data from complex XML types in the package. In this case it is necessary to store information in the form of a full XML part. When done so, it removed all restrictions on the use of only simple types, but lost the simplicity of the “flat” model properties descriptive metadata.

In addition to the General allocation mechanism to define sets of properties there is a characteristic, well-defined set of basicdocument propertiesstored using this mechanism. These basic properties of the document are typically used to describe documents and include properties such as title, keywords, author, etc.

Finally, part of the metadata that stores the basic document properties, can also store additional special properties in addition to the basic properties of the document.

The metadata format

According to one variant part with descriptive metadata are the type of content and purpose defined what otnoshenijami according to the following rules:

Discovery rules descriptive metadataUsing specialized propertiesUsing basic document properties
The content type of the part with descriptive metadata SHOULD be:application/xml SimpleTypeProperties-PLACEHOLDER
The content type of the power supply, which may be relevant, the purpose of which is part of the descriptive metadata can be:AnyAny
The name of the relationship, the purpose of which is part of the descriptive metadata can be one of two things:*specialized namespace Uri*http://mmcf-DocumentCore-PLACEHOLDER
The number of parts with descriptive metadata that can be attached to parts of the source can be:UNBOUNDED (unlimited)0 or 1
The number of parts of the source that may have the same attached part with descriptive metadata, SHOULD beUNBOUDED UNBOUNDED

The following XML template is used to represent descriptive metadata according to one variant of execution. Details of each component markup is shown in the table after sample.

Component markupDescription
xmlns=”http://mmcf-common-services/PLACEHOLDER”Defines a common namespace services organizations to develop standards in the field of multimedia (MMCF)
xmlns:xsd=”http://www.w3.org/2001/XMLSchema”Specifies the namespace of the XML schema. Many specialized properties and much of the basic properties of the document will have built-in data types are defined using XML schema definition (XSD). Although each property can have its own namespace, the namespace of the XSD is at the root of the XML descriptive metadata.
mcs:propertiesThe root element of the XML descriptive metadata
mcs:propertyElement properties. The property element stores the property of the qname and value. There can be an unlimited number of e is of the elements properties. Property elements are considered immediate child elements of the root element.
xmlns:prnsNamespace properties: for basic properties of the document is http://mmcf-DocumentCore-PLACEHOLDER. For specialized properties they will be specialized namespace.
prns:nameName of property: a string attribute that stores the name property.
mcs:type=”datatypeType is a string attribute, which stores the definition data type properties, such as xsd:string.
mcs:valueThis component sets the value of the property. Items values represent an immediate child elements element properties. If mcs:multivalued=”true”, then there may be an unlimited number of items

Basic document properties

The table below shows the basic document properties, which include the property name, property type, and description.

NameTypeDescription
Comments String, optional, unambiguousThe comment to the document as a whole, which includes the author (Author). They can be a summary of the document.
CopyrightString, optional, unambiguousString copyright for this document.
EditingTimeInt64, optional, unambiguousThe time spent on editing this document in seconds. Set logical means of application. This value must be of the appropriate type.
IsCurrentVersionBoolean, optional, unambiguousIndicates whether this instance of the current version of the document or outdated version. This field can be extracted from VersionHistory, but the extraction process can be costly.
LanguageKeyword (=string256), optional, multi-valuedDocument language (English, French, etc). This field is set to a logical means of application.
RevisionNumber String, optional, unambiguousThe wording of the document.
SubtitleString, optional, unambiguousAdditional or explanatory document header.
TextDataPropertiesTextDataProperties, optional, unambiguousIf the document is text, this property specifies a collection of properties of a text document, such as the number of paragraphs, number of lines, etc.
CharacterCountint64
LineCountint64
PageCountint64
ParagraphCountint64
WordCountint64
TimeLastPrinteddatetime optional, unambiguousDate and time when the document was last printed.
TitleString, optional, unambiguousThe title of the document, understand the application, kotaraya document. It differs from the name of the file that contains the package.
TitleSortOrderString optional, unambiguousThe sort order of the header (for example, “The Beatles” will be SortOrder “Beatles” without the leading “The”).
ContentTypeKeyword (= string256), optional, multi-valuedType of document established by logical means of application. The type that is stored here, should be recognized as “type ME”. This property can be useful to categorize or search documents of certain types.

A physical model of

The physical model defines the various ways in which the service is used by authors and readers. This model is based on three components:the compiler, the readerandsoftware channelbetween them. Figure 6 shows some examples of authors and readers working together and transmitting data about the package.

Software channel transfers data from the originator to the reader. In many scenarios, software channel may simply contain calls to the application programming interface (PPI API), which the reader takes to read the packet from the local iloveu system. This is referred to asdirect access.

Often, however, the reader and the compiler should pass data to each other according to the Protocol of some type. This data transfer occurs, for example, through the process boundary or between a server and a desktop computer. This is referred to asnetwork accessand is important due to the characteristics of data transfer software channel (especially the speed and the latency of the query).

To get maximum performance, physical development package should take into account support in three critical areas:style access,the layout styleandstyle data.

Style access

The intake flow

Because data transfer between the compiler and the reader, using the network access is not instantaneous, it is important to provide the ability to sequentially generate and consume packets. In particular, it is recommended that, in accordance with this option run to any physical package format was designed to allow the reader to begin interpreting and processing the data when it receives data (e.g., parts), before all bits of the package will be delivered on a software channel. This feature is calledthe intake flow.

Create stream

When the compiler starts to create a package, doesn't he always knows that he will be placed in the package. As an example, when the application starts to create a package file, print spooling, he may not know how many pages you will need to put in the package. As another example, the program on the server, which dynamically generates the report may not understand what the duration of the report will be, or how many images will have the report until it is fully generate the report. To take into account such compilers, physical packages should give authors the ability to dynamically add the part after the other parts have already been added (for example, the compiler does not need to be set in advance, how many parts it will create when it starts recording). In addition, the physical packages should allow the compiler to start recording the content part without knowledge of the final duration of this part. Together these requirements allowcreating thread.

Simultaneous production and consumption

In a highly pipelined architecture, the creation of flow and the intake flow can occur simultaneously for a particular package. When designing the physical package support for thread creation and support of consumption on the eye can push the design in different directions. However, it is often possible to find a design that supports both. Because of the advantages in a pipelined architecture, it is recommended that physical packages supportedsimultaneous production and consumption.

Styles layouts

Physical packages store a collection of parts. These parts can be configured in one of two styles: a simple order and interleaved. With a simple ordering of the parts in the package are arranged with a certain regularity. When such a packet is delivered to a simple linear manner, starting with the first byte in the packet to the last, all bytes of the first part comes first, then all bytes of the second part and so on

When linking interleaved bytes of numerous alternate parts, allowing for improved performance in some scenarios. The two scenarios that have significant advantages from the alternation, are the media (for example, simultaneous delivery of video and audio) and link to embedded resources (such as a link in the middle of the markup file to the image).

The alternation is processed by special agreement, to organize the content alternate parts. By dividing the parts into portions and alternating these portions can achieve the desired results of alternation, at the same time still making the prob is mportant easy to restore the most part. To understand the effect of the alternation, figure 7 depicts a simple example that includes two parts: content.xml 702 and image.jpeg 704. The first part content.xml describes the contents of the page, and in the middle of this page there is a link to an image (image.jpeg), which should appear on the page.

To understand why interleaving is useful, consider how these parts would be located in the package using a simple order, as shown in Fig. The reader that handles this package (and consistently receives bytes)will not be able to display the image as long as he does not take the whole part of the content.xml and image.jpeg. In some circumstances (for example, small or simple packages or high-speed data transmission channels) this may not be a problem. In other circumstances (for example, if content.xml was very large, or very slow data channel) need to read all parts content.xml to navigate to the image will lead to unacceptable performance or to impose excessive demands on the memory system of the reader.

In order to approach the ideal performance, it would be good to have the opportunity to break the content.xml and paste image.jpeg in the middle, immediately after, where is the link to the image. This allowed the on the reader before starting the processing of the image: as soon as it encounters a reference, followed by image data. This would, for example, to the layout of the package shown in Fig.9. Because of the advantages in performance it is often desirable to physical packages supported alternation. Depending on the type of physical package alternation may or may not be supported. Different physical packages can handle the internal representation of alternation in different ways. Regardless of how the physical package handles interlacing, it is important to remember that the sequence is an optimization that takes place on the physical level, and the part that is divided into multiple portions in a physical file, still represents one logical part; the servings are not parts.

Styles data

Data transfer between the compiler and the reader can be based onconsistent deliveryparts or byrandom accessto parts, allowing access to them out of order. Which of these styles data is used depends on the capabilities of the software channel, and format of the physical package. In General, all software channels support consistent delivery. Physical packages must support the consistent delivery is near. To support scenarios random access as software channel, and the physical package must support random access. Some software channels are based on protocols that could allow arbitrary access (for example, http 1.1 with support for byte range). To allow maximum performance when using such software channels, it is recommended that physical packages supported random access. In the absence of such support readers will just wait until then, until you are consistently delivered parts that they need.

Physical display

The logical model of the packaging defines an abstraction of the package; the actual instance of the package is based on a particular physical representation of the packet. Model packaging may appear in physical formats persistence, as well as on various means of transportation (e.g., based on network protocols). The physical package format can be described as a mapping from the components of the abstract model of bundling in the characteristics of a particular physical format. Model packaging does not specify what physical package format should be used for archiving, distribution or spooling package the century In one embodiment, the set only logical structure. The package can be physically implemented by a collection of loose files, archive files, .ZIP, compound file or some other format. The selected format supported by the target device or consumption by the driver for the device.

Display components

Each physical package format defines the mapping for the following components. Some components are optional, and specific physical package format may not support these optional components.

ComponentDescriptionRequired or optional
PartsNameCallsRequired
The content typeIdentifies the kind of content that is stored in the partRequired
Contents partStores the actual content partRequired

General display templates
Styles accessThe intake flowEnables readers to start processing parts to get the whole packageOptional
Creating the streamAllows compilers to start recording parts in the package without advance knowledge of all parts that will be writtenOptional
Simultaneous production and consumptionAllows you to create flow and intake flow to occur simultaneously and in the same packageOptional
Layout stylesEasy orderingAll bytes for N parts appear in the package to bytes for a portion of the N+1Optional
InterleavedBytes for numerous parts alternateOptional
Styles dataSequence is supplemented flax shipping All part of the N delivered to the reader to part of the N+1Optional
Random accessThe reader may request delivery of parts outside of the sequential orderingOptional

There are many physical storage formats, the symptoms of which partially correspond to features of the model packaging. When defining mappings from the model of bundling in such storage formats may be desirable to take advantage of any similarities in the features between the model and bundling physical storage environment, while the use of display levels to provide additional capabilities not inherently present in the physical storage environment. For example, some physical package format can store the individual parts as separate files in the file system. In such a physical format, it would be natural to display many of the names of the parts directly in the identical names of the physical files. The part names that use characters that are invalid file name file system, may require some kind of mechanism control characters.

In many cases, designing the managers of various physical formats package may encounter one common problem display. Two examples of common display problems arise when mapping arbitrary content Types with parts and support style layout with alternation. This specification provides General solutions to such common problems display. The designers of the particular physical package formats may be recommended, but it is not necessary to use the General solution of the mapping defined in this application.

Identification of the types of content parts

Display physical package format define a mechanism for storing a content type for each part. Some of the physical package formats have their own mechanism for representing content types (for example, the header “Content-Type” MME). For such physical packages, it is advisable to display used their own mechanism for representing content types for parts. For other physical formats package uses some other mechanism to represent content types. The recommended mechanism for representing content types in these packages is the inclusion of a specially named XML stream in the package, known as the stream types. This thread is not part of, and therefore in itself is not addressable by a URI. However, it can be interleaved in a physical package, use the UYa same mechanisms, used for parts with alternation.

Stream types contains XML element “Types” of the upper level, and one or more subordinate elements “Default” and “Override”. Elements of the “Default” define the default display of the extensions part name in the content types. This has advantages in that file extensions are often correspond to the content type. Elements of the “Override” is used to define content types on the parts that are not covered by the mappings by default, or are not compatible with them. The drafters of the package elements can use “Default” to reduce the number of elements “Override” part, but they do not want to do it.

The item “Default” has the following attributes:

NameDescriptionRequired
ExtensionName extension part. The item “Default” matches any part of whose name ends in a period, followed by the value attribute.Yes
ContentTypeThe type of content defined in RFC2045. Specifies the content type of all matching parts (unless overridden by the element “Override”;see below).Yes

Item “Override” has the following attributes:

NameDescriptionRequired
PartNameURI name part. Item “Override” coincides with a part whose name is equal to this attribute value.Yes
ContentTypeThe type of content defined in RFC2045. Specifies the content type of the matching part.Yes

The following is an example of the XML contained in the stream types:

The following table shows a sample list of parts and their corresponding content types defined above stream types:

Part nameThe content type
/a/b/sample1.txtplain/text
/a/b/sample2.jpegimage/jpeg
/a/b/sample3.pictureimage/gif
/a/b/sample4.picture image/jpeg

For each part in the package stream types or contains (a) one matching element “Default”, or (b) one matching element “Override”, or (C) as a matching element “Default”,andmatching item “Override” (in this case, the element “Override” has priority). In General, there is at most one element of “Default” for any given extension and one item “Override” for any given part name.

Is not important the order of the elements “Default” and “Override” in the stream types. However, in packets interleaved elements “Default” and “Override” appear in the physical packagebeforepart (s)to which they correspond.

Striping

Not all physical packages support the interleaving of data streams parts in a natural way. In one embodiment, the display in any such physical package uses a common mechanism described in this section allow you to receive alternating parts. The General mechanism works by splitting the data flow part in numerous portions that can then be interleaved with portions of other parts or even parts. Separate portions of the parts exist in the physical display and are not addressable in the logical model packaging. Portions can be of size zero.

Is determined by the following unique display isimani part in names for individual portions of the part, so that the reader can sew together the portions in their original order, forming the stream data part.

Grammar to obtain the names of the portions for the specified name part:

piece_name=part_name “/” “[” 1*digit “]” [ “last” ] “.piece”

There are the following restrictions on the acceptability of names for portions piece_name generated using the grammar:

- Non portions begin at 0 and are positive consecutive integers. Non portions can be supplemented with zeros on the left.

The last portion of the set of portions of part contains the “last” in the name portion before “.piece”.

The name portion is generated from the name of the logical parts before displaying the names in the physical package.

Although not necessary to store the portions in their natural order, such storage can provide optimal efficiency. The physical package containing the part with striping (broken into portions), can also contain parts without alteration (one portion), so it will be valid the following example:

Specific display

The following defines the specific display for the following physical formats: Loose files in the Windows file system.

Display available files in the Windows file system.

To better understand how to display the elements of the logical model into a physical f the RIAT consider the base case view package Metro as a collection of loose files in the Windows file system. Each piece in a logical package will be contained in a separate file (stream). Each name part in the logical model matches the file name.

Logical componentThe physical view
PartThe file(s)
Part nameFile name with path (which should look similar to the URI, change slash to a backslash and so on).
The type of content partThe file containing the XML that expresses a simple list of file names and their associated types.

The part names are translated into a valid Windows file names, as shown in the table below.

Below are two sets of characters that are valid for the segments of the logical name parts (segments URI) and for Windows file names. This table reveals two important circumstances:

There are two valid URI character, a colon (:) and the asterisk (*)for which you want to enter a control character when converting the URI in the file name.

Beings who have a valid file name characters ^ {}[]#which may not be present in the URI (they can be used for special display purposes, like rotation).

“The introduction of the control character” is used as a method to obtain valid characters for file names, when part name contains a character that cannot be used in a file name. To enter a control character, the caret (^)followed by the hexadecimal representation of a character.

To display from abs_path (part name) in the file name:

remove the first /

convert all /

type the escape character for a colon and asterisk

For example, the name of the part of the/a:b/c/d*.xamlbecomes the following file namea^25bcd^2a.xaml.

To perform a reverse mapping:

convert all to /

add the / at the beginning of the line

remove control characters by replacing ^[hexCode] the corresponding symbol

Versioning and extensibility

Similarly, other technical specifications specification contained in this application can be developed with future improvements. The design of the first edition of this specification includes plans for the future exchange of documents between software systems, written on the basis of the first edition, and software systems, created the cult for future editions. Similarly, this specification allows third parties to create extensions to the specification. Such extensions can, for example, to make a design document that uses the sign of a particular printer, at the same time still keeping compatibility with other readers who have no information about the existence of this printer.

Documents that use the new version of the markup Fixed.Payload or markup extension of third parties, require readers to make appropriate decisions in relation to behavior (e.g., how to play anything visually). To provide recommendations to the readers, the author of the document (or the tool that generated the document) must identify appropriate behavior for readers, greeters otherwise unrecognizable elements or attributes. For advanced document is important this type of advice.

New printers, browsers and other clients can implement a variety of support for future features. The authors of the documents that use the new versions or extensions must carefully take into account the behavior of readers unfamiliar with these versions of extensions.

Namespace versioning

Recognition of XML markup based on the ID of the x namespace URI. For any XML namespace, as expected, the reader recognizes or all, or none of the XML elements and XML attributes defined in this namespace. If the reader does not recognize a new namespace, the reader must perform visualization rollback, as defined in the document.

The URI of the XML namespace 'http://PLACEHOLDER/version-control' includes XML elements and attributes used to create markup fixed payload, which is adaptive to the versions and adaptive to the extensions. Fixed useful load is not necessary to have controls versions. To create adaptive content, however, you must use at least one of the XML elements <ver:Compatibility.Rules> and <ver:AlternativeContent>.

This specification marking Fixed-Payload has a URI xmln associated with it: 'http://PLACEHOLDER/pdl'. Use this namespace in a fixed payload will specify the application of reader that will only be used for elements defined in this specification. Future versions of this specification will have their own namespace. Application readers familiar with new namespaces will know how to support an extended set of attribute elements defined in the previous version is H. Application readers who are not familiar with the new version, will consider the URI of the new version as if it was some URI unknown extensions page description language (PDL). These applications may not know that there is a relationship between namespaces, in which one is advanced another set.

Reverse and direct compatibility

In the context of applications or devices that support the systems and methods described in this application, the compatibility is indicated by the client's ability to parse and display the document on the display, which were compiled by the author using previous versions of the specification or unknown extensions or versions of the specification. Various mechanisms versioning focused on the “backward compatibility”, providing future implementations of clients to maintain documents based on versions lower level specifications, as shown below.

When implemented client such as the printer receives the document created using the future version of the markup language, the client will be able to produce parse and understand the available options for visualization. The ability of the client software, written in accordance with the older version of the specification, about abacinate somedocuments from the characteristics of the newer version is often called the “forward compatible”. The document, written with the possibility of forward compatibility, described as “adaptive to the version.

Further, as implemented clients also need to maintain documents that have unknown extensions, presenting new elements or properties, different semantics support the more General case of documents that are adaptive to the extensions.

If the printer or viewer meets extensions that are unfamiliar, it seeks information that is built together with the use of extensions for recommendations about adaptive visualization of the surrounding content. This adaptation involves replacing the unknown element or attribute content that is understandable. However, adaptation may take other forms, including complete disregard for unknown content. In the absence of explicit guidelines, the reader should consider the presence of unrecognized extensions in the markup as an error condition. If the recommendations are not provided, it is assumed that the extension is essential for understanding the content. Unsuccessful visualization will be recorded and reported to the user.

To support the tested this model, the new and enhanced version of the markup language should logically group related extensions in namespaces. Thus, the authors of the documents will be able to use advanced features, using the minimum number of namespaces.

The markup version control

An XML vocabulary to support adaptive to the extensions of conduct includes the following elements:

Element hierarchy and version controlDescription
<Compatibility.Rules>Controls how the parser reacts to an unknown element or attribute.
<Ignorable>Declares that the associated namespace URI is ignored.
<ProcessContent>Declares that if the element is ignored, the contents of the element will be processed as if it were contained in the container ignored element.
<CarryAlong>Specifies tools editing of the document should be saved ignored the content when the document modificare is raised.
<MustUnderstand>Changes on the reverse influence of the element declared ignored.
<AlternateContent>In the markup, which uses the characteristics of the version control/expansion, the element <AlternateContent> associating the markup replace “fallback” for use by applications reader who can't handle the markup specified as Preferred.
<Prefer>Sets the preferred content. This content will be what the customer is familiar with the signs versioning/extension.
<Fallback>For down-level clients specifies that the contents of the “lower level” should be replaced with preferred content.

Element <Compatibility.Rules>

Compatibility.Rules can be attached to any element that can store an attached attribute, as well as to the root element of the Xaml. Element <Compatibility.Rules> controls how the parser reacts to unknown elements or attributes. Usually for such items is given information about the error. Adding item Ignorable property Compatibility.Rules informs the compiler that the objects of some namespaces m who should be ignored.

Compatibility.Rules may contain elements Ignorable and MustUnderstand. By default, all elements and attributes are supposed to be MustUnderstand. Elements and attributes can be made Ignorable by adding the element is Ignorable in the property Compatibility.Rules of its container. The item or property can be made again MustUnderstand by adding MustUnderstand element to one of the nested containers. One Ignorable or MustUnderstand refers to a specific namespace URI within the same element Compatibility.Rules.

Element <Compatibility.Rules> affects the contents of the container, not on it's own tag or attributes of the container. To exert influence on the tag or attributes of the container, the container should contain the rules of compatibility. The root element of the Xaml can be used to define compatibility rules for items that would otherwise be root elements, such as Canvas. A composite attribute Compatibility.Rules represents the first element in the container.

Element <Ignorable>

Element <Ignorable> declares that you can ignore is enabled namespace URI. The subject may be considered neglected if the tag <Ignorable> announced before this subject in the current block or the block container and namespace URI is unknown to the parser. If the URI is unknown, tag Ignorable not taken into account and all remedy become clear. In one embodiment, the must be clear of all objects that are not explicitly declared as Ignorable. The Ignorable element can contain the elements <ProcessContent> and <CarryAlong>, which are used to modify how the element is ignored, and to provide recommendations tools editing document how such content should be retained in the revised documents.

Element <ProcessContent>

Element <ProcessContent> declares that, if the element is ignored, the contents of the element will be processed as if it were contained in the container ignored element.

Attributes <ProcessContent>

AttributeDescription
ElementsA list of space-separated names of the items for which you want to process the contents, or “*”, indicating that it has processed the contents of all elements. Attribute Elements by default is set to “*”if it is not specified.

Element <CarryAlong>

Optional <CarryAlong> indicates the tools editing of the document, should be stored ignore the contents, when the modified document is UNT. The way instrumental editing tool saves or does not take into account ignored the content is within the scope of the editing tool. If multiple elements <CarryAlong> refer to the same element or attribute in the namespace, the last specified <CarryAlong> takes precedence.

Attributes <CarryAlong>

AttributeDescription
ElementsA list of space-separated names of items that are requested to save when the document is edited, or “*”, indicating that it should be saved contents of all elements in the namespace. Attribute Elements by default is set to “*”if it is not specified.
AttributesA list of space-separated names of the attributes in the elements that must be saved, or “*”to indicate that all attributes of the elements should be maintained. When the element is ignored and saved, all the attributes are saved regardless of the content of this attribute. This attribute has an effect only when the specified attribute is used on an element that is not ignored, as is the example below. The default Attribute is equal to “*”.

Element <MustUnderstand>

<MustUnderstand> is an element that changes to reverse the effects of element Ignorable. This technique is useful, for example when it is combined with alternative content. Out of scope, which is specified by the <MustUnderstand>, the item is still Ignorable.

Attributes <MustUnderstand>

AttributeDescription
NamespaceUriThe namespace URI, the items which must be understood.

Element <AlternateContent>

Element <AlternateContent> gives the opportunity to provide alternative content, if any part of the specified content is not understood. Block AlternateContent uses as the unit <Prefer>and <Fallback>. If anything in the unit <Prefer> not understood, then uses the contents of the block <Fallback>. The namespace is declared <MustUnderstand>to indicate that a rollback should be used. If the namespace is declared ignorable and this namespace is used in block <Prefer>, you will not use the content in block <Fallback>.

Examples of markup version control

Use <Ignorable>

In this example, use is is a dummy namespace markup http://PLACEHOLDER/Circle that defines the Circle element in its original version and uses the Opacity attribute to Circle introduced in a future version of markup (version 2), and the property Luminance introduced in a later version of the markup (version 3). This markup is loaded in versions 1 and 2 and 3 and later. In addition, the element <CarryAlong> specifies that v3:Luminance SHOULD be saved when editing, even when the editor does not understand v3:Luminance.

For reader version 1 are ignored Opacity and Luminance.

For reader version 2 is ignored only Luminance.

For reader version 3 and later use all attributes.

Use <MustUnderstand>

The following example demonstrates the use of the element <MustUnderstand>.

The use of the element <MustUnderstand> causes error when referring to v3:Luminance, even if it was declared Ignorable in the root element. This technique is useful when combined with alternative content, which uses, for example, the property Luminance Canvas for added instead of Version 2 (see below). Out of scope item Canvas property Luminance to Circle again is ignored.

Use <AlternateContent>

If any element or attribute is declared as <MustUnderstand> but not understood in block <Prefer> block <AlternateContent>block <Prefer> skipped completely, and block <Fallback> is processed in the normal way (i.e. meet any items MustUnderstand is reported as an error).

The format of the extended package

In the following explanation describes a specific file format. Separate main headings in this section include “Introduction to the format of the extended package”, “Structure of the extended package”, “part of the fixed payload”, “fundamentals of FixedPage markup, Elements and properties fixed payload” and “FixedPage Markup”. Each master subtitle has one or more corresponding subheadings.

Introduction to the format of the extended package

Having thus described exemplary infrastructure, the description of which follows, is a description of a specific format, which provides for using the tools described above. You must appreciate and understand that the following description is only one example format and, as expected, does not limit application of the claimed subject matter.

Under this option run a single package can contain many useful load, the conditions, each acts as different views of the document.Payloadis a collection of parts that includes identifiable “root” part, and all parts required for reliable processing of this root part. For example, the payload may be a fixed representation of the document, performatively view or any other view.

The following description defines a specific view calledfixed payload. Fixed payload has a root part, which contains the markup FixedPanel, which, in turn, refers to the FixedPage part. Together they describe an accurate visualization of a multipage document.

The package that stores at least one fixed payload and should others described below, as it is known, is referred to asadvanced package. The readers and the authors extended packages can implement their own parsers and renderers based on the specification of the format of the extended package.

Signs of advanced packages

According to the described embodiment perform advanced packages refer to the requirements that information workers have to distribute, archiveros the tion and visualization of documents. Using the known rules of visualization, advanced packages can clearly and accurately reproduced or printed from the format in which they are stored, without the binding of client devices or applications to specific operating systems or libraries services. Furthermore, since the extended payload is expressed neutral application-independent way, the document usually can be viewed and printed without the application used to create the package. To obtain such a possibility the notion offixed payloadintroduced and contained in the expanded package.

According to the described embodiment perform a fixed payload has a fixed number of pages and always the same number of delimiters pages. Pre-defined layout of all elements on the page in a fixed payload. Each page has a fixed size and orientation. As such, should not be performed no calculations pickup on the demand side, and the content can simply be visualized. This applies not only to graphics, but also to the text that is rendered in a fixed useful load with precise typographic layout. The page content (text, graphics, images) is described using m is snogo, but a simple set of visual primitives.

Advanced packages support multiple mechanisms of pages. A group of pages linked together one after another in “FixedPanel”. This group of pages is roughly equivalent to the traditional multi-page document. FixedPanel then can optionally participate in the composition process of sequence generation and elections for the Assembly of composite document.

In the depicted and described embodiment, the extended packages support a certain kind of sequence, calledsequence FixedPanelthat can be used, for example, for bonding together of a set FixedPanel into one big document. Imagine, for example, gluing together two documents, which came from various sources: accompanying two-page Memorandum (FixedPanel) and dvadtsatityschnoy report (FixedPanel).

Advanced packages support a certain number of selectors that can be used when building a package of documents containing alternative views of the same content. In particular, advanced packages allow selection based onlanguage,the ability to reproduce colorsandthe page size. Thus, it is possible to have, for example, a bilingual document, which is output uses a selector to select between the English view of the French and the presentation of the document.

In addition to these simple uses of the selector and sequence for compiling the extended package it is important to note that the selectors and sequences can also refer to other selectors and sequences, thus allowing to build a composite hierarchy. The exact rules regarding what you can and cannot do, according to this variant of execution are defined below in the section entitled “Structure of the extended package.

In addition, an advanced package may contain additional payload, whichnotare fixed useful load, but instead have a more rich features and possibly editable document views. This allows the package to contain enriched editable document, which works well in the application editor, as well as the view that visually accurate and can be viewed without editing application.

Finally, under this option perform advanced packages support what is known aslabel printing. Label printing provides settings that should be used when the package is printed. These label prints can be attached in various ways to achieve significant flexibility. For example, label printing can be “attached” to the whole package, and its installation will affect the entire package. Label printing can optionally be attached to the lower levels in the structure (for example, individual pages), and these labels printing will ensure installation overrides to use when printing the parts to which they are attached.

The structure of the extended package

As described above, the extended package supports the set of features that includes a “fixed” page, FixedPanel, composition, labels, printing, etc. These characteristics are the key components in the model package: parts and relationships. In this section and related sections is provided for the full definition of “advanced package”, including a description of how all these parts and relations should be collected, linked, etc.

An overview of the structure of the extended package

Figure 10 depicts an exemplary enhanced package and in this embodiment, each of the valid types of parts, which may be a package or can be found in the package. In the table provided below lists each possible type of the part and provides a description of each:

FixedPage
application/xml+FixedPage-PLACEHOLDER
Each FixedPage part is the content of imoe page
FixedPanel
application/xml+FixedPanel-PLACEHOLDER
Each FixedPanel glues together a set FixedPage order
FontFonts can be embedded in the package, to ensure reliable reproduction of the glyphs in the document
Image
image/jpeg
image/png
Can be included part of the image
Composition Parts
application/xml+Selector+[XXX]
Application/xml+Sequence+[XXX]
Selectors and sequences can be used to construct a “composite” of the block, introducing high-level organization in the package
Descriptive Metadata
application/xml+SimpleTypeProperties-PLACEHOLDER
Descriptive metadata (e.g. title, keywords) can be enabled for the document
Print Ticket
application/xml+PRINTTICKET-PLACEHOLDER
Label printing can be included to provide installation for use when printing package

Because the advanced package was developed that it was a document to view and print anywhere”, the readers and the authors extended packages must share a common, clearly distinct the e expected results, what constitutes a “valid” advanced package. To get the definition of “valid” advanced package below first define a few concepts.

Advanced composite parts

Advanced package must contain at least one FixedPanel, which is found in the follow-up composite block with the initial part of the package. According to the described embodiment perform the discovery process follows the following algorithm:

- Recursive traversal of a graph of composite parts, starting with the initial part of the package.

- When this bypass to bypass only composite parts that areadvanced composite parts(described below).

To localize all the leaf nodes (those without outgoing arcs) on the edge of the graph.

These leaf nodes are referenced (through their elements <item>) to the set of parts, calledthe roots extended payload.

Fixed payload

Fixed payload is a payload, the root part which is part of the FixedPanel. For example, each of the fixed payloads figure 10 has as its root portion of the associated part of the FixedPanel. The payload includes a full closed expression of all parts that require the units for the allowable processing FixedPanel. They include:

the FixedPanel;

all FixedPage, referenced from FixedPanel;

- all parts of the image that is referenced (directly or indirectly using the selector) each FixedPage in the payload;

alladvanced selectors(as described below), which is referenced directly or indirectly from the brushes of the images used in any FixedPage in the payload;

all the font part referenced by any of the FixedPage in the payload;

- all parts with descriptive metadata attached to any part of the fixed payload; and

- any label print attached to any part of the fixed payload.

Rules of admissibility for advanced pack

With the above definitions in place now describe the rules for approval, which describe “valid” advanced package according to the described embodiment run:

- advanced package must have an initial portion that is defined using the standard mechanism of package relationships, as described above;

- the initial part of an extended package must be either a selector or a sequence;

- enhanced package must have at least one root of the extended payload, which is the FixedPanel;

part PrintTickt can be attached to any of the composite parts, PrintTicket parts or any of the FixedPage parts identified in FixedPanel. In this example this is done using the relationship http://PLACEHOLDER/HasPrintTicketRel;

- PrintTicket can be attached to any or all of these parts;

- any specified portion should be no more than one attached PrintTicket;

- part of the Descriptive Metadata can be attached to any part of the service;

each Font object in FixedPayload must satisfy the rules for the format of fonts that are defined in the section “Font part;

- links to images from any FixedPage in the fixed payload can specify a selector switch that can perform the selection (potentially recursively through other selectors) to detect the actual part with the image being rendered;

- every Image object used in a fixed payload, must satisfy the rules for the format of fonts that are defined in the section “part of the image”;

for any font, parts with the image or part of the selector, referenced from FixedPage (directly or indirectly via the selector), should be the attitude of “required parts” (relationship name = http://mmcf-fixed-RequiredResource-PLACEHOLDER from referencing FixedPage part, to which reference is made.

Advanced composite parts

Although advanced package can contain many types of composition career the second part, only a well-defined set of types of composite parts has a well-defined behavior according to this document. These composite parts with a well-defined behavior are calledadvanced composite parts. Parts other than those that are not relevant in determining the admissibility of the extended package.

The following types of composite parts are defined as advanced composite parts:

Language Selector (selector language)
application/xml+selector+language
Selects between views based on their natural language.
Color Selector (selector, color)
application/xml+selector+color
Selects between views based on whether they are monochrome or color.
Page Size Selector (selector page size)
application/xml+selector+pagesize
Selects between views based on their page size.
Content Type Selector (selector, content-type)
application/xml+selector+contenttype
Selects between views based on whether their content types to be understood by the system.
Fixed Sequece (fixed sequence)
application/xml+sequence+fixed
Combines child elements, which are fixed content in the sequence.

Advanced selectors

These composite parts selector defined as advanced composite parts, calledadvanced selectors. As noted above,the language selectorselects between views based on their natural language such as English or French. To discover this language, the selector inspects each of its objects. Considers only those that are XML. For them, the root element of each inspected to determine that language. If not present the xml:lang attribute, then the part is ignored. The selector then considers each of these parts in turn, choosing the first language that matches the language system used by default.

The color selectorselects between views based on whether they are black or colored.The selector page sizeselects between views based on the size of their pages.The content type selectorselects between views based on whether their content types to be understood by the system.

Extended sequence

These compositionist sequence, defined as advanced composite parts, calledextended sequence.Fixed sequencecombines child elements, which are fixed content in the sequence.

Part fixed payloads

Fixed payload may contain the following parts: part FixedPanel, the FixedPage part, the part with the image, font, parts of the label printing and part with descriptive metadata, each of which is described below under its own subheading.

Part FixedPanel

The structure of the document Fixed-Payload identifies FixedPage as part of the spine, as shown below. The relationship between the part of the spine and parts of the page are defined in flow relationship to the spine. Part FixedPanel is the content type application/xml+PLACEHOLDER.

The root content Fixed-Payload is specified in the markup by the inclusion of the element <FixedPanel> element <Document>. In the example below, the element <FixedPanel> specifies the sources of the pages that are stored in the spine.

<!- Root -->

Element <Document>

Element <Document> has no attributes and should have only one child element: <FixedPanel>.

Element <FixedPanel>

Element <FixedPanel> represents the root of the document, the logical binding is in store an ordered sequence of pages together into one multi-page document. Page is always set their own width and height, but the element <FixedPanel> may also, optionally, to set the height and width. This information can be used for a variety of purposes, including, for example, the choice between alternative views, based on the page size. If the element <FixedPanel> specifies the height and width, it will usually be aligned along the width and height of the page <FixedPanel>, but these sizes don't specify the height and width of individual pages.

The following table presents a summary of the attributes FixedPanel according to the described embodiment of the execution.

Attribute <FixedPanel>Description
PageHeightThe typical height of the pages contained in <FixedPanel>. Optional.
PageWidthThe typical width of the pages contained in <FixedPanel>. Optional.

Element <PageContent> is the only valid child element of <FixedPanel>. Elements <PageContent> are in sequential order of the markup corresponding to the order of pages of the document.

Element <PageContent>

Each element <PageContent> refers to the source of the content for a single page. On what I determine the number of pages in the document you want to count the number of child elements < PageContent>contained in <FixedPanel>.

Element <PageContent> does not have a valid child elements and is the only required Source attribute, which refers to the FixedPage part to the page content.

As with element <FixedPanel>element <PageContent> can, optionally, include the attribute PageHeight and PageWidth, thus reflecting the size of one page. The required page size is defined in the FixedPage part; optional size <PageContent> is only Advisory. The size attributes <PageContent> enable applications such as document viewers, to quickly assess the visual layout of the document without downloading and parsing of all the individual parts of the FixedPage.

The table directly below presents a summary of the attributes of the <PageContent> and describes the attributes.

Attribute <PageContent>Description
SourceString URI that references the page content that is stored in a separate part of the package. The content is identified as part of the package. Required.
PageHeightOptional
PageWidth Optional

String URI content of the page should reference the location of some of the content on the package.

The FixedPage part

Each element <PageContent> <FixedPanel> refers by name (a URI) to the FixedPage part. Each part contains a FixedPage FixedPage markup describing the rendering of a single page of content. The FixedPage part is the Content Type application/xml+PLACEHOLDER-FixedPage.

Description FixedPage markup

The following is an example of how the markup content source can search the pages referenced in the illustrative layout of the spine above (<PageContent Source="p1.xml" />).

In the table below summarized the properties of the FixedPage and describes the properties.

Property FixedPageDescription
PageHeightRequired
PageWidthRequired

Reading order in the FixedPage markup

In one embodiment, the order of the markup in the child elements Glyph contained in the FixedPage, should be the same as the desired reading order of the text content of the page. This order sitiveni which can be used to interactively select/copy the serial text from a FixedPage in the viewer, and to allow access to the serial text using the technology available. The responsibility of the application generating the FixedPage markup is the matching between the order of the markup and the order read.

Parts image

Supported formats

According to the described embodiment of the part with the image used FixedPage in the expanded package, can be in a fixed number of formats, such as PNG (portable network graphics) or JPEG format, although you may use other formats.

Font part

According to the described embodiment perform advanced packages have a limited number of font formats. In the depicted and described embodiment, the supported font format includes TrueType and OpenType format.

As is clear to a person skilled in the art, the OpenType font format is an extension of the format TrueType font, adding support for PostScript font data and complex typographic layout. The OpenType font file contains data in a tabular format, that contain or outline TrueType font, or a PostScript outline font.

According to the described embodiment perform the following font formats are not supported in the extended package: font Type 1 Adobe bitmap font font with a hidden attribute (uses a flag system for deciding whether to list or not), vector fonts and font EUDC (defined by the end user font) (font family name which is EUDC).

Division of fonts on subgroups

Fixed payload represent the entire text using theGlyphs, described in detail below. As in this embodiment, the format is fixed, it is possible to divide the fonts into subgroups to contain only the glyphs required for FixedPayload. Therefore, the fonts in the advanced packages can be divided into subgroups based on the use of glyphs. Although divided into subgroups font does not contain all the glyphs in the original font, divided into subgroups font must be a valid OpenType font file.

Part of the label printing

Part of the label printing provide installation, which can be used when the package is printed. These labels printing can join in different ways to achieve significant flexibility. For example, label printing can “join” to the whole package, and installation will affect the entire package. Label printing, also can be attached to the lower levels in the structure (for example, individual pages),and these labels printing will ensure installation overrides to use when printing the parts, to which they are attached.

Descriptive metadata

As noted above, part of the descriptive metadata provide the authors or creators of the packages, means for storing the values of properties that allow readers packets reliably detect values. These properties are typically used to record additional information about the package as a whole and the individual parts in the container.

Fundamentals of FixedPage markup

This section describes some basic information associated with the FixedPage markup, and it includes the following sections: Fixed payload and other standards markup”, “Model FixedPage markup, Resources and links to resources” and “Model drawing FixedPage”.

Fixed payload and other standards markup

Markup FixedPanel and FixedPage for a fixed payload in the advanced package is a subset of the markup of extensible application markup language (XAML) Avalon Windows® Longhorn. Meaning that even though the markup is fixed payload stands alone as an independent markup format XML (as documented in this document), it is loaded as well as systems Longhorn, and visualize the play in WYSIWYG (“what you see is what you get”) the original multi-page document.

As is some of the basic principles XAML markup consider the following. The XAML markup is a mechanism that allows the user to specify a hierarchy of objects and logic programming after objects as XML-based markup language. This provides the possibility of describing the object model to XML. This allows access to XML extensions to classes, such as classes in the common language runtime (start, CLR) .NET Framework of Microsoft Corporation. The mechanism XAML provides a direct mapping of XML tags to objects, the lighting and the opportunity to present the relevant code in the markup. You must appreciate and understand that different implementations do not have to use based on the ABM implementation of XAML. Rather, based on the ABM implementation is only one path XML can be used in the context of the embodiments described in this document.

More specifically, consider the following in connection with 11, which depicts an exemplary display of the principles of the ABM (components left side) in XML (components right side). Namespace found in the xmlns using the principle of salt, called reflection. Classes are displayed directly in the XML tags. Properties and events are displayed directly in the attributes. Using this hierarchy, the user can specify the hierarchy tree of all objects start in FAI is Ah XML markup. Xaml files are xml files with the extension .xaml and media type application/xaml+xml. Xaml files have one root tag, which usually specifies the namespace using the xmlns attribute. The namespace may be specified in other types of tags.

Continuing, the tag in the xaml file are usually displayed in the objects WWS. Tags can be elements, compound properties, definitions or resources. Elements are objects WWS, copies of which are usually created at run time and form a hierarchy of objects. Tags composite properties are used to set the properties in the parent tag. Definition tags are used to add code to the page and resource definitions. Asset tag provides the ability to reuse the object tree simple task tree as a resource. Tags definitions can also be defined inside another tag as the xmlns attribute.

If the document is appropriately described by the markup (usually the originator), the markup can be parsed and processed (usually a reader). Configured the parser determines from the root tag which assemblies and namespaces WWS be searched for detection of the tag. In many instances, the parser looks for and tries which leads to a definition file, namespace URI, specified by the xmlns attribute. The definition file namespace provides the name of the assemblies and their installation path and the list of namespaces WWS. When the parser encounters a tag, the parser determines which class WWS refers to the tag using the xmlns tag and file definitions xmlns for this xmlns. The parser searches in the order in which the Assembly and namespace specified in the definition file. When it finds a match, the parser creates an instance of the object class.

Thus, the mechanism described immediately above and more fully in the application incorporated above by reference, provides an opportunity to present the object model in XML-based file using markup tags. This ability to represent object models as markup tags can be used for synchronous or asynchronous draw vector graphics, documents with a fixed format adaptive to the flow of documents and user interfaces (UI) of the application.

In the depicted and described embodiment, the markup is fixed payload is a very minimal, almost completely cheap subset of XAML rendering primitives Avalon. It is visually everything that can be represented in Avalon,with high fidelity. Marking fixed payload is a subset of elements and properties XML Avalon - plus an additional agreement, the canonical form or restrictions in use compared to XML Avalon.

Radically minimum specific set of markup fixed payload reduces the costs associated with the implementation and testing of the readers of advanced packages such as CPUs rasterized images (WHEN, RIP) printer or interactive viewer applications, and reduces the complexity and the memory footprint of an associated parser. Cheap set of markup also minimizes the possibility to split into subgroups, errors or discrepancies between authors and readers in the extended packages, making the format and its ecosystem is inherently more reliable.

In addition to the minimum markup fixed payload extended service sets the markup for additional semantic information to support programs view or view documents with enhanced packages with features such as hyperlinks, structure and navigation sections/composition of the text, select text and availability of the document.

Finally, using the above mechanisms versioning and extensibility, you can Supplement the mini is real markup fixed payload over a rich set of elements for specific target applications viewers or devices consumption.

Model FixedPage markup

In the depicted and described embodiment, the FixedPage part is expressed in an XML-based markup language based on XML elements, XML attributes and XML namespaces. Three XML namespaces defined in this document for inclusion in the FixedPage markup. One such namespace refers to elements and attributes versioning defined elsewhere in this description of the invention. The main namespace, used for elements and attributes in the FixedPage markup is “http://schemas.microsoft.com/MMCF-PLACEHOLDER-FixedPage”. And, finally, the FixedPage markup introduces the concept of “Resources”, which requires a third namespace, described below.

Although the FixedPage markup is expressed using XML elements and XML attributes, its specification is based on high-level abstract model of “Content” and “Properties”. Elements FixedPage all are expressed as XML elements. Only a small number of elements FixedPage can store Content, expressed as nested XML elements. But the value of the property can be expressed using an XML attribute or using the children of the XML element.

The FixedPage markup also depends on the dual principles of Dictionary resources and Links to resources. The combination of the resource Dictionary and numerous the x Links to resources enables sharing a single value properties multiple properties multiple FixedPage markup elements.

Properties in the FixedPage markup

In the depicted and described embodiment, there are three forms of markup that can be used to set the value property of the FixedPage markup.

If the property is set with reference to resources, then the property name is used as the name of the XML attribute, and a special syntax for an attribute value indicates the presence of links to resources. The syntax for expressions of links to resources described in the section entitled “Resources and links to resources.

Any property value that is not specified as links to resources, can be expressed in XML using a nested child of the XML element that identifies the property, whose value is set. This “Syntax composite properties is described below.

Finally, some property values without reference to resources can be expressed as a string of plain text. Although all these property values can be expressed using the syntax of the compound properties, they can also be expressed using the syntax of simple XML attribute.

For any given element of any property can be set not more than once, regardless of the syntax used to set the value.

The syntax of a simple attribute

For the value of a property expressed as a simple string, can use the syntax of the XML attribute to specify the property value. For example, whereas the FixedPage markup element named “SolidColorBrush”, with a property named “Color”, the following syntax can be used to set property values:

<!-- The syntax of a simple attribute -->

<SolidColorBrush Color=”#FF0000” />

The syntax of a compound properties

The values of some properties cannot be expressed as a simple string, for example, an XML element is used to describe the property value. This property value can not be expressed using the syntax of a simple attribute. But they can be expressed using the syntax of the compound properties.

In the syntax of a compound properties used XML child element, but the name of the XML element derived from the combination of the name of the parent element and the property name, separated by a dot. Taking into account the FixedPage markup element <Path>, which has the property of “Fill”, which can be set in the <SolidColorBrush>, the following markup can be used to set the property to “Fill” element <Path>:

<!-- The syntax of a compound properties -->

The syntax of a compound properties can be used even in those cases, it was sufficient the simple syntax of the attribute to the value expression with the STS. Therefore, the example of the previous section

<!-- The syntax of a simple attribute -->

<SolidColorBrush Color=”#FF0000” />

May be expressed instead by the syntax of the compound properties:

<!- The syntax of a compound properties -->

<SolidColorBrush>

<SolidColorBrush.Color>#FF0000</SolidColorBrush.Color>

</SolidColorBrush>

When setting a property value using the syntax of the compound properties of nested XML elements representing the “Property”must appear before the child XML elements representing the “Contents”. Is not important the order of the individual child XML elements of the composite properties, only that they appear together before any “Contents” of the parent element.

For example, when using properties as Clip and RenderTransform element <Canvas> (described below), both must appear before any content <Path> and <Glyphs> element <Canvas>:

Resources and links to resources

Resource dictionaries can be used to store the shared values of properties, and each is called a resource. Any property value, which itself is a FixedPage markup element may be contained in a resource Dictionary. Each resource in the resource Dictionary has a name. The resource name can be used to reference the resource from an XML attribute.

In the depicted op and the sledge embodiment, the elements < Canvas> and <FixedPage> can carry a resource Dictionary. The resource dictionary is expressed in the markup as a property of the elements <Canvas> and <FixedPage> feature called “Resources”. However, the individual values of the resources are embedded directly in the XML element <FixedPage.Resources> or <Canvas.Resources>. Syntactically markup for <Canvas.Resources> and <FixedPage.Resources> reminds markup for markup elements with “Contents”.

Under this option run <Canvas.Resources> or <FixedPage.Resources> must precede any property value syntax composite properties in the <Canvas> or <FixedPage>. They, likewise, must precede any “Contents” in the <Canvas> or <FixedPage>.

The definition of resource dictionaries fixed payload

Any <FixedPage> or <Canvas> can carry a resource Dictionary, expressed using the XML element <Canvas.Resources>. Each element in a single resource dictionary is given a unique name identified using the XML attribute that is associated with this element. To distinguish this “Name” attribute from the attributes that correspond to the properties, the Name attribute is taken from a namespace other than the namespace of the elements FixedFormat. The URI for this namespace XML is a “http://schemas.microsoft.com/PLACEHOLDER-for-resources”. In the example below defines two geometric shapes: the bottom of the rectangle and another for the circle.

Link to resources

To set the property value for one of the resources identified above, you should use the value of the XML attribute that covers the name of the resource brackets {}. For example, “{Rectangle}” will mean that used geometric shape. In the sample layout below the region of the rectangle defined geometric objects in the dictionary, will be colored by SolidColorBrush.

Under this option the run link to resources should not occur within the definition of the resource in the resource Dictionary.

Constraint rules to resolve references to resources

Although in isolation the name cannot be used twice in the same resource Dictionary, the same name can be used in two different resource Dictionaries in one part of the FixedPage. In addition, the internal resource Dictionary <Canvas> can re-use the Name defined in some external resource Dictionary <Canvas> or <FixedPage>.

When a link on the resources used to set the properties of the element in different resource Dictionaries to search for a resource with the given name. If the element which carries the property is a <Canvas>, then search resource with the given name in the resource Dictionary (if the n is present) < Canvas>. If the item is not <Canvas>, then the search starts from the nearest containing <Canvas> or <FixedPage>. If the desired name is not defined in the resource Dictionary of the initial search, then whereas the next closest containing <Canvas> or <FixedPage>. An error occurs if the search is continued until the root element <FixedPage>, and the resource with the given name was not found in the Dictionary resources associated with this <FixedPage>.

The example below demonstrates these rules.

Model drawing FixedPage

The FixedPage element (or a nested child of the Canvas element) is an element on which other elements are rendered. Managing content through properties defined for FixedPage (or Canvas), the properties defined for the elements on the FixedPage (or Canvas), or composition rules defined for the namespace Fixed-Payload.

Use the Canvas to layout elements

When the fixed layout all the elements are arranged relative to the current origin (0,0) of the coordinate system. The current origin can move the application attribute RenderTransform to each FixedPage element or Canvas that contains the element.

The following example illustrates the arrangement of elements using RenderTranform.

Coordinate system and units

According to the depicted and described embodiment perform the coordinate system is initially set so that one unit in this system of coordinates is equal to 1 / 96th of an inch, expressed as a floating-point value, the origin (0,0) of the coordinate system is in the upper left corner of the FixedPage element.

Attribute RenderTransform can be set on each child element for applying an affine transformation to the current coordinate system.

The page sizes

The page dimensions are set by the parameters “PageWidth and PageHeight” FixedPage element.

Composition rules

FixedPage use model drawing with alpha channel. According to the described embodiment perform the composition should occur in accordance with these rules and in the following order:

- FixedPage (or any nested Canvas) assumes unlimited surface on which child elements are drawn in the order in which they appear in the markup. The alpha channel of this surface is initialized to “0,0” (all transparent). In practice, the ideal unlimited surface may be in the form of a raster buffer large enough to store all the tags created by the visualization of all child elements.

The content of the surface is converted using the receiving affine transformation, set the RenderTransform property, FixedPage (or Canvas).

All child elements are rendered on the surface, clip Clip property (which is also converted using RenderTransform property), FixedPage (or Canvas). FixedPage additional cuts to the rectangle specified (0,0,PageWidth,PageHeight). If the child element has an Opacity property or OpacityMask property, it applies to a child element before it is rendered on the surface.

Finally, the contents of the FixedPage (or Canvas) is visualized on the containing element. In the case of a FixedPage the containing element is the physical surface of the image-forming.

Visualization takes place according to these rules:

The only elements that create marks on the surface are “Glyphs” and “Path”.

All other effects of visualization can be achieved by the arrangement of the elements of the “Glyphs” and “Path” on the “Canvas” and use their different valid attributes.

Elements and properties of the fixed payload

Fixed payload, according to the depicted and described embodiment implementation, includes a small set of XML elements used in the layout, presentation pages and their content. The markup in part FixedPanel brings the pages of the document together in a common, easily indexed root, using the elements of the s < Document>, <FixedPanel> and <PageContent>. Each FixedPage part represents the contents of the page in the item <FixedPage> with the only elements <Path> and <Glyphs> (which together carry out the whole picture) and the element <Canvas> for their group.

The hierarchy of markup element fixed payload summarized in the following sections, entitled “the top-level Elements”, “Geometric shape for Path Clip”, “Brush used to fill the Path, Glyphs or OpacityMask”, “resource Dictionaries for FixedPage or Canvas”, “Mask opacity to transparency alpha channel”, “Trajectory trim” and “Conversion”.

The top-level elements

<Document> [obviously one part FixedPanel]

Attributes:

[no]

Child elements:

<FixedPanel> [just one]

<FixedPanel>

Attributes:

PageHeight [Optional]

PageWidth [Optional]

Child elements:

<PageContent> [1-N of these child elements]

<PageContent>

Attributes:

Source [required]

PageHeight [optional]

PageWidth [optional]

Child elements:

[no]

<FixedPage>

Properties expressed directly via simple XML attributes:

PageHeight [required (here or as a child element)]

PageWidth [required (here or as a child element)]

The resource dictionary, expressed himself as dacher the third XML element:

<FixedPage.Resources>

Properties expressed using child XML elements:

<FixedPage.PageHeight> [required (here or as an attribute)]

<FixedPage.PageWidht> [required (here or as an attribute)]

The contents with the child XML elements:

<Canvas>

<Path>

<Glyphs>

The FixedPage markup

Each FixedPage part represents the contents of the page in XML markup, located in the root element <FixedPage>. This FixedPage markup provides fidelity WYSIWYG (“what you see is what you get”) document between authors and readers using only a small set of elements and properties: elements <Path> and <Glyphs> (which together carry out the whole picture) and the element <Canvas> for their group.

Properties of common elements

Before describing attributes that are characteristic for each element in the FixedPage markup, consider the attributes that are common to the elements of drawing and grouping: Opacity, Clip, RenderTransform and OpacityMask. Not only they are the only properties that are common to elements stored the top level, they are also the only properties that “accumulate” their results from a parent element to a child element, as described in the section “composition Rules” above. Accumulation is the result of applying the rules of composition. In the table, which follows, provides a brief description of these common attributes, followed by a more detailed description of each attribute.

AttributeElementsDescription
OpacityCanvas, Path, Glyphs and SolidColorBrush, ImageBrush, DrawingBrush, LinearGradientBrush, of radialgradientbrushDefines the uniform transparency of the element

The child elementElementsDescription
ClipCanvas, Path, GlyphsDefines the uniform transparency of the element
RenderTransformCanvas, Path, GlyphsRenderTransform sets for the child a new coordinate frame element. Supported only is about MatrixTransform
OpacityMaskCanvas, Path, GlyphsSpecifies a rectangular mask alpha factors, which is used as the Opacity attribute, but allows different alpha factors on a pixel-by-pixel basis

The Opacity attribute

Opacity is used to clear the pairing of the two elements when rendering (Alpha Blending). The Opacity attribute is enclosed in the range from 0 (fully transparent) to 1 (fully opaque). Values outside of this covering a range limited to this range during the parsing of the markup. So, in fact, [- ∞...0] is transparent, and [1 ... ∞] is opaque.

The Opacity attribute is applied using the following calculations (assuming the original color and the color of the destination without multiplication in reverse order, both are set as scRGB):

AboutE: Opacity attribute of the element or alpha-factor in the corresponding position in the OpacityMask

AS: Alpha-factor that is present on the surface of the source

RS: The value of the Red present on the surface of the source

GS: The value of Green that is present on the surface of the source

BS: Is Blue that is present on the surface of the source

AD: Alpha-factor already present on the surface of the destination

RD: The value of Red, already present is on the surface of the destination

GD: Is Green, already present on the surface of the destination

BD: Is Blue, already present on the surface of the destination

A*: the Resulting Alpha value for the surface of the destination

R*: the Resulting value Red to the surface of the destination

G*: the Resulting value Green for the surface of the destination

B*: the Resulting value is Blue for the surface of the destination

All values are denoted with subscripts T are the time values (e.g., RT1).

Step 1: multiply the alpha-factor of the source of the value : Opacity

As=As·OE

Step 2: multiply in reverse order factor-alpha source

AT1=AS

RT1=RS·AS

GT1=GS·As

BT1=Bs·As

Step 3: multiply in reverse order factor-alpha destination

AT2= AD

RT2= RD·AD

GT2= GD·AD

BT2= BD·AD

Step 3: pair

AT2=(1-AT1)* AT2+ AT1

RT2=(1-AT1)* RT2+ RT1

GT2=(1-AT1)*GT2+ GT1

BT2=(1-AT1)* BT2+ BT1

Step 4: reverse the multiplication in reverse order

If AT2= 0, set all A*R*G*D* 0.

Otherwise:

A* = AT2

R* =R T2/AT2

G* = GT2/AT2

B* = BT2/AT2

Clip property

The Clip property is defined as a geometric elements <GeometryCollection> or <PathGeovetry> (see Path.Data for details).

The Clip property is used as follows:

Is visible all the rendered content that gets inside geometry, described the child Clip.

Is not visible all the rendered content that is outside of the geometric element, described the child Clip.

The child element's RenderTransform

MatrixTransform is the only attribute conversion available for items. He expresses an affine transformation. The syntax is:

<X.RenderTransform>

<MatrixTransform Matrix=”1,0,0,1,0,0”/>

</X.RenderTransform>

X is the element to which to apply the transformation.

Six numbers specified in the attribute Matrix represent m00, m01, m10, m11, dx, dy.

Full matrix looks like:

m00m010
m10m110
dxdy 1

Set the X-coordinate,Y is converted using a RenderTransform, receiving the resulting coordinate X',Y', by using these calculations:

X'=X*m00 + Y*m10 + dx

Y'=X*m01 + Y*m11 + dy

Child element OpacityMask

OpacityMask Brush sets, but in contrast to the Fill Brush only the alpha channel (see above Opacity attribute) brush is used as an additional parameter for the imaging element. Each alpha value for each pixel element is then further multiplied by the alpha value at the corresponding position in the OpacityMask Brush.

Element <Canvas>

Element <Canvas> is used to group together items. Usually the FixedPage grouped together in the <Canvas>when they share a composite a common attribute (i.e. Opacity, Clip, RenderTransform or OpacityMask). In the grouping together of these elements on the Canvas shared attributes can often be applied to the Canvas rather than the individual elements.

The attributes and child elements <Canvas>

Element <Canvas> has only the common attributes described earlier: Opacity, Clip, RenderTransform and OpacityMask. They are used with element <Canvas>, as described in the table below:

AttributeImpacts on Canvas
OpacityAbout what defines the uniform transparency of the Canvas

The child elementImpacts on Canvas
ClipClip describes the region in which the brush can be applied to child elements Canvas
RenderTransformRenderTransform establishes a new coordinate frame for the child Canvas elements, such as another Canvas. Supported only MatrixTransform
OpacityMaskSpecifies a rectangular mask alpha factors, which are used as the Opacity attribute, but allows another factor-alpha on a pixel-by-pixel basis

The following markup example shows how to use <Canvas>.

For reading in the layout Canvas, consider the following. As with the FixedPage, order pegging the child elements of the Glyphs contained in the Canvas must be the same as the desired reading order of text content. This reading order can be used to interactively select/copy the serial text from a FixedPage in the viewer and to allow access to the serial text technology availability. Liability downloads the tion, generating a FixedPage markup is the matching between the order of the markup and the order read.

Child elements Glyphs contained in a nested Canvas elements, are arranged inside among siblings Glyphs that takes place before and after the Canvas.

Example

Element <Path>

The Path element is an XML-based element that describes a geometric region. Geometric region is a form that can be colored or used as a clipping path. Common types of geometric shapes, such as rectangle and ellipse can be represented using geometric forms Path. The trajectory is described by specifying the required child element Geometry.Data and visualization attributes, such as Fill or Opacity.

Properties and child elements <Path>

The following properties apply to the elements <Path>as described below:

PropertiesImpact on Path
OpacityDefines the uniform transparency of the painted path

Impact on Path
ClipClip describes the region in which the brush may be used by the geometric shape of the trajectory
RenderTransformRenderTransform establishes a new coordinate frame for the child elements of the trajectory, such as a geometric shape defined by Path.Data. Supported only MatrixTransform
OpacityMaskSpecifies a rectangular mask alpha factors, which is used as the Opacity attribute, but allows other alpha-factor for different areas of the surface
DataDescribes the geometric shape of the trajectory.
FillDescribes the brush used to paint geometric shapes trajectory

To describe how the shaded region, the described geometric form of child <Path.Data>, you should use the Fill property. To limit the region, which can be drawn form <Path.Data>, you should use the Clip property.

Use <Path> to describe geometric shapes

Geometric shap is and the trajectory is defined as a sequence of nested child elements < Path.Data>, as shown below. The geometric shape can be represented using or <GeometryCollection>containing a collection of child elements <PathGeometry>, or the only child element of the <PathGeometry>containing <PathFigure>.

The same elements <GeometryCollection> or <PathGeometry> determine the geometric shape of the trajectory of the cut-off used in the property of the Clip in the Canvas, Path or Glyphs.

The following table introduces hierarchy of child elements that define the geometric shape of the Path.

Elements of GeometryDescription
GeometryCollectionThe set of elements PathGeometry rendered using Boolean operations CombineMode
PathGeometryThe set of elements PathFigure, each of which is filled with the same options FillRule
PathFigureA set of one or more elements of the segment
StartSegment,
PolyLineSegment
PolyBezierSegment
CloseSegment

GeometryCollection

GeometryCollection is a set of geometric objects, which combined is the place for visualization according to the options Boolean CombineMode. Item GeometryCollection is a mechanism FixedPage markup to create visual combinations of geometric shapes.

AttributesImpact on GeometryCollection
CombineModeSpecifies the various modes for combining geometric shapes

Attribute CombineMode specifies the Boolean operation used to combine the set of geometric shapes in a GeometryCollection. Depending on the mode will be included or excluded different regions.

Options CombineModeDescription
ComplementSpecifies that the existing region is replaced by the removal of an existing region from the new region. In other words, the existing region is excluded from the new region.
ExcludeSpecifies that the existing region is replaced by the result of the removal of the new region from an existing region. In other words, a new region is excluded from the existing region
IntersectTwo regions are combined through the om taking their intersection
UnionTwo regions are combined by taking the Union of both of them
XorTwo regions are combined by taking only areas covered by one or another region, but not both

CombineMode are handled as follows:

NotCommutative Complement and Exclude not possess the property of commutativity and therefore are determined among the first geometric shape in a GeometryCollection and each of the remaining geometry. For example, for a set { g1, g2, g3 } CombineMode Exclude would apply as ((g1 except g2) and (g1 except g3)).

Commutative Boolean Operations Union, Xor, Intersect, possess the property of commutativity, and therefore apply the order-independent geometric shapes.

PathGeometry

Item PathGeometry contains a set of elements PathFigure. Association PathFigure defines an inner region PathGeometry.

AttributesImpact on GeometryCollection
FillRuleSpecifies an alternate algorithms for coloring trajectories, which describe the areas to be covered

In relation attribute FillRule consider the following. Painted area PathGeomery is determined by taking all contained PathFigure, attribute Description set to true, and use FillRule to determine the areas to be covered. Options FillRule set as the overlapping areas of the figures contained in the Geometry are combined, forming the resulting area of the Geometry.

According to the described embodiment of execution provided by the algorithms EvenOdd Fill and NonZero Fill.

The algorithm EvenOdd Fill defines “interior” point on the canvas by drawing a radial line from this point to infinity in any direction and then research the places where a segment of the shape crosses the ray line. Starting counting from zero, add one whenever a Segment crosses the radial line from left to right, and subtract one every time a path segment crosses the ray line from right to left. After counting the crossings, if the result is zero, then the point isoutsidethe trajectory. Otherwise it isinside.

The algorithm NonZero Fill defines “interior” point on the canvas by drawing a radial line from this point to infinity in any direction and counting the number Segment of the trajectory of a given shape, which crosses the radial line. If this number is odd, the point is inside, if even, the point is outside.

PathFigure

Item PathFigure consists of a set of one or more line segments or distorting the X. Items segment define the shape of a PathFigure. PathFigure should always determine a closed form.

AttributesImpact on PathFigure
FillRuleSpecifies an alternate algorithms for coloring trajectories that describe the covered area

The figure requires a starting point, after which each line segment or curve continues from the last added point. The first segment in the set of PathFigure should be StartSegment, and CloseSegment must be the last segment. StartSegment has an attribute Point. CloseSegment has no attributes.

Attribute StartSegmentDescription
PointThe location of the line segment (starting point)

Marking fixed payload for geometric shapes Path.Data

The following provides markup for drawing and painting Path on the Canvas. In the specific example below draws a rectangular Path on the Canvas and paint brush pure green color.

The following markup describes drawing a cubic Bezier curve Ie in addition to PolyLineSegment markup Fixed-Payload includes PolyBezierSegment to draw a cubic Bezier curves.

Brush

The brush is used to fill paint the inner part of geometric shapes defined by the element <Path>, and painting raster character, rendered using the element <Glyphs>. The brush is also used when determining the mask transparency alpha-channel <Canvas.OpacityMask>, <Path.OpacityMask> and <Glyphs.OpacityMask>. The FixedPage markup includes the following brushes:

Brush typeDescription
SolidColorBrushPaints certain geometric regions pure color
ImageBrushFills a region of the image
DrawingBrushPaints region vector illustration
LinearGradientBrushFills a region with a linear gradient
Of radialgradientbrushFills the region of the radial gradient

Attributes change depending on the brushes, although all of the brushes have the Opacity attribute. ImageBrush and DrawingBrush is used n conjunction capabilities tiling. Two brushes with gradient shading also have common attributes.

Use the child element of the brush in the markup shown below:

<Path>

<Path.Fill>

<SolidColorBrush Color=”#00FFFF”/>

</Path.Fill>

</Path>

General properties for brushes

According to the described embodiment perform the following properties apply to all brushes except simple SolidColorBrush brush, which has a smaller number of optional child elements.

AttributeBrush typeDescription
OpacityAll brushes

The child elementBrush typeDescription
TransformAll brushes except SolidColorBrushDescribes MatrixTransform applicable to the coordinate space of the brush

Common attributes for DrawingBrush and ImageBrush

HorizontalAlignmentDrawingBrush, ImageBruschCenter, Left, who do Right
VerticalAlignmentDrawingBrush, ImageBruschCenter, Bottom or Top
ViewBoxDrawingBrush, ImageBrush
ViewPortDrawingBrush, ImageBrusch
StretchDrawingBrush, ImageBruschNone, Fill, Uniform, or UniformToFill
TileModeDrawingBrusch, ImageBrushNone, Tile, FlipY, FlipX or FlipXY
ContentUnitsDrawingBrush, ImageBruschAbsolute or RelativeToBoundingBox
ViewportUnitsDrawingBrush, ImageBruschAbsolute or RelativeToBoundingBox

The Horizontal Alignment attribute specifies how the brush is aligned in the horizontal direction in the field, which she paints. The Vertical Alignment attribute specifies how the brush is aligned in the vertical direction inside the area that it covers. The ViewBox attribute has a default value (0,0,0,0), which is interpreted as unknown. When it is uninstalled, no correction is carried out, and the Stretch attribute is ignored. The preview window Sadie the new coordinate system for the contents, i.e. re-defines the length and the beginning of the view port. The Stretch attribute contributes to the task of how this content is displayed in the view port. The value of the viewBox attribute is a list of “dimensionless” four numbers <min-x>, <min-y>, <width> and <height>, separated by whitespace and/or comma, and is of type Rect. Viewbox rect specifies a rectangle in user space, which is displayed in the bounding box. It works similarly to the introduction of scaleX and scaleY. The Stretch attribute (if option is not none) provides additional control for the preservation of the aspect ratio of the graphics. An additional transformation is applied to all descendants of the given element to achieve a given effect. If there is a conversion on the Brush, it applies on display in the ViewBox attribute.

The Stretch attribute has the following modes: None, Fill, Uniform, UniformToFill.

Uniform
Option attribute StretchDescription
NoneBy default. Retains its original dimensions
FillThe size ratio is not preserved, and the content is scaled to fill the established boundaries
Uniformly scales the size as long as the image will not fit in the established boundaries
UniformToFillUniformly scales the size to fill the established boundaries and perform clipping, if necessary

Simple brushes and their attributes

Child elements Path.Brush and Canvas.Brush include the following: SolidColorBrush, ImageBrush and DrawingBrush.

SolidColorBrush paints certain geometric regions of pure color. If you have the alpha component of the color, it is combined in a multiplicative way with the corresponding attribute of opacity in the Brush.

AttributesEffects
ColorSets the color for painted items

The following example illustrates how the color attributes are expressed for SolidColorBrush.

<Path>

<Path.Fill>

<SolidColorBrush Color=”#00FFFF”/>

</Path.Fill>

...

</Path>

ImageBrush can be used to fill the space image. The markup for ImageBrush enables you to specify the URI. If all other attributes are set to their default values, the image will be stretched to the rasiwasia the bounding rectangle of the region.

AttributesEffects
ImageSourceSpecifies the URI of the resource image

The ImageSource attribute must reference or on one of the supported Formats, large image, or a selector switch that leads to the image of one of these types.

DrawingBrush can be used to fill the space vector diagram. DrawingBrush is a Child element of the drawing, the use of which in the markup shown below.

Gradient brushes and their attributes

Gradients are drawn through a set of constraints gradient as Child XML elements gradient brushes. These constraints specify the colors of the gradient along the progression of some sort. There are two types of gradient brushes supported in this framework: linear and radial.

The gradient will be drawn by interpolation between the limits of the gradient in a given color space. LinearGradientBrush and GradientBrush share the following common attributes:

AttributeDescription
SpreadMethodThis property describes how the brush should paint the content area outside the main source region of the gradient. The default value is Pad
MappingModeThis property determines whether interpreted the parameters describing the gradient, relative to the bounding rectangle of the object. The default value is relatively ogranichlsya-rectangle.

The child elementDescription
GradientStopsStores an ordered sequence of elements GradientStop

In respect of the SpreadMethod attribute, consider the following. Options SpreadMethod specify how the painted space. The default value is the Pad.

Attribute options SpreadMethodImpact on Gradient
PadThe first color and the last color used to paint the rest of the space at the beginning and the end, respectively.
ReflectLimitations of the gradient is cyclically reproduced in the reverse order to fill the space.
RepeatThe gradient limiters are repeated in order until until space is not filled.

Attribute MappingMode

In relation LinearGradientBrush consider the following. LinearGradientBrush brush sets linear gradient along the vector.

AttributeDescription
EndPointThe end point of the linear gradient. LinearGradientBrush interpolates colors from StartPoint to EndPoint, where the StartPoint is an offset of 0 and EndPoint represents an offset of 1. Default - 1,1
StartPointThe starting point of the linear gradient

The following markup example shows the use of a LinearGradientBrush. Page with a rectangular trajectory is painted with a linear gradient.

This example shows a page with a rectangular trajectory, which is painted with a linear gradient. Path also has a property of cutting off in the form of an octagon, which breaks him.

RadialGradient similar programming model a linear gradient. However, while linear gradient to them is no start and end point to define the vector-gradient, radial gradient has a circle with a focal point to determine the nature of the change of the gradient. The circle defines the endpoint of the gradient, in other words, the limiter gradient of 1.0 specifies the color at the circumference of the circle. The focal point defines the center of the gradient. The limiter gradient of 0.0 specifies the color in the focal point.

AttributeDescription
CenterThe Central point of this radial gradient. Of radialgradientbrush interpolates color from the Focus to the circumference of the ellipse. The circle defined by Center and radius. The default is 0.5, 0,5
FocusThe focus of radial gradient
RadiusXThe radius in the direction X of the ellipse that defines a radial gradient. The default is 0.5
RadiusYThe radius in the Y direction of the ellipse that defines a radial gradient. The default is 0.5
FillGradientPad, Reflect, Repeat

Factor-alpha and transparency

According to the depicted and described embodiment perform each pixel of each cell battery (included) is that it has factor-alpha, in the range from 0.0 (fully transparent) to 1.0 (fully opaque). The alpha factor is used when mating elements to achieve the visual effect.

Each element can have an attribute Opacity, which is uniformly multiplied by an alpha value of each pixel.

In addition, OpacityMask provides the ability to get the specification of the pixel opacity, which governs how the rendered content will transition smoothly to their destination. Opacity, asked OpacityMask, combined multiplicative with any opacity, which may already be present in the alpha channel content. Pixel Opacity specified by using OpacityMask, is determined taking into account the alpha channel for each pixel in the mask - color data are ignored.

Type OpacityMask is a Brush. This gives you the opportunity to receive a specification of how the contents of the Brush appears on the extent of the content in many different ways. As in the case of use for painting geometric shapes, Brush the default paint over the entire space of the content, expanding or duplicating its contents accordingly. This means that This will stretch your ImageSource to full close content GradientBrush will be distributed from edge to edge.

Necessary what are the calculations for the alpha pair are described above under “Opacity Attribute”.

The following example illustrates how OpacityMask is used to create a “crowding-out darkening on the Glyphs element. OpacityMask in the example is a linear gradient that is displaced darkening from opaque black to transparent black.

Image in the Enhanced documents

OnFixedPageimage paint covered regions. To place an image onFixedPagethe region must first be specified on the page. The region is defined by the geometric shape of the Path element.

The Fill property of the Path element specifies the content of the painting for this region. Images are of one type paint, draw in the region using ImageBrush. All brushes have a default behavior, according to which painted the entire region or stretch or repeat (tile placement) accordingly the content of the brush. If ImageBrush the contents of the specified property ImageSource, stretched so as to completely cover the region.

The markup below shows how to place the image on the Canvas.

Since many images are rectangular, including a rectangular Path element in the resource Dictionary, it may be useful to simplify the markup. Path can then be placed with the COI is whether the attribute RenderTransform (see above).

Color

Colors can be specified in the depicted and described markup using symbols scRGB or sRGB. Specification scRGB known as “IEC 61966-2-2 scRGB” and can be obtained with www.iec.ch.

Parameters ARGB described in the table below.

NameDescription
RRed component of the scRGB current color
GGreen component of the scRGB current color
BBlue component of the scRGB current color
AndAlpha component scRGB current color

Colors

In this case the tagging (support tags) color elements metadata that specifies the color content. Such metadata may contain a color profile ICC (international consortium for the means of processing color images or other data determining the color.

Element <Glyphs>

Text is represented in a Fixed useful load using Glyphs element. This element is designed to meet the requirements for printing on an extended document.

Elements Glyphs can have combinations of the following properties.

Language series, typically comes from the properties xml:lang markup
PropertyPurposePresentation markup (Glyphs element)
OriginThe origin of the first glyph in the series. Glyph is placed so that its front edge vector promotion and its base line intersect this pointSet using properties OriginX and OriginY
FontRenderingEmSizeThe font size in units of the drawing surface (default is 1 / 96th of an inch)Measured in units of Length
FontHintingEmSizeSize for installation hints in points. Fonts may include the installation of hints to get minor differences in different sizes, for example thicker basic strokes and more open semi-circle with the smaller sizes to get the result that they look more like the same style than can be supplied by a simple scaling. This is not the same that the installation hints for the pixel resolution of the device, which is handled automatically. To date (March 2003 is.) famous fonts do not include the installation of hints depending on size. The default value is 12 pointsMeasured in double-precision numbers representing the size of the font in points
GlyphIndicesAn array of 16-bit numbers glyphs that represent this seriesPart of the properties of the Indices. Cm. below to view
AdvanceWidthsThe full-width array, one for each glyph in GlyphIndices. The nominal origin of the n-th glyph in the series (n>0) represents the nominal origin of coordinates n-1 glyph plus n-1 full width added along the direction of advancement of the series.
Basic glyphs, in General, have a non-zero full-width combining glyphs are mostly zero full width
Part of the properties of the Indices. Cm. below to view
GlyphOffsetsThe offsets array of glyphs. Is added to the nominal origin of the glyph calculated above, to generate a definitive origin for the glyph.
Basic glyphs, mostly. have the offset of the glyph (0,0), combining glyphs, in General, have an offset that places them right on top of the nearest preceding base glyph
Part of the properties of the Indices. Cm. below on what I view
GlyphTypefacePhysical font from which all glyphs are drawn in this seriesProperties FontUri, FontFaceIndex and StyleSimulations
UnicodeStringOptional*
An array of characters represented by this series of glyphs.
* Note that for GlyphRun generated from printer drivers Win32, the text that was originally published with the help of Win32 ExtTextOut(ETO_GLYPHINDEX)is transmitted to the driver by glyph indices and without code values of Unicode. In this case, the generated markup, Glyphs and, thus, the created object GlyphRun will not include code values. Without code values available functionality such as cut and paste or search in the viewer fixed formats, but the text remains possible
ClusterMapOne input symbol in the UnicodeString.
Each value gives the offset of the first glyph in GlyphIndices, which represents the corresponding character in the UnicodeString.
Where multiple characters are displayed on a single glyph, or where one character is displayed on numerous glyphs, or where multiple characters are displayed on numerous glyphs are inseparable, the symbol or symbols is(s) and the glyph or glyph(s) is called a cluster.
All entries in ClusterMap for multi-character cluster is displayed on the offset in the array GlyphIndices first glyph cluster
SidewaysThe layout of the glyphs is on their side.
By default, the glyphs are rendered as if they were in the form of horizontal text, and the origin corresponds to the beginning coordinate of the baseline for Western languages.
If the flag is set to “sideways” glyph turns on his side, and the origin is the top center untapped glyph
Yes
Bidilevel changesThe level of bi-directional attachment algorithm Unicode Numerically even values mean the layout from left to right, numerically odd numbers layout from right to left.
The right-to-left layout places the origin of the series on the right side of the first glyph, and positive values of the vector promotion place subsequent glyphs left from the previous glyph
Yes
BrushThe foreground brush used to draw the glyphsIs selected from the properties of the Shape Fill.
LanguageIs specified by the xml:lang

Overview of text markup

The metrics of the glyph

Each glyph defines metrics that specify how it aligns with other glyphs. Approximate metric according to one variant is shown on Fig.

Full width and combining characters

Generally speaking, the glyphs in the font are or base glyphs, or combination of signs that can be attached to the base glyphs. Basic glyphs typically have a total width that is not equal to zero, and the vector offset of 0.0. Combining characters usually have zero full width. The displacement vector can be used for position correction combining character and therefore can have a value of 0.0 for combining characters.

Each glyph in a series of glyphs has three values that control its position. Values indicate the origin, the full width and offset of the glyph, each of which is described below.

Origin:As expected, each glyph is nominal origin, for the first glyph in the series is the origin of the series.

Full width:Full width for each glyph provides the origin of the next glyph relative to that origin glyph the century Vector promotion is always in the direction of progression of the series.

The offset of the glyph (basic or sign):The displacement vector glyph corrects this position of the glyph relative to its nominal origin.

Symbols, glyphs and display cluster

Display cluster contains one entry per code is Unicode. The value in the entry is the offset of the first glyph in the array GlyphIndices, which represents the code value. Alternatively, where the code value is a part of the group code of values representing indivisible cluster of characters, the first glyph in the array GlyphIndices represents the offset of the first glyph that represents the cluster.

Show cluster

Display cluster may represent display code values in the glyph, which can be one to one, many to one, one to many or many to many”. Display “one to one” occur when each code is represented by exactly one glyph entries display cluster Fig are 0, 1, 2 ....

Display “many in one” occur when two or more code values are displayed in a single glyph. The inputs for these code values specify the offset of the glyph in the index buffer of the glyph. In the example on Fig characters 'f' and 'i' were C is replaced by a ligature, what is common practice typing in many serif fonts.

In relation mappings “one in many” consider the following in relation to Fig. 'Sara Am' contains a part which is located on top of the previous base symbol (ring), and a portion that is located to the right of the base character (the hook). When the Thai text is aligned with the separation of the characters, the hook is from the base of the symbol, while the ring remains on top of the base character, so many fonts encode the ring and the hook as separate glyphs. When one code value is displayed in two or more glyphs, the value inClusterMapfor this code value refers to the first glyph in the arrayGlyphIndecesthat is, this code value.

In relation mappings “many to many” consider the following in connection with Fig. In some fonts are inseparable group code values for a cluster of characters appear in more than one glyph. For example, this is common in fonts that support handwriting fonts related to Indian Indo-European languages. When inseparable group code of values appears in one or more glyphs, the value inClusterMapfor each of the code values refers to the first glyph in the arrayGlyphIndecesthat is, this code value.

p> The following example shows the Unicode representation of the glyph Thai wordsThe first two code values are combined to generate the three glyphs.

Job clusters

Specifications of the cluster is preceded by the specification of the glyph for the first glyph of the cluster is not 1:1 (display more complex than one character in a single glyph).

Each specification cluster has the following form:

(ClusterCodepointCount [:ClusterGlyphCount])

Part of the specification of the clusterTypePurposeThe default value is
ClusterCodepointCountPositive integerRooms the 16-bit code values of Unicode are combined to form this cluster1
ClusterGlyphCountPositive integerRooms the 16-bit glyph indices are combined to form this cluster1

Markup <Glyphs>

The Glyphs element specifies the font as a URI, index mark, and a set of other attributes described above. For example:

Each specification glyph has the following form:

[GlyphIndex][,[Advance][,[uOffset][,[vOffset][,[Flags]]]]]

Each part of the specification of the glyph is optional:

Part of the specification glyphPurposeThe default value is
GlyphIndexThe glyph index in visualizing the physical fontTable defines the display character fonts for the respective code values of Unicode in the inner text
AdvanceThe next glyph relative to the origin of this glyph. Measured in the direction of advance determined side attributes and attributes bidilevel changes.
Measured in hundredths of size in em (m, typed fractions from size in em (m, typed in picas) font.
Promotion should be calculated, so that rounding errors are not accumulated. Cm. note below how to fulfill this requirement
Is determined by the tables of the font metrics HMTX or VMTX fonts
uOffset, vOffsetThe offset from the beginning of coordinates gli is and to move the glyph. Typically used to attach signs to the base characters. Measured in 1/100 of the size in em font0,0
FlagsFeatures base glyphs and combining marks0 (base glyph)

B regarding the calculation promotion without accumulation of rounding errors consider the following. Each value promotion should be calculated as exact unrounded origin of the next glyph minus the amount calculated (i.e. rounded) previous full-width glyphs. Thus, each glyph is located within 0.5% of em from its exact position.

Examples of markup, glyphs

Optimization of the size of the markup, glyphs

The details of the markup, such as glyph indices and full width, can be excluded from the markup, if the target client can reliably to restore them. The following options allow to obtain significant optimization commonly used simple handwritten font.

Optimization markup glyph indices

The glyph indices can be omitted from the markup, where there is a display of “one to one” between the provisions of the characters in the Unicode string and the positions of the glyphs in the string of glyphs and glyph index represents the value in the table CMAP (display character) font and glyph Unicode has unambiguous semantics.

The indexes of the glyphs should be rendered in the markup, where the mapping of characters to glyphs:

- is not one to one, so that where two or more code values form a single glyph (a ligature), or

- one code value generates numerous glyphs, or

- where there has been any other kind of replacement glyphs, such as in the use of OpenType features.

The indexes of the glyphs should be rendered in the markup, where the processor visualization can replace glyphs that are different from those in table SMARA (display characters in the font. The glyph indices should be presented, where the desired representation of the glyph is not the fact that the table in SMARA font.

Optimization markup provisions glyph

Full width of the glyph may be excluded from the markup where the desired full width exactly equal to the full width of the glyph in the HMTX table (horizontal metrics) or VMTX (vertical metrics) font.

The vertical offset of the glyph may be excluded from the markup, where it equals zero. This is almost always true for the basic characters and usually true for combining characters in a more simple handwritten font. However, this is often not true for combining characters in more complex handwritten fonts such as Arabic language and indiscovery Indo-European languages.

Optimization of marking flags glyph

Flags of the glyph can be excluded for the base glyphs with normal priority alignment.

The application programming interface

The following describes an exemplary embodiment of a platform-independent application programming interface (PPI) packaging. This level IPP consists of abstract classes and other base classes, which are included as part of the level packaging. The IPP includes the classes described below.

Container

The container is a logical entity that holds together the parts collection.

Designers

protectedContainer(FileInfo fileInfo, FileAccess access)

Protected constructor for the base class. Clearly defining this class, so it is easier to document and support this constructor. The compiler will still add it if it is not specified. It is also the current contract between an abstract class and subclasses. When the fileInfo object is null, it specifies that the container has been opened or created on the stream.

Properties

public virtual DateTimeCreationTime{get; set;}

Gets or sets the creation time of this container. When this value is set, LastAccessTime, and LastWriteTime must also be updated is received until the same value. The System.IO.FileInfo object is used to manipulate this value.

Exceptions

- InvalidArgumentException - If CreationTime is set to a value that is greater than LastAccessTime or LastWriteTime.

- InvalidOperationException - If the Container was opened on the thread, there is no way to get this property.

public virtual DateTimeLastAccessTime{get; set;}

Gets or sets the last time when the container was opened. The System.IO.FileInfo object is used to manipulate this value.

Exceptions

- InvalidArgumentException - If LastAccessTime is set to a value that is less than CreationTime or LastWriteTime.

- InvalidOperationException - If the Container was opened on the thread, there is no way to get this property.

public virtual DateTimeLastWriteTime{get; set;}

Gets or sets the last time the container was modified. Also when updated LastWriteTime, LastAccessTime must be updated to the same value. The System.IO.FileInfo object is used to manipulate this value.

Exceptions

- InvalidArgumentException - If LastWriteTime is set to a value that is less than CreationTime.

- InvalidOperationException - If the Container was opened on the thread, there is no way to get this property.

public FileAccessFileOpenAccess{get:}

P who receives FileAccess, which was opened container. This property is read-only. This property is set when you open the container.

public abstract PartStartingPart{get; set;}

Gets or sets StartingPart container.

Methods

public static ContainerOpenOnFile (string path)

This overridden version of the method OpenOnFile returns the Container specified by the given path. This method is overridden, which accepts all the parameters with the following default settings -

FileMode - FileMode.OpenOrCreate

FileAccess - FileAccess.ReadWrite

FileShare - FileShare.None

public static ContainerOpenOnFile(string path, FileMode mode)

This overridden version of the method OpenOnFile returns the Container specified by the given path in the given regime code file. This method is overridden, which accepts all the parameters with the following default settings -

FileAccess - FileAccess.ReadWrite

FileShare - FileShare.None

public static ContainerOpenOnFile(string path, FileMode mode, FileAccess access)

This overridden version of the method OpenOnFile returns the Container specified by the given path in the given regime code file and access the file. This method is overridden, which accepts all the parameters with the following default settings -

FileShare - FileShare.None

public static ContainerOpenOnFile<> (string path, FileMode mode, FileAccess access, FileShare share)

This overridden version of the method OpenOnFile opens the container along a given path with security code, access and benefit sharing established in the submitted values.

Exceptions

- InvalidArgumentException - If the combination of parameters FileMode, FileAccess and FileShare is not meaningful.

public static ContainerOpenOnUri(Uri uri)

This overridden version of the method OpenOnUri returns the Container specified by the uri. This method is overridden, which accepts all the parameters with the following default settings -

FileMode - FileMode.Open

FileAccess - FileAccess.Read

public static ContainerOpenOnUri(Uri uri, FileMode mode)

This overridden version of the method OpenOnUri returns the Container specified by the uri in a given regime code file. This method is overridden, which accepts all the parameters with the following default

FileAccess - FileAccess.Read

public static ContainerOpenOnUri(Uri uri, FileMode mode, FileAccess access)

This overridden version of the method OpenOnUri opens the container at the given uri with the regime's code file and access installed in the values presented. The mechanism WebRequest/WebResponse is used to retrieve the container. Parameters FileMode and FileAccess applied to the container, which will be open. This is method calls a method OpenOnStream with the correct content type.

Exceptions

- InvalidArgumentException - If the combination of parameters FileMode, FileAccess and FileShare is not meaningful.

public static ContainerOpenOnStream(Stream stream, string contentType)

This overridden version of the method OpenOnStream returns the Container to the specified stream. This method is overridden, which accepts all the parameters with the following default

FileMode - FileMode.Open

FileAccess - FileAccess.Read

public static ContainerOpenOnStream(Stream stream, string contentType, FileMode mode)

This overridden version of the method OpenOnStream returns the Container to the specified stream in a given regime code file. This method is overridden, which accepts all the parameters with the following default

FileAccess - FileAccess.Read

public static ContainerOpenOnStream(Stream stream, string contentType, FileMode mode, FileAccess access)

This overridden version of the method OpenOnStream opens the container at the proposed flow regime with code and access installed in the values presented. Parameters FileMode and FileAccess applied to the container, which will be open. The contentType parameter is used to instantiate an object of the appropriate subclass.

Exceptions

- InvalidArgumentException - If the combination of parameters FileMode, FileAccess and FileShare is not meaningful.

public PartAddPart<> (MMCFUri uri, string contentType)

Part for the given Uri is added to the container. This method adds the Part with an empty stream if there is an explicit call to read or write in the thread. This method invokes the AddPartCore, which performs the actual work related to the physical implementation.

Exceptions

- InvalidArgumentException - If the Part corresponding to this Uri already exists in the container.

public PartGetPart(MMCFUri uri)

Returns Part for the given Uri. Uri relative to the root Container. This method invokes the GetPartCore that actually extracts the part.

Exceptions

- InvalidArgumentException - If the Part corresponding to this Uri does not exist in the container.

public virtual boolExists(MMCFUri uri)

So how can you have a point relations to purposes that do not yet exist, this method provides a convenient way of detecting whether there is in fact Part in the underlying Container. This uri should be relative to the root container.

public voidDeletePart(MMCFUri uri)

This method removes a portion of the container from the current container. Also deleted all relationships for which this part was SourcePart. This method removes the underlying stream, and the object will be eliminated. Also if there are open multiple instances of this Part, then Dispose all the others who open instances of this part. This method performs the necessary cleanup to introduce this character changes, but the actual deletion of the thread is characteristic of the underlying physical implementation and therefore invokes a method DeletePartCore, which will remove the actual thread. Pending enumerators Part will be made invalid.

public PartCollectionGetParts()

It returns a collection of all the Part inside the container. Relationships are not returned.

public voidFlush()

This method causes a reset for the individual parts that were opened, thus carrying out what all the parts and relations are flushed to the underlying container. Essentially, this class maintains an array of all Part, which it produces, and then call the Flush for all Part. He then calls FlushCore (), which performs the operation characteristic of the container.

public virtual voidDispose()

All open Part and the Relationship are flushed to the underlying container. Since this class maintains an array of all the issued Part, this method calls Dispose () on all issued Part. If you want to clean up any other resources, then subclasses should override this method to perform additional cleanup.

public voidClose()

The Close method is similar to Dispose, so internally it is done is that the Dispose method is called.

public RelationshipAddRelationship(Uri uri)

This method adds the relationship between the Container and the Part specified using a URI. It returns an object Relationship. This change is reset to the underlying container only after you call the method Flush (). There can be many relationships between the same source and target. Will be made void all pending enumerators relations.

public voidDeleteRelationship(Relationship relationship)

This method deletes the target attitude setting object Relationship. This change is reset to the underlying container only after you call the method Flush (). The delete operation is performed on the basis of the “name” of the object, and as such each object is uniquely identified. Will be made void all pending enumerators relations.

Exceptions

- InvalidArgumentException - If the source of the relationship is not similar to the current Part.

public RelationshipCollectionGetRelationships()

It returns a collection of all target relations from the Container. Because the target relations for a container located at a known uri, you can provide a default implementation, which will be open Part of the relationship and then read xml from a stream and create a collection object (Exception - If the XML that was read from below easigo container, was incorrectly formed.)

protected abstract PartAddPartCore(MMCFUri uri, string contentType)

This method is intended for special implementations for the underlying file format. It will be called from AddPart method. It will actually create a part in the underlying container. Empty part must be created as a result of this call.

protected abstract PartGetPartCore(MMCFUri uri)

This method is intended for special implementations for the underlying file format. It is called the method GetPart. This method selects the actual part from the underlying container. If the part does not exist, it must return null.

protected abstract voidDeletePartCore(MMCFUri uri)

This method is intended for special implementations for the underlying file format. It should actually delete the thread corresponding to this part. Also, if there is a part that corresponds to the given URI, it should not be discarded.

protected abstract Part []GetPartsCore()

This method is intended for special implementations for the underlying file format. It should return an array of all Part in the container. As the receipt of all parts in the container is characteristic of the actual physical format, this method is useful. It is provided so that the actual call Getarts simply passes this array in PartCollection and you can provide this enumerator. Thus, the class PartCollection can be a concrete class. Also, if there are no parts in the container, GetPartsCore should return an empty array.

protected abstract voidFlushCore()

This method is intended for special implementations for the underlying file format. This method flushes to disk all of the content.

protected abstract voidDisposeCore()

This method is intended for special implementations for the underlying file format. This method should release the resources corresponding to the actual physical format.

Part

The section consists of three items:

The URI is relative to the root of the container.

ContentType is the mime type of the stream represented by this part

Stream - the actual stream associated with that part.

In addition, parts can be connected with other parts by means of a Relationship. SourcePart respect, has attitude.

Constructors

protectedPart(Container container, MMCFUri uri, string contentType)

Protected constructor for the base class. Clearly defining this class, so it is easy to document and support this constructor. The compiler will still add it if it is not specified. It is also the current contract between an abstract class and subclasses.

Properties

public MMCFUri Uri{get;}

This property returns MMCFUri for the Part. This property is read-only

public stringContentType{get;}

This property returns the type of the content stream, represented using Part. This property is read-only. public ContainerContainer{get;}

This property returns the parent container Part. This property is read-only.

Methods

public StreamGetStream()

This method returns a stream that corresponds to this part. It causes an override, which accepts all the parameters with the following default

FileMode - Open

FileAccess - ReadWrite

public StreamGetStream(FileMode mode)

This method returns a stream that corresponds to this part in the specified mode. It causes an override, which accepts all the parameters with the following default

FileAccess - ReadWrite

public StreamGetStream(FileMode mode, FileAccess access)

This method returns a stream that corresponds to this part. He calls the GetStreamCore, which returns the actual thread. This method performs maintenance needed to keep track of all open threads.

public abstract StreamGetStreamCore(FileMode mode, FileAccess access)

This method returns a stream that corresponds to this part. This method is intended for the specification of the territorial implementation.

public RelationshipAddRelationship(Uri uri)

This method adds the relationship between the Part at the specified URI and the current Part. It returns an object Relationship. This change is reset to the underlying container only after you call the method Flush (). There can be many relationships between the same source and target. Will be made void all pending enumerators relations.

Exceptions

- InvalidOperationException - If the current Part is attitude.

public voidDeleteRelationship(Relationship relationship)

This method deletes the target attitude setting object Relationship. This change is reset to the underlying container only after you call the method Flush (). The delete operation is performed based on the “reference” object, and as such, each object is uniquely identified. Will be made void all pending enumerators relations.

Exceptions

- InvalidArgumentException - If the source of the relationship is not the same as the current Part.

public RelationshipCollectionGetRelationships ()

It returns a collection of all target relations of this Part. Because the target relations for this Part are located at a known uri, you can provide a default implementation, which will be open Part of the relationship and then read xml the C stream and create a collection object (Exception - If the XML that is read from the underlying container was not properly formed.)

Ratio

This class is used to Express the relationship between the part of the source and part of the goal. Only by creating a Relationship is a challenge Part.AddRelationship (Uri uri). The relation belongs to the part of the source, and, if you removed the part of the source are also deleted all relationships, which it owns. The purpose of the relationship need not be present.

Constructors

internal Relationship (Uri source, Uri target, string name)

Returns an object Relationship.

Properties

public PartSource{get;}

Gets the part of the Source forRelationship. This property is read-only. It is set when the Relationship is created.

public UriTargetUri{get;}

Gets TargetUriRelationship. This uri should be treated as being relative to the uri of the source.

public stringName{get;}

Gets the name corresponding to this Relationship.

PartCollection

This is a collection of parts in the container.

Constructors

internalPartCollection(Dictionary<MMCFUri, Part>partDictionary)

Creates PartCollection based on a generic dictionary object Part.

Methods

public IEnumerator GetEnumerator()

H is EN IEnumerable. It returns an enumerator for a collection of parts.

RelationshipCollection

This is a collection of relations associated with the part in the container. May be more than one relationship between this part of the source and part of the goal.

Constructors

internalRelationshipCollection(Relationship [] relationship)

Creates RelationshipCollection based on array of objects of a Relationship.

Methods

public IEnumerator GetEnumerator ()

MMCFUri

This class inherits from the class URI. The main function of this class Uri is to ensure that the specified URI starts with “/”. The motivation for this class is:

1. Make sure that the URI used for each part begins with a “/”. This ensures that all the names of the parts relative to the root of the container.

2. As the System.Uri class not to allow two relative URI, they must be resolved in different ways, and so it would be good to have this logic in one place.

3. To enforce that the Container is a reputable source. Thus, any relative links should not be allowed to stay outside of the container.

publicMMCFUri(string uri)

Creates an object MMCFUri from the given uri string. Ensures that the Uri is relative to the positive and starts with “/”.

Exceptions - InvalidArgumentException - If the URI consists of the host name and Protocol, i.e. it is an absolute URI.

publicMMCFUri(MMCFUri baseUri, string relativeUri)

Creates an object MMCFUri from the given Uri and relative Uri string. The authors resolve a relative uri against a base Uri. Ensures that the Uri is relative and starts with “/”.

Exceptions - InvalidArgumentException - If the URI consists of the host name and Protocol, i.e. it is an absolute URI.

The code sample

No.Access to the current threadaccess to the desired container
anReadCANWRITEReadWriteReadWrite
1truetrueThe restriction to ReadOnlyThe restriction to WriteOnlyAll right
2falsetrueAbrasiv what is All rightDiscarded
3truefalseAll rightDiscardedDiscarded
4falsefalseDiscardedDiscardedDiscarded

Other details PPI

Methods OpenOnFile, OpenOnUri and OpenOnStream

These methods have hard-coded logic, and the only physical container format, who knows these methods is the implementation of the Composite file. As the authors possess these classes, there is some assumption about the subclass constructors that are called from these Static methods. Also these static methods to instantiate the correct subclass object based on the file extension or content type of the stream current.

Method OpenOnStream and the inclusion of the specified access for Container

When creating a Container on the stream it is important to ensure that FileAccess, the container is compatible with the thread that is provided. The following table being described is tons of different possibilities and example how to consider them.

In the first row, where the flow has greater access, and the authors want to generate a container has been more limited, they wrap the incoming stream using a private (closed) thread, called RestrictedStream, which has corresponding values CanRead and CanWrite.

Caching in-memory object Part and the Relationship

Dictionary supports all of the parts to which it was accessed, and if the part is requested a second time, it returns a reference to this part of the dictionary. It is more efficient, and because the object is immutable Part, this is done without any problems. This also applies to objects Relationship. However, if the underlying container was opened in shared write mode and the second user adds or removes parts from the underlying container, these changes may not be reflected in the cache.

Conclusion

The above-described methods and systems modular infrastructure, content and format of the documents provide a set of standard building blocks for compiling, packaging, distribution and visualization of the document-oriented content. These standard building blocks define a platform-independent infrastructure for document formats, which allow software and hardware systems to generate, exchange rate is to lavatsa and display the documents in a reliable and consistent manner. Depicts and describes the format of the extended package provides the format for storing divide into pages or pre-paginated documents so that the content of the extended package can be displayed or printed with high precision playback on devices and applications in a wide range of environments and in a wide range of scenarios. Although the invention has been described in language characteristic structural features and/or methodological steps, it is necessary to understand that the invention defined in the attached claims is not necessarily limited to the specific described signs or stages. Rather, the specific features and steps are described as preferred forms of implementing the claimed invention.

1. Method definition document, containing phases in which
create a package that defines a document, and this package includes many parts that make up this document, each of these many parts has an associated name and associate the content type, the package is adapted to contain more than one payload, each payload acts as different from other representations of the document and contains the parts necessary to handle the submission of the document when the eat at least some of these different views include the same content, this package also contains many elements of relations, where each element in the relationship associated with one of these many parts, defines the relationship between the mentioned one of these many parts and one or more other of the mentioned multiple parts and provides the opportunity to identify this relationship, regardless of the associated parts; and
provide many drivers, associated with the package, and mentioned many drivers are also associated with various document formats, and mentioned many drivers provides many applications access to the package regardless of the format of the document associated with each of the multiple applications.

2. The method according to claim 1, in which the name associated with each part is unique.

3. The method according to claim 1, in which the name associated with each part includes a hierarchical address.

4. The method according to claim 1, in which the name associated with each part, includes the local share of the universal ID of the information resource.

5. The method according to claim 1, wherein a content type associated with each part includes a description of the type of information contained in the part.

6. The method according to claim 1, in which each of these sets of parts shown in the context of the specific file.

7. The method according to claim 1 in which the said lot of parts stored in a single file.

8. The method according to claim 1, wherein at least one of the drivers is additionally associated with different data transfer protocols.

9. The method of claim 8 in which the said lot of drivers provides the aforementioned multiple applications can access the service regardless of the format of data associated with each of the multiple applications.

10. The method of claim 8 in which the said lot of drivers provides the aforementioned multiple applications can access the service regardless of the file format associated with each of the multiple applications.

11. The method according to claim 1, in which each of these many parts additionally has an associated set of relations.

12. The method according to claim 1 in which the said lot of parts that make up the document includes a first part having a first associated content type, and the second part having a second associated content type.

13. The method according to claim 1, in which the data content type is stored in the file associated with the package.

14. The method according to claim 1, additionally containing a stage on which to transmit the packet to the media from which the package can be consumed by a consumer.

15. Machonochie the first carrier, having machine-readable instructions that when performed implement the method according to claim 1.

16. A computer system containing computer-readable medium according to item 15.

17. The processing method of the package that contains the time that
take a package that includes many parts, with each of these set pieces is uniquely identified and addressed through an associated name, and mentioned many pieces is fixed payload, which is a fixed representation of the document and contains the root part, which references one or more page portions, each of which contains markup that describes the visualization of individual content pages, this package also contains many elements of relations, where each element in the relationship associated with one of these many parts, defines the relationship between the mentioned one of these many parts and one or more other of these many parts and provides the opportunity to identify this relationship, regardless of the associated parts;
identifies the driver associated with the received packet; and
process the received packet by the application program using driver associated with the received packet.

18. The method according to the .17, in which each of these many parts identified by the local share of the universal ID of the information resource.

19. The method according to 17, in which each part of the above set of parts has an associated content type that includes a description of the type of data contained in this part.

20. The method according to 17, in which the driver associated with the received packet, is also associated with a specific data transfer Protocol.

21. The method according to 17, in which the driver associated with the received packet, is also associated with a specific file format.

22. The method according to 17, further containing a stage at which identify the set of relations associated with the received packet.

23. Machine-readable medium having computer-readable instructions that when performed implement the method according to 17.

24. A computer system containing computer-readable medium according to item 23.



 

Same patents:

FIELD: physics, computer engineering.

SUBSTANCE: invention is related to computer engineering, in particular to system for control of access to resources of Internet network depending on category of requested resources and accepted safety policy. System comprises module of selection of site reference addresses in server database, module of electronic document addresses identification in access list, module of identification of time cycles of addresses selection from access list, module for generation of signals of server database entries selection control, module of selection of access to electronic documents.

EFFECT: improved efficiency of system by localisation of addresses of server database access list records searching by identifiers of electronic documents.

8 dwg, 6 tbl

FIELD: physics, computer engineering.

SUBSTANCE: invention is related to the field of computer engineering and may be used to assess reliability and quality of functioning of complex automated and flexible production and telecommunication systems of arbitrary structure, in which cyclic character of production, presentation of telecommunication services are used, as well as time reservation. Device comprises control unit, unit of system model, unit of system section condition simulators, unit of failure signal generation, unit of registration, unit of model data check, unit of model data correction.

EFFECT: higher authenticity of production or telecommunication system condition identification under conditions of invalidation of modeled signals parameters that characterise affiliation of specific condition signal to space of faultless operation of the system or to space of failures.

3 cl, 10 dwg

FIELD: physics, computer engineering.

SUBSTANCE: this invention is related to the field of computer engineering and may be used in systems of signals control and processing. Device comprises units of storage, switchboards, unit for breakdown into intervals, approximation units, units of assessment storage, arithmetical summing device, unit of useful component assessment storage, subtraction units, unit for finding of minimum value, generator of random numbers, unit for elimination of connected values, ranging unit, register of random number selection storage, clock pulse generator.

EFFECT: compensation of systematic error in application of assessment multiplication method, which occurs in case additive noise component is available, having single-sided asymmetric distribution law.

2 dwg

FIELD: physics; computer engineering.

SUBSTANCE: invention relates to computer engineering and can be used in automated information security media with the objective of monitoring local area networks to detect computer attacks on network resources. The method of detecting local area network devices, operating in network traffic capture mode, involves using a control network node for detecting devices, in which a threshold value for the coefficient of correlation is given. The response time of workstations on the network is then determined. ICMP packets with a submit field, which is not in the probed network, are broadcast on the network, and network loading is recorded. After that, the correlation coefficient of values of network loading parametres and response time of workstations is determined and, if the correlation coefficient exceeds the threshold value, there is a device on the network, operating in network traffic capture mode.

EFFECT: reduced number of false alarms on results of analysing response time of network nodes and increased probability of detecting workstations, operating in network traffic capture mode.

3 dwg

FIELD: physics; computer engineering.

SUBSTANCE: invention relates to a search interface, which allows for search selection after entering search terms. Search is done in accordance with entered search criteria or entered characters. The number of files whose content conform to the search criteria or entered characters is determined. For each attribute, the number of files is determined, for which the value of the given attribute conforms to search criteria or entered characters. For each attribute, the number of files is displayed, for which the attribute value conforms to search criteria or entered characters. Simultaneously, the number of files is displayed, content of which conforms to search criteria or entered characters. Possibility of changing search parametres or entering the next characters is automatically provided for, after which search results are dynamically updated.

EFFECT: more efficient search for files.

24 cl, 4 dwg

FIELD: information technology.

SUBSTANCE: invention relates to telecommunication systems and can be used in collecting and calculating data on foreign nationals and stateless persons when representatives of the immigration service travel to different regions of the Russian Federation. The mobile centre for collecting, calculating and processing data for the immigration service contains a first automated workstation (AWS), which includes a portable computer, consisting of a system unit, display, keyboard and a graphic manipulator, a device for collecting biometric parametres of a person, consisting of a digital camera, a device for reading documents and a fingerprint scanner; and a second automated workstation, which includes a portable computer, consisting of a system unit, display, keyboard and a graphic manipulator, a multiple function device, and also contains a navigation device with an antenna, a multi-channel cryptoprotection device, four modems, satellite communication set with an antenna, wireless tracking set with an antenna, cellular communication set with an antenna and a subscriber line from an automatic telephone system (ATS).

EFFECT: wider functional capabilities, more efficient identification of persons and exchange of information over communication channels.

4 cl, 3 dwg

FIELD: information technology.

SUBSTANCE: invention relates to search for arbitrary text and data attributes of an online program manual. The subject of invention includes a search engine for data of online program manual and related methods. The text search string can be standardised to searchable elements and elements interpreted as text search elements or search by attributes elements. One or more queries are created, with search conditions of different degree of complexity, in accordance with interpretation of elements of the search string. One or more search operations in data bases of the online program manual and/or network resources are executed based on interpretation of text elements and attributes, and results are assigned a value for ranking in accordance the interpretation. Combined search results can be grouped, ranked and filtered for displaying for the user. The results can also be progressively displayed as each character of the search string is entered by the user.

EFFECT: invention simplifies search in an online program manual.

35 cl, 7 dwg

FIELD: information technology.

SUBSTANCE: invention relates to a system and method for managing software update. In accordance with this invention, a software update service controls access to software updates stored on servers. In another version the software update service effects synchronisation with client devices so as to identify suitable updates.

EFFECT: possibility of obtaining suitable updates through efficient use of narrow frequency band.

21 cl, 14 dwg

FIELD: information technology.

SUBSTANCE: invention relates to data storage media in computer systems. A user interface, corresponding to a property tree, allows a user to assign metadata properties with values and user data navigation in a system, which includes a storage subsystem, in which data elements are organised and requested for through properties. The property tree includes nodes which show properties of data elements. A user can interact with the property tree so as to assign properties, in which case the value associated with the property in the data storage subsystem is modified. In relation to the property tree, user input can also indicate request to the data storage, in which case a browsed presentation of data elements, corresponding the request, is displayed. The property tree can also display nodes, which represent folders in hierarchical file system, nodes which represent properties with their inherent hierarchy, and nodes which represent user-defined hierarchical properties.

EFFECT: provision for a mechanism for assigning metadata and navigation on these data.

31 cl, 19 dwg

FIELD: information technology.

SUBSTANCE: invention relates to digital signal processing and measuring techniques. At the first approximation stage a fixed observation time interval is divided into local intervals. At each local interval the task of constructing local approximation models of signals is solved, on the basis of which local estimates are calculated for non-stationary parametric functions of composite oscillatory signals. At the second approximation stage the observation time interval with local models of parametric functions in form of piecewise continuous functions is divided into spline intervals on which the task of constructing a spline model is solved, which approximates piecewise continuous functions of estimates of non-stationary parametric functions. The result of spectral time analysis for estimation of non-stationary parametric functions is construction of spline approximating models.

EFFECT: provision for method of spectral time analysis, directed at effective estimation of parametric functions of non-stationary signals, as well as provision for a device for realising this method.

2 cl, 5 dwg

FIELD: physics, computer engineering.

SUBSTANCE: invention is related to systems and methods, which automatically create subscription for applications and services presented to wireless device from another computer device in wireless network, where subscription requires periodical payment for uninterrupted access to application or service. System controls interaction of end user of wireless device with other computer devices, such as servers of applications downloads, via wireless network. When end user receives application or service from computer device, system automatically registers subscription and may either invoice the subscriber of wireless device for subscription, or transfer to supplier or other object, to invoice the subscriber.

EFFECT: expansion of functional resources due to presentation of additional services and automatic generation of subscription invoices.

41 cl, 9 dwg

FIELD: process engineering.

SUBSTANCE: proposed system comprises sensor (17) to detect one or more process parametres at least one process station (20), data acquisition and processing device (32) operated by signals (R) from sensors (17) and intended for obtaining data (Q) on process quality and device (19) to control process flow on the basis of data (Q). Aforesaid device (32) is arranged at least one process station (20). Control device (19) is arranged remote from device (32) and comprise units (42, 43) of wireless transceiver to exchange data (Q) between devices (32) and (19).

EFFECT: higher efficiency.

15 cl, 3 dwg

FIELD: physics; computer engineering.

SUBSTANCE: invention relates to connection of input-output devices or central processor devices or transfer of information or other signals between these devices. Provision for autoshaping manipulators in supercomputers in accordance with a given program with creation of an optimum architecture for the solved task is achieved due to that, the cooled substrate is a body with an inbuilt cooler, on which are attached (glued) microcircuit chips, containing multiple contact fibre optic connectors. On the end surface of the substrate there is a device for automatic attachment and connection of the substrate to a support. The autoshaping supercomputer contains a computer-builder, manipulators, controlled by this computer, as well as library for substrates with microcircuit chips and a fibre optic bus library. The supercomputer is automatically formed by manipulators by mounting the substrates onto a support and executing inter-substrate fibre optic connections through instructions from the computer builder. Manipulators are in the top part of the supports and guides above the supports.

EFFECT: multiple increase in inter-substrate and inter-support connections, compared to use of other means of connecting microcircuit chips, which provides for filling the entire inter-support space of the supercomputer with fibre optic bus.

6 cl, 9 dwg

FIELD: physics; radio.

SUBSTANCE: invention relates to radio engineering and can be used in radar systems, for example in radar systems with synthetic aperture. The simplified system comprises a basic system and several units for active phased array generation. Each unit comprises a transceiver for wireless reception of a signal transmitted from a basic system, for wireless transmission of signals to a target, for wireless reception of signals from a target and for wireless transmission of the received signal back to the basic system. The system also comprises a subsystem for signal interference suppression between the transmitted and received signals. Each unit can also comprise a circuit for local generation of electric energy.

EFFECT: reduced weight, simplification and reduced cost.

16 cl, 28 dwg

FIELD: physics; computer engineering.

SUBSTANCE: present group of inventions relates devices for displaying multimedia images. Video data and graphic data are used for displaying a menu. The graphic data include at least one display set, which contains a generation segment, which stores information for configuring the stream of interactive graphic data, a definition segment, which includes object data, such as the real image of the graphic object displayed on the screen, and an end segment, which indicates the end of the image set. The generation segment contains information on the mode of the image set, where the mode information indicates whether the mode of the image set is the first mode or second mode. The first mode is activated through user instruction, and the second mode is activated at a set time.

EFFECT: wider functional capabilities of displaying devices and possibility of displaying graphic information on a screen upon request by the user.

2 cl, 26 dwg

FIELD: physics; computer engineering.

SUBSTANCE: invention relates to stream transmission of multimedia data and more specifically to adaptation of data transmission speed between a server and a client during transmission of multimedia data. A network for streaming multimedia data has a server, meant for streaming data to a client. The server is responsible for adapting transmission speed to reception speed or for controlling accumulation and for adapting sampling frequency to transmission speed. That way, the server controls shifting and keeps it within the operating range for speed adaptation. The client is responsible for compensating for variation of packet transmission delay, also known as fast fluctuation in the network. The client is also responsible for setting parameters of the operating range for adapting speed of the server. The client selects and transmits shift parametres to the server, but the server independently adapts its encoding speed or transmission speed when it responds to these parametres.

EFFECT: provision for adaptive management of the receive buffer level in a network for streaming multimedia data.

36 cl, 3 dwg

FIELD: physics; computer engineering.

SUBSTANCE: system and method are proposed for generating aggregated presentation of content in a computer system. The main computer device receives a request for aggregated presentation of content, corresponding to a set of criteria. The main computer device inquires from itself and each computer device on a specified network on the presence of locally stored content, which conforms to the set of criteria. Results of the request are then combined and displayed for the user on the main computer device in form of an aggregated list presentation.

EFFECT: possibility of managing content, stored on two or more machines on a computer network.

9 cl, 10 dwg

FIELD: physics; computer engineering.

SUBSTANCE: invention relates to presentation of a remote terminal service (TS) application. Invented are systems and methods of presenting a unified type of remotely installed applications, to which a user has access, based on a terminal sever. A client computer device generates one or more shortcuts for one or more corresponding applications. Each of the applications is installed on one or more install points of an intranet. The client computer device is external with respect to the intranet. One or more shortcuts are combined, thereby presenting a combined type of applications. The combined type is transparent from the point of view of whether the applications are managed by different information sources in the intranet and/or configured for TS server based remote execution of different information sources of one or more install points.

EFFECT: easier launching of remotely installed applications by a user.

21 cl, 5 dwg

FIELD: information technology.

SUBSTANCE: group of inventions pertains to means of providing a user with uniform access to uncoordinated resources. In the method of realising the said interface, several groups are created from a set of types such that, each group contains at least one type which provides logically related functionalities of the said computer system, where the said several groups include at least three groups of services. The first group of services includes functionalities related to formation of graphic objects. The second group of services includes functionalities related to formatting content and the third group of services includes functionalities related to creation of components of graphic objects. The said functions make it possible to get operating system services, object model services, or another system or service through programmers.

EFFECT: support of a wide range of general functionalities, required for a range of applications using the proposed interface.

18 cl, 16 dwg

FIELD: information technology.

SUBSTANCE: invention relates to computer engineering and can be used particularly in distributed computer systems. User information is entered into a host module through a network using software and hardware tools. This module is assigned the principal module and a control process is initiated in it. A data processing task or modelling process is formed. The task is broken down into subtasks. Host and analytical modules which are going to process information in accordance with subtasks are determined. A data processing or modelling process is initiated and controlled. Failure of host and analytical modules is detected. The data processing or modelling process is corrected or separate stages are repeated. Failure of the control process is detected. A new principal module is selected and the control process is initiated in it. Current parametres of data processing or modelling are transferred to the new principal module. Control of data processing or modelling continues until completion. A report of data processing or modelling results is made and sent to users.

EFFECT: increased reliability and fault tolerance of distributed modelling system.

3 dwg

FIELD: communications.

SUBSTANCE: method includes inputting data from individual subscriber into memory of subscriber device, then data are sent through subscriber device to data server, where it is clarified, whether subscriber provides certain information or consumes certain information with query for certain data, data from data provider are kept in information server database in form of individual provider record, and for data consumer data search is performed, appropriate to query, in database, in case if data answering the query is found on server, it is sent to data consumer. Method includes prior forming of classification, allowing forming identifiers of objects of possible interest of subscribers, before inputting data from individual subscriber or in process of this input at least partial conversion of these data to appropriate formed identifier of said classification, used for recognizing information in database, is performed, said information being appropriate for subscriber request. Portion of data not used in identifier is used dependent on category of subscriber.

EFFECT: broader functional capabilities.

2 cl, 2 dwg

Up!