[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

FR2821458A1 - SCHEME, SYNTAX ANALYSIS METHOD, AND METHOD FOR GENERATING A BINARY STREAM FROM A SCHEME - Google Patents

SCHEME, SYNTAX ANALYSIS METHOD, AND METHOD FOR GENERATING A BINARY STREAM FROM A SCHEME Download PDF

Info

Publication number
FR2821458A1
FR2821458A1 FR0102764A FR0102764A FR2821458A1 FR 2821458 A1 FR2821458 A1 FR 2821458A1 FR 0102764 A FR0102764 A FR 0102764A FR 0102764 A FR0102764 A FR 0102764A FR 2821458 A1 FR2821458 A1 FR 2821458A1
Authority
FR
France
Prior art keywords
xsd
num
data
type
name
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
FR0102764A
Other languages
French (fr)
Inventor
Sylvain Devillers
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Koninklijke Philips NV
Original Assignee
Koninklijke Philips Electronics NV
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Koninklijke Philips Electronics NV filed Critical Koninklijke Philips Electronics NV
Priority to FR0102764A priority Critical patent/FR2821458A1/en
Priority to JP2002568241A priority patent/JP4260481B2/en
Priority to PL02363513A priority patent/PL363513A1/en
Priority to PCT/IB2002/000393 priority patent/WO2002069187A1/en
Priority to KR1020027014532A priority patent/KR100898614B1/en
Priority to MXPA02010534A priority patent/MXPA02010534A/en
Priority to BR0204315-7A priority patent/BR0204315A/en
Priority to RU2003128962/09A priority patent/RU2294012C2/en
Priority to US10/258,924 priority patent/US7080318B2/en
Priority to EP02710247A priority patent/EP1366439A1/en
Priority to CNB028014421A priority patent/CN100449530C/en
Priority to TW091103306A priority patent/TW563036B/en
Publication of FR2821458A1 publication Critical patent/FR2821458A1/en
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • G06F16/986Document structures and storage, e.g. HTML extensions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/258Data format conversion from or to a database

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Document Processing Apparatus (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

The invention proposes a new type of schema derived from the (B2)XML schema which permits to describe a coding format in a generic fashion. Such a schema is used to carry out the syntactic analysis of a bit stream (B1) to produce a document (B4) that represents the bit stream which is an instance of said schema, or to generate a bit stream from a document representing the bit stream.

Description

<Desc/Clms Page number 1> <Desc / Clms Page number 1>

DESCRIPTION

Figure img00010001

Domaine de l'invention La présente invention concerne un procédé d'analyse syntaxique d'un flux binaire contenant des données qui ont une structure et un contenu conformes à un certain format, pour générer une représentation arborescente dudit flux. Elle concerne aussi un procédé de génération d'un flux binaire conforme à un certain format, à partir d'un document qui est une représentation arborescente dudit flux binaire et qui contient des données, notamment des données importées en utilisant un certain mode d'importation. Elle concerne aussi un schéma définissant un ou plusieurs type (s) de données susceptible (s) d'avoir une ou plusieurs facette (s), et comportant une pluralité d'éléments pour lesquels il décrit un nom, un type de données, une imbrication, un ordre et un nombre d'occurrence (s) prédéfinis ou quelconques, l'occurrence d'un élément étant obligatoire ou optionnelle. DESCRIPTION
Figure img00010001

Field of the Invention The present invention relates to a method of parsing a bit stream containing data having a structure and content conforming to a certain format, for generating a tree representation of said stream. It also relates to a method for generating a bit stream conforming to a certain format, from a document which is a tree representation of said bit stream and which contains data, in particular data imported using a certain mode of importation. . It also relates to a schema defining one or more types of data likely to have one or more facets, and comprising a plurality of elements for which it describes a name, a type of data, a nesting, an order and number of occurrence (s) predefined or any, the occurrence of an element being mandatory or optional.

L'invention concerne également des programmes d'ordinateur pour la mise en oeuvre de tels procédés, une unité de traitement qui contient des moyens de stockage d'un tel schéma et d'un ou de tels programmes d'ordinateur, ainsi qu'un système de transmission qui comporte au moins une entité source et une entité destination, ladite entité source contenant des moyens de stockage d'un tel schéma et d'un ou de tels programmes.

Figure img00010002
The invention also relates to computer programs for implementing such methods, a processing unit that contains storage means for such a scheme and one or more computer programs, and a transmission system which comprises at least one source entity and one destination entity, said source entity containing means for storing such a scheme and one or more programs.
Figure img00010002

L'invention a des applications dans le domaine de l'édition, déjà modification, de la fusion de contenu. The invention has applications in the field of editing, already modification, of the content fusion.

Un exemple d'application de l'invention est l'adaptation d'un contenu à transmettre à un destinataire en fonction du profile de l'utilisateur (écran, capacité de calcul, capacité de stockage, liaison utilisée pour la transmission...). Une telle adaptation permet notamment d'éviter de transmettre inutilement des données qui ne pourront pas être utilisées par le destinataire, et donc d'économiser de la bande passante.  An example of application of the invention is the adaptation of a content to be transmitted to a recipient according to the profile of the user (screen, computing capacity, storage capacity, link used for transmission ...) . Such an adaptation makes it possible in particular to avoid unnecessarily transmitting data that can not be used by the recipient, and thus to save bandwidth.

Arrière plan technoloqique de l'invention

Figure img00010003

A cet égard, la demande de brevet français no 0101530 déposée le 05. 02. 2001 par la société Koninklijke Philips Electronics N. V. a déjà décrit un procédé de génération d'un fichier ayant certaines caractéristiques, à partir d'un document de base écrit dans un langage de balisage et décrivant un fichier progressif de base, ledit procédé comportant une étape de transformation pour générer un document transformé en appliquant au document de base une transformation prédéfinie qui est fonction desdites caractéristiques, le fichier ayant lesdites caractéristiques étant généré à partir du document transformé. Ce procédé consiste à effectuer les transformations nécessaires sur un document de base dans lequel la structure du fichier progressif est apparente. Il permet d'éviter d'avoir à décoder le fichier progressif de base pour le ré-encoder différemment. Technological background of the invention
Figure img00010003

In this regard, the French patent application No. 0101530 filed 05.02.2001 by the company Koninklijke Philips Electronics NV has already described a method of generating a file having certain characteristics, from a basic document written in a markup language and describing a basic progressive file, said method comprising a transformation step for generating a transformed document by applying to the base document a predefined transformation which is a function of said characteristics, the file having said characteristics being generated from the document transformed. This method consists of performing the necessary transformations on a base document in which the structure of the progressive file is apparent. It avoids having to decode the basic progressive file to re-encode it differently.

<Desc/Clms Page number 2> <Desc / Clms Page number 2>

Toutefois ce procédé de génération de fichier implique de générer un document de base qui décrit le fichier progressif de base, puis de générer un autre fichier à partir du document transformé.  However, this file generation method involves generating a base document that describes the basic progressive file and then generating another file from the transformed document.

Résumé de l'invention
La présente invention a pour but de proposer une méthode automatique et générique

Figure img00020001

pour effectuer de telles opérations. Summary of the invention
The present invention aims to propose an automatic and generic method
Figure img00020001

to perform such operations.

Pour cela, l'invention consiste notamment à proposer un nouveau genre de schéma qui permet de décrire un format de codage de façon générique. For this, the invention consists in particular in proposing a new kind of scheme which makes it possible to describe a coding format generically.

Un schéma selon l'invention définit un ou plusieurs type (s) de données susceptible (s) d'avoir une ou plusieurs facette (s). Il comporte une pluralité d'éléments pour lesquels il décrit un nom, un type de données, une imbrication, un ordre et un nombre d'occurrence (s) prédéfinis ou quelconques, l'occurrence d'un élément étant obligatoire ou optionnelle. Et il est caractérisé en ce qui) a au moins l'une des caractéristiques suivantes : - il définit un type de données qui correspond à des segments binaires de longueur indéfinie et qui a au moins une facette relative à un mode d'importation de données, et optionnellement une facette relative à un drapeau de fin de segment binaire, - il définit un ou plusieurs types de données qui correspondent à des mots binaires de longueur (s) prédéfinie (s) et qui ont au moins une facette relative à ladite longueur et, optionnellement une facette relative à des bits de remplissage contenus dans lesdits mots binaires, - il définit une ou plusieurs variable (s) constituée (s) par un chemin d'accès à des données et il comporte un ou plusieurs branchement (s) conditionnel (s) pour décrire différentes structures ou contenus possibles en fonction de la valeur de la ou desdites variables.  A scheme according to the invention defines one or more types of data likely to have one or more facets. It comprises a plurality of elements for which it describes a name, a data type, a nesting, a sequence and a number of predefined or any occurrence (s), the occurrence of an element being mandatory or optional. And it is characterized by at least one of the following features: it defines a data type which corresponds to binary segments of indefinite length and which has at least one facet relating to a data import mode , and optionally a facet relating to a flag of end of binary segment, - it defines one or more types of data which correspond to binary words of predefined length (s) and which have at least one facet relating to said length and, optionally, a facet relating to filling bits contained in said binary words, - it defines one or more variable (s) constituted by a data access path and it comprises one or more branch (s) conditional (s) to describe different structures or possible contents depending on the value of the one or more variables.

Un procédé selon l'invention d'analyse syntaxique d'un flux binaire contenant des données qui ont une structure et un contenu conforme à un certain format, pour générer une représentation arborescente dudit flux, est caractérisé en ce que ledit procédé consiste à utiliser un schéma qui, pour décrire ledit format de façon générique : a) définit un ou plusieurs type (s) de données, susceptible (s) de contenir une ou plusieurs facette (s), dont notamment : - lorsque ledit format utilise des mots binaires de longueur (s) prédéfinie (s), un ou plusieurs types de données correspondant aux dits mots binaires de longueur (s) prédéfinie (s), ayant au moins une facette relative à ladite longueur et, lorsque lesdits mots binaires de longueur (s) prédéfinie (s) sont susceptibles de contenir un ou plusieurs bit (s) de remplissage, une facette relative aux dits bits de remplissage, - lorsque ledit format utilise des segments binaires de longueur indéfinie ayant un contenu destiné à être importé dans ladite représentation en utilisant un certain mode d'importation, un type de données correspondant aux dits segments binaires, ayant au moins une facette relative audit mode d'importation et, lorsque lesdits segments binaires sont délimités par un drapeau de  A method according to the invention for the parsing of a bit stream containing data which has a structure and a content conforming to a certain format, for generating a tree representation of said stream, is characterized in that said method consists in using a diagram which, to describe said format generically: a) defines one or more types of data, likely to contain one or more facets, including: - when said format uses binary words of predefined length (s), one or more data types corresponding to said predefined length binary words, having at least one facet relating to said length and, when said binary words of length (s) predefined (s) are likely to contain one or more filling bit (s), a facet relating to said filling bits, - when said format uses binary segments of indefinite length having a content intended to be imported into said representation using a certain import mode, a data type corresponding to said bit segments, having at least one facet relating to said import mode and, when said bit segments are delimited by a flag of

<Desc/Clms Page number 3><Desc / Clms Page number 3>

fin, une facette relative audit drapeau de fin, b) comporte une pluralité d'éléments pour lesquels il décrit un nom, un type de données, une imbrication, un ordre et un nombre d'occurrence (s) prédéfinis ou quelconques, l'occurrence d'un élément étant obligatoire ou optionnelle, c) lorsque ledit format prévoit que des données situées en amont dans ledit flux binaire

Figure img00030001

informent sur la structure ou le contenu de la suite dudit flux binaire, - définit une ou plusieurs variable (s) constituée (s) par-un chemin d'accès aux dites données situées en amont, dans ladite représentation arborescente, - et comporte un ou plusieurs branchement (s) conditionnel (s) pour décrire les différentes structures ou contenus possibles en fonction de la valeur de la ou desdites variables, ladite représentation arborescente étant une instance dudit schéma. end, a facet relative to said end flag, b) comprises a plurality of elements for which it describes a name, a data type, a nesting, a sequence and a number of occurrence (s) predefined or any, the occurrence of an element being mandatory or optional, c) when said format provides for data located upstream in said bit stream
Figure img00030001

inform on the structure or the content of the sequence of said bit stream, - defines one or more variable (s) constituted (s) by a path to said data located upstream, in said tree representation, - and comprises a or a plurality of conditional branch (es) for describing the different structures or possible contents according to the value of the one or more variables, said tree representation being an instance of said scheme.

L'invention consiste donc à fournir un outil qui permet de décrire un format de façon générique dans un schéma. Elle consiste ensuite à utiliser un tel schéma pour analyser la syntaxe d'un flux binaire conforme audit format afin de générer un document qui représente ledit flux et qui est une instance dudit schéma. Le schéma spécifie les différents types de données susceptibles d'être contenues dans un flux binaire conforme audit format, ainsi que la façon d'inclure ces données dans le document final. Les types de données spécifiés dans le schéma, et les règles d'inclusion dans le document final dépendent du format considéré.

Figure img00030002
The invention therefore consists in providing a tool that makes it possible to describe a format generically in a diagram. It then consists in using such a schema to analyze the syntax of a bit stream conforming to said format in order to generate a document representing said stream and which is an instance of said schema. The schema specifies the different types of data that may be contained in a bit stream conforming to that format, as well as how to include that data in the final document. The data types specified in the schema, and the inclusion rules in the final document, depend on the format.
Figure img00030002

A titre d'exemple, lorsque le format considéré est le format JPEG2000 (norme ISO/IEC FCD15444-1), ledit schéma : - définit plusieurs types de données qui correspondent à mots binaires de longueurs prédéfinies susceptibles de comporter des bits de remplissage, et qui ont une facette relative à ladite longueur et une ou plusieurs facette (s) relative (s) aux dits bits de remplissage, - définit un type de données qui correspond à des segments binaires de longueur indéfinie, délimités par un drapeau de fin et ayant un contenu destiné à être importé dans ladite représentation en utilisant un certain mode d'importation, et qui a une facette relative à un mode d'importation et une facette relative audit drapeau de fin, - définit une ou plusieurs variable (s) constituée (s) par un chemin d'accès, dans ladite représentation arborescente, à des données situées en amont dans ledit flux binaire et qui informent sur la structure ou le contenu de la suite dudit flux binaire, - et comporte un ou plusieurs branchement (s) conditionnel (s) pour décrire les différentes structures ou contenus possibles en fonction de la valeur de la ou desdites variables. For example, when the format considered is the JPEG2000 format (ISO / IEC FCD15444-1 standard), said diagram: defines several types of data that correspond to binary words of predefined lengths that may comprise filling bits, and which have a facet relative to said length and one or more facets relative to said filler bits, - defines a data type which corresponds to binary segments of indefinite length, delimited by an end flag and having content intended to be imported into said representation using a certain import mode, and which has a facet relating to an import mode and a facet relating to said end flag, - defines one or more variable (s) constituted ( s) by an access path, in said tree representation, to data located upstream in said bit stream and which informs on the structure or content of the sequence of said binary stream re, - and has one or more conditional branch (s) to describe the different structures or possible contents depending on the value of the one or more variables.

Un procédé selon l'invention de génération d'un flux binaire conforme à un certain format, à partir d'un document qui est une représentation arborescente dudit flux binaire et qui contient des données, notamment des données importées en utilisant un certain mode d'importation, est caractérisé en ce qui) consiste à utiliser un schéma qui, pour décrire ledit format le façon générique : a) définit un ou plusieurs type (s) de données susceptible (s) d'avoir une ou plusieurs facette (s), notamment :  A method according to the invention for generating a bit stream conforming to a certain format, from a document which is a tree representation of said bit stream and which contains data, in particular data imported using a certain mode of import, is characterized in that) consists in using a diagram which, to describe said format in the generic way: a) defines one or more types of data likely to have one or more facets, especially :

<Desc/Clms Page number 4><Desc / Clms Page number 4>

- un type de données correspondant à des segments binaires de longueur indéfinie ayant au moins une facette relative audit mode d'importation, - et, lorsque ledit format utilise des mots binaires de longueur (s) prédéfinie (s), un ou plusieurs types de données correspondant aux dits mots binaires de longueur (s) prédéfinie (s) ayant au moins une facette relative à ladite longueur, et lorsque lesdits mots binaires contiennent un ou plusieurs bit (s) de remplissage, une facette relative aux dits bits de remplissage, b) comporte une pluralité d'éléments pour lesquels il décrit un nom, un type de données, une imbrication, un ordre et un nombre d'occurrence (s) prédéfinis ou quelconques, l'occurrence d'un élément étant obligatoire ou optionnelle, c) lorsque ledit format prévoit que des données situées en amont dans ledit flux binaire

Figure img00040001

informent sur la structure ou le contenu de la suite dudit flux binaire : - définit une ou plusieurs variable (s) constituée (s) par un chemin d'accès aux dites données situées en amont, dans ladite représentation arborescente, - et comporte un ou plusieurs branchement (s) conditionnel (s) pour décrire les différentes structures ou contenus possibles en fonction de la valeur de la ou desdites variables,
Figure img00040002

ledit procédé consistant à lire en parallèle ledit document et ledit schéma pour déterminer le type des données contenues dans ledit document, à coder lesdites données en fonction du type déterminé, et à constituer un flux binaire à partir des données codées. a data type corresponding to binary segments of indefinite length having at least one facet relating to said import mode, and, when said format uses binary words of predefined length (s), one or more types of data corresponding to said bit words of predefined length (s) having at least one facet relating to said length, and when said bit words contain one or more bit (s) of filling, a facet relating to said bits of filling, b) has a plurality of elements for which it describes a name, datatype, nesting, order and number of occurrence (s) predefined or any, the occurrence of an element being mandatory or optional, c) when said format provides that data located upstream in said bit stream
Figure img00040001

inform on the structure or the content of the sequence of said bit stream: defines one or more variable (s) constituted by a path to said data situated upstream, in said tree representation, and includes one or more several conditional branch (es) to describe the different structures or possible contents according to the value of the one or more variables,
Figure img00040002

said method of reading in parallel said document and said diagram for determining the type of the data contained in said document, coding said data according to the determined type, and constituting a bit stream from the coded data.

L'invention consiste donc aussi à utiliser un schéma du type décrit plus haut pour générer un flux binaire à partir d'un document qui le représente et qui est une instance dudit schéma. Le document et le schéma sont lus en parallèle pour déterminer le type des données contenues dans le document, afin de les coder conformément à ce que prévoit ledit format, et à constituer un flux binaire avec les données codées.  The invention therefore also consists in using a schema of the type described above to generate a bit stream from a document which represents it and which is an instance of said schema. The document and the schema are read in parallel to determine the type of the data contained in the document, in order to encode them according to what said format provides, and to constitute a bit stream with the encoded data.

Brève description des dessins - la figure 1 représente un schéma en blocs résumant le principe de fonctionnement d'un procédé d'analyse syntaxique selon l'invention, - la figure 2 représente un schéma en blocs résumant le principe de fonctionnement d'un procédé de génération d'un flux binaire selon l'invention, - la figure 3 est un exemple d'un système de transmission selon l'invention. BRIEF DESCRIPTION OF THE DRAWINGS FIG. 1 represents a block diagram summarizing the operating principle of a parsing method according to the invention, FIG. 2 represents a block diagram summarizing the operating principle of a method of generation of a bit stream according to the invention, - Figure 3 is an example of a transmission system according to the invention.

Description d'un mode de réalisation préférentiel
Sur la figure 1, on a représenté un schéma en blocs exposant le principe de fonctionnement d'un procédé d'analyse syntaxique selon l'invention. Un bloc B1 représente un flux binaire conforme à un format prédéterminé. Un bloc B2 représente un schéma qui décrit ledit format prédéterminé de façon générique. Un bloc B3 représente un analyseur syntaxique permettant de faire une analyse syntaxique du flux B1 pour générer un document B4 qui est une représentation arborescente du flux binaire B1 et une instance du schéma B2.
Description of a preferred embodiment
FIG. 1 shows a block diagram explaining the operating principle of a parsing method according to the invention. A block B1 represents a bit stream conforming to a predetermined format. A block B2 represents a scheme that describes said predetermined format generically. A block B3 represents a parser for parsing the stream B1 to generate a document B4 which is a tree representation of the bit stream B1 and an instance of the scheme B2.

<Desc/Clms Page number 5> <Desc / Clms Page number 5>

Le schéma B2 décrit la syntaxe du flux binaire. Il spécifie notamment le type des données susceptibles d'être rencontrées dans le fichier binaire, et la façon dont elles doivent être indes dans le document. La représentation arborescente B4 est générée au fur et à mesure de l'analyse du flux binaire Bl.  Figure B2 describes the syntax of the bitstream. In particular, it specifies the type of data that can be encountered in the binary file, and the way in which they should be indes in the document. The tree representation B4 is generated as the bit stream B1 is analyzed.

Sur la figure 2, on a représenté un schéma en blocs exposant le principe de fonctionnement d'un procédé de génération d'un flux binaire selon l'invention. Un bloc B'2 représente un schéma qui décrit un format de codage de façon générique. Un bloc B'4

Figure img00050001

représente un document qui est une instance du schéma B'2. Un bloc B'3 représente un générateur de flux binaire permettant de lire en parallèle le document B'4 et le schéma B'2 pour générer un flux binaire B'1. Avantageusement les schémas B2 et B'2 utilisés pour un même format de codage sont identiques. FIG. 2 shows a block diagram explaining the operating principle of a method for generating a bit stream according to the invention. A block B'2 represents a scheme that describes a coding format generically. A block B'4
Figure img00050001

represents a document that is an instance of the B'2 schema. A block B'3 represents a bit stream generator making it possible to read in parallel the document B'4 and the diagram B'2 to generate a bit stream B'1. Advantageously, the B2 and B'2 schemas used for the same coding format are identical.

Le document B'4 est lu avec le schéma B'2 de façon à déterminer le type des données qui sont contenues dans le document B'4. Pour une valeur lue dans le document B'4, le type de données correspondant, trouvé dans le schéma B'2, détermine le mode de codage à utiliser pour coder ladite valeur. The document B'4 is read with the diagram B'2 so as to determine the type of the data which are contained in the document B'4. For a value read in the B'4 document, the corresponding data type, found in the B'2 schema, determines the encoding mode to be used for encoding said value.

D'une façon générale, il n'est pas forcément nécessaire de détailler complètement la structure du format de codage dans le schéma. Le niveau de détail dépend de l'application

Figure img00050002

envisagée. Pour l'application décrite dans la demande de brevet français nO 0101530 déjà citée dans l'introduction de la présente demande (procédé de génération d'tun fichier-par exemple d'un fichier JPEG 2000-ayant des caractéristiques adaptées au profil du destinataire), certains segments de marqueurs JPEG 2000 doivent être détaillés paramètre par paramètre pour permettre de récupérer lesdits paramètres et de les modifier. D'autres segments de marqueurs sont traités comme un bloc, parce qu'il n'est pas nécessaire d'accéder aux paramètres qu'ils contiennent. In general, it is not necessary to completely detail the structure of the coding format in the schema. The level of detail depends on the application
Figure img00050002

considered. For the application described in the French patent application No. 0101530 already mentioned in the introduction to the present application (method of generating a file tun-for example a JPEG 2000 file-having characteristics adapted to the profile of the recipient) , some segments of JPEG 2000 markers must be detailed parameter by parameter to allow to recover said parameters and to modify them. Other marker segments are treated as a block because there is no need to access the parameters they contain.

De façon avantageuse, les documents B4 et B'4 sont des documents XML, et les schémas B2 et B'2 sont écrits dans un nouveau langage dérivé du langage XML-schema. XML est une recommandation du consortium W3C (eXtensible Markup Language 1.0 en date du 06.10. 2000), et XML-schema est un projet de recommandation du même consortium W3C daté du 24.10. 2000. La recommandation XML et le projet de recommandation XML-Schema sont disponibles sur le site Internet http : //www. w3. org/. Toutefois ceci n'est pas restrictif, et les

Figure img00050003

principes de l'invention qui vont être décrits en détails dans la suite de la description peuvent être mis en oeuvre en utilisant des langages d'un autre genre, par exemple des langages du genre DSD (de l'anglais Document Structure Description) proposé par AT & T et par BRICS de l'université d'Aarhus au Danemark et disponible sur le site Internet http ://www. brics. dk/DSD/. Advantageously, the documents B4 and B'4 are XML documents, and the B2 and B'2 schemas are written in a new language derived from the XML-schema language. XML is a recommendation of the W3C consortium (eXtensible Markup Language 1.0 dated 06.10.2000), and XML-schema is a recommendation project of the same W3C consortium dated 24.10. 2000. The XML Recommendation and the draft XML-Schema Recommendation are available on the website http: // www. w3. org /. However this is not restrictive, and
Figure img00050003

principles of the invention which will be described in detail in the following description may be implemented using languages of another kind, for example languages of the type DSD (of the English Document Structure Description) proposed by AT & T and by BRICS from the University of Aarhus in Denmark and available on the website http: // www. brics. dk / DSD /.

D'un point de vue physique, un document XML comporte notamment des entités analysables qui contiennent du texte, c'est-à-dire une suite de caractères appartenant à un ensemble de caractères prédéfini, et qui représentent du balisage ou des données textuelles.  From a physical point of view, an XML document notably comprises analyzable entities that contain text, that is to say a series of characters belonging to a predefined set of characters, and which represent markup or textual data.

D'un point de vue logique, un document XML contient un ou plusieurs éléments dont les limites sont marquées par une balise ouvrante et une balise fermante. Des éléments peuvent  From a logical point of view, an XML document contains one or more elements whose boundaries are marked by an opening tag and a closing tag. Elements can

<Desc/Clms Page number 6><Desc / Clms Page number 6>

s'imbriquer les uns dans les autres. Chaque élément est identifié par un nom qui est indiqué dans sa balise ouvrante et dans sa balise fermente. Un élément peut avoir une valeur. La valeur d'un élément est placée entre sa balise ouvrante et sa balise fermante.  to nest into each other. Each element is identified by a name that is indicated in its opening tag and its ferment tag. An element can have a value. The value of an element is placed between its opening tag and its closing tag.

Dans l'exemple qui va être décrit ci-dessous, afin de simplifier l'implémentation, on a choisit de placer les données directement dans les éléments du document XML (c'est-à-dire que les données contenues dans le document XML constituent des valeurs d'éléments XML).  In the example that will be described below, in order to simplify the implementation, it has been chosen to place the data directly in the elements of the XML document (that is to say that the data contained in the XML document constitute values of XML elements).

XML-schema est un langage de schéma qui permet de spécifier le contenu et la structure de documents XML : en particulier un schéma XML permet de décrire des éléments, et pour chaque élément un nom, un type de données, une imbrication, un ordre d'apparition et un nombre d'occurrence (s). L'ordre d'apparition et le nombre d'occurrences peuvent être prédéfinis ou quelconques. L'occurrence d'un élément peut être obligatoire ou optionnelle.  XML-schema is a schema language that allows you to specify the content and structure of XML documents: in particular, an XML schema is used to describe elements, and for each element a name, a data type, a nesting, an order of occurrence and number of occurrence (s). The order of appearance and the number of occurrences can be predefined or arbitrary. The occurrence of an element may be mandatory or optional.

Un schéma définit une classe de documents XML. Une instance d'un schéma XML est un document XML qui est valide par rapport audit schéma
Dans la suite de la description, et afin de donner un exemple concret de mise en oeuvre de l'invention, on va considérer des flux binaires au format JPEG 2000. Ceci n'est pas non plus restrictif, et il est clair que l'invention est applicable à d'autres formats. Pour certains formats, il peut être nécessaire d'ajouter d'autres types de données à ceux qui sont décrits ici.
A schema defines a class of XML documents. An instance of an XML schema is an XML document that is valid against that schema
In the remainder of the description, and in order to give a concrete example of implementation of the invention, bit streams in the JPEG 2000 format will be considered. This is also not restrictive, and it is clear that the invention is applicable to other formats. For some formats, it may be necessary to add other types of data to those described here.

On donne dans l'annexe A un exemple de schéma décrivant le format de codage JPEG 2000. Ce schéma utilise des types simples de données qui sont génériques et qui sont définis dans l'annexe B, et des types simples de données, dérivés de ces types génériques, qui sont définis dans l'annexe C. L'annexe D donne un exemple de document XML qui est une instance du schéma donné à l'annexe A et qui représente un flux binaire JPEG 2000. Dans les annexes A,

Figure img00060001

B et C, et dans la suite de la description, les lettres xsd identifient les outils qui sont définis dans XML-schema. Et les lettres bsd identifient les outils qui sont ajoutés par l'invention. An example of a scheme describing the JPEG 2000 coding format is given in Appendix A. This schema uses simple types of data that are generic and are defined in Appendix B, and simple types of data derived from them. generic types, which are defined in Appendix C. Appendix D provides an example of an XML document that is an instance of the schema given in Appendix A and represents a JPEG 2000 bit stream.
Figure img00060001

B and C, and in the rest of the description, the letters xsd identify the tools that are defined in XML-schema. And the letters bsd identify the tools that are added by the invention.

Conformément à l'invention, le schéma B2 (qui est considéré comme étant identique au schéma B'2 dans la suite de la description) définit le type de toutes les données susceptibles d'être contenues dans un flux conforme au format JPEG 2000. Certains types de données sont pré-existants dans le langage XML-schema et peuvent être utilisés directement. D'autres doivent être modifiés. D'autres encore doivent être ajoutés. In accordance with the invention, the B2 schema (which is considered to be identical to the B'2 schema in the remainder of the description) defines the type of all the data that may be contained in a stream that conforms to the JPEG 2000 format. Data types are pre-existing in the XML-schema language and can be used directly. Others need to be changed. Still others need to be added.

En particulier, un flux binaire conforme au format JPEG 2000 contient les types de données suivants : 1) des segments binaires de longueurs indéfinies, dont le contenu peut être importé dans un document XML en utilisant un premier ou un deuxième mode d'importation, décrits plus loin.  In particular, a JPEG 2000 compliant bit stream contains the following types of data: 1) binary segments of indefinite lengths, the contents of which may be imported into an XML document using a first or second import mode, as described further.

2) des mots binaires de différentes longueurs, qui contiennent éventuellement des bits de remplissage qui ne sont pas significatifs.

Figure img00060002
2) binary words of different lengths, which possibly contain filling bits that are not significant.
Figure img00060002

3) des marqueurs dont la valeur est définie en hexadécimales dans la norme JPEG 2000, et qui sont importés en hexadécimales dans le document XML. Cette importation en hexadécimales constitue un troisième mode d'importation. 3) markers whose value is set in hexadecimal in the JPEG 2000 standard, and which are imported in hexadecimal in the XML document. This import in hexadecimal is a third import mode.

<Desc/Clms Page number 7> <Desc / Clms Page number 7>

Le premier mode d'importation consiste à convertir les données binaires en caractères appartenant à l'ensemble prédéfini de caractères utilisé par XML. Pour cela, on utilise avantageusement une méthode de codage connue sous le nom de base 64 et décrite au paragraphe 6.8 du document RFC 2045 publié par LIETF. Cette méthode consiste à découper les données binaires à convertir en groupes de 6 bits, et à associer à chaque groupe de 6 bits un caractère de l'ensemble prédéfini de caractères. Ce premier mode d'importation entraîne une expansion des données de 33%.  The first mode of import is to convert the binary data into characters belonging to the predefined set of characters used by XML. For this, one advantageously uses a coding method known as the base 64 and described in paragraph 6.8 of the document RFC 2045 published by LIETF. This method consists of splitting the binary data to be converted into groups of 6 bits, and associating with each group of 6 bits a character of the predefined set of characters. This first mode of import results in a data expansion of 33%.

Dans le deuxième mode d'importation, au lieu de convertir les données binaires en caractères pour les insérer directement dans le document XML, on introduit dans le document XML des pointeurs vers une zone d'un fichier binaire qui contient lesdites données binaires. Le document XML devient alors dépendant dudit fichier binaire.  In the second import mode, instead of converting the binary data into characters for insertion directly into the XML document, pointers to an area of a binary file containing said binary data are introduced in the XML document. The XML document then becomes dependent on said binary file.

Dans le langage XML-schema, un type de données est définit comme un triplet qui comprend : - un ensemble de valeurs, appelé espace de valeurs, - un ensemble de représentations lexicales, appelé espace lexical, - un ensemble de facettes, une facette correspondant à une contrainte imposée à l'espace de valeurs.  In the XML-schema language, a data type is defined as a triple that includes: - a set of values, called a value space, - a set of lexical representations, called lexical space, - a set of facets, a corresponding facet to a constraint imposed on the space of values.

Pour la mise en oeuvre de l'invention, le codage des données qui sont lues dans le flux binaire doit être univoque et implicite. Certains types de données pré-existants dans XMLschema, qui sont univoques et implicites, sont utilisés directement : c'est le cas par exemple des types de données xsd : unsignedShort qui représente un entier compris entre-32768 et +32767 et qui peut donc être codé implicitement sur deux octets. C'est également le cas de xsd : unsîgnedint et de xsd : unsignedByte .  For the implementation of the invention, the coding of the data that is read in the bit stream must be unambiguous and implicit. Some XMLschema pre-existing data types, which are univocal and implicit, are used directly: this is the case for example with xsd: unsignedShort data types that represent an integer between -32768 and +32767, which can be implicitly encoded on two bytes. This is also the case for xsd: unsîgnedint and xsd: unsignedByte.

Conformément à l'invention, on utilise aussi le type de données xsd : binary , mais en le modifiant : 1) On lui ajoute une facette relative à un drapeau de fin, intitulée bsd : stopFlagExclusive .  In accordance with the invention, the data type xsd: binary is also used, but modifying it: 1) It is added a facet relating to an end flag, called bsd: stopFlagExclusive.

Cette facette sera utilisée pour indiquer la fin d'un segment binaire de longueur indéfinie : par exemple les paquets JPEG 2000, qui sont des segments binaires de longueur indéfinie, sont délimités soit par un marqueur SOP (de l'anglais Start Of Paket), soit par un marqueur SOT (de l'anglais Start Of Tile) soit par un marqueur EOC (de l'anglais End Of Codestream) ; donc pour un paquet JPEG 2000 cette facette aura l'une des trois valeurs FF51 (SOP), FF90 (SOT) ou FFD9 (EOC). This facet will be used to indicate the end of a binary segment of indefinite length: for example the JPEG 2000 packets, which are binary segments of indefinite length, are delimited either by a SOP (Start Of Paket) marker, either by a SOT marker (of the English Start Of Tile) or by an EOC marker (of the English End Of Codestream); so for a JPEG 2000 package this facet will have one of three values FF51 (SOP), FF90 (SOT) or FFD9 (EOC).

2) On ajoute une nouvelle valeur possible à la facette encoding qui existe déjà dans le

Figure img00070001

langage XML-schema avec les valeurs hex pour l'hexadecimal et base 64 pour l'importation après une conversion base 64. La nouvelle valeur ajoutée est dénommée externalData . Elle est utilisée pour indiquer que les données sont importées dans le document XML en utilisant le second mode d'importation évoqué plus haut (introduction dans le document XML d'un pointeur qui pointe vers la zone du flux binaire qui contient les données concernées). 2) Add a new possible value to the encoding facet that already exists in the
Figure img00070001

XML-schema language with hex values for hexadecimal and base 64 for import after base64 conversion. The new value is named externalData. It is used to indicate that the data is imported into the XML document by using the second import mode mentioned above (introduction in the XML document of a pointer pointing to the area of the bitstream containing the data concerned).

<Desc/Clms Page number 8> <Desc / Clms Page number 8>

Ce type de données modifié est intitulé binaryNoLength et il est définit à l'annexe C de la façon suivante : < xsd : simpleType name="binaryNoLength" > < xsd : annotation > < xsd : appinfo > < !-- Read data until a flag is found-- > < xsd : hasFacet name="stopFlagExclusive"/ > < !-- How binary data should be instantiated :-- > < !-- base64, hex (same as for xsd : binary)-- > < !-- externalData (URI pointing to an external entity data segment < xsd : hasFacet name="encoding"/ > < /xsd : appinfo > < /xsd : annotation > < xsd : restriction base="xsd : anySimpleType"/ > < /xsd : simpleType > Ce type de données modifié, qui est un type générique, est ensuite utilisé pour dériver d'autres types de données spécifiques susceptibles d'être rencontrés dans un flux binaire XML. Par

Figure img00080001

exemple, comme indiqué à l'annexe B, le type PacketDataTYpe , qui correspond aux paquets JPEG 2000, est dérivé du type générique binaryNoLength . Dans cet exemple, on voit que les données contenues dans ces paquets sont importées dans le document XML en utilisant le second mode d'importation (pointeur vers la zone du flux binaire qui contient les données). On voit aussi qu'un paquet JPEG 2000 est délimité par un marqueur ayant l'une des trois valeurs suivantes : FF51, FFD9, ou FF90. This modified data type is named binaryNoLength and is defined in Appendix C as follows: <xsd: simpleType name = "binaryNoLength"><xsd:annotation><xsd:appinfo><! - Read data until a flag is found--><xsd: hasFacet name = "stopFlagExclusive"/><! - binary data should be instantiated: -><! - base64, hex (same as for xsd: binary) ->< ! - externalData (URI) <xsd: hasFacet name = "encoding"/></ xsd: appinfo></ xsd: annotations><xsd: restriction base = "xsd: anySimpleType"/>< / xsd: simpleType> This modified data type, which is a generic type, is then used to derive other specific data types that may be encountered in an XML bit stream.
Figure img00080001

For example, as shown in Appendix B, the PacketDataTYpe type, which corresponds to JPEG 2000 packets, is derived from the generic type binaryNoLength. In this example, we see that the data contained in these packets are imported into the XML document by using the second import mode (pointer to the area of the bitstream that contains the data). We also see that a JPEG 2000 packet is delimited by a marker having one of three values: FF51, FFD9, or FF90.

< xsd : simpleType name="packetDataType" > < xsd : restriction base="bsd : binaryNoLength" > < xsd : encoding value="externalData"/ > < bsd : stopFlagExclusive value="FF51 1 FFD9 1 FF90"/ > < /xsd : restriction < /xsd : simpleType >

Figure img00080002

En se reportant à l'annexe A, on constate que d'autres éléments ont un type dérivé de binaryNoLength , par exemple l'élément intitulé Data dans l'élément de type complexe COC. Cet élément Data a une facette encoding dont la valeur est base 64 , ce qui signifie que les données correspondantes sont importées du flux binaire dans le document XML en utilisant une conversion base 64. < xsd : complexType name="COCType" > < xsd : sequence >
Figure img00080003

< xsd : element name="Marker"type="jp2 : markerType" fixed="ff53"/ > < xsd : element name="Lcoc"type="xsd : unsignedShort"/ > < xsd : element name="data" > < xsd : simpleType > < xsd : restriction base="xsd : binary" > < xsd : length value="$Lcoc"/ > < xsd : encoding value="base64"/ > <xsd: simpleType name = "packetDataType"><xsd: base = "bsd: binaryNoLength"><xsd: encoding value = "externalData"/><bsd: stopFlagExclusive value = "FF51 1 FFD9 1 FF90"/></ xsd: restriction </ xsd: simpleType>
Figure img00080002

Referring to Appendix A, it is found that other elements have a type derived from binaryNoLength, for example the element labeled Data in the COC complex element. This Data element has an encoding facet whose value is base 64, which means that the corresponding data is imported from the bit stream into the XML document using a base 64 conversion. <Xsd: complexType name = "COCType"><xsd:sequence>
Figure img00080003

<xsd: element name = "Marker" type = "jp2: markerType" fixed = "ff53"/> xsd: element name = "Lcoc" type = "xsd: unsignedShort"/><xsd: element name = "data"<xsd:simpleType><xsd: base restriction = "xsd: binary"><xsd: length value = "$ Lcoc"/><xsd: encoding value = "base64"/>

<Desc/Clms Page number 9><Desc / Clms Page number 9>

< /xsd : restriction > < /xsd : simpleType > < /xsd : éléments < /xsd : sequence > < /xsd : complexType >
L'invention consiste aussi à ajouter un nouveau type de données destiné à être utilisé

Figure img00090001

pour les mots binaires de longueur prédéfinie. Ce nouveau type de données est intitulé bsd : bitsArray et il contient trois facettes : une facette intitulée bitslength relative à la longueur du mot binaire, une facette intitulée prePadding relative au nombre de bits de remplissage placés avant le ou les bits significatifs, et une facette intitulée postPadding relative au nombre de bits de remplissage placés après le ou les bits significatifs. Ce nouveau type de données est défini dans l'annexe C de la façon suivante : < xsd : simpleType name="bitsArray" > < xsd : annotation > < xsd : appinfo < xsd : hasFacet name="bitsLength"/ > < xsd : hasFacet name="prePadding"/ > < xsd : hasFacet name="postPadding"/ > < /xsd : appinfo < /xsd : annotation > < xsd : restriction base="xsd : anySimpleType"/ > < /xsd : simpleType > Comme indiqué à l'annexe B, ce nouveau type de données, qui est un type de données générique, est ensuite utilisé pour dériver des types de données spécifiques susceptibles d'être
Figure img00090002

rencontrés dans un flux JPEG 2000. Par exemple le type de données intitulé llb qui est dérivé du type de données générique bitsArray correspond à un mot binaire de 11 bits, qui ne contient pas de bits de remplissage : < xsd : simpleType name="llb" > < xsd : restriction base="bsd : bitsArray" > < bsd : bitsLength value="11"/ > < /xsd : restriction > < /xsd : simpleType > Et le type de données intitulé 5b3p qui est aussi dérivé du type de données générique bitsarray correspond à un mot binaire de 5 bits qui comporte 2 bits significatifs suivis de 3 bits de remplissage.
Figure img00090003
</ xsd: restriction></ xsd: simpleType></ xsd: elements </ xsd: sequence></ xsd: complexType>
The invention also consists in adding a new type of data intended to be used
Figure img00090001

for binary words of predefined length. This new data type is called bsd: bitsArray and contains three facets: a bitlength facet related to the length of the binary word, a facet called prePadding relative to the number of fill bits placed before the significant bit (s), and a facet called postPadding relative to the number of filling bits placed after the significant bit (s). This new data type is defined in Appendix C as follows: <xsd: simpleType name = "bitsArray"><xsd:annotation><xsd: appinfo <xsd: hasFacet name = "bitsLength"/><xsd: hasFacet name = "prePadding"/><xsd: hasFacet name = "postPadding"/></ xsd: appinfo </ xsd: annotation><xsd: base = "xsd: anySimpleType"/></ xsd: simpleType> As Annex B, this new data type, which is a generic data type, is then used to derive specific types of data that may be
Figure img00090002

encountered in a JPEG 2000 stream. For example, the data type named llb that is derived from the generic data type bitsArray is an 11-bit binary word that does not contain any fill bits: <xsd: simpleType name = "llb "><xsd: base restriction =" bsd: bitsArray "><bsd: bitsLength value =" 11 "/></ xsd: restriction></ xsd: simpleType> And the data type named 5b3p which is also derived from the type Generic bitsarray data is a 5-bit binary word that has 2 significant bits followed by 3 fill bits.
Figure img00090003

< xsd : simpleType name="5b3p" > < xsd : restriction base="bsd : bitsArray" > < bsd : bitsLength value="5"/ > < bsd : postPadding value="3"/ > < /xsd : restriction < /xsd : simpleType >  <xsd: simpleType name = "5b3p"> <xsd: base restriction = "bsd: bitsArray"> <bsd: bitsLength value = "5" /> <bsd: postPadding value = "3" /> </ xsd: restriction < / xsd: simpleType>

<Desc/Clms Page number 10> <Desc / Clms Page number 10>

Figure img00100001

En se reportant à l'annexe A on constate que le type de données llb est par exemple utilisé pour l'élément intitulé mantissa : xsd : element name="mantissa"type="jp2 : llb"/ > et que le type de données 5b3p est par exemple utilisé pour l'élément intitulé exponent : < xsd : element name="exponent"type="jp2 : 5b3p"/ > D'un point de vue structurel, l'invention utilise les outils suivants qui existent déjà dans XML-schema : - les types de données simples et complexes xsd : simple Type et xsd : complexType , - les éléments xsd : element , - les modèles de groupe xsd : group , - les connecteurs xsd : sequence , xsd : all , et éventuellement xsd : choice .
Figure img00100001

Referring to Appendix A it is noted that the data type llb is for example used for the element called mantissa: xsd: element name = "mantissa" type = "jp2: llb"/> and that the data type For example, 5b3p is used for the item named exponent: <xsd: element name = "exponent" type = "jp2: 5b3p"/> From a structural point of view, the invention uses the following tools that already exist in XML -schema: - the simple and complex data types xsd: simple Type and xsd: complexType, - the elements xsd: element, - the group templates xsd: group, - the connectors xsd: sequence, xsd: all, and possibly xsd : choice.

L'analyseur syntaxique B3 lit le flux binaire BI avec le schéma B2 pour générer une représentation arborescente B4 du flux binaire Bl. Cette représentation arborescente B4 est une instance du schéma B2. Elle est générée récursivement en interprétant les connecteurs rencontrés dans le schéma. The parser B3 reads the bit stream BI with the diagram B2 to generate a tree representation B4 of the bit stream B1. This tree representation B4 is an instance of the diagram B2. It is generated recursively by interpreting the connectors encountered in the schema.

En particulier, le connecteur xsd : sequence est interprété de la façon suivante par l'analyseur syntaxique : lorsque l'analyseur syntaxique rencontre un connecteur xsd : sequence , il lit les éléments dans le flux binaire dans le même ordre que dans le schéma. Par exemple, un connecteur xsd : sequence est utilisé dans les éléments du type CodestreamType défini dans l'annexe A. In particular, the xsd: sequence connector is interpreted as follows by the parser: when the parser encounters an xsd: sequence connector, it reads the elements in the bitstream in the same order as in the schema. For example, an xsd: sequence connector is used in the CodestreamType elements defined in Appendix A.

< xsd : complexType name="CodestreamType" > < xsd : sequence > < xsd : element name="MainHeader"type="jp2 : MainHeaderType"/ > < xsd : element name="Tile"type="jp2 : TileType"/ > < xsd : element name="EOC"type="jp2 : EOCType"/ > < /xsd : sequence > < /xsd : complexType > D'après cette définition, un élément Codestream comprend obligatoirement un élément Mainheader , suivi d'un élément Tile , suivi d'un élément EOC .  <xsd: complexType name = "CodestreamType"> <xsd: sequence> <xsd: element name = "MainHeader" type = "jp2: MainHeaderType" /> <xsd: element name = "Tile" type = "jp2: TileType" / > <xsd: element name = "EOC" type = "jp2: EOCType" /> </ xsd: sequence> </ xsd: complexType> According to this definition, a Codestream element must have a Mainheader element, followed by a Tile element, followed by an EOC element.

Le connecteur xsd : all est interprété de la façon suivante par l'analyseur syntaxique : lorsque l'analyseur syntaxique rencontre un connecteur xsd : all , ils commence par essayer de lire le premier élément déclaré à l'intérieur du connecteur xsd : all , et steil échoue, il essaye de lire le second etc... Lorsqu'il trouve un élément recherché, il passe à l'élément suivant dans le connecteur xsd : all . oil ne passe au connecteur suivant que lorsque tous les éléments du connecteur xsd : all ont été parcourus. The xsd: all connector is interpreted as follows by the parser: when the parser encounters an xsd: all connector, it starts by trying to read the first declared element inside the xsd: all connector, and steil fails, it tries to read the second one etc. When it finds a wanted element, it goes to the next element in the xsd: all connector. It goes to the next connector only when all xsd: all connector elements have been scanned.

<Desc/Clms Page number 11> <Desc / Clms Page number 11>

Figure img00110001
Figure img00110001

D'une façon générale, l'élément trouvé dans le flux binaire ne correspond pas à l'élément recherché lorsque le schéma définit une valeur fixe pour cet élément ou pour l'un des éléments qui) contient, et que cette valeur ne correspond pas à ce qui est trouvé dans le flux binaire. Par exemple, lorsque l'analyseur syntaxique essaie d'instancier un élément SIZ , l'élément lu dans le flux binaire n'est pas l'élément recherché s'il ne commence pas par FF51 qui est la valeur affectée au marqueur SIZ dans la norme JPEG 2000. In general, the element found in the bitstream does not match the searched element when the schema defines a fixed value for that element or for one of the elements that) contains, and this value does not match to what is found in the bitstream. For example, when the parser tries to instantiate a SIZ element, the element read in the bitstream is not the searched element if it does not start with FF51 which is the value assigned to the SIZ marker in the JPEG 2000 standard.

Le connecteur xsd : all est par exemple utilisé dans les éléments du type MainHeader Type défini dans l'annexe A. For example, the xsd: all connector is used in elements of the type MainHeader Type defined in Appendix A.

< xsd : complexType name="MainHeaderType" > < xsd : sequence > < xsd : element name="SOC"type="jp2 : SOCType"/ > < xsd : element name="SIZ"type="jp2 : SIZType"/ > < xsd : group > < xsd : all > < xsd : element name="COD"type="jp2 : CODType"minOccurs="0"/ > < xsd : element name="QCD"type="jp2 : QCDType"minOccurs="0"/ > < xsd : element name="COC"type="jp2 : COCType"minOccurs="O"/ > < xsd : element name="QCC"type="jp2 : QCCType"minOccurs="0"/ > < xsd : element name="RGN"type="jp2 : RGNType"minOccurs="0"/ > < xsd élémentname="POC"type=jp2 POCType"min0ccurs="0"/ > < xsd élémentname="PPM"type=jp2 PPMType"min0ccurs="0"/ > < xsd : element name="TLM"type="jp2 : TLMType"minOccurs="O"/ > < xsd : element name="PLM"type="jp2 : PLMType"minOccurs="O"/ > < xsd : element name="CRG"type="jp2 : CRGType"minoccurs="O"/ > < xsd : element name="COM"type="jp2 : COMType"min0cpurs="0"/ > < /xsd : all > < /xsd : group > < /xsd : sequence > < /xsd : complexType > D'après cette définition un élément MainHeader comprend obligatoirement un élément SOC suivi d'un élément SIZ suivi d'un groupe qui peut contenir un, plusieurs ou aucun des éléments suivants, pris dans un ordre quelconque : COD , QCD , COC , QCC , RGN , POC , PPM , TLM , PLM , CRG .  <xsd: complexType name = "MainHeaderType"> <xsd: sequence> <xsd: element name = "SOC" type = "jp2: SOCType" /> <xsd: element name = "SIZ" type = "jp2: SIZType" / <xsd: group> <xsd: all> <xsd: element name = "COD" type = "jp2: CODType" minOccurs = "0" /> <xsd: element name = "QCD" type = "jp2: QCDType" minOccurs = "0" /> <xsd: element name = "COC" type = "jp2: COCType" minOccurs = "O" /> <xsd: element name = "QCC" type = "jp2: QCCType" minOccurs = "0 "/> <xsd: element name =" RGN "type =" jp2: RGNType "minOccurs =" 0 "/> <xsd elementname =" POC "type = jp2 POCType" min0ccurs = "0" /> <xsd elementname = " PPM "type = jp2 PPMType" min0ccurs = "0" /> <xsd: element name = "TLM" type = "jp2: TLMType" minOccurs = "O" /> xsd: element name = "PLM" type = "jp2 : PLMType "minOccurs =" O "/> <xsd: element name =" CRG "type =" jp2: CRGType "minoccurs =" O "/> <xsd: element name =" COM "type =" jp2: COMType "min0cpurs = "0" /> </ xsd: all> </ xsd: group> </ xsd: sequence> </ xsd: complexType> According to this definition a MainH element eader must include a SOC element followed by a SIZ element followed by a group that may contain one, several or none of the following elements, taken in any order: COD, QCD, COC, QCC, RGN, POC, PPM, TLM , PLM, CRG.

Bien qu'aucun exemple n'en soit donné dans l'annexe A, on peut également utiliser le connecteur xsd : choice . Lorsque l'analyseur syntaxique rencontre un connecteur xsd : choice , il commence par essayer de lire dans le flux binaire le premier élément déclaré à l'intérieur du connecteur xsd : choice . Lorsqu'il trouve l'élément recherché, il passe au connecteur suivant dans le schéma. Lorsque l'élément lu n'est pas l'élément recherché, il passe à l'élément suivant à l'intérieur du même connecteur xsd : choice . Although no examples are given in Appendix A, you can also use the xsd: choice connector. When the parser encounters an xsd: choice connector, it begins by trying to read in the bitstream the first declared element inside the xsd: choice connector. When it finds the desired item, it goes to the next connector in the schema. When the read item is not the desired item, it moves to the next item inside the same xsd: choice connector.

Par ailleurs, l'invention introduit l'utilisation de variables dans les schémas. La notion de variable est utilisée dans le langage XSLT (XMLExtensible StyleSheet Language Transformation en anglais). XSLT est un langage spécifié par le consortium W3C, qui permet de définir des transformation applicables à des documents XML. Concrètement une variable est une chaîne de caractères liée à une valeur. Elle peut apparaître à un certain emplacement dans un document et être utilisée ailleurs. Conformément à la syntaxe définie dans XSLT, on accède à la valeur d'une variable identifiée par une chaîne de caractères en plaçant le signe $ devant la chaîne de Moreover, the invention introduces the use of variables in schemas. The notion of variable is used in XSLT (XMLExtensible StyleSheet Language Transformation). XSLT is a language specified by the W3C Consortium, which allows you to define transformations applicable to XML documents. Concretely a variable is a string linked to a value. It may appear at a certain location in a document and be used elsewhere. According to the syntax defined in XSLT, we access the value of a variable identified by a character string by placing the sign $ in front of the string of

<Desc/Clms Page number 12> <Desc / Clms Page number 12>

Figure img00120001

caractères (autrement dit, $ZZZ est la valeur de la variable identifiée par la chaîne de caractères ZZZ). La valeur d'une variable est indiquée dans la définition de la variable. L'invention permet de définir la valeur d'une variable sous forme d'un chemin dans une arborescence XML, en utilisant la syntaxe définit dans le langage Xpath (XML Path Language en anglais). Xpath est aussi un langage spécifié par le consortium W3C. Les spécifications de XSLT et Xpath sont disponibles sur le site Internet http : //www. w3. org.
Figure img00120001

characters (that is, $ ZZZ is the value of the variable identified by the ZZZ string). The value of a variable is indicated in the definition of the variable. The invention makes it possible to define the value of a variable in the form of a path in an XML tree, using the syntax defined in the XML Path Language (Xpath). Xpath is also a language specified by the W3C consortium. The XSLT and Xpath specifications are available on the website http://www.youtube.com/watch w3. org.

L'utilisation d'une variable permet par exemple de définir un nombre d'éléments par un paramètre, au lieu de le définir par une valeur constante. Lorsque la valeur d'un paramètre est donnée en amont dans le flux binaire, et informe sur la structure ou le contenu de la suite du flux binaire, la valeur de la variable est définie en utilisant la syntaxe Xpath.  The use of a variable allows for example to define a number of elements by a parameter, instead of defining it by a constant value. When the value of a parameter is given upstream in the bitstream, and informs about the structure or the content of the sequence of the bitstream, the value of the variable is defined using the Xpath syntax.

Par exemple, dans le format JPEG 2000, le nombre de composantes comp-siz contenues dans le segment de marqueurs SIZ est défini dans un paramètre Csiz qui est

Figure img00120002

placé en amont dans le segment de marqueurs SIZ. Dans l'annexe A l'élément Csiz est défini comme une variable. Sa valeur est définie par un chemin dans la représentation arborescente en cours de construction : à cet égard, l'expression SIZ/Csiz indique que Csiz est un élément fils de l'élément SIZ . Ensuite, lors de la définition du type complexe SIZ il est fait appel à cette variable Csiz pour déterminer le nombre d'occurrences de l'élément comp-siz . For example, in the JPEG 2000 format, the number of comp-siz components contained in the SIZ marker segment is defined in a Csiz parameter that is
Figure img00120002

placed upstream in the SIZ marker segment. In Appendix A the element Csiz is defined as a variable. Its value is defined by a path in the tree representation being constructed: in this respect, the expression SIZ / Csiz indicates that Csiz is a child element of the SIZ element. Then, when defining the complex type SIZ, this variable Csiz is used to determine the number of occurrences of the comp-siz element.

< xsl : variable name="Csiz" > < xsl : value-of select="SIZ/Csiz"/ > < /xsl : variable >

Figure img00120003

< xsd : element name="Comp siz"minOccurs="$Csiz"maxOccurs="$Csiz" > L'invention consiste aussi à ajouter un nouveau modèle de groupe bsd : conditionalChoice et deux nouveaux connecteurs xsl : if et xsl : choose . Cela permet d'introduire des branchements conditionnels dans les schémas et donc d'exprimer des choix conditionnels susceptibles d'exister dans le format que l'on cherche à décrire. On notera que les connecteurs xsl : if et xsl : choose sont définis dans le langage XSLT. Conformément aux spécifications du langage XSLT, les connecteurs xsl : if et xsl : choose utilisent un attribut test qui permet de définir un choix en fonction du résultat d'un test. Le connecteur xsl : if permet de définir un choix en fonction de la valeur d'une variable booléenne. Le connecteur xsl : choose permet de définir un choix parmi une pluralité d'alternatives. <xsl: variable name = "Csiz"><xsl: value-of select = "SIZ / Csiz"/></ xsl: variable>
Figure img00120003

<xsd: element name = "Comp siz" minOccurs = "$ Csiz" maxOccurs = "$ Csiz"> The invention also consists in adding a new group model bsd: conditionalChoice and two new connectors xsl: if and xsl: choose. This makes it possible to introduce conditional branches into the schemas and thus to express conditional choices that may exist in the format that we are trying to describe. Note that the connectors xsl: if and xsl: choose are defined in the XSLT language. According to the XSLT language specifications, the connectors xsl: if and xsl: choose use a test attribute that allows you to define a choice based on the result of a test. The xsl: if connector is used to define a choice based on the value of a Boolean variable. The xsl: choose connector is used to define a choice among a plurality of alternatives.

A titre d'exemple, le format JPEG 2000 prévoit que la présence de certains éléments, ou que le type d'une donnée, dépende de la valeur d'un paramètre qui est donné en amont dans le flux binaire.  For example, the JPEG 2000 format provides that the presence of certain elements, or the type of data, depends on the value of a parameter that is given upstream in the bit stream.

C'est le cas notamment dans l'élément SPcod qui est contenu dans l'élément

Figure img00120004

COD . L'élément SPcod contient un élément PredinctSize , uniquement lorsque la This is particularly the case in the SPcod element that is contained in the element
Figure img00120004

COD. The SPcod element contains a PredinctSize element, only when the

<Desc/Clms Page number 13> <Desc / Clms Page number 13>

Figure img00130001

variable PredinctsUsed a la valeur 1. Cette contrainte est exprimée dans le schéma en utilisant un connecteur xsl : if .
Figure img00130001

variable PredinctsUsed is set to 1. This constraint is expressed in the schema by using an xsl: if connector.

< xsd : element name="SPcod" > < xsd : complexType > < xsd : sequence > < xsd : element name="nDecompLevels"type="xsd : unsignedByte"/ > < xsd : element name="codeBlockNidth"type="jp2 : 4p4b"/ > < xsd : element name="codeBlockHeight"type="jp2 : 4p4b"/ > < xsd : element name="codeBlockStyle" > < xsd : complexType > < xsd : sequence > < xsd : element name="optSegMarkers"type="jp2 : 2plb"/ > < xsd : element name="optErTerm"type="jp2 : lb"/ > < xsd : element name="optVertStrCausal"type="jp2 : lb"/ > < xsd : element name="optRegTerm"type="jp2 : lb"/ > < xsd : element name="optResetMQ"type="jp2 lb"/ > < xsd : element name="optByPass"type="jp2 : lb"/ > < /xsd : sequence > < /xsd : complexType > < /xsd : element > < xsd : element name="Transformation"type="xsd : unsignedByte"/ > < xsl : if test="$PrecinctsUsed=l" > < xsd : element name="PrecinctSize"min0ccurs="0" > < xsd : complexType > < xsd : sequence < xsd : element name="PPy"type="jp2 : 4b"/ > < xsd : element name="PPx"type="jp2 : 4b"/ > < /xsd : sequence > < /xsd : complexType > < /xsd : element > < /xsd : sequence > < /xsl : if > < /xsd : complexType > < /xsd : element > Dans l'élément QCD on trouve un exemple d'un groupe bsd : cond) tiona ! Choice qui utilise des connecteurs xsl : choose pour indiquer que le type d'un élément à suivre (Spqcdl, Spqcd~2 ou Spqcd~3) dépend de la valeur d'un paramètre quantStyle dont l'emplacement, dans la représentation arborescente en cours d'élaboration, est donnée par le chemin QCD/Sqcd/QuantStyle . bsd : conditionalChoice > < xsl : choose > < xsl : when test="QCD/Sqcd/quantStyle ='0"' > < xsd : element name="Spqcdl"minOccurs="3*$nDecompLevels+l" maxOccurs="3*$nDecompLevels+l" > < xsd : complexType > < xsd : sequence > < xsd : element name="exponent"type="jp2 : 5b3p"/ > < /xsd : sequence > < /xsd : complexType > < /xsd : element > < /xsl : when > xsl : when test="QCD/Sqcd/quantStyle =' !'" > < xsd : element name="Spqcd~2"minOccurs="l"maxOccurs="l" > < xsd : complexType > < xsd : sequence >  <xsd: element name = "SPcod"> <xsd: complexType> <xsd: sequence> <xsd: element name = "nDecompLevels" type = "xsd: unsignedByte" /> xsd: element name = "codeBlockNidth" type = " jp2: 4p4b "/> <xsd: element name =" codeBlockHeight "type =" jp2: 4p4b "/> <xsd: element name =" codeBlockStyle "> <xsd: complexType> <xsd: sequence> <xsd: element name = "optSegMarkers" type = "jp2: 2plb" /> <xsd: element name = "optErTerm" type = "jp2: lb" /> <xsd: element name = "optVertStrCausal" type = "jp2: lb" /> <xsd : element name = "optRegTerm" type = "jp2: lb" /> <xsd: element name = "optResetMQ" type = "jp2 lb" /> <xsd: element name = "optByPass" type = "jp2: lb" / </ xsd: sequence> </ xsd: complexType> </ xsd: element> <xsd: element name = "Transform" type = "xsd: unsignedByte" /> <xsl: if test = "$ PrecinctsUsed = l"> <xsd: element name = "PrecinctSize" min0ccurs = "0"> <xsd: complexType> <xsd: sequence <xsd: element name = "PPy" type = "jp2: 4b" /> <xsd: element name = "PPx "type =" jp2: 4b "/> < / xsd: sequence> </ xsd: complexType> </ xsd: element> </ xsd: sequence> </ xsl: if> </ xsd: complexType> </ xsd: element> In the QCD element we find an example of a group bsd: cond) tiona! Choice that uses xsl: choose connectors to indicate that the type of an item to follow (Spqcdl, Spqcd ~ 2, or Spqcd ~ 3) depends on the value of a quantStyle parameter whose location, in the current tree representation of elaboration, is given by the path QCD / Sqcd / QuantStyle. bsd: conditionalChoice> <xsl: choose> <xsl: when test = "QCD / Sqcd / quantStyle = '0"'> <xsd: element name = "Spqcdl" minOccurs = "3 * $ nDecompLevels + l" maxOccurs = "3 * $ nDecompLevels + l> <xsd: complexType> <xsd: sequence> <xsd: element name = "exponent" type = "jp2: 5b3p" /> </ xsd: sequence> </ xsd: complexType> </ xsd : element> </ xsl: when> xsl: when test = "QCD / Sqcd / quantStyle = '!'"> <xsd: element name = "Spqcd ~ 2" minOccurs = "l" maxOccurs = "l"> <xsd : complexType> <xsd: sequence>

<Desc/Clms Page number 14> <Desc / Clms Page number 14>

Figure img00140001

xsd : element name="exponent"type="jp2 : 5b"/ > < xsd : element name="mantissa"type="jp2 : llb"/ > < /xsd : sequence > < /xsd : complexType > < /xsd : element > < /xsl : when >
Figure img00140002

xsl : when test="QCD/Sqcd/quantStyle ='2"' > < xsd : element name="Spqcd~3"minOccurs="3*$nDecompLevels+l" maxOccurs="3*$nDecompLevels+l" > xsd : complexType > < xsd : sequence > < xsd : element name="exponent"type="jp2 : 5b"/ > < xsd : element name="mantissa"type="jp2 : llb"/ > < /xsd : sequence > < /xsd : complexType > < /xsd : element > < /xsl : when > < /xsl : choose > < /bsd : conditionalChoice
Figure img00140003

Lorsqu'il lit le flux binaire, l'analyseur syntaxique génère progressivement un arbre XML.
Figure img00140001

xsd: element name = "exponent" type = "jp2: 5b"/> xsd: element name = "mantissa" type = "jp2: llb"/></ xsd: sequence></ xsd: complexType></ xsd : element></ xsl: when>
Figure img00140002

xsl: when test = "QCD / Sqcd / quantStyle = '2"'><xsd: element name = "Spqcd ~ 3" minOccurs = "3 * $ nDecompLevels + l" maxOccurs = "3 * $ nDecompLevels + l"> xsd : complexType><xsd:sequence><xsd: element name = "exponent" type = "jp2: 5b"/><xsd: element name = "mantissa" type = "jp2: llb"/></ xsd: sequence></ xsd: complexType></ xsd: element></ xsl: when></ xsl: choose></ bsd: conditionalChoice
Figure img00140003

When it reads the bitstream, the parser gradually generates an XML tree.

Lorsque) rencontre une variable dans te schéma, par exemple dans un attribut test d'un connecteur if , il évalue cette variable en appliquant le chemin indiqué. When) encounters a variable in the schema, for example in a test attribute of an if connector, it evaluates this variable by applying the specified path.

On notera que le langage XML permet de définir ses propres extensions. Un premier mode de réalisation de l'invention consiste donc à ajouter les nouveaux outils proposés par l'invention comme extensions du langage XML-schema existant. Un autre mode de réalisation de l'invention consiste à redéfinir entièrement un nouveau langage qui reprend des outils de XMLschema et ajoute les nouveaux outils proposés par l'invention. Note that the XML language allows to define its own extensions. A first embodiment of the invention therefore consists in adding the new tools proposed by the invention as extensions of the existing XML-schema language. Another embodiment of the invention is to completely redefine a new language that includes XMLschema tools and adds new tools proposed by the invention.

Sur la figure 3, on a représenté un exemple de système de transmission selon l'invention. Le système de transmission de la figure 3 comporte un serveur SV et une pluralité de clients CT. Le serveur SV et les clients CT sont reliés au réseau Internet WWW. Le serveur SV contient des moyens de mémorisation MEM et des moyens de traitement PROC. Les moyens de mémorisation contiennent notamment un schéma B2, un premier flux binaire Bl, et un programme d'ordinateur PG1 pour la mise en oeuvre d'un procédé d'analyse syntaxique selon l'invention, afin d'obtenir un premier document B4 qui représente le premier flux binaire Bl et qui est une instance du schéma B2. De façon avantageuse, les moyens de mémorisation MEM contiennent aussi un programme d'ordinateur PG2 pour la mise en oeuvre d'un procédé de génération d'un second flux binaire B'l à partir d'un document le représentant B'4, et du schéma B2.  In Figure 3, there is shown an example of a transmission system according to the invention. The transmission system of Figure 3 includes an SV server and a plurality of CT clients. The SV server and the CT clients are connected to the WWW Internet network. The server SV contains memory means MEM and processing means PROC. The storage means contain in particular a diagram B2, a first bit stream B1, and a computer program PG1 for the implementation of a parsing method according to the invention, in order to obtain a first document B4 which represents the first bit stream B1 and which is an instance of the scheme B2. Advantageously, the memory means MEM also contain a computer program PG2 for implementing a method for generating a second bit stream B'1 from a document representing B'4, and of diagram B2.

A titre d'exemple, le document B'4 est obtenu en appliquant une transformation au document B4, ladite transformation dépendant du profile d'un client qui a préalablement requit le transfert d'un flux binaire.  By way of example, the document B'4 is obtained by applying a transformation to the document B4, said transformation depending on the profile of a client that has previously requested the transfer of a bit stream.

<Desc/Clms Page number 15> <Desc / Clms Page number 15>

Figure img00150001

Annexe A : schema
Figure img00150002

< ? xml version="1. 0" encoding="UTF-8" ? > < !-- Schema of a bitsream compliant to : JPEG 2000 Part I Final Draft International Standard ISO/IEC JTCl/SC29 Wog1, JPEG 2000 - - > < xsd : schema targetNamespace="JP2" xmlns : jp2="JP2" xmlns : xsd="http ://www. w3. org/2000/10/XMLSchema" xmlns : bsd="BSDLPrimitiveTypes" xmlns : xsl="http ://www. w3. org/1999/XSL/Transform" elementFormDefault="qualified" > < xsd : include schemaLocation="JP2SimpleTypes. xsd"/ > < !-- Variables-- > < bsd : variables < xsl : variable name="nDecompLevels" > < xsl : value-of select="COD/SPcod/nDecompLevels"/ > < /xsl : variable > < xsl : variable name="Csiz" > < xsl : value-of select="SIZ/Csiz"/ > < /xsl : variable) < xsl : variable name="PrecinctsUsed" > < xsl : value-of select="COD/Scod/PrecinctsUsed"/ > < /xsl : variables < xsl : variable name="Lcoc" > < xsl : value-of select="COC/Lcoc" > < /xsl : variable > < xsl : variable name="Lqcc" > < xsl : value-of select="QCC/Lqcc" > < /xsl : variable > < xsl : variable name="Lrgn" > < xsl : value-of select="RGN/Lrgn" > < /xsl : variable > < xsl : variable name="Lpoc" > < xsl : value-of select="POC/Lpoc" > < /xsl : variable > < xsl : variable name="Lppm" > < xsl : value-of select="PPM/Lppm" > < /xsl : variable > < xsl : variable name="Ltlm" > < xsl : value-of select="TLM/Ltlm" > < /xsl : variable > < xsl : variable name="Lcrg" > < xsl : value-of select="CRG/Lcrg" > < /xsl : variable > < xsl : variable name="Lcom" > < xsl : value-of select="COM/Lcom" > < /xsl : variable > < xsl : variable name="Lqcd" > < xsl : value-of select="QCD/Lqcd" > < /xsl : variable > < xsl : variable name="Lppt" > < xsl : value-of select="PPT/Lppt" > < /xsl : variable >
Figure img00150001

Appendix A: schema
Figure img00150002

<? xml version = "1. 0" encoding = "UTF-8"? ><! - Schema of a bitsream compliant to: JPEG 2000 Part I Final Draft International Standard ISO / IEC JTCl / SC29 Wog1, JPEG 2000 - -><xsd: schema targetNamespace = "JP2" xmlns: jp2 = "JP2" xmlns : xsd = "http: // www .w3 .org / 2000/10 / XMLSchema" xmlns: bsd = "BSDLPrimitiveTypes" xmlns: xsl = "http: // www .w3 .org / 1999 / XSL / Transform" elementFormDefault = "qualified"><xsd: include schemaLocation = "JP2SimpleTypes. xsd"/><! - Variables--><bsd: variables <xsl: variable name = "nDecompLevels"><xsl: value-of select = "COD / SPcod / nDecompLevels "/></ xsl: variable><xsl: variable name =" Csiz "><xsl: value-of select =" SIZ / Csiz "/></ xsl: variable) <xsl: variable name =" PrecinctsUsed "><xsl: value-of select =" COD / Scod / PrecinctsUsed "/></ xsl: variables <xsl: variable name =" Lcoc "><xsl: value-of select =" COC / Lcoc ">< / xsl: variable><xsl: variable name = "Lqcc"><xsl: value-of select = "QCC / Lqcc"></ xsl: variable><xsl: variable name = "Lrgn"><xsl: value- of select = "RGN / Lrgn"></ xsl: variable><xsl: variable name = "Lpoc"><xsl: value-of select = "POC / Lpoc"></ xsl: variable><xsl: variable name = " Lppm "><xsl: value-of select =" PPM / Lppm "></ xsl: variable><xsl: name variable =" Ltlm "><xsl: value-of select =" TLM / Ltlm "></ xsl : variable><xsl: variable name = "Lcrg"><xsl: value-of select = "CRG / Lcrg"></ xsl: variable><xsl: variable name = "Lcom"><xsl: value-of select = "COM / Lcom"></ xsl: variable><xsl: variable name = "Lqcd"><xsl: value-of select = "QCD / Lqcd"></ xsl: variable><xsl: variable name = " Lppt "><xsl: value-of select =" PPT / Lppt "></ xsl: variable>

<Desc/Clms Page number 16> <Desc / Clms Page number 16>

Figure img00160001

< xsl : variable name=nLplt" > < xsl : value-of select="PLT/Lplt" > < /xsl : variable > < /bsd : variables < !-- &num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num; Codestream Element Declaration &num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;-- > < xsd : element name="Codestream"type="jp2 : CodestreamType"/ > < !-- &num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num; Codestream complex type < xsd : complexType name="CodestreamType" > < xsd : sequence > < xsd : element name="MainHeader"type="jp2 : MainHeaderType"/ > < xsd : element name="Tile"type="jp2 : TileType"/ > < xsd : element name="EOC"type="jp2 : EOCType"/ > < /xsd : sequence > < /xsd : complexType > e ! -- &num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num; MainHeader complex type < xsd : complexType name="MainHeaderType" > < xsd : sequence > < xsd : element name="SOC"type="jp2 : SOCType"/ > < xsd : element name==="SIZ"type="jp2 : SIZType"/ > < xsd : group > < xsd : all > < xsd : element name="COD"type="jp2 : CODType"minOccurs="0"/ > < xsd : element name="QCD"type="jp2 : QCDType"minOccurs="0"/ > < xsd : element name="COC"type="jp2 : COCType"minOccurs="0"/ > < xsd : element name="QCC"type="jp2 : QCCType"minOccurs="0"/ > exsd : element name="RGN" type="jp2 : RGNType" minOccurs="O"/ > < xsd : element name="POC"type="jp2 : POCType"minOccurs="0"/ > < xsd : element name="PPM"type="jp2 : PPMType"minOccurs="0"/ > < xsd : element name="TLM"type="jp2 : TLMType"minOccurs="0"/ > < xsd : element name="PLM"type="jp2 : PLMType"minOccurs="0"/ > < xsd element name="CRG"type="jp2 : CRGType"minOccurs="0"/ > < xsd : element name="COM"type="jp2 : COMType"minOccurs="0"/ > < /xsd : all > < /xsd : group > < /xsd : sequence > < /xsd : complexType > < !-- &num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num; Tile complex type &num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;-- > < xsd : complexType name="TileType" > < xsd : sequence > < xsd : element name="TileHeader"type="jp2 : TileHeaderType"/ > < xsd : element name="Bitstream"type="jp2 : BitstreamType"/ > < /xsd : sequence > < /xsd : complexType > < !-- &num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num; TileHeader complex type &num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;-- > < xsd : complexType name="TileHeaderType" > < xsd : sequence > < xsd : element name="SOT"type="jp2 : SOTType"/ > < xsd : group > < xsd : all > < xsd : element name="COD"type="jp2 : CODType"minOccurs="0"/ > < xsd : element name="COC"type="jp2 : COCType"minOccurs="0"/ > < xsd : element name="QCD"type="jp2 : QCDType"minOccurs="0"/ > < xsd : element name="QCC"type="jp2 : QCCType"minOccurs="0"/ > < xsd : element name="RGN"type="jp2 : RGNType"minOccurs="0"/ > < xsd : element name="POC"type="jp2 : POCType"minOccurs="0"/ > < xsd : element name="PPT"type="jp2 : PPTType"minOccurs="0"/ > < xsd : element name="PLT"type="jp2 : PLTType"minOccurs="0"/ > < xsd : element name="COM"type="jp2 : COMType"minOccurs="0"/ > < /xsd : all > < /xsd : group > < xsd : element name="SOD"type="jp2 : SODType"/ > < /xsd : sequence >
Figure img00160001

<xsl: variable name = nLplt "><xsl: value-of select =" PLT / Lplt "></ xsl: variable></ bsd: variables <! - &num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num; Codestream Element Declaration &num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;-><xsd: element name = "Codestream" type = "jp2: CodestreamType"/><! - &num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num; Codestream complex type <xsd: complexType name = "CodestreamType"><xsd:sequence><xsd: element name = "MainHeader" type = "jp2: MainHeaderType"/><xsd: element name = "Tile" type = "jp2: TileType"/><xsd: element name = "EOC" type = "jp2: EOCType"/></ xsd: sequence></ xsd: complexType> e! - &num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num; MainHeader complex type <xsd: complexType name = "MainHeaderType"><xsd:sequence><xsd: element name = "SOC" type = "jp2: SOCType"/><xsd: eleme nt name === "SIZ" type = "jp2: SIZType"/> xsd: group> xsd: all> xsd: element name = "COD" type = "jp2: CODType" minOccurs = "0"/><xsd: element name = "QCD" type = "jp2: QCDType" minOccurs = "0"/><xsd: element name = "COC" type = "jp2: COCType" minOccurs = "0"/><xsd: element name = "QCC" type = "jp2: QCCType" minOccurs = "0"/> exsd: element name = "RGN" type = "jp2: RGNType" minOccurs = "O"/><xsd: element name = "POC" type = "jp2: POCType" minOccurs = "0"/><xsd: element name = "PPM" type = "jp2: PPMType" minOccurs = "0"/> xsd: element name = "TLM" type = "jp2 : TLMType "minOccurs =" 0 "/><xsd: element name =" PLM "type =" jp2: PLMType "minOccurs =" 0 "/><xsd element name =" CRG "type =" jp2: CRGType "minOccurs = "0"/><xsd: element name = "COM" type = "jp2: COMType" minOccurs = "0"/></ xsd: all></ xsd: group></ xsd: sequence></ xsd: complexType><! - &num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num; Tile complex type &num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;-><xsd: complexType name = "TileType "><xsd:sequence><xsd: element name =" TileHeader "type =" jp2: TileHeaderType "/><xsd: element name =" Bitstream "type =" jp2: BitstreamType "/></ xsd: sequence>< / xsd: complexType><! - &num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num; TileHeader complex type &num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;-><xsd: complexType name = "TileHeaderType "<xsd: sequence><xsd: element name =" SOT "type =" jp2: SOTType "/><xsd:group><xsd:all><xsd: element name =" COD "type =" jp2: CODType "minOccurs =" 0 "/><xsd: element name =" COC "type =" jp2: COCType "minOccurs =" 0 "/><xsd: element name =" QCD "type =" jp2: QCDType "minOccurs =" 0 "/><xsd: element name =" QCC "type =" jp2: QCCType "minOccurs =" 0 "/><xsd: element name =" RGN "type =" jp2: RGNType "minOccurs =" 0 "/><xsd: element name = "POC" type = "jp2: POCType" minOccurs = "0"/><xsd: element name = "PPT" type = "jp2: PPTType" minOccurs = "0"/><xsd: element name = "PLT" type = "jp2: PLTType" minOccurs = "0"/><xsd: element name = "COM" type = "jp2: COMType" minOccurs = "0"/></ xsd: all></ xsd: group><xsd: element name = "SOD" type = "jp2: SODType"/></ xsd: sequence>

<Desc/Clms Page number 17> <Desc / Clms Page number 17>

Figure img00170001

< /xsd : complexType > < !-- Bitstream complex type < xsd : complexType name="BitstreamType" > < xsd : sequence > < xsd : element name="Packet"max0ccurs="unbounded" > < xsd : complexType > < xsd : sequence > < xsd : element name="SOP"type="jp2 : SOPType"/ > < xsd : element name="Data" > < xsd : simpleType > < xsd : union memberTypes="jp2 : packetDataType"/ > < /xsd : simpleType > < /xsd : element > < /xsd : sequence > < /xsd : complexType < /xsd : element > < /xsd : sequence < /xsd : complexType < 1-- &num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num; -- > Marker Segments SOC complex type < 1-- &num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num; SOC complex type &num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;-- > < xsd : complexType name="SOCType" > < xsd : sequence < xsd : element name="Marker"type="jp2 : markerType" fixed="ff4f"/ > < /xsd : sequence > < /xsd : complexType > < !-- &num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num; SIZ complex type < xsd : complexType name="SIZType" > < xsd : sequence > < xsd : element name="Marker"type="jp2 : markerType"fixed="ff51"/ > < xsdélémentname="Lsiz"type="xsd unsignedShort"/ > < xsdélémentname="Rsiz"type="xsd unsignedShort"/ > < xsdélémentname="Xsiz"type="xsd unsignedlnt"/ > < xsdélémentname="Ysiz"type="xsd unsignedlnt"/ > < xsdélémentname="XOsiz"type="xsd unsignedlnt"/ > < xsdélémentname="YOsiz"type="xsd unsignedlnt"/ > < xsd : element name="XTsiz"type="xsd : unsignedInt"/ > < xsdélémentname="YTsiz"type="xsd unsignedlnt"/ > < xsdélémentname="XTOsiz"type="xsd unsignedlnt"/ > < xsdélémentname="YTOsiz"type="xsd unsignedlnt"/ > < xsdélémentname="Csiz"type="xsd unsignedShort"/ > < xsd : element name="Comp~siz"minOccurs="$Csiz"maxOccurs="$Csiz" > < xsd : complexType > < xsd : sequence > < xsd : element name="Ssiz" > < xsd : complexType > < xsd : sequence > < xsd : element name="sign"type="jp2 : lb"/ > < xsd : element name="bitDepth"type="jp2 : 7b"/ > < /xsd : sequence < /xsd : complexType > < /xsd : element > < xsd : element name="XRsiz"type="xsd : unsignedByte"/ > < xsd : element name="YRsiz"type="xsd : unsignedByte"/ > < /xsd : sequence > < /xsd : complexType > < /xsd : element > < /xsd : sequence < /xsd : complexType > < !-- COD complex type < xsd : complexType name="CODType" >
Figure img00170001

</ xsd: complexType><! - Bitstream complex <xsd: complexType name = "BitstreamType"><xsd:sequence><xsd: element name = "Packet" max0ccurs = "unbounded"><xsd:complexType><xsd : sequence><xsd: element name = "SOP" type = "jp2: SOPType"/><xsd: element name = "Data"><xsd:simpleType><xsd: union memberTypes = "jp2: packetDataType"/>< / xsd: simpleType></ xsd: element></ xsd: sequence></ xsd: complexType </ xsd: element></ xsd: sequence </ xsd: complexType <1-- &num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;-> Marker Segments SOC complex type <1-- &num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num; SOC complex type &num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;-><xsd: complexType name = "SOCType "><xsd: sequence <xsd: element name =" Marker "type =" jp2: markerType "fixed =" ff4f "/></ xsd: sequence></ xsd: complexType><! - &num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num; SIZ complex type <xsd: complexType name = "SIZType"><xsd:sequence><xsd: element name = "Marker" type = "jp2: markerType" fixed = "ff51"/><xnameofname = "Lsiz" type = " xsd unsignedShort "/><xsdelementname=" Rsiz "type =" xsd unsignedShort "/><xsdelementname=" Xsiz "type =" xsd unsignedlnt "/><xsdelementname=" Ysiz "type =" xsd unsignedlnt "/><xsdelementname = "XOsiz" type = "xsd unsignedlnt"/><xsdelementname = "YOsiz" type = "xsd unsignedlnt"/><xsd: element name = "XTsiz" type = "xsd: unsignedInt"/><xsdelementname = "YTsiz" type = "xsd unsignedlnt"/><xsdelementname = "XTOsiz" type = "xsd unsignedlnt"/><xsdelementname = "YTOsiz" type = "xsd unsignedlnt"/><xsdelementname = "Csiz" type = "xsd unsignedShort"/>< xsd: element name = "Comp" s "minOccurs =" $ Csiz "maxOccurs =" $ Csiz "><xsd:complexType><xsd:sequence><xsd: element name =" Ssiz "><xsd:complexType><xsd : sequence><xsd: element name = "sign" type = "jp2: lb"/><xsd: element name = "bitDepth" type = "jp2: 7b"/></ x sd: sequence </ xsd: complexType></ xsd: element><xsd: element name = "XRsiz" type = "xsd: unsignedByte"/><xsd: element name = "YRsiz" type = "xsd: unsignedByte" / </ xsd: sequence></ xsd: complexType></ xsd: element></ xsd: sequence </ xsd: complexType><! - complex COD type <xsd: complexType name = "CODType">

<Desc/Clms Page number 18> <Desc / Clms Page number 18>

Figure img00180001

< xsd : sequence > < xsd : element name="Marker"type="jp2 : markerType" fixed="ff52"/ > < xsd : element name="Lcod"t : ype="xsd : unsignedShort"/ > < xsd : element name="Scod" > < xsd : complexType > < xsd : sequence > < xsd : element name="EPHMarkersUsed"type="jp2 : Splb"/ > < xsd : element name="SOPMarkersUsed"type="jp2 : lb"/ > < xsd : element name="PrecinctsUsed"type="jp2 : lb"/ > < /xsd : sequence > < /xsd : complexType > < /xsd : element > < xsd : element name="SGcod" > < xsd : complexType > < xsd : sequence > < xsd : element name="progType"type="xsd : unsignedByte"/ > < xsd : element name="numLayers"type="xsd : unsignedShort"/ > < xsd : element name="mct"type="xsd : unsignedByte"/ > < /xsd : sequence > < /xsd : complexType > < /xsd : elements < xsd : element name="SPcod" > < xsd : complexType > < xsd : sequence > < xsd : element name="nDecompLevels"type="xsd : unsignedByte"/ > < xsd : element name="codeBlockWidth"type="jp2 : 4p4b"/ > < xsd : element name="codeBlockHeight"type="jp2 : 4p4b"/ > < xsd : element name="codeBlockStyle" > < xsd : complexType > < xsd : sequence > < xsd : element name="optSegMarkers"tyBe="jp2 : 2plb"/ > < xsd : element name="optErTerm"type="jp2 : lb"/ > < xsd : element name="optVertStrCausal"type="jp2 : lb"/ > < xsdélémentname="optRegTerm"type="jp2 lb"/ > < xsdélémentname="optResetMQ"type="jp2 lb"/ > < xsd : element name="optByPass"type="jp2 : lb"/ > < /xsd : sequence > < /xsd : complexType > < /xsd : element > < xsd : element name="Transformation"type="xsd : unsignedByte"/ > < xsl : if test="$PrecinctsUsed=l" > < xsd : element name="PrecinctSize"min0ccurs="0" > < xsd : complexType > < xsd : sequence > < xsd : element name="PPy"type="jp2 : 4b"/ > < xsd : element name="PPx"type="jp2 : 4b"/ > < /xsd : sequence > < /xsd : complexType > < /xsd : element > < /xsd : sequence > < /xsl : if > < /xsd : complexType > < /xsd : éléments < /xsd : sequence > < /xsd : complexType > < !-- &num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num; QCD complex types < xsd : complexType name="QCDType" > < xsd : sequence > < xsd : element name="Marker"type="jp2 : markerType" fixed="ff5c"/ > < xsd : element name="Lqcd"type="xsd : unsignedShort"/ > < xsd : element name="Sqcd" > < xsd : complexType > < xsd : sequence > < xsd : element name="guardBits"type="jp2 : 3b"/ >
Figure img00180001

<xsd: sequence><xsd: element name = "Marker" type = "jp2: markerType" fixed = "ff52"/> xsd: element name = "Lcod" t: ype = "xsd: unsignedShort"/><xsd : element name = "Scod"><xsd:complexType><xsd:sequence><xsd: element name = "EPHMarkersUsed" type = "jp2: Splb"/><xsd: element name = "SOPMarkersUsed" type = "jp2: lb "/><xsd: element name =" PrecinctsUsed "type =" jp2: lb "/></ xsd: sequence></ xsd: complexType></ xsd: element><xsd: element name =" SGcod "><xsd:complexType><xsd:sequence><xsd: element name = "progType" type = "xsd: unsignedByte"/><xsd: element name = "numLayers" type = "xsd: unsignedShort"/><xsd: element name = "mct" type = "xsd: unsignedByte"/></ xsd: sequence></ xsd: complexType></ xsd: elements <xsd: element name = "SPcod"><xsd:complexType><xsd: sequence <xsd: element name = "nDecompLevels" type = "xsd: unsignedByte"/> xsd: element name = "codeBlockWidth" type = "jp2: 4p4b"/><xsd: element name = "codeBlockHeight" type = "j p2: 4p4b "/><xsd: element name =" codeBlockStyle "><xsd:complexType><xsd:sequence><xsd: element name =" optSegMarkers "tyBe =" jp2: 2plb "/><xsd: element name = "optErTerm" type = "jp2: lb"/><xsd: element name = "optVertStrCausal" type = "jp2: lb"/><xsofname = "optRegTerm" type = "jp2 lb"/><xsofname = "optResetMQ" type = "jp2 lb"/><xsd: element name = "optByPass" type = "jp2: lb"/></ xsd: sequence></ xsd: complexType></ xsd: element><xsd: element name = "Transformation" type = "xsd: unsignedByte"/><xsl: if test = "$ PrecinctsUsed = l"><xsd: element name = "PrecinctSize" min0ccurs = "0"><xsd:complexType><xsd:sequence><xsd: element name = "PPy" type = "jp2: 4b"/> xsd: element name = "PPx" type = "jp2: 4b"/></ xsd: sequence></ xsd: complexType></ xsd: element></ xsd: sequence></ xsl: if></ xsd: complexType></ xsd: elements </ xsd: sequence></ xsd: complexType><! - &num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;& n um; &num;&num;&num;&num;&num;&num; QCD complex types <xsd: complexType name = "QCDType"><xsd:sequence><xsd: element name = "Marker" type = "jp2: markerType" fixed = "ff5c"/><xsd: element name = "Lqcd" type = "xsd: unsignedShort"/> xsd: element name = Sqcd> xsd: complexType xsd: sequence xsd: element name = guardBits type = "jp2: 3b"/>

<Desc/Clms Page number 19> <Desc / Clms Page number 19>

Figure img00190001

< xsd : element name="quantStyle"type="jp2 : 5b"/ > < /xsd : sequence > < /xsd : complexType > < /xsd : element > < bsd : conditionalChoice > < xsl : choose > < xsl : when test="QCD/Sqcd/quantStyle ='0"' > < xsd : element name="Spqcdl"minOccurs="3*$nDecompLevels+l" max0ccurs="3 * $nDecompLevels+1" > < xsd : complexType > < xsd : sequence > < xsd : element name="exponent"type="jp2 : 5b3p"/ > < /xsd : sequence > < /xsd : complexType > < /xsd : éléments < /xsl : when > < xsl : when test="QCD/Sqcd/quantStyle =' !'" > < xsd : element name="Spqcd~2"minOccurs="l"max0ccurs="l" > < xsd : complexType > < xsd : sequence > < xsd : element name="exponent"type="jp2 : 5b"/ > < xsd : element name="mantissa"type="jp2 : llb"/ > < /xsd : sequence > < /xsd : complexType < /xsd : element > < /xsl : when > < xsl : when test="QCD/Sqcd/quantStyle ='2"' > < xsd : element name="Spqcd3"minOccurs="3*$nDecompLevels+l" maxOccurs="3*$nDecompLevels+l " > < xsd : complexType > < xsd : sequence > < xsd : element name="exponent"type="jp2 : 5b"/ > < xsd : element name="mantissa"type="jp2 : llb"/ > < /xsd : sequence > < /xsd : complexType > < /xsd : element > < /xsl : when > < /xsl : choose > < /bsd : conditionalChoice > < /xsd : sequence > < /xsd : complexType > < !-- &num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num; < t&num;&num;&num;&num; SOT complex type < xsd : complexType name="SOTType" > < xsd : sequence > < xsd : element name="Marker"type="jp2 : markerType"fixed="ff90"/ > < xsd : element name="Lsot"type="xsd : unsignedShort"fixed="10"/ > < xsdélémentname="Isot"type="xsd unsignedshort"/ > < xsd : element name="Psot"type="xsd : unsignedlnt"/ > < xsdélémentname="TPsot"type="xsd unsignedByte"/ > < xsdélémentname="TNsot"type="xsd unsignedByte"/ > < /xsd : sequence > < /xsd : complexType > < !-- SOD complex type &num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;-- > < xsd : complexType name="SODType" > < xsd : sequence > < xsd : element name="Marker"type="jp2 : markerType" fixed="ff93"/ > < /xsd : sequence > < /xsd : complexType > < !-- SOP complex types < xsd : complexType name="SOPType" > < xsd : sequence
Figure img00190001

<xsd: element name = "quantStyle" type = "jp2: 5b"/></ xsd: sequence></ xsd: complexType></ xsd: element><bsd:conditionalChoice><xsl:choose><xsl: when test = "QCD / Sqcd / quantStyle = '0"'><xsd: element name = "Spqcdl" minOccurs = "3 * $ nDecompLevels + l" max0ccurs = "3 * $ nDecompLevels + 1"><xsd:complexType>< xsd: sequence><xsd: element name = "exponent" type = "jp2: 5b3p"/></ xsd: sequence></ xsd: complexType></ xsd: elements </ xsl: when><xsl: when test = "QCD / Sqcd / quantStyle = '!'"><Xsd: element name = "Spqcd ~ 2" minOccurs = "l" max0ccurs = "l"><xsd:complexType><xsd:sequence><xsd: element name = "exponent" type = "jp2: 5b"/><xsd: element name = "mantissa" type = "jp2: llb"/></ xsd: sequence></ xsd: complexType </ xsd: element></ xsl: when><xsl: when test = "QCD / Sqcd / quantStyle = '2"'><xsd: element name = "Spqcd3" minOccurs = "3 * $ nDecompLevels + l" maxOccurs = "3 * $ nDecompLevels + l "<xsd: complexType><xsd:sequence><xsd: element name = "exponent" type = "jp2: 5b"/> xsd: element name = "mantissa" type = "jp2: llb"/></ xsd: sequence></ xsd: complexType></ xsd: element>< / xsl: when></ xsl: choose></ bsd: conditionalChoice></ xsd: sequence></ xsd: complexType><! - &num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;<t&num;&num;&num;&num; SOT complex type <xsd: complexType name = "SOTType"><xsd:sequence><xsd: element name = "Marker" type = "jp2: markerType" fixed = "ff90"/><xsd: element name = "Lsot" type = "xsd: unsignedShort" fixed = "10"/><xsdelenamename = "Isot" type = "xsd unsignedshort"/><xsd: element name = "Psot" type = "xsd: unsignedlnt"/><xsdelementname = " TPsot "type =" xsd unsignedByte "/><xsdname=" TNsot "type =" xsd unsignedByte "/></ xsd: sequence></ xsd: complexType><! - SOD complex type &num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;-><xsd: complexType name = "SODType"><xsd:sequence><xsd: element name = "Marker" type = "jp2: markerType" fixed = "ff93"/></ xsd: sequence></ xsd: complexType><! - SOP complex types <xsd: complexType name = "SOPType">< xsd: sequence

<Desc/Clms Page number 20> <Desc / Clms Page number 20>

Figure img00200001

< xsd : element name="Marker"type="jp2 : markerType" fixed="ff91"/ > < xsd : element name="Lsop"type="xsd : unsignedShort" fixed="4"/ > < xsd : element name="Nsop"type="xsd : unsignedShort"/ > < /xsd : sequence > < /xsd : complexType > < ! -- &num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num; EOC complex types < xsd : complexType name="EOCType" > < xsd : sequence > < xsd : element name="Marker"type="jp2 : markerType" fixed="ffd9"/ > < /xsd : sequence > < /xsd : complexType > < !--&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;-- > < !-- Non implemented Marker Segments < ! -- &num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num; -- > < '--For the following markers, different parameters are not read individually because they are not needed in the application.
Figure img00200001

<xsd: element name = "Marker" type = "jp2: markerType" fixed = "ff91"/> xsd: element name = "Lsop" type = "xsd: unsignedShort" fixed = "4"/><xsd: element name = "Nsop" type = "xsd: unsignedShort"/></ xsd: sequence></ xsd: complexType><! - &num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num; EOC complex types <xsd: complexType name = "EOCType"><xsd:sequence><xsd: element name = "Marker" type = "jp2: markerType" fixed = "ffd9"/></ xsd: sequence></ xsd : complexType><! - &num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;-><! - Not implemented Marker Segments <! - &num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;-><'--For the following markers, different parameters are not read individually because they are not needed in the application.

Instead, the marker segment content is read as a whole using the length information given after the marker-- > < !-- COC complex types < xsd : complexType name="COCType" > < xsd : sequence > < xsd : element name="Marker"type="jp2 : markerType" fixed="ff53"/ > < xsd : element name="Lcoc"type="xsd : unsignedShort"/ > < xsd : element name="data" > < xsd : simpleType > < xsd : restriction base="xsd : binary" > < xsd : length value="$Lcoc"/ > < xsd : encoding value="base64"/ > < /xsd : restriction < /xsd : simpleType > < /xsd : element > < /xsd : sequence > < /xsd : complexType > < !-- &num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num; QCC complex types < xsd : complexType name="QCCType" > < xsd : sequence > < xsd : element name="Marker"type="jp2 : markerType" fixed="ff5d"/ > < xsd : element name="Lqcc"type="xsd : unsignedShort"/ > < xsd : element name="data" > < xsd : simpleType > < xsd : restriction base="xsd : binary" > < xsd : length value="$Lqcc"/ > < xsd : encoding value="base64"/ > < /xsd : restriction > < /xsd : simpleType > < /xsd : element > < /xsd : sequence > < /xsd : complexType > < !-- RGN complex type-- > < xsd : complexType name="RGNType" > < xsd : sequence > < xsd : element name="Marker"type="jp2 : markerType" fixed="ff5e"/ > < xsd : element name="Lrgn"type="xsd : unsignedShort"/ > < xsd : element name="data" > < xsd : simpleType > < xsd : restriction base="xsd : binary" > < xsd : length value="$Lrgn"/ > < xsd : encoding value="base64"/ > < /xsd : restriction > < /xsd : simpleType > Instead, the marker segment is read by the marker -> <! - COC complex types <xsd: complexType name = "COCType"> <xsd: sequence> <xsd: element name = "Marker" type = "jp2: markerType" fixed = "ff53" /> xsd: element name = "Lcoc" type = "xsd: unsignedShort" <xsd: element name = "data"> <xsd: simpleType> <xsd: base restriction = "xsd: binary"> <xsd: length value = "$ Lcoc" /> xsd: encoding value = "base64" /> </ xsd: restriction </ xsd: simpleType> </ xsd: element> </ xsd: sequence> </ xsd: complexType> <! - &num; &num; &num; &num; &num; &num; &num; &num; &num; &num; &num; &num; &num; &num; QCC complex types <xsd: complexType name = "QCCType"> <xsd: sequence> <xsd: element name = "Marker" type = "jp2: markerType" fixed = "ff5d" /> <xsd: element name = "Lqcc" type = "xsd: unsignedShort" /> <xsd: element name = "data"> <xsd: simpleType> <xsd: base restriction = "xsd: binary"> <xsd: length value = "$ Lqcc" /> <xsd : encoding value = "base64" /> </ xsd: restriction> </ xsd: simpleType> </ xsd: element> </ xsd: sequence> </ xsd: complexType> <! - RGN complex type--> < xsd: complexType name = "RGNType"> <xsd: sequence> <xsd: element name = "Marker" type = "jp2: markerType" fixed = "ff5e" / <xsd: element name = "Lrgn" type = "xsd : unsignedShort "/> <xsd: element name =" data "> <xsd: simpleType> <xsd: base =" xsd: binary "> <xsd: length value =" $ Lrgn "/> <xsd: encoding value = "base64" /> </ xsd: restriction> </ xsd: simpleType>

<Desc/Clms Page number 21> <Desc / Clms Page number 21>

Figure img00210001

< /xsd : element > < /xsd : sequence < /xsd : complexType < i--POC complex type &num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;-- > < xsd : complexType name="POCType" > < xsd : sequence > < xsd : element name="Marker"type="jp2 : markerType" fixed="ff5f"/ > < xsd : element name="Lpoc"type="xsd : unsignedShort"/ > < xsd : element name="data" > < xsd : simpleType > < xsd : restriction base="xsd : binary" > < xsd : length value="$Lpoc"/ > < xsd : encoding value="base64"/ > < /xsd : restriction, < /xsd : simpleType > < /xsd : éléments < /xsd : sequence > < /xsd : complexType > < !-- PPM complex type-- > < xsd : complexType name="PPMType" > < xsd : sequence > < xsd : element name="Marker"type="jp2 : markerType" fixed="ff60"/ > < xsd : element name="Lppm"type="xsd : unsignedShort"/ > < xsd : element name="data" > < xsd : simpleType < xsd : restriction base="xsd : binary" > < xsd : length value="$Lppm"/ > < xsd : encoding value="base64"/ > < /xsd : restriction < /xsd : simpleType < /xsd : elements < /xsd : sequence < /xsd : complexType < !-- TLM complex type &num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;-- > < xsd : complexType name="TLMType" > < xsd : sequence > < xsd : element name="Marker"type="jp2 : markerType" fixed="ff55"/ > < xsd : element name="Ltlm"type="xsd : unsignedShort"/ > < xsd : element name="data" > < xsd : simpleType > < xsd : restriction base="xsd : binary" > < xsd : length value="$Ltlm"/ > < xsd : encoding value="base64"/ > < /xsd : restriction > < /xsd : simpleType > < /xsd : element > < /xsd : sequence < /xsd : complexType > < !-- PLM complex type &num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;-- > < xsd : complexType name="PLMType" > < xsd : sequence > < xsd : element name="Marker"type="jp2 : markerType" fixed="ff57"/ > < xsd : element name="Lplm"type="xsd : unsignedShort"/ > < xsd : element name="data" > < xsd : simpleType > < xsd : restriction base="xsd : binary" > < xsd : length value="$Lplm"/ > < xsd : encoding value="base64"/ > < /xsd : restriction > < /xsd : simpleType
Figure img00210001

</ xsd: element></ xsd: sequence </ xsd: complexType <i - POC complex type &num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;-><xsd: complexType name = "POCType"><xsd:sequence><xsd: element name = "Marker" type = "jp2: markerType" fixed = "ff5f"/><xsd: element name = "Lpoc" type = "xsd: unsignedShort"/><xsd: element name = "data"><xsd:simpleType><xsd: base restriction = "xsd: binary"><xsd: length value = "$ Lpoc"/><xsd: encoding value = "base64"/></ xsd: restriction, </ xsd: simpleType></ xsd: elements </ xsd: sequence></ xsd: complexType><! - - PPM complex type--><xsd: complexType name = "PPMType"><xsd:sequence><xsd: element name = "Marker" type = "jp2: markerType" fixed = "ff60"/><xsd: element name = "Lppm" type = "xsd: unsignedShort"/><xsd: element name = "data"><xsd: simpleType <xsd: base restriction = "xsd: binary"><xsd: length value = "$ Lppm" / ><xsd: encoding value = "base64"/></ xsd: restriction </ xsd: simpleType </ xsd: elements </ xsd: sequence </ xsd: complexType <! - TLM complex type &num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;-><xsd: complexType name = "TLMType"><xsd:sequence><xsd: element name = "Marker" type = "jp2: markerType" fixed = "ff55"/><xsd: element name = "Ltlm" type = "xsd: unsignedShort"<xsd: element name = "data"><xsd:simpleType><xsd: base = "xsd: binary"><xsd: length value = "$ Ltlm"/><xsd: encoding value = "base64"/></ xsd: restriction></ xsd: simpleType></ xsd: element></ xsd: sequence </ xsd: complexType><! - PLM complex type &num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;-><xsd : complexType name = "PLMType"><xsd:sequence><xsd: element name = "Marker" type = "jp2: markerType" fixed = "ff57"/> xsd: element name = "Lplm" type = "xsd: unsignedShort "/><xsd: element name =" data "><xsd: simpleTy pe><xsd: base restriction = "xsd: binary"><xsd: length value = "$ Lplm"/> xsd: encoding value = "base64"/></ xsd: restriction></ xsd: simpleType

<Desc/Clms Page number 22> <Desc / Clms Page number 22>

Figure img00220001

< /xsd : element > < /xsd : sequence > < /xsd : complexType > < !-- CRG complex type &num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;-- > < xsd : complexType name="CRGType" > < xsd : sequence > < xsd : element name="Marker"type="jp2 : markerType" fixed="ff63"/ > < xsd : element name="Lcrg"type="xsd : unsignedShort"/ > < xsd : element name="data" > < xsd : simpleType > < xsd : restriction base="xsd : binary < xsd : length value="$Lcrg"/ > < xsd : encoding value="base64"/ > < /xsd : restriction > < /xsd : simpleType > < /xsd : element > < /xsd : sequence > < /xsd : complexType > < !-- &num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num; COM complex type &num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;-- > < xsd : complexType name="COMType" > < xsd : sequence > < xsd : element name="Marker"type="jp2 : markerType" fixed="ff64"/ > < xsd : element name="Lcom"type="xsd : unsignedShort"/ > < xsd : element name="data" > < xsd : simpleType > < xsd : restriction base="xsd : binary" > < xsd : length value="$Lcom"/ > < xsd : encoding value="base64"/ > < /xsd : restriction < /xsd : simpleType > < /xsd : éléments < /xsd : sequence > < /xsd : complexType > < :-- &num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num; ppT complex type < xsd : complexType name="PPTType" > < xsd : sequence > < xsd : element name="Marker"type="jp2 : markerType" fixed="ff61"/ > < xsd : element name="Lppt"type="xsd : unsignedShort"/ > < xsd : element name="data" > < xsd : simpleType > < xsd : restriction base="xsd : binary" > < xsd : length value="$Lppt"/ > < xsd : encoding value="base64"/ > < /xsd : restriction > < /xsd : simpleType > < /xsd : element > < /xsd : sequence > < /xsd : complexType > < !-- PLT complex type-- > < xsd : complexType name="PLTType" > < xsd : sequence > < xsd : element name="Marker"type="jp2 : markerType" fixed="ff58"/ > < xsd : element name="Lplt"type="xsd : unsignedShort"/ > < xsd : element name="data" > < xsd : simpleType > < xsd : restriction base="xsd : binary" > < xsd : length value="$Lplt"/ > < xsd : encoding value="base64"/ > < /xsd : restriction > < /xsd : simpleType >
Figure img00220001

</ xsd: element></ xsd: sequence></ xsd: complexType><! - CRG complex type &num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;-><xsd: complexType name = "CRGType"><xsd:sequence><xsd: element name = "Marker" type = "jp2: markerType" fixed = "ff63"/><xsd: element name = "Lcrg" type = "xsd: unsignedShort"/><xsd: element name = "data"><xsd:simpleType><xsd: base restriction = "xsd: binary <xsd: length value = "$ Lcrg"/><xsd: encoding value = "base64"/></ xsd: restriction></ xsd: simpleType></ xsd: element></ xsd: sequence></ xsd: complexType><! - &num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num; COM complex type &num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;-><xsd: complexType name = "COMType"><xsd:sequence><xsd: element name = "Marker" type = "jp2: markerType" fixed = "ff64"/> xsd: element name = "Lcom" type = "xsd: u nsignedShort "/><xsd: element name =" data "><xsd:simpleType><xsd: base restriction =" xsd: binary "><xsd: length value =" Lcom $ "/><xsd: encoding value =" base64 "/></ xsd: restriction </ xsd: simpleType></ xsd: elements </ xsd: sequence></ xsd: complexType><: - &num;&num;&num;&num;&num;&num;&num;&num;&num;&num; ppT complex type <xsd: complexType name = "PPTType"><xsd:sequence><xsd: element name = "Marker" type = "jp2: markerType" fixed = "ff61"/><xsd: element name = "Lppt" type = "xsd: unsignedShort"/><xsd: element name = "data"><xsd:simpleType><xsd: base restriction = "xsd: binary"><xsd: length value = "$ Lppt"/><xsd : encoding value = "base64"/></ xsd: restriction></ xsd: simpleType></ xsd: element></ xsd: sequence></ xsd: complexType><! - PLT complex type-->< xsd: complexType name = "PLTType"><xsd:sequence><xsd: element name = "Marker" type = "jp2: markerType" fixed = "ff58"/> xsd: element name = "Lplt" type = "xsd : unsignedShort "/><xsd: element name =" data "><xsd:simpleType><xsd: base =" xsd: binary "><xsd: length value =" $ Lplt "/><xsd: encoding value = "base64"/></ xsd: restriction></ xsd: simpleType>

<Desc/Clms Page number 23> <Desc / Clms Page number 23>

Figure img00230001

< /xsd : element > < /xsd : sequence > < /xsd : complexType > < /xsd : schema >
Figure img00230001

</ xsd: element></ xsd: sequence></ xsd: complexType></ xsd: schema>

<Desc/Clms Page number 24> <Desc / Clms Page number 24>

Figure img00240001

Annexe B : Type simples utilisés dans le schéma
Figure img00240002

< ? xml version="1. O" encoding="UTF-8" ? > < xsd : schema targetNamespace="JP2" xmlns : jp2="JP2" xmlns : xsd="http ://www. w3. org/2000/10/XML5chema" xmlns : bsd="BSDLPrimitiveTypes" elementFormDefault="qualified" > < xsd : import namespace=""schemaLocation="BSDIjPrimitiveTypes. xsd"/ > < 1-- &num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num; Simple Types Definition &num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num; -- > Simple Types Definition markertype < xsd : simpleType name="markerType" > < xsd : restriction base="xsd : binary" > < xsd : encoding value="hex"/ > < xsd : length value="2"/ > < /xsd : restriction > < /xsd : simpleType > < !-- bitstreamtype < !-- This type used for bitstream packets-- > < !-- They are delimited by either : - a new SOP marker (FF51) - a new SOT marker (FF90) - the EOC marker (FFD9)-- > < xsd : simpleType name="packetDataType" > -- < xsd : restriction base="bsd : binaryNoLength" > < xsd : encoding value="externalData"/ > < bsd : stopFlagExclusive value="FF51 I FFD9 FF90"/ > < /xsd : restriction > < /xsd : simpleType > - < xsd : simpleType name="llb" > < xsd : restriction base="bsd : bitsArray" > < bsd : bitsLength value="ll"/ > < /xsd : restriction < /xsd : simpleType > < xsd : simpleType name="7b" > < xsd : restriction base="bsd : bitsArray" > < bsd : bitsLength value="7"/ > < /xsd : restriction > < /xsd : simpleType > < xsd : simpleType name="5b" > < xsd : restriction base="bsd : bitsArray" > < bsd : bitsLength value="5"/ > < /xsd : restriction > < /xsd : simpleType > < xsd : simpleType name="4b" > < xsd : restriction base="bsd : bitsArray" > < bsd : bitsLength value="4"/ > < /xsd : restriction > < /xsd : simpleType < xsd : simpleType name="3b" > < xsd : restriction base="bsd : bitsArray" > < bsd : bitsLength value="3"/ > < /xsd : restriction > < /xsd : simpleType >
Figure img00240001

Appendix B: Simple Type Used in the Schema
Figure img00240002

<? xml version = "1. O" encoding = "UTF-8"? <xsd: schema targetNamespace = "JP2" xmlns: jp2 = "JP2" xmlns: xsd = "http: // www .w3 .org / 2000/10 / XML5chema" xmlns: bsd = "BSDLPrimitiveTypes" elementFormDefault = "qualified"<xsd: import namespace = "" schemaLocation = "BSDIjPrimitiveTypes. xsd"/><1--&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num; Simple Types Definition &num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;-> Simple Types Definition markertype <xsd: simpleType name = "markerType"><xsd: restriction base = "xsd: binary"><xsd: encoding value = "hex"/><xsd: length value = "2" / </ xsd: restriction></ xsd: simpleType><! - bitstreamtype <! - This type used for bitstream packets--><! - They are delimited by: - a new SOP marker (FF51) - a new SOT marker (FF90) - the EOC marker (FFD9) -><xsd: simpleType name = "packetDataType"> - <xsd: base restriction = "bsd: binaryNoLength"><xsd: encoding value = "externalData"/><bsd: stopFlagExclusive value = "FF51 I FFD9 FF90"/></ xsd: restriction></ xsd: simpleType> - <xsd: simpleType name = "llb"><xsd: base restriction = "bsd: bitsArray"><bsd: bitsLength value = "ll"/></ xsd: restriction </ xsd: simpleType><xsd: simpleType name = "7b"><xsd: base restriction = "bsd: bitsArray"><bsd: bitsLength value = "7"/></ xsd: restriction></ xsd: simpleType><xsd: simpleType name = "5b"><xsd: restric base = "bsd: bitsArray"><bsd: bitsLength value = "5"/></ xsd: restriction></ xsd: simpleType><xsd: simpleType name = "4b"><xsd: base restriction = "bsd : bitsArray "><bsd: bitsLength value =" 4 "/></ xsd: restriction></ xsd: simpleType <xsd: simpleType name =" 3b "><xsd: base restriction =" bsd: bitsArray "><bsd : bitsLength value = "3"/></ xsd: restriction></ xsd: simpleType>

<Desc/Clms Page number 25> <Desc / Clms Page number 25>

Figure img00250001

< xsd : simpleType name="lb" > < xsd : restriction base="bsd : bitsArray" > < bsd : bitsLength value="l"/ > < /xsd : restriction > < /xsd : simpleType > < xsd : simpleType name="2plb" > < xsd : restriction base="bsd : bitsArray" > < bsd : bitsLength value="l"/ > < bsd : prePadding value="2"/ > < /xsd : restriction > < /xsd : simpleType > < xsd : simpleType name="Splb" > < xsd : restriction base="bsd : bitsArray" > < bsd : bitsLength value="l"/ > < bsd : prePadding value="5"/ > < /xsd : restriction > < /xsd : simpleType > < xsd : simpleType name="5b3p" > < xsd : restriction base="bsd : bitsArray" > < bsd : bitsLength value="5"/ > < bsd : postPadding value="3"/ > < /xsd : restriction > < /xsd : simpleType > < xsd : simpleType name="4p4b" > < xsd : restriction base="bsd : bitsArray" > < bsd : bitsLength value="4"/ > < bsd : prePadding value="4"/ > < /xsd : restriction > < /xsd : simpleType > < /xsd : schema >
Figure img00250001

<xsd: simpleType name = "lb"><xsd: base restriction = "bsd: bitsArray"><bsd: bitsLength value = "l"/></ xsd: restriction></ xsd: simpleType><xsd: simpleType name = "2plb"><xsd: base restriction = "bsd: bitsArray"><bsd: bitsLength value = "l"/><bsd: prePadding value = "2"/></ xsd: restriction></ xsd: simpleType <xsd: simpleType name = "Splb"><xsd: base restriction = "bsd: bitsArray"><bsd: bitsLength value = "l"/><bsd: prePadding value = "5"/></ xsd: restriction ></ xsd: simpleType><xsd: simpleType name = "5b3p"><xsd: base restriction = "bsd: bitsArray"><bsd: bitsLength value = "5"/><bsd: postPadding value = "3" / ></ xsd: restriction></ xsd: simpleType><xsd: simpleType name = "4p4b"><xsd: base restriction = "bsd: bitsArray"><bsd: bitsLength value = "4"/><bsd: prePadding value = "4"/></ xsd: restriction></ xsd: simpleType></ xsd: schema>

<Desc/Clms Page number 26><Desc / Clms Page number 26>

Annexe C : Types génériques utilisés dans le schéma

Figure img00260001

< ? xml version="1. O" encoding="UTF-8" ? > < xsd : schema targetNamespace="BSDLPrimitiveTypes" xmlns : bsd="BSDLPrimitiveTypes" xmlns : xsd="http ://www. w3. org/2000/10/XMLSchema" elementFormDefault="qualified" > < !-- bitsArray < xsd : simpleType name="bitsArray" > < xsd : annotation > < xsd : appinfo > < xsd : hasFacet name="bitsLength"/ > < xsd : hasFacet name="prePadding"/ > < xsd : hasFacet name="postPadding"/ > < /xsd : appinfo > < /xsd : annotation > < xsd : restriction base="xsd : anySimpleType"/ > < /xsd : simpleType > < !-- &num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num; binaryNoLength &num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;-- > < xsd : simpleType name="binaryNoLength" > < xsd : annotation > < xsd : appinfo > < 1-- Read data until a flag is found-- > < xsd : hasFacet name="stopFlagExclusive"/ > < I--How binary data should be instantiated :-- > < I--base64, hex (same as for xsd : binary)-- > < i--externalData (URI pointing to an external entity data segment)-- > < xsd : hasFacet name="encoding"/ > < /xsd : appinfo > < /xsd : annotation > < xsd : restriction base="xsd : anySimpleType"/ > < /xsd : simpleType > < /xsd : schema > Appendix C: Generic Types Used in the Schema
Figure img00260001

<? xml version = "1. O" encoding = "UTF-8"? <xsd: schema targetNamespace = "BSDLPrimitiveTypes" xmlns: bsd = "BSDLPrimitiveTypes" xmlns: xsd = "http: // www .w3 .org / 2000/10 / XMLSchema" elementFormDefault = "qualified"><! - bitsArray < xsd: simpleType name = "bitsArray"><xsd:annotation><xsd:appinfo><xsd: hasFacet name = "bitsLength"/><xsd: hasFacet name = "prePadding"/><xsd: hasFacet name = "postPadding"/></ xsd: appinfo></ xsd: annotation><xsd: base restriction = "xsd: anySimpleType"/></ xsd: simpleType><! - &num;&num;&num;&num;&num;&num;;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num; binaryNoLength &num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;&num;-><xsd: simpleType name = "binaryNoLength"><xsd:annotation><xsd:appinfo><1-- Read data until a flag is found--><xsd: hasFacet name = "stopFlagExclusive"/><I - How should binary data be instantiated: ->< I - base64, hex (same as for xsd: binary) -><i - externalData (URI pointing to an external entity data segment) -><xsd: hasFacet name = "encoding"/></ xsd: appinfo></ xsd: annotation><xsd: restriction base = "xsd: anySimpleType"/></ xsd: simpleType></ xsd: schema>

<Desc/Clms Page number 27> <Desc / Clms Page number 27>

Figure img00270001

Annexe D : Document instance du schéma
Figure img00270002

< ? xml version="1. O" ? > < !-- example of an XML representation of a JP2 bitstream-- > < Codestream xmlns="JP2" xmlns : xsi="http : //www. w3. org/2000/10/XMLSchema-instance" xsi : schemaLocation="JP2 JP2. xsd" > < MainHeader > < SOC > < Marker > FF4F < /Marker >
Figure img00270003

< /SOC > < SIZ > < Marker > ff51 < /Marker > < LSiz > 47 < /Lsiz > < Rsiz > O < /Rsiz > < Xsiz > 515 < /Xsiz > < Ysiz > 512 < /Ysiz > < XOsiz > 0 < /XOsiz > < YOsiz > 0 < /YOsiz > < XTsiz > 515 < /XTsiz > < YTsiz > 512 < /YTsiz > < XTOsiz > 0 < /XTOsiz > < YTOsiz > 0 < /YTOsiz > < Csiz > 3 < /Csiz > < Comp~siz > < Ssiz > < sign > O < /sign > < bitDepth > 7 < /bitDepth > < /Ssiz > < XRsiz > l < /XRsiz > < YRsiz > l < /YRsiz > < /Comp~siz > < Compsiz > < Ssiz > < sign > 0 < /sign > < bitDepth > 7 < /bitDepth > < /Ssiz > < XRsiz > l < /XRsiz > < YRsiz > l < /YRsiz >
Figure img00270004

< /Compsiz > < Comp~siz > < Ssiz > < sign > O < /sign > < bitDepth > 7 < /bitDepth > < /Ssiz > < XRsiz > l < /XRsiz > < YRsiz > l < /YRsiz > < /Comp~siz > < /SIZ > < COD > < Marker > ff52 < /Marker > < Lcod > 12 < /Lcod > < Scod > < EPHMarkersUsed > 0 < /EPHMarkersused > < SOPMarkersUsed > 0 < /SOPMarkersused > < PrecinctsUsed > O < /PrecinctsUsed > < /Scod > < SGcod > < progType > 4 < /progType > < numLayers > 1 < /numLayers > < mct > l < /mct >
Figure img00270001

Appendix D: Schema Instance Document
Figure img00270002

<? xml version = "1. O"? <! - example of an XML representation of a JP2 bitstream--><Codestream xmlns = "JP2" xmlns: xsi = "http: // www .w3 .org / 2000/10 / XMLSchema-instance" xsi: schemaLocation = "JP2 JP2 .xsd"><MainHeader><SOC><Marker> FF4F </ Marker>
Figure img00270003

</ SOC><SIZ><Marker> ff51 </ Marker><Lsiz> 47 </ Lsiz><Res> O </ Rsiz><Xsiz> 515 </ Xsiz><Ysiz> 512 </ Ysiz><XOsiz> 0 </ XOsiz><YOsiz> 0 </ YOsiz><XTsiz> 515 </ XTsiz><YTsiz> 512 </ YTsiz><XTOsiz> 0 </ XTOsiz><YTOsiz> 0 </ YTOsiz><Csiz> 3 < / Csiz><Compsiz><Ssiz><sign> O </ sign><bitDepth> 7 </ bitDepth></Ssiz><XRsiz> l </ XRsiz><YRsiz> l </ YRsiz></ Comp ~ siz><Compsiz><Ssiz><sign> 0 </ sign><bitDepth> 7 </ bitDepth></Ssiz><XRsiz> l </ XRsiz><YRsiz> l </ YRsiz>
Figure img00270004

</ Compsiz><Compsiz><Ssiz><sign> O </ sign><bitDepth> 7 </ bitDepth></Ssiz><XRsiz> l </ XRsiz><YRsiz> l </ YRsiz></ Compsize </ SIZ><COD><Marker> ff52 </ Marker><Lcod> 12 </ Lcod><Scod><EPHMarkersUsed> 0 </ EPHMarkersused><SOPMarkersUsed> 0 </ SOPMarkersused><PrecinctsUsed> O </ PrecinctsUsed></Scod><SGcod><progType> 4 </ progType><numLayers> 1 </ numLayers><mct> l </ mct>

<Desc/Clms Page number 28><Desc / Clms Page number 28>

< /SGcod > < SPcod > < nDecompLevels > 5 < /nDecompLevels > < codeBlockWidth > 4 < /codeBlockWidth > < codeBlockHeight > 4 < /codeBlockHeight > < codeBlockStyle > < optSegMarkers > 0 < /optSegMarkers > < optErTerm > 0 < optErTerm > < optVertStrCausal > O < /optVertStrCausal > < optRegTerm > 0 < /optRegTerm > < optResetMQ > 0 < /optResetMQ > < optByPass > 0 < /optByPass > < /codeBlockStyle > < Transformation > 0 < /Transformation > < /SPcod > < /COD > < QCD > < Marker > ff5c < /Marker > < Lqcd > 35 < /Lqcd > < Sqcd > < guardBits > 2 < /guardBits > < quantStyle > 2 < quantStyle > < /Sqcd > < Spqcd~3 > < exponent > 13 < /exponent > < mantissa > 1816 < /mantissa > < /Spqcd3 >

Figure img00280001

< Spqcd-3 > < exponent > 13 < /exponent > < mantissa > 1770 < /mantissa > < /Spqcd3 > < Spqcd~3 > < exponent > 13 < /exponent > < mantissa > 1770 < /mantissa > < /Spqcd3 > < Spqcd3 > < exponent > 13 < /exponent > < mantissa > 1724 < /mantissa > < /Spqcd3 > < Spqcd3 > < exponent > 12 < /exponent > < mantissa > 1792 < /mantissa > < /Spqcd3 > < Spqcd3 > < exponent > 12 < /exponent > < mantissa > 1792 < /mantissa > < /Spqcd3 > < Spqcd3 > < exponent > 12 < /exponent > < mantissa > 1762 < /mantissa > < /Spqcd3 > < Spqcd3 > < exponent > ll < /exponent > < mantissa > 1868 < /mantissa > < /Spqcd3 > < Spqcd3 > < exponent > ll < /exponent > < mantissa > 1868 < /mantissa > < /Spqcd3 > < Spqcd3 > < exponent > 11 < /exponent > < mantissa > 1892 < /mantissa > < /Spqcd~3 > < Spqcd~3 > < exponent > 9 < /exponent > < mantissa > 3 < /mantissa > < /Spqcd~3 > < Spqcd~3 > </ SGcod><SPcod><nDecompLevels> 5 </ nDecompLevels><codeBlockWidth> 4 </ codeBlockWidth><codeBlockHeight> 4 </ codeBlockHeight><codeBlockStyle><optSegMarkers> 0 </ optSegMarkers><optErTerm> 0 <optErTerm><optVertStrCausal> O </ optVertStrCausal><optRegTerm> 0 </ optRegTerm><optResetMQ> 0 </ optResetMQ><optByPass> 0 </ optByPass></codeBlockStyle><Transformation> 0 </ Transformation></SPcod></ COD ><QCD><Marker> ff5c </ Marker><Lqcd> 35 </ Lqcd><Sqcd><guardBits> 2 </ guardBits><quantStyle> 2 <quantStyle></Sqcd><Spqcd ~ 3><exponent> 13 </ exponent><mantissa> 1816 </ mantissa></Spqcd3>
Figure img00280001

<Spqcd-3><exponent> 13 </ exponent><mantissa> 1770 </ mantissa></Spqcd3><Spqcd ~ 3><exponent> 13 </ exponent><mantissa> 1770 </ mantissa></Spqcd3><Spqcd3><exponent> 13 </ exponent><mantissa> 1724 </ mantissa></Spqcd3><Spqcd3><exponent> 12 </ exponent><mantissa> 1792 </ mantissa></Spqcd3><Spqcd3><exponent> 12 </ exponent><mantissa> 1792 </ mantissa></Spqcd3><Spqcd3><exponent> 12 </ exponent><mantissa> 1762 </ mantissa></Spqcd3><Spqcd3><exponent> ll < / exponent><mantissa> 1868 </ mantissa></Spqcd3><Spqcd3><exponent> ll </ exponent><mantissa> 1868 </ mantissa></Spqcd3><spqcd3><exponent> 11 </ exponent><mantissa> 1892 </ mantissa></ Spqcd ~ 3><Spqcd ~ 3><exponent> 9 </ exponent><mantissa> 3 </ mantissa></ Spqcd ~ 3><Spqcd ~ 3>

<Desc/Clms Page number 29><Desc / Clms Page number 29>

< exponent > 9 < /exponent > < mantissa > 3 < /mantissa > < /Spqcd3 > < Spqcd3 > < exponent > 9 < /exponent > < mantissa > 69 < /mantissa > < /Spqcd3 > < Spqcd~3 > < exponent > 9 < /exponent > < mantissa > 2002 < /mantissa > < /Spqcd3 > < Spqcd3 > < exponent > 9 < /exponent > < mantissa > 2002 < /mantissa > < /Spqcd~3 > < Spqcd3 > < exponent > 9 < /exponent > < mantissa > 1889 < /mantissa > < /Spqcd3 > < /QCD > < /MainHeader > < Tile > < TileHeader > < SOT > < Marker > ff90 < /Marker > < Lsot > 10 < /Lsot > < Isot > O < /Isot > < Psot > 32722 < /Psot > < TPsot > 0 < /TPsot > < TNsot > l < /TNsot > < /SOT >

Figure img00290001

< SOD > < Marker > FF93 < /Marker > < /SOD > < /TileHeader > < Bitstream > < Packet >
Figure img00290002

< SOP > < Marker > ff91 < /Marker > < Lsop > 4 < /Lsop > < Nsop > O < /Nsop >
Figure img00290003

< /SOP > < Data > bachComp3. jp2&num;122-363 < /Data > < /Packet > < Packet > < SOP > < Marker > ff91 < /Marker > < Lsop > 4 < /Lsop > < Nsop > l < /Nsop > < /SOP > < Data > bachComp3. jp2&num;370-861 < /Data > < /Packet > < Packet > < SOP > < Marker > ff91 < /Marker > < Lsop > 4 < /Lsop > < Nsop > 2 < /Nsop >
Figure img00290004

< /SOP > < Data > bachComp3. jp2&num;868-2362 < /Data > < /Packet > < Packet > < SOP > < Marker > ff91 < /Marker > < Lsop > 4 < /Lsop > < Nsop > 3 < /Nsop > < /SOP > < Data > bachComp3. jp2&num;2369-6788 < /Data > < /Packet > <exponent> 9 </ exponent><mantissa> 3 </ mantissa></Spqcd3><Spqcd3><exponent> 9 </ exponent><mantissa> 69 </ mantissa></Spqcd3><Spqcd ~ 3><exponent> 9 </ exponent><mantissa> 2002 </ mantissa></Spqcd3><Spqcd3><exponent> 9 </ exponent><mantissa> 2002 </ mantissa></ Spqcd ~ 3><Spqcd3><exponent> 9 </ exponent><mantissa> 1889 </ mantissa></Spqcd3></></<Tile><SOT><Marker> ff90 </ Marker><Lsot> 10 </ Lsot><Isot> O </ Isot><Psot> 32722 </ Psot><TPsot> 0 </ TPsot><TNsot> l </ TNsot></SOT>
Figure img00290001

<SOD><Marker> FF93 </ Marker></SOD></TileHeader><Bitstream><Packet>
Figure img00290002

<SOP><Marker> ff91 </ Marker><Lsop> 4 </ Lsop><Nsop> O </ Nsop>
Figure img00290003

</ SOP><Data> bachComp3. jp2 &num; 122-363 </ Data></Packet><Packet><SOP><Marker> ff91 </ Marker><Lsop> 4 </ Lsop><Nsop> l </ Nsop></SOP><Data> bachComp3. jp2 &num; 370-861 </ Data></Packet><Packet><SOP><Marker> ff91 </ Marker><Lsop> 4 </ Lsop><Nsop> 2 </ Nsop>
Figure img00290004

</ SOP><Data> bachComp3. jp2 &num; 868-2362 </ Data></Packet><Packet><SOP><Marker> ff91 </ Marker><Lsop> 4 </ Lsop><Nsop> 3 </ Nsop></SOP><Data> bachComp3. jp2 &num; 2369-6788 </ Data></Packet>

<Desc/Clms Page number 30><Desc / Clms Page number 30>

< Packet > < SOP > < Marker > ff91 < /Marker > < Lsop > 4 < /Lsop > < Nsop > 4 < /Nsop > < /SOP > < Data > bachComp3. jp2&num;6795-17999 < /Data > < /Packet > < Packet > < SOP > < Marker > ff91 < /Marker > < Lsop > 4 < /Lsop > < Nsop > 5 < /Nsop > < /SOP > < Data > bachComp3.jp2&num;18006-26441 < /Data > < /Packet > < Packet > < SOP > < Marker > ff91 < /Marker > < Lsop > 4 < /Lsop > < Nsop > 6 < /Nsop >

Figure img00300001

< /SOP > < Data > bachComp3. jp2&num;26448-26577 < /Data > < /Packet > < Packet > < SOP > < Marker > ff91 < /Marker > < Lsop > 4 < /Lsop > < Nsop > 7 < /Nsop >
Figure img00300002

< /SOP > < Data > bachComp3. jp2&num;26584-26875 < /Data > < /Packet > < Packet > < SOP > < Marker > ff91 < /Marker > < Lsop > 4 < /Lsop > < Nsop > 8 < /Nsop > < /SOP > < Data > bachComp3. jp2&num;26882-27675 < /Data > < /Packet > < Packet > < SOP > < Marker > ff91 < /Marker > < Lsop > 4 < /Lsop > < Nsop > 9 < /Nsop > < /SOP > < Data > bachComp3. jp2&num;27682-29664 < /Data > < /Packet >
Figure img00300003

< Packet > < SOP > < Marker > ff91 < /Marker > < Lsop > 4 < /Lsop > < Nsop > 10 < /Nsop >
Figure img00300004

< /SOP > < Data > bachComp3. jp2&num;29671-31086 < /Data > < /Packet > < Packet > < SOP > < Marker > ff91 < Marker > < Lsop > 4 < /Lsop > < Nsop > ll < /Nsop >
Figure img00300005

< /SOP > < Data > bachComp3. jp2&num;31093-31389 < /Data > < /Packet > < Packet > < SOP > < Marker > ff91 < /Marker > < Lsop > 4 < /Lsop > <Packet><SOP><Marker> ff91 </ Marker><Lsop> 4 </ Lsop><Nsop> 4 </ Nsop></SOP><Data> bachComp3. jp2 &num; 6795-17999 </ Data></Packet><Packet><SOP><Marker> ff91 </ Marker><Lsop> 4 </ Lsop><Nsop> 5 </ Nsop></SOP><Data> bachComp3.jp2 &num; 18006-26441 </ Data></Packet><Packet><SOP><Marker> ff91 </ Marker><Lsop> 4 </ Lsop><Nsop> 6 </ Nsop>
Figure img00300001

</ SOP><Data> bachComp3. jp2 &num; 26448-26577 </ Data></Packet><Packet><SOP><Marker> ff91 </ Marker><Lsop> 4 </ Lsop><Nsop> 7 </ Nsop>
Figure img00300002

</ SOP><Data> bachComp3. jp2 &num; 26584-26875 </ Data></Packet><Packet><SOP><Marker> ff91 </ Marker><Lsop> 4 </ Lsop><Nsop> 8 </ Nsop></SOP><Data> bachComp3. jp2 &num; 26882-27675 </ Data></Packet><Packet><SOP><Marker> ff91 </ Marker><Lsop> 4 </ Lsop><Nsop> 9 </ Nsop></SOP><Data> bachComp3. jp2 &num; 27682-29664 </ Data></Packet>
Figure img00300003

<Packet><SOP><Marker> ff91 </ Marker><Lsop> 4 </ Lsop><Nsop> 10 </ Nsop>
Figure img00300004

</ SOP><Data> bachComp3. jp2 &num; 29671-31086 </ Data></Packet><Packet><SOP><Marker> ff91 <Marker><Lsop> 4 </ Lsop><Nsop> ll </ Nsop>
Figure img00300005

</ SOP><Data> bachComp3. jp2 &num; 31093-31389 </ Data></Packet><Packet><SOP><Marker> ff91 </ Marker><Lsop> 4 </ Lsop>

<Desc/Clms Page number 31> <Desc / Clms Page number 31>

Figure img00310001

< Nsop > 12 < /Nsop > < /SOP > < Data > bachComp3.jp2&num;31396-31498 < /Data > < /Packet >
Figure img00310002

< Packet > < SOP > < Marker > ff91 < /Marker > < Lsop > 4 < /Lsop > < Nsop > 13 < /Nsop >
Figure img00310003

< /SOP > < Data > bachComp3. jp2&num;31505-31688 < /Data > < /Packet > < Packet > < SOP > < Marker > ff91 < /Marker > < Lsop > 4 < /Lsop > < Nsop > 14 < /Nsop >
Figure img00310004

< /SOP > < Data > bachComp3. jp2&num;31695-31956 < /Data > < /Packet > < Packet > < SOP > < Marker > ff91 < /Marker > < Lsop > 4 < /Lsop > < Nsop > 15 < /Nsop >
Figure img00310005

< /SOP > < Data > bachComp3. jp2&num;31963-32497 < /Data > < /Packet > < Packet > < SOP > < Marker > ff91 < /Marker > < Lsop > 4 < /Lsop > < Nsop > 16 < /Nsop >
Figure img00310006

< /SOP > < Data > bachComp3. jp2&num;32504-32816 < /Data > < /Packet > < Packet > < SOP > < Marker > ff91 < /Marker > < Lsop > 4 < /Lsop > < Nsop > 17 < /Nsop > < /SOP >
Figure img00310007

< Data > bachComp3. jp2&num;32823-32823 < /Data > < /Packet > < /Bitstream > < /Tile > < EOC > < Marker > FFD9 < /Marker > < /EOC > < /Codestream >
Figure img00310001

<Nsop> 12 </ Nsop></SOP><Data> bachComp3.jp2 &num; 31396-31498 </ Data></Packet>
Figure img00310002

<Packet><SOP><Marker> ff91 </ Marker><Lsop> 4 </ Lsop><Nsop> 13 </ Nsop>
Figure img00310003

</ SOP><Data> bachComp3. jp2 &num; 31505-31688 </ Data></Packet><Packet><SOP><Marker> ff91 </ Marker><Lsop> 4 </ Lsop><Nsop> 14 </ Nsop>
Figure img00310004

</ SOP><Data> bachComp3. jp2 &num; 31695-31956 </ Data></Packet><Packet><SOP><Marker> ff91 </ Marker><Lsop> 4 </ Lsop><Nsop> 15 </ Nsop>
Figure img00310005

</ SOP><Data> bachComp3. jp2 &num; 31963-32497 </ Data></Packet><Packet><SOP><Marker> ff91 </ Marker><Lsop> 4 </ Lsop><Nsop> 16 </ Nsop>
Figure img00310006

</ SOP><Data> bachComp3. jp2 &num; 32504-32816 </ Data></Packet><Packet><SOP><Marker> ff91 </ Marker><Lsop> 4 </ Lsop><Nsop> 17 </ Nsop></SOP>
Figure img00310007

<Data> bachComp3. jp2 &num; 32823-32823 </ Data></Packet></Bitstream></Tile><EOC><Marker> FFD9 </ Marker></EOC></Codestream>

Claims (4)

Figure img00320001
Figure img00320001
bit (s) de remplissage, une facette relative aux dits bits de remplissage, - lorsque ledit format utilise des segments binaires de longueur indéfinie ayant un contenu destiné à être importé dans ladite représentation en utilisant un certain mode d'importation, un type de données correspondant aux dits segments binaires, ayant au moins une facette relative audit mode d'importation et, lorsque lesdits segments binaires sont délimités par un drapeau de fin, une facette relative audit drapeau de fin, b) comporte une pluralité d'éléments pour lesquels il décrit un nom, un type de données, une imbrication, un ordre et un nombre d'occurrence (s) prédéfinis ou quelconques, l'occurrence d'un élément étant obligatoire ou optionnelle, c) lorsque ledit format prévoit que des données situées en amont dans ledit flux binaire informent sur la structure ou le contenu de la suite dudit flux binaire, - définit une ou plusieurs variable (s) constituée (s) par un chemin d'accès aux dites données situées en amont, dans ladite représentation arborescente, - et comporte un ou plusieurs branchement (s) conditionnel (s) pour décrire les différentes structures ou contenus possibles en fonction de la valeur de la ou desdites variables, B) rechercher dans ledit flux binaire les données qui correspondent aux éléments contenus dans ledit schéma, C) générer une instance dudit schéma qui contient les données trouvées dans ledit flux binaire, et qui constitue ladite représentation arborescente.  fill bit (s), a facet relating to said fill bits, - when said format uses bit segments of indefinite length having content to be imported into said representation using a certain import mode, a data type corresponding to said bit segments, having at least one facet relating to said import mode and, when said bit segments are delimited by an end flag, a facet relating to said ending flag, b) comprises a plurality of elements for which it describes a name, datatype, nesting, order and number of occurrence (s) predefined or unspecified, the occurrence of an element being mandatory or optional, (c) where said format provides that data located in upstream in said bit stream informs on the structure or content of the sequence of said bit stream, - defines one or more variable (s) constituted by a path to the x said data located upstream, in said tree representation, - and includes one or more conditional branch (s) to describe the different structures or possible contents according to the value of the one or more variables, B) search in said bitstream the data that correspond to the elements contained in said diagram, C) generate an instance of said schema that contains the data found in said bit stream, and which constitutes said tree representation.
Figure img00320002
Figure img00320002
REVENDICATIONS 1. Procédé d'analyse syntaxique d'un flux binaire contenant des données qui ont une structure et un contenu conforme à un certain format, pour générer une représentation arborescente dudit flux, caractérisé en ce que ledit procédé consiste à : A) lire un schéma qui, pour décrire ledit format de façon générique : a) définit un ou plusieurs type (s) de données, susceptible (s) de contenir une ou plusieurs acette (s), dont notamment : - lorsque ledit format utilise des mots binaires de longueur (s) prédéfinie (s), un ou plusieurs types de données correspondant aux dits mots binaires de longueur (s) prédéfinie (s), ayant au moins une facette relative à ladite longueur et, lorsque lesdits mots binaires de longueur (s) prédéfinie (s) sont susceptibles de contenir un ou plusieurs 1. A method of parsing a bit stream containing data having a structure and content conforming to a certain format, for generating a tree representation of said stream, characterized in that said method consists of: A) read a diagram which, to describe said format generically: a) defines one or more types of data, capable of containing one or more acette (s), including: - when said format uses binary words of predefined length (s), one or more data types corresponding to said predefined length binary words, having at least one facet relating to said length and, when said binary words of length (s) predefined (s) are likely to contain one or more
2. Programme d'ordinateur comportant des instructions pour la mise en oeuvre d'un procédé d'analyse syntaxique selon la revendication 1. Computer program comprising instructions for carrying out a parsing method according to claim 1. <Desc/Clms Page number 33> <Desc / Clms Page number 33> 3. Procédé de génération d'un flux binaire conforme à un certain format, à partir d'un document qui est une représentation arborescente dudit flux binaire et qui contient des données, notamment des données importées en utilisant un certain mode d'importation, caractérisé en ce qu'il consiste à : A) lire ledit document, B) lire en parallèle un schéma qui, pour décrire ledit format le façon générique : a) définit un ou plusieurs type (s) de données susceptible (s) d'avoir une ou plusieurs facette (s), notamment : - un type de données correspondant à des segments binaires de longueur indéfinie ayant au moins une facette relative audit mode d'importation, - et, lorsque ledit format utilise des mots binaires de longueur (s) prédéfinie (s), un ou plusieurs types de données correspondant aux dits mots binaires de longueur (s) prédéfinie (s) ayant au moins une facette relative à ladite longueur, et lorsque lesdits mots binaires contiennent un ou plusieurs bit (s) de remplissage, une facette relative aux dits bits de remplissage, b) comporte une pluralité d'éléments pour lesquels il décrit un nom, un type de données, une imbrication, un ordre et un nombre d'occurrence (s) prédéfinis ou quelconques, l'occurrence d'un élément étant obligatoire ou optionnelle, c) lorsque ledit format prévoit que des données situées en amont dans ledit flux binaire informent sur la structure ou le contenu de la suite dudit flux binaire : - définit une ou plusieurs variable (s) constituée (s) par un chemin d'accès aux dites données situées en amont, dans ladite représentation arborescente, - et comporte un ou plusieurs branchement (s) conditionnel (s) pour décrire les différentes structures ou contenus possibles en fonction de la valeur de la ou desdites variables, pour déterminer le type des données contenues dans ledit document, C) coder lesdites données en fonction du type déterminé à l'étape B, D) à constituer un flux binaire à partir des données codées à l'étape C. A method of generating a bit stream conforming to a certain format, from a document which is a tree representation of said bit stream and which contains data, including data imported using a certain import mode, characterized in that it consists of: A) reading said document, B) reading in parallel a diagram which, to describe said format, the generic way: a) defines one or more types of data likely to have one or more facets, in particular: a data type corresponding to binary segments of indefinite length having at least one facet relating to said import mode, and, when said format uses binary words of length (s) predefined (s), one or more data types corresponding to said predefined length binary words having at least one facet relating to said length, and when said bit words contain one or more bit (s) filling, a facet relating to said filling bits, b) comprises a plurality of elements for which it describes a name, a data type, a nesting, a sequence and a number of occurrence (s) predefined or any, the occurrence of an element being mandatory or optional, c) when said format provides that data located upstream in said bitstream inform on the structure or content of the sequence of said bitstream: - defines one or more variable (s) ) constituted by a path to said data located upstream, in said tree representation, and includes one or more conditional branch (es) to describe the different structures or possible contents as a function of the value. of the one or more variables, in order to determine the type of the data contained in said document, C) to code said data according to the type determined in step B, D) to constitute a bit stream to a party r coded data in step C. 4. Programme d'ordinateur comportant des instructions pour la mise en oeuvre d'un procédé de génération d'un flux binaire selon la revendication 3.A computer program comprising instructions for implementing a method of generating a bit stream according to claim 3.
FR0102764A 2001-02-28 2001-02-28 SCHEME, SYNTAX ANALYSIS METHOD, AND METHOD FOR GENERATING A BINARY STREAM FROM A SCHEME Withdrawn FR2821458A1 (en)

Priority Applications (12)

Application Number Priority Date Filing Date Title
FR0102764A FR2821458A1 (en) 2001-02-28 2001-02-28 SCHEME, SYNTAX ANALYSIS METHOD, AND METHOD FOR GENERATING A BINARY STREAM FROM A SCHEME
JP2002568241A JP4260481B2 (en) 2001-02-28 2002-02-08 Schema, parsing method, and method for generating bitstream based on schema
PL02363513A PL363513A1 (en) 2001-02-28 2002-02-08 Schema, syntactic analysis method and method of generating a bit stream based on a schema
PCT/IB2002/000393 WO2002069187A1 (en) 2001-02-28 2002-02-08 Schema, syntactic analysis method and method of generating a bit stream based on a schema
KR1020027014532A KR100898614B1 (en) 2001-02-28 2002-02-08 Schema, syntactic analysis method and method of generating a bit stream based on a schema
MXPA02010534A MXPA02010534A (en) 2001-02-28 2002-02-08 Schema, syntactic analysis method and method of generating a bit stream based on a schema.
BR0204315-7A BR0204315A (en) 2001-02-28 2002-02-08 Process for parsing a bit stream, computer program, process for generating a bit stream, schema defining one or more data types that may have one or more facets, processing unit, and transmission system
RU2003128962/09A RU2294012C2 (en) 2001-02-28 2002-02-08 Data structure and methods for transforming stream of bits to electronic document and generation of bit stream from electronic document based on said data structure
US10/258,924 US7080318B2 (en) 2001-02-28 2002-02-08 Schema, syntactic analysis method and method of generating a bit stream based on a schema
EP02710247A EP1366439A1 (en) 2001-02-28 2002-02-08 Schema, syntactic analysis method and method of generating a bit stream based on a schema
CNB028014421A CN100449530C (en) 2001-02-28 2002-02-08 Schema, syntactic analysis method and method of generating a bit stream based on schema
TW091103306A TW563036B (en) 2001-02-28 2002-02-25 Schema, syntactic analysis method and method of generating a bit stream based on a schema

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR0102764A FR2821458A1 (en) 2001-02-28 2001-02-28 SCHEME, SYNTAX ANALYSIS METHOD, AND METHOD FOR GENERATING A BINARY STREAM FROM A SCHEME

Publications (1)

Publication Number Publication Date
FR2821458A1 true FR2821458A1 (en) 2002-08-30

Family

ID=8860580

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0102764A Withdrawn FR2821458A1 (en) 2001-02-28 2001-02-28 SCHEME, SYNTAX ANALYSIS METHOD, AND METHOD FOR GENERATING A BINARY STREAM FROM A SCHEME

Country Status (11)

Country Link
EP (1) EP1366439A1 (en)
JP (1) JP4260481B2 (en)
KR (1) KR100898614B1 (en)
CN (1) CN100449530C (en)
BR (1) BR0204315A (en)
FR (1) FR2821458A1 (en)
MX (1) MXPA02010534A (en)
PL (1) PL363513A1 (en)
RU (1) RU2294012C2 (en)
TW (1) TW563036B (en)
WO (1) WO2002069187A1 (en)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2002349188A1 (en) 2001-11-26 2003-06-10 Interuniversitair Microelektronica Centrum Vzw Schema, syntactic analysis method and method of generating a bit stream based on a schema
EP1343327B1 (en) * 2001-12-28 2011-06-15 Koninklijke Philips Electronics N.V. Method for processing multimedia content
JP2006520033A (en) * 2003-02-19 2006-08-31 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ A method for outputting a bitstream based on a schema that generally describes the format for the bitstream.
EP2242273A1 (en) * 2009-04-14 2010-10-20 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Transmission scheme for text-based information
CN104598635B (en) * 2015-02-06 2018-01-19 无锡江南计算技术研究所 A kind of complex documents automatic generation method based on XML descriptions
CN107092656B (en) * 2017-03-23 2019-12-03 中国科学院计算技术研究所 A kind of tree data processing method and system
RU2762398C2 (en) * 2019-12-03 2021-12-21 Владимир Дмитриевич Мазур Method for transmitting binary data in a standard audio media stream

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100406806B1 (en) * 1998-06-24 2003-11-21 시게이트 테크놀로지 엘엘씨 Efficient run length limited code with short interleaved constraint
HUP0105429A2 (en) * 1998-12-21 2002-04-29 Koninkl Philips Electronics Nv Device for and method of encoding n-bit source words into corresponding m-bit channel words and decoding m-bit channel words into corresponding n-bit source words

Non-Patent Citations (7)

* Cited by examiner, † Cited by third party
Title
DUCHARME B: "Setting and Using Variables and Parameters", INTERNET ARTICLE, 7 February 2001 (2001-02-07), XP002183449, Retrieved from the Internet <URL:http://www.xml.com/pub/a/2001/02/07/trxml9.html> [retrieved on 20011120] *
GIRARDOT M ET AL: "Millau: an encoding format for efficient representation and exchange of XML over the Web", COMPUTER NETWORKS, ELSEVIER SCIENCE PUBLISHERS B.V., AMSTERDAM, NL, vol. 33, no. 1-6, June 2000 (2000-06-01), pages 747 - 765, XP004304805, ISSN: 1389-1286 *
LEE D ET AL: "Comparative Analysis of Six XML Schema Languages", ACM SIGMOD RECORD, vol. 29, no. 3, September 2000 (2000-09-01), pages 76 - 87, ISSN: 0163-5808 *
LEE D ET AL: "Comparative Analysis of Six XML Schema Languages", INTERNET ARTICLE, XP002183403, Retrieved from the Internet <URL:http://citeseer.nj.nec.com/lee00comparative.html> [retrieved on 20011120] *
LIEFKE H ET AL: "XMill: an efficient compressor for XML data", PROCEEDINGS OF ACM SIGMOD. INTERNATIONAL CONFERENCE ON MANAGEMENT OF DATA, DALLAS, TX, US, vol. 29, no. 2, 16 May 2000 (2000-05-16) - 18 May 2000 (2000-05-18), pages 153 - 164, XP002168802 *
WILLIAMS R: "XSIL: Java/XML for Scientific Data", INTERNET ARTICLE, June 2000 (2000-06-01), XP002183405, Retrieved from the Internet <URL:http://www.cacr.caltech.edu/SDA/xsil/> [retrieved on 20011120] *
WONG R K ET AL: "An XML repository for molecular sequence data", PROCEEDINGS IEEE INTERNATIONAL SYMPOSIUM ON BIO-INFORMATICS AND BIOMEDICAL ENGINEERING, ARLINGTON, VA, US, 8 November 2000 (2000-11-08) - 10 November 2000 (2000-11-10), IEEE Computer Soc., Los Alamitos, CA, US, pages 35 - 42, XP002183404, ISBN: 0-7695-0862-6 *

Also Published As

Publication number Publication date
KR20020092459A (en) 2002-12-11
PL363513A1 (en) 2004-11-29
JP2004519771A (en) 2004-07-02
RU2003128962A (en) 2005-03-10
BR0204315A (en) 2003-02-18
JP4260481B2 (en) 2009-04-30
CN1462400A (en) 2003-12-17
WO2002069187A1 (en) 2002-09-06
EP1366439A1 (en) 2003-12-03
KR100898614B1 (en) 2009-05-21
MXPA02010534A (en) 2003-09-22
CN100449530C (en) 2009-01-07
RU2294012C2 (en) 2007-02-20
TW563036B (en) 2003-11-21

Similar Documents

Publication Publication Date Title
US7080318B2 (en) Schema, syntactic analysis method and method of generating a bit stream based on a schema
JP4197320B2 (en) Method and apparatus for encoding / decoding structured text, especially XML text
EP1316220B1 (en) Method for compressing/decompressing structured documents
US20070271274A1 (en) Using a community generated web site for metadata
FR2820563A1 (en) METHOD FOR COMPRESSING / DECOMPRESSING A STRUCTURED DOCUMENT
FR2926378A1 (en) METHOD AND PROCESSING DEVICE FOR ENCODING A HIERARCHISED DATA DOCUMENT
US8892991B2 (en) Encoder compiler, computer readable medium, and communication device
US7263691B2 (en) Parsing structured data
EP1358583B1 (en) Method for encoding and decoding a path in the tree structure of a structured document
FR2929778A1 (en) METHODS AND DEVICES FOR ITERATIVE BINARY CODING AND DECODING FOR XML TYPE DOCUMENTS.
FR2821458A1 (en) SCHEME, SYNTAX ANALYSIS METHOD, AND METHOD FOR GENERATING A BINARY STREAM FROM A SCHEME
EP1343327B1 (en) Method for processing multimedia content
KR100968083B1 (en) Method and devices for encoding/decoding structured documents, especially xml documents
EP1999649B1 (en) Method of generating a file describing a bit stream, corresponding device and computer program product
KR100494845B1 (en) Apparatus for Coding Metadata based on eXtensible Markup Language(XML)
FR2852177A1 (en) Web service providing method for use in communication network e.g. Internet, involves dispatching description document of service, where document comprises description of operation of implementation
WO2006108983A1 (en) Method for processing a data tree structure
FR2820528A1 (en) Object transfer method with format adaptation e.g. for Internet, mobile telephones, PDA&#39;s etc., includes applying the selected transformation to the basic document to generate a transformed document
Marco et al. Extracting metadata from JPEG2000 compressed images using Web services
Avaro¹ et al. Systems Architecture
Davis Novel Approaches to the Delivery of XML and Schemas
Van Deursen et al. NinSuna: a Platform for Format‐Independent Media Resource Adaptation and Delivery
Dowler et al. IVOA Proposed Recommendation 2015-06-17
JP2005276193A (en) Schema and style sheet for dibr data
KR20080028293A (en) Metadata encoding apparatus and method for digital broadcasting and metadata decoding apparatus and method

Legal Events

Date Code Title Description
ST Notification of lapse