JP2010267092A - Information processor and information processing method - Google Patents

Information processor and information processing method Download PDF

Info

Publication number
JP2010267092A
JP2010267092A JP2009118047A JP2009118047A JP2010267092A JP 2010267092 A JP2010267092 A JP 2010267092A JP 2009118047 A JP2009118047 A JP 2009118047A JP 2009118047 A JP2009118047 A JP 2009118047A JP 2010267092 A JP2010267092 A JP 2010267092A
Authority
JP
Japan
Prior art keywords
data
text
structured document
text data
xml
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
JP2009118047A
Other languages
Japanese (ja)
Inventor
Hitoshi Uchida
均 内田
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2009118047A priority Critical patent/JP2010267092A/en
Publication of JP2010267092A publication Critical patent/JP2010267092A/en
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Document Processing Apparatus (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide a technology to improve the conversion efficiency from text XML containing large-size text data as attribute values or content of element, into binary XML. <P>SOLUTION: An information processor includes: a means for acquiring a structured document in a text format; a means for analyzing the structured document and detecting the text data; and a generation means for converting the structured document by converting the text data into slave elements and for generating a structured document in a binary format based on the converted structured document. <P>COPYRIGHT: (C)2011,JPO&INPIT

Description

本発明は、構造化文書を処理する技術に関するものである。   The present invention relates to a technique for processing a structured document.

これまで、XMLデータのフォーマットは、一般的にテキスト形式であった。しかし、XMLデータは、データ構造を表現するために冗長なデータを必要とし、コンピュータが読み書きするのに時間がかかるという問題があるため、近年では、バイナリXML技術が注目されている。   Until now, the format of XML data was generally a text format. However, since XML data requires redundant data to represent the data structure, and it takes time for a computer to read and write, binary XML technology has attracted attention in recent years.

例えば、W3Cの標準仕様としてEfficient XML Interchange (htt://www.w3.org/XML/EXI/)がある。また、ISOの標準仕様としては、Fast Infoset(http://www.iso.org/iso/en/CatalogueDetailPage.CatalogueDetail?CSNUMBER=41327&scopelist=PROGRAMME)がある。   For example, there is Efficient XML Interchange (htt: //www.w3.org/XML/EXI/) as a standard specification of W3C. Further, as a standard specification of ISO, there is Fast Infoset (https://www.iso.org/iso/en/CatalogueDetailPage.CatalogueDetail?CSNUMBER=41327&scopelist=PROGRAMME).

これらの技術は、XMLデータに含まれる要素名や属性名などの各ボキャブラリを、XMLデータ内での出現順に番号を振って符号化することによって、データサイズを小さくすることが可能であった。符号とボキャブラリとの対応を示す表は、符号化テーブルと呼ばれる。バイナリXML形式のデータは、従来のテキスト形式のXMLデータに比べて、高速に読み書きすることが可能であった。   With these technologies, it is possible to reduce the data size by encoding each vocabulary such as an element name and an attribute name included in XML data in the order of appearance in the XML data. A table indicating the correspondence between codes and vocabularies is called a coding table. Binary XML format data could be read and written faster than conventional text format XML data.

また、属性値や要素内容を従来のような文字列型のデータではなく、整数型、浮動小数点型や、独自形式の圧縮アルゴリズムを用いてエンコードすることにより、データサイズを更に小さくすることが可能であった。また、それらデータを解析する際には、従来のようなアプリケーションによる文字列データから数値データへの変換処理の必要がなくなるので、解析にかかる処理時間を更に短くすることができた。   In addition, the data size can be further reduced by encoding attribute values and element contents using integer type, floating point type, or proprietary compression algorithms instead of conventional string data. Met. Further, when analyzing these data, it is not necessary to perform conversion processing from character string data to numerical data by a conventional application, so that the processing time required for the analysis can be further shortened.

また、XMLデータの文書構造と、含まれる属性値や要素内容の値のデータ型を、スキーマを用いることによって定義することができた。一般的には、それらスキーマは、XMLデータの文書構造と、値のデータ型が厳密にスキーマの定義内容と合っているかどうかを検証するために使用される。W3Cのスキーマの標準仕様としては、XML Schema(http://www.w3.org/XML/Schema)がある。また、ISOのスキーマの標準仕様としては、RELAX NG(http://www.oasis-open.org/committees/relax-ng/)がある。   In addition, the document structure of XML data and the data types of the included attribute values and element content values could be defined using a schema. In general, these schemas are used to verify the document structure of XML data and whether the data type of values exactly matches the schema definition. As a standard specification of the W3C schema, there is XML Schema (https://www.w3.org/XML/Schema). As a standard specification of the ISO schema, there is RELAX NG (https://www.oasis-open.org/committees/relax-ng/).

また、スキーマを利用した他の技術としては、データバインディングがある。これは、開発時に、スキーマからXMLデータを格納するクラスファイルを自動生成しておき、実行時には、アプリケーションがそのクラスを利用することによって、アプリケーションの開発コストを小さくするものである。スキーマから生成したクラスにXMLデータをバインディングする際には、スキーマで定義した各データ型に基づいて、含まれるテキストデータを変換し、各メンバに格納する。よって、従来のテキストベースのXMLパーサとは異なり、アプリケーションはスキーマから生成したクラスを用いることによって、XMLデータに含まれるテキストデータを各データ型の値として扱うことが可能になる。一般的にはSun MicorsystemsのJAXB(https://jaxb.dev.java.net/)や、Relaxer(http://www.relaxer.jp/)が利用されている。   Another technique using a schema is data binding. This is to reduce the development cost of an application by automatically generating a class file for storing XML data from a schema at the time of development and using the class at the time of execution. When binding XML data to a class generated from a schema, the included text data is converted based on each data type defined in the schema and stored in each member. Therefore, unlike a conventional text-based XML parser, an application can handle text data included in XML data as a value of each data type by using a class generated from a schema. Generally, JAXB (https://jaxb.dev.java.net/) of Sun Micorsystems and Relaxer (https://www.relaxer.jp/) are used.

また、KDDIのXEUSは、属性値や要素内容において、カンマなどで区切られた数値の配列に対しては、各数値をそれぞれ符号化することによって、XMLデータを効率的に圧縮することが可能であった。   In addition, KDDI's XEUS can efficiently compress XML data by encoding each numerical value for an array of numerical values separated by commas in attribute values and element contents. there were.

また、スキーマ情報を用いることによって、文書構造の異なる複数のXMLデータ間の変換用スタイルシートを自動生成するものがあった(特許文献1)。また、アプリケーションからXMLデータへのアクセス効率を改善するために、XMLデータに含まれる階層構造が浅くなるように、タグ名を変換するものがあった(特許文献2)。   In addition, there is one that automatically generates a conversion style sheet between a plurality of XML data having different document structures by using schema information (Patent Document 1). In addition, in order to improve the access efficiency from an application to XML data, there is one that converts tag names so that the hierarchical structure included in the XML data becomes shallow (Patent Document 2).

特開2005−352945号公報JP-A-2005-352945 特開2002−297569号公報JP 2002-297469 A

従来のバイナリXMLでは、属性値や要素内容などに大きなサイズのテキストデータが含まれている場合、バイナリXML形式に符号化してもそれらの圧縮効率が良くないので、データサイズを小さくすることが難しかった。   In conventional binary XML, if text data of a large size is included in attribute values or element contents, it is difficult to reduce the data size because the compression efficiency is not good even if encoded in binary XML format. It was.

ここで、W3C標準のSVGを用いて図形オブジェクト(図1(b))を記述したテキスト形式のXMLデータ(図1(a))について説明する。このテキスト形式のXMLデータをバイナリXML形式に符号化しても、path要素のd属性の値はそのままテキストデータとして符号化され、バイナリXMLデータ内の文字列テーブルに格納される。よって、XMLデータ内に繰り返し出現する可能性の低い、サイズの大きなテキストデータは、従来のバイナリXML技術を用いても効率的に圧縮することが難しかった。特にSVGにおいては、path要素のd属性の値に長いテキストデータを用いて図形オブジェクトを記述する場合が多いので、バイナリXMLによる圧縮効果を得ることが難しかった。   Here, text format XML data (FIG. 1A) describing a graphic object (FIG. 1B) using W3C standard SVG will be described. Even if this XML data in text format is encoded in binary XML format, the value of the d attribute of the path element is encoded as text data as it is and stored in the character string table in the binary XML data. Therefore, it has been difficult to efficiently compress large-size text data that is unlikely to appear repeatedly in XML data, even using conventional binary XML technology. In particular, in SVG, it is often difficult to obtain a compression effect by binary XML because graphic objects are often described using long text data as the value of the d attribute of the path element.

本発明は以上の問題に鑑みてなされたものであり、サイズの大きなテキストデータを属性値又は要素内容として含むテキストXMLからバイナリXMLへの変換効率を改善するための技術を提供することを目的とする。   The present invention has been made in view of the above problems, and an object of the present invention is to provide a technique for improving the conversion efficiency from text XML including binary text data as attribute values or element contents to binary XML. To do.

本発明の目的を達成するために、例えば、本発明の情報処理装置は以下の構成を備える。即ち、テキスト形式の構造化文書を取得する手段と、前記構造化文書を解析し、テキストデータを検出する手段と、前記テキストデータを子要素に変換することで前記構造化文書を変換し、変換した構造化文書に基づいてバイナリ形式の構造化文書を生成する生成手段とを備えることを特徴とする。   In order to achieve the object of the present invention, for example, an information processing apparatus of the present invention comprises the following arrangement. A means for obtaining a structured document in text format; a means for analyzing the structured document to detect text data; and converting the structured document by converting the text data into child elements; And generating means for generating a structured document in binary format based on the structured document.

本発明の構成により、サイズの大きなテキストデータを属性値又は要素内容として含むテキストXMLからバイナリXMLへの変換効率を改善することができる。   With the configuration of the present invention, it is possible to improve the conversion efficiency from text XML including large text data as attribute values or element contents into binary XML.

テキスト形式のXMLデータとその描画結果を示す図。The figure which shows the XML data of a text format, and its drawing result. 実施形態に係るシステムの構成例を示す図。The figure which shows the structural example of the system which concerns on embodiment. PC101のハードウェア構成例を示すブロック図。The block diagram which shows the hardware structural example of PC101. PC101の処理機能ブロック図。The processing function block diagram of PC101. PC101が行う処理のフローチャート。The flowchart of the process which PC101 performs. ステップS113の詳細を示すフローチャート。The flowchart which shows the detail of step S113. 部分スキーマの一例を示す図。The figure which shows an example of a partial schema. (a)はXPath式の例を示す図、(b)はバイナリ形式のXMLデータを示す図。(A) is a figure which shows the example of an XPath expression, (b) is a figure which shows the XML data of a binary format. 各イベントの符号を示す図。The figure which shows the code | symbol of each event. 名前テーブルを示す図。The figure which shows a name table. (a)は値テーブルを示す図、(b)は符号のテーブルを示す図。(A) is a figure which shows a value table, (b) is a figure which shows the table | surface of a code | symbol.

以下、添付図面を参照し、本発明の好適な実施形態について説明する。なお、以下説明する実施形態は、本発明を具体的に実施した場合の一例を示すもので、特許請求の範囲に記載の構成の具体的な実施例の1つである。   Preferred embodiments of the present invention will be described below with reference to the accompanying drawings. The embodiment described below shows an example when the present invention is specifically implemented, and is one of the specific examples of the configurations described in the claims.

本実施形態では、比較的大きなサイズのテキストデータを属性値として有する属性を含む要素が記された構造化文書としてのテキストXMLを、圧縮効率良くバイナリXMLに変換する為の技術について説明する。   In the present embodiment, a technique for converting text XML as a structured document in which an element including an attribute having text data of a relatively large size as an attribute value is written into binary XML with high compression efficiency will be described.

先ず、本実施形態に係るシステムについて、図2を用いて説明する。図2に示す如く、本実施形態に係るシステムは、本実施形態に係る情報処理装置としてのPC(パーソナルコンピュータ)101、ネットワークの一例であるLAN102、デジタルカメラ103、複合機104、ファイルサーバ105により構成されている。   First, the system according to the present embodiment will be described with reference to FIG. As shown in FIG. 2, the system according to the present embodiment includes a PC (personal computer) 101 as an information processing apparatus according to the present embodiment, a LAN 102 as an example of a network, a digital camera 103, a multifunction peripheral 104, and a file server 105. It is configured.

デジタルカメラ103は、PC101で生成したXMLデータと共に用いる画像を撮像により取得するためのもので、デジタルカメラ103により撮像された画像のデータは、LAN102を介してPC101やファイルサーバ105に転送される。もちろん、デジタルカメラ103の使用方法はこれに限定するものではない。   The digital camera 103 is for acquiring an image to be used together with the XML data generated by the PC 101 by imaging, and the image data captured by the digital camera 103 is transferred to the PC 101 and the file server 105 via the LAN 102. Of course, the method of using the digital camera 103 is not limited to this.

複合機104は、PC101で生成したXMLデータと共に用いる画像を複写により取得するためのもので、複合機104により複写された画像のデータは、LAN102を介してPC101やファイルサーバ105に転送される。もちろん、複合機104の使用方法はこれに限定するものではない。   The multifunction device 104 is for obtaining an image to be used together with the XML data generated by the PC 101 by copying, and the image data copied by the multifunction device 104 is transferred to the PC 101 and the file server 105 via the LAN 102. Of course, the method of using the multifunction machine 104 is not limited to this.

ファイルサーバ105は、デジタルカメラ103や複合機104から転送された画像のデータを保持すると共に、PC101から転送されたXMLデータも保持する。ファイルサーバ105が保持する画像のデータやXMLデータに対しては、LAN102を介して適宜アクセスすることができる。   The file server 105 holds image data transferred from the digital camera 103 or the multifunction peripheral 104 and also holds XML data transferred from the PC 101. The image data and XML data held by the file server 105 can be appropriately accessed via the LAN 102.

PC101は、本実施形態に係る情報処理装置として用いるもので、テキスト形式のXMLデータをバイナリ形式のXMLデータに変換する後述の処理を実行する。次に、図3を用いて、PC101のハードウェア構成例について説明する。   The PC 101 is used as an information processing apparatus according to the present embodiment, and executes processing to be described later for converting text-format XML data into binary-format XML data. Next, a hardware configuration example of the PC 101 will be described with reference to FIG.

CPU201は、ROM202やRAM203に格納されているコンピュータプログラムやデータを用いてPC101全体の制御を行うと共に、PC101が行うものとして後述する各処理を実行する。   The CPU 201 controls the entire PC 101 using computer programs and data stored in the ROM 202 and the RAM 203 and executes each process described later as what the PC 101 performs.

ROM202は、コンピュータ読み取り可能な記憶媒体の一例であり、PC101の設定データやブートプログラムなどが格納されている。RAM203は、コンピュータ読み取り可能な記憶媒体の一例であり、記憶部204からロードされたコンピュータプログラムやデータ、LAN I/F207、USB I/F209を介して外部から受信したデータ等を一時的に記憶する為のエリアを有する。また、RAM203は、CPU201が各種の処理を実行する際に用いるワークエリアも有する。即ち、RAM203は、各種のエリアを適宜提供することができる。   The ROM 202 is an example of a computer-readable storage medium, and stores setting data, a boot program, and the like of the PC 101. The RAM 203 is an example of a computer-readable storage medium, and temporarily stores computer programs and data loaded from the storage unit 204, data received from the outside via the LAN I / F 207, USB I / F 209, and the like. Have an area for The RAM 203 also has a work area used when the CPU 201 executes various processes. That is, the RAM 203 can provide various areas as appropriate.

記憶部204は、コンピュータ読み取り可能な記憶媒体の一例であり、ハードディスクドライブ装置に代表される、大容量情報記憶装置である。記憶部204には、OS(オペレーティングシステム)や、PC101が行うものとして後述する各処理をCPU201に実行させるためのコンピュータプログラムやデータが保存されている。このコンピュータプログラムやデータは、CPU201による制御に従って適宜RAM203にロードされ、CPU201による処理対象となる。   The storage unit 204 is an example of a computer-readable storage medium, and is a large-capacity information storage device represented by a hard disk drive device. The storage unit 204 stores an OS (Operating System) and computer programs and data for causing the CPU 201 to execute each process described below as performed by the PC 101. This computer program and data are appropriately loaded into the RAM 203 under the control of the CPU 201 and are processed by the CPU 201.

操作部205は、キーボードやマウスなどにより構成されており、PC101の操作者が操作することで、各種の指示をCPU201に対して入力することができる。表示部206は、CRTや液晶画面などにより構成されており、CPU201による処理結果を画像や文字などでもって表示することができる。   The operation unit 205 is configured by a keyboard, a mouse, and the like, and can input various instructions to the CPU 201 when operated by an operator of the PC 101. The display unit 206 is configured by a CRT, a liquid crystal screen, or the like, and can display a processing result by the CPU 201 using an image, text, or the like.

LAN I/F207は、PC101をLAN102に接続する為のもので、PC101はこのLAN I/F207を介してLAN102に接続されている機器との通信を行う。USB I/F209は、PC101をUSB回線210に接続する為のもので、PC101はこのUSB I/F209を介してUSB回線210に接続されている機器との通信を行う。上記各部は何れも共通のバスに接続されており、互いに通信を行うことができる。   The LAN I / F 207 is for connecting the PC 101 to the LAN 102, and the PC 101 communicates with a device connected to the LAN 102 via the LAN I / F 207. The USB I / F 209 is for connecting the PC 101 to the USB line 210, and the PC 101 communicates with a device connected to the USB line 210 via the USB I / F 209. Each of the above units is connected to a common bus and can communicate with each other.

なお、以上で説明したシステムの構成やPC101の構成は一例であって、後述する処理を実現することができ、且つ後述する処理によって得られるバイナリ形式のXMLデータを用いた応用が可能であれば、他の構成を適用しても良い。   Note that the system configuration and the PC 101 configuration described above are merely examples, provided that the processing described later can be realized and the application using the binary format XML data obtained by the processing described later is possible. Other configurations may be applied.

次に、テキスト形式のXMLデータからバイナリ形式のXMLデータへの効率の良い圧縮符号化処理について、図5を用いて説明する。なお、図5に示したフローチャートに従った処理をCPU201に実行させるためのコンピュータプログラムやデータは記憶部204に保存されている。係るコンピュータプログラムやデータは、CPU201による制御に従って適宜RAM203にロードされ、CPU201による処理対象となる。CPU201がこのロードされたコンピュータプログラムやデータを用いて処理を実行することで、PC101は、以下に説明する各処理(図5に示した各ステップにおける処理)を実行することになる。   Next, an efficient compression encoding process from text format XML data to binary format XML data will be described with reference to FIG. Note that a computer program and data for causing the CPU 201 to execute processing according to the flowchart shown in FIG. Such computer programs and data are appropriately loaded into the RAM 203 under the control of the CPU 201 and are processed by the CPU 201. When the CPU 201 executes processing using the loaded computer program and data, the PC 101 executes each processing described below (processing at each step shown in FIG. 5).

また、以下では、説明を簡単にするために、圧縮符号化対象のテキスト形式のXMLデータは、図1に示したXMLデータであるものとする。もちろん、以下に説明する処理の本質は、他のテキスト形式のXMLデータであっても同じである。   In the following description, it is assumed that the XML data in the text format to be compression-encoded is the XML data shown in FIG. Of course, the essence of the processing described below is the same for XML data in other text formats.

先ずステップS102では、CPU201は、バイナリ形式のXMLデータへの圧縮符号化対象となるテキスト形式のXMLデータを選択する。係る選択は、PC101上で動作しているアプリケーションによって行っても良いし、操作部205を介して操作者が入力した選択指示に基づいて行っても良い。上述の通り、ここでは、図1に示したXMLデータが選択されたものとする。係るXMLデータには、効率的に圧縮することの難しいテキストデータ(Xpath式にマッチするテキストデータ)を属性値として有する属性(図1ではd属性)を含む要素(図1ではpath要素)が含まれている。   First, in step S102, the CPU 201 selects text-format XML data to be compressed and encoded into binary-format XML data. Such selection may be performed by an application running on the PC 101 or may be performed based on a selection instruction input by the operator via the operation unit 205. As described above, it is assumed here that the XML data shown in FIG. 1 has been selected. The XML data includes an element (path element in FIG. 1) including an attribute (d attribute in FIG. 1) having text data that is difficult to compress efficiently (text data that matches the Xpath expression) as an attribute value. It is.

次にステップS103では、効率的に圧縮することの難しいテキストデータに関するデータ型を記述した部分スキーマと、そのデータ型の情報のルートとなる定義名と、を選択し、この部分スキーマを解析し、RAM203内にDOMツリーを作成する。   Next, in step S103, a partial schema describing a data type related to text data that is difficult to compress efficiently and a definition name that is the root of information on the data type are selected, and the partial schema is analyzed. A DOM tree is created in the RAM 203.

なお、部分スキーマと、そのデータ型の情報のルートとなる定義名は、表示部206にこれらの選択を行うためのユーザインタフェース画面を表示し、ユーザがこの画面を見ながら操作部205を用いて選択指示を入力するようにしても良い。また、部分スキーマと、そのデータ型の情報のルートとなる定義名を、あらかじめアプリケーションロジックに組み込むことで、これらを選択するようにしても良い。   Note that the definition name that is the root of the partial schema and the data type information is displayed on the display unit 206 using the operation unit 205 while the user interface screen for making these selections is displayed. A selection instruction may be input. Alternatively, a partial schema and a definition name that becomes the root of information on the data type may be selected by incorporating them in the application logic in advance.

上記の通り、本実施形態では、効率的に圧縮することの難しいデータは、図1におけるpath要素のd属性の属性値である。また、RELAX NGを用いて記述した、図1におけるpath要素のd属性のデータ型を定義した部分スキーマの一例について、図7を用いて説明する。   As described above, in the present embodiment, the data that is difficult to compress efficiently is the attribute value of the d attribute of the path element in FIG. An example of a partial schema that defines the data type of the d attribute of the path element in FIG. 1 described using RELAX NG will be described with reference to FIG.

図7に例示した部分スキーマでは、define要素を用いて複数のデータ型を記述しているが、d属性の値のデータ型のルートとなる定義名は、”SVG.PathData.datatype”である。然るに、図7の場合、ステップS103で選択する定義名は、”SVG.PathData.datatype”となる。   In the partial schema illustrated in FIG. 7, a plurality of data types are described using the define element, but the definition name that is the root of the data type of the value of the d attribute is “SVG.PathData.datatype”. However, in the case of FIG. 7, the definition name selected in step S103 is “SVG.PathData.datatype”.

図5に戻って、次に、ステップS104では、RELAX NG仕様書の第4章単純化に基づいて、選択した部分スキーマの文書構造を単純化する。そして、ステップS105では、XPath式を用いることにより、定義した部分スキーマに対応するテキストデータを選択する。テキスト形式のXMLデータに出現する全てのpath要素のd属性を表現したXPath式の例は、図8(a)に示すようになっている。なお、XPath式を用いたテキストデータの選択については、表示部206に選択を行うためのユーザインタフェース画面を表示し、ユーザがこの画面を見ながら操作部205を用いて選択指示を入力するようにしても良い。また、XPath式をあらかじめアプリケーションロジックに組み込むことで、係る選択を行うようにしても良い。   Returning to FIG. 5, in step S104, the document structure of the selected partial schema is simplified based on Chapter 4 simplification of the RELAX NG specification. In step S105, text data corresponding to the defined partial schema is selected by using an XPath expression. An example of an XPath expression that expresses the d attribute of all the path elements that appear in the XML data in the text format is as shown in FIG. As for the selection of text data using the XPath expression, a user interface screen for selection is displayed on the display unit 206, and the user inputs a selection instruction using the operation unit 205 while viewing this screen. May be. Further, such selection may be performed by incorporating an XPath expression in the application logic in advance.

次に、ステップS106では、テキスト形式のXMLデータを解析する。係る解析は、テキスト形式のXMLデータの先頭から順次行うものとする。次に、ステップS107では、テキスト形式のXMLデータからバイナリ形式のXMLデータへの符号化が完了したか否かを判断する。係る判断の結果、完了している場合には本処理は終了し、完了していない場合には処理はステップS108に進む。   Next, in step S106, the XML data in the text format is analyzed. Such analysis is performed sequentially from the beginning of the XML data in text format. Next, in step S107, it is determined whether or not encoding from text-format XML data to binary-format XML data has been completed. As a result of the determination, when the processing is completed, the present processing is terminated. When the processing is not completed, the processing proceeds to step S108.

ステップS108では、テキスト形式のXMLデータ中に、XPath式にマッチするテキストデータが含まれているか否かを判断する。係る判断の結果、含まれている場合(テキスト形式のXMLデータからXPath式にマッチするテキストデータを検出可能である場合)には処理をステップS110に進め、含まれていない場合には処理をステップS109に進める。ステップS109では、テキスト形式のXMLデータをそのまま従来通りにバイナリ形式のXMLデータに符号化する。   In step S108, it is determined whether text data matching the XPath expression is included in the XML data in text format. If it is included (if it is possible to detect text data that matches the XPath expression from text-format XML data), the process proceeds to step S110. If not, the process proceeds to step S110. Proceed to S109. In step S109, the text-format XML data is encoded as it is into binary-format XML data in the conventional manner.

ステップS110では、テキスト形式のXMLデータにおいて、XPath式にマッチしないデータを符号化する。図1のテキスト形式のXMLデータの場合、最初の開始タグsvgはXPath式にマッチするテキストデータを含んでいないので、そのまま開始タグとして符号化する。そして、次のpath要素は、XPath式にマッチするd属性を含んでいるので、開始タグpathと、fill、stroke、stroke-width属性を符号化する。なお、XPath式にマッチしたd属性とその属性値は、符号化しないでRAM203に保存しておく。   In step S110, data that does not match the XPath expression is encoded in the XML data in text format. In the case of the XML data in the text format of FIG. 1, the first start tag svg does not include text data that matches the XPath expression, and is encoded as a start tag as it is. Since the next path element includes the d attribute that matches the XPath expression, the start tag path and the fill, stroke, and stroke-width attributes are encoded. The d attribute that matches the XPath expression and its attribute value are stored in the RAM 203 without being encoded.

次に、ステップS111では、XPath式にマッチしたテキストデータの所属先が、属性値か否かを判断する。係る判断の結果、XPath式にマッチしたテキストデータの所属先が属性値である場合には、処理をステップS112に進め、XPath式にマッチしたテキストデータの所属先が属性値ではない場合には、処理をステップS115に進める。   Next, in step S111, it is determined whether or not the text data that matches the XPath expression is an attribute value. As a result of the determination, if the affiliation destination of the text data matching the XPath expression is an attribute value, the process proceeds to step S112. If the affiliation destination of the text data matching the XPath expression is not an attribute value, The process proceeds to step S115.

ステップS112では、XPath式にマッチしたテキストデータの所属先としての属性値の属性名をタグ名とする開始タグを符号化する。図1のテキスト形式のXMLデータの例では、XPath式にマッチしたテキストデータは属性値に所属し、その属性名が”d”であるので、”d”という名前を持つ開始タグ<d>を符号化する。   In step S112, a start tag is encoded with the attribute name of the attribute value as the destination of the text data that matches the XPath expression as the tag name. In the example of the text format XML data in FIG. 1, since the text data matching the XPath expression belongs to the attribute value and the attribute name is “d”, the start tag <d> having the name “d” is set. Encode.

次に、ステップS113では、XPath式にマッチしたテキストデータを先頭から逐次解析し、選択した部分スキーマのデータ型の情報を用いることによって、そのテキストデータを子要素に変換する。   Next, in step S113, the text data matching the XPath expression is sequentially analyzed from the top, and the text data is converted into a child element by using the data type information of the selected partial schema.

ここで、ステップS113における処理の詳細について、図6を用いて説明する。まずステップS202では、部分スキーマのDOMツリー内の内部状態を初期化する。次に、ステップS203では、テキストデータの解析途中の状態を記憶しておくために、部分スキーマ内の任意のノードを指し示すポインタpを、NULLや最初のノードへのポインタ値等に初期化する。   Details of the processing in step S113 will be described with reference to FIG. First, in step S202, the internal state in the DOM tree of the partial schema is initialized. Next, in step S203, in order to store the state during the text data analysis, a pointer p pointing to an arbitrary node in the partial schema is initialized to NULL, a pointer value to the first node, or the like.

次に、ステップS204では、XPath式にマッチしたテキストデータについての解析が完了したか否かを判断する。係る判断の結果、完了した場合にはステップS113の処理は終了し、ステップS114に処理を進める。一方、係る判断の結果、完了していない場合には、処理をステップS205に進める。なお、テキストデータの解析処理は、テキストデータに含まれる空白文字を区切りの識別子とし、この識別子でテキストデータを分割し、それぞれの分割テキストデータ毎に解析する。   Next, in step S204, it is determined whether or not the analysis for the text data matching the XPath expression is completed. If the determination is completed, the process of step S113 ends, and the process proceeds to step S114. On the other hand, if the result of the determination is not complete, the process proceeds to step S205. In the text data analysis process, a blank character included in the text data is used as a delimiter identifier, the text data is divided by this identifier, and analysis is performed for each divided text data.

ステップS205では、分割テキストデータが、部分スキーマのgroup要素以下で定義された列挙値に該当する変数であるか否かを判断する。係る判断の結果、該当する場合には、処理をステップS206に進め、該当しない場合には、処理をステップS207に進める。   In step S205, it is determined whether or not the divided text data is a variable corresponding to the enumerated value defined below the group element of the partial schema. As a result of the determination, if applicable, the process proceeds to step S206; otherwise, the process proceeds to step S207.

ステップS206では、部分スキーマのgroup要素以下で定義された列挙値に該当する変数としての分割テキストデータを、その列挙値をタグ名とする開始タグに符号化する。図7に示した部分スキーマを用いる場合、列挙値は、”M”、”m”、”L”、”l”であるので、最初に解析する分割テキストデータ”M”は、”moveType”を名前として持つdefine要素以下に対応する。然るにこのような場合には、最初に解析する分割テキストデータ”M”を、”M”をタグ名とする開始タグに符号化する。そしてその後、ステップS208では、解析途中の状態を記憶しておくために、例えば図7の場合には、部分スキーマ内の名前が”moveType”のdefine要素以下のchoice要素を指し示すように、ポインタpを更新する。   In step S206, the divided text data as a variable corresponding to the enumerated value defined below the group element of the partial schema is encoded into a start tag having the enumerated value as a tag name. When the partial schema shown in FIG. 7 is used, the enumerated values are “M”, “m”, “L”, and “l”. Therefore, the divided text data “M” to be analyzed first is “moveType”. Corresponds to the following define elements that have names. In such a case, however, the divided text data “M” to be analyzed first is encoded into a start tag having “M” as a tag name. Then, in step S208, in order to store the state in the middle of the analysis, for example, in the case of FIG. 7, the pointer p so that the name in the partial schema points to the choice element below the define element of “moveType”. Update.

一方、ステップS207では、ポインタpが指し示す部分スキーマ内の参照先のノードを解析する。そして、分割テキストデータを、そのテキストデータのデータ型に基づいて、1つのテキストイベントとして符号化する。図7に示した部分スキーマを用いる場合、最初の分割テキストデータ”M”を開始タグとして符号化した後、”M”に後続する分割テキストデータ”100”は、部分スキーマで定義されているfloat型で1つのテキストイベントとして符号化する。   On the other hand, in step S207, the reference destination node in the partial schema indicated by the pointer p is analyzed. Then, the divided text data is encoded as one text event based on the data type of the text data. When the partial schema shown in FIG. 7 is used, after the first divided text data “M” is encoded as the start tag, the divided text data “100” following “M” is a float defined in the partial schema. Encode as one text event with type.

そしてその後ステップS208では、現在ポインタpが指し示していたノードの兄弟ノードを参照するように、ポインタpを更新する。従って、分割テキストデータ”100”を符号化した後、ポインタpは、”moveType”を名前に持つdefine要素以下の<data type=”float”>ノードを参照することになる。このようにして、1つのテキストデータを構成する全ての分割テキストデータについて順次、符号化する。   In step S208, the pointer p is updated so as to refer to the sibling node of the node currently pointed to by the pointer p. Therefore, after encoding the divided text data “100”, the pointer p refers to a <data type = “float”> node below the define element having “moveType” as a name. In this way, all divided text data constituting one text data is sequentially encoded.

図5に戻って、次に、ステップS114では、ステップS112で符号化した開始タグに対応する終了タグを符号化する。本実施形態では、”d”というタグ名を有する終了タグ</d>を符号化する。一方、ステップS115では、ステップS112,S114で符号化した開始タグと終了タグを出力しないで、ステップS113と同様の処理を行う。   Returning to FIG. 5, next, in step S114, the end tag corresponding to the start tag encoded in step S112 is encoded. In the present embodiment, an end tag </ d> having a tag name “d” is encoded. On the other hand, in step S115, the same process as in step S113 is performed without outputting the start tag and the end tag encoded in steps S112 and S114.

以上説明した符号化処理を図1に示したテキスト形式のXMLデータに対して行うことで、図8(b)に示すバイナリ形式のXMLデータを作成することができる。図8(b)に示したバイナリは、それぞれの単位に対応するバイナリである。   By performing the encoding process described above on the XML data in the text format shown in FIG. 1, the XML data in the binary format shown in FIG. 8B can be created. The binary shown in FIG. 8B is a binary corresponding to each unit.

図1のテキスト形式のXMLデータのpath要素に含まれるd属性のデータは、path要素の子要素として含まれるように変換される。また、d属性の値のテキストデータは、”M”や”L”といったコマンドをグループ(テキストデータの構造単位)の単位として子要素として変換される。その要素内容には、”M”や”L”のコマンドに対して指定する座標情報が、1つ1つのテキストイベントとして格納される。アプリケーションが、”M”や”L”のコマンドに対して指定した座標情報をデコードした際には、各座標情報を別々のテキストイベントとして取得することができる。   Data of the d attribute included in the path element of the XML data in the text format in FIG. 1 is converted so as to be included as a child element of the path element. The text data of the value of the d attribute is converted as a child element using a command such as “M” or “L” as a unit of a group (text data structural unit). In the element contents, coordinate information designated for the “M” and “L” commands is stored as each text event. When the application decodes the coordinate information specified for the “M” or “L” command, each coordinate information can be acquired as a separate text event.

図8(b)に示したバイナリ形式のXMLデータに関する各イベントの符号を図9に示す。アプリケーションは事前に各イベントの符号を知っているものとする。また、図8(b)で参照される名前テーブルを図10に示す。この名前テーブルは、要素や属性の名前と、各名前に割り当てる符号と、各名前のデータサイズを格納したテーブルである。   FIG. 9 shows the signs of the events related to the XML data in the binary format shown in FIG. Assume that the application knows the sign of each event in advance. FIG. 10 shows a name table referred to in FIG. This name table is a table that stores names of elements and attributes, codes assigned to the names, and data sizes of the names.

また、図8(b)に示したバイナリ形式のXMLデータで参照される値テーブルを図11(a)に示す。この値テーブルは、要素内容や属性値の値と、各値に割り当てる符号と、各値のデータ型、各値のデータサイズを格納したテーブルである。図10,11(a)に示したテーブルは、変換元となるテキスト形式のXMLデータに依存するものであるので、テキスト形式のXMLデータの内容が変われば、図10,11(a)に示したテーブルの内容もそれに依存して変わる。図11(b)は、図11(a)に示したテーブルの各値のデータ型として参照する符号のテーブルであり、アプリケーションは事前に知っているものとする。   FIG. 11A shows a value table referred to by the binary format XML data shown in FIG. This value table is a table storing element contents and attribute value values, codes assigned to the respective values, data types of the respective values, and data sizes of the respective values. The tables shown in FIGS. 10 and 11 (a) depend on the text-format XML data as the conversion source. Therefore, if the contents of the text-format XML data change, the tables shown in FIGS. The contents of the table change accordingly. FIG. 11B is a code table that is referred to as the data type of each value in the table shown in FIG. 11A, and is assumed to be known in advance by the application.

次に、PC101の処理機能ブロックについて、図4を用いて説明する。構造化文書解析部304は、バイナリ形式のXMLデータへの圧縮符号化対象となるテキスト形式のXMLデータを取得し、解析する。   Next, processing function blocks of the PC 101 will be described with reference to FIG. The structured document analysis unit 304 acquires and analyzes text-format XML data to be compressed and encoded into binary-format XML data.

スキーマ選択部303は、効率的に圧縮することの難しいテキストデータに関するデータ型を記述した部分スキーマと、そのデータ型の情報のルートとなる定義名と、を選択する。   The schema selection unit 303 selects a partial schema describing a data type related to text data that is difficult to efficiently compress, and a definition name that is a root of information on the data type.

スキーマ解析部305は、この部分スキーマを解析し、RAM203内にDOMツリーを作成する。そして更に、スキーマ解析部305は、RELAX NG仕様書の第4章単純化に基づいて、選択した部分スキーマの文書構造を単純化する。   The schema analysis unit 305 analyzes this partial schema and creates a DOM tree in the RAM 203. Further, the schema analysis unit 305 simplifies the document structure of the selected partial schema based on Chapter 4 simplification of the RELAX NG specification.

テキストデータ選択部302は、XPath式を取得する。符号化文書生成部306は、XPath式を用いることにより、定義した部分スキーマに対応するテキストデータを選択する。符号化文書生成部306は、テキストデータ解析部307、テキストデータ符号化部309を有しており、各部は以下のように動作する。テキストデータ解析部307は、XPath式にマッチしたテキストデータの解析を行い、テキストデータ符号化部309は、上記各符号化処理を行う。   The text data selection unit 302 acquires an XPath expression. The encoded document generation unit 306 selects text data corresponding to the defined partial schema by using the XPath expression. The encoded document generation unit 306 includes a text data analysis unit 307 and a text data encoding unit 309, and each unit operates as follows. The text data analysis unit 307 analyzes text data that matches the XPath expression, and the text data encoding unit 309 performs each encoding process described above.

Claims (8)

テキスト形式の構造化文書を取得する手段と、
前記構造化文書を解析し、テキストデータを検出する手段と、
前記テキストデータを子要素に変換することで前記構造化文書を変換し、変換した構造化文書に基づいてバイナリ形式の構造化文書を生成する生成手段と
を備えることを特徴とする情報処理装置。
Means for obtaining a structured document in text format;
Means for analyzing the structured document and detecting text data;
An information processing apparatus comprising: generating means for converting the structured document by converting the text data into child elements, and generating a structured document in a binary format based on the converted structured document.
前記テキストデータは、前記構造化文書に含まれる属性値であることを特徴とする請求項1に記載の情報処理装置。   The information processing apparatus according to claim 1, wherein the text data is an attribute value included in the structured document. 前記テキストデータは、前記構造化文書に含まれる要素内容であることを特徴とする請求項1に記載の情報処理装置。   The information processing apparatus according to claim 1, wherein the text data is element content included in the structured document. 前記生成手段は、
前記テキストデータの構造を定義するスキーマを取得する手段と、
前記スキーマを用いて前記テキストデータを子要素に変換することで前記構造化文書を変換する変換手段と
を備えることを特徴とする請求項1乃至3の何れか1項に記載の情報処理装置。
The generating means includes
Means for obtaining a schema defining the structure of the text data;
4. The information processing apparatus according to claim 1, further comprising: a conversion unit configured to convert the structured document by converting the text data into a child element using the schema. 5.
前記変換手段は、
前記テキストデータにおいて、前記スキーマのgroup要素以下で定義された列挙値に該当する変数については、当該列挙値をタグ名とする開始タグに変換する手段と、
前記テキストデータにおいて、前記変数に後続する値については、前記開始タグに後続するデータとする手段と
を備えることを特徴とする請求項4に記載の情報処理装置。
The converting means includes
In the text data, for a variable corresponding to an enumerated value defined below the group element of the schema, means for converting the enumerated value into a start tag having a tag name;
5. The information processing apparatus according to claim 4, further comprising: means for setting a value subsequent to the variable in the text data to data subsequent to the start tag. 6.
テキスト形式の構造化文書を取得する工程と、
前記構造化文書を解析し、テキストデータを検出する工程と、
前記テキストデータを子要素に変換することで前記構造化文書を変換し、変換した構造化文書に基づいてバイナリ形式の構造化文書を生成する生成工程と
を備えることを特徴とする情報処理方法。
Obtaining a structured document in text format;
Analyzing the structured document and detecting text data;
An information processing method comprising: a step of converting the structured data by converting the text data into child elements, and generating a structured document in a binary format based on the converted structured document.
コンピュータを請求項1乃至5の何れか1項に記載の各手段として機能させるためのコンピュータプログラム。   The computer program for functioning a computer as each means of any one of Claims 1 thru | or 5. 請求項7に記載のコンピュータプログラムを格納した、コンピュータ読み取り可能な記憶媒体。   A computer-readable storage medium storing the computer program according to claim 7.
JP2009118047A 2009-05-14 2009-05-14 Information processor and information processing method Withdrawn JP2010267092A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009118047A JP2010267092A (en) 2009-05-14 2009-05-14 Information processor and information processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009118047A JP2010267092A (en) 2009-05-14 2009-05-14 Information processor and information processing method

Publications (1)

Publication Number Publication Date
JP2010267092A true JP2010267092A (en) 2010-11-25

Family

ID=43364007

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009118047A Withdrawn JP2010267092A (en) 2009-05-14 2009-05-14 Information processor and information processing method

Country Status (1)

Country Link
JP (1) JP2010267092A (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012203819A (en) * 2011-03-28 2012-10-22 Toshiba Corp Encoder compiler, program and communication apparatus
JP2018511036A (en) * 2015-01-31 2018-04-19 エフ.ホフマン−ラ ロシュ アーゲーF. Hoffmann−La Roche Aktiengesellschaft System and method for mesodai section
US10866170B2 (en) 2011-01-24 2020-12-15 Roche Molecular Systems, Inc Devices, systems, and methods for extracting a material from a material sample
US10871425B2 (en) 2015-01-31 2020-12-22 Roche Molecular Systems Inc. Systems and methods for meso-dissection
US10876933B2 (en) 2016-11-09 2020-12-29 Ventana Medical Systems, Inc. Automated tissue dissection instrument and methods of using the same

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10866170B2 (en) 2011-01-24 2020-12-15 Roche Molecular Systems, Inc Devices, systems, and methods for extracting a material from a material sample
JP2012203819A (en) * 2011-03-28 2012-10-22 Toshiba Corp Encoder compiler, program and communication apparatus
US8892991B2 (en) 2011-03-28 2014-11-18 Kabushiki Kaisha Toshiba Encoder compiler, computer readable medium, and communication device
JP2018511036A (en) * 2015-01-31 2018-04-19 エフ.ホフマン−ラ ロシュ アーゲーF. Hoffmann−La Roche Aktiengesellschaft System and method for mesodai section
US10871425B2 (en) 2015-01-31 2020-12-22 Roche Molecular Systems Inc. Systems and methods for meso-dissection
US11125660B2 (en) 2015-01-31 2021-09-21 Roche Molecular Systems, Inc. Systems and methods for meso-dissection
US11181449B2 (en) 2015-01-31 2021-11-23 Roche Molecular Systems, Inc. Systems and methods for meso-dissection
US11768136B2 (en) 2015-01-31 2023-09-26 Roche Molecular Systems, Inc. Systems and methods for meso-dissection
US11860072B2 (en) 2015-01-31 2024-01-02 Roche Molecular Systems, Inc. Systems and methods for meso-dissection
US10876933B2 (en) 2016-11-09 2020-12-29 Ventana Medical Systems, Inc. Automated tissue dissection instrument and methods of using the same
US11971333B2 (en) 2016-11-09 2024-04-30 Ventana Medical Systems, Inc. Automated tissue dissection instrument and methods of using the same

Similar Documents

Publication Publication Date Title
US9430195B1 (en) Dynamic server graphics
US9286228B2 (en) Facilitating caching in an image-processing system
JP2010267092A (en) Information processor and information processing method
JP2011146036A (en) Information processor, control method for the same, and program
CN114036183A (en) Data ETL processing method, device, equipment and medium
JPWO2007081017A1 (en) Document processing device
WO2023077732A1 (en) Knowledge visualization development method and system for data visualization large screen
CN112685435A (en) Table query method and system based on Vue and Mybatis
JP4429329B2 (en) Encoding apparatus and control method thereof, decoding apparatus and control method thereof, program, and storage medium
JP2005332146A (en) Device, program and method for generating dynamic content creation program
JP2015197826A (en) Information processor, information processing method, and program
US20050177818A1 (en) Integration of external tools into an existing design environment
US8869048B2 (en) Declarative and multi-mode wizard framework
JPWO2006051969A1 (en) Document processing apparatus and document processing method
JPWO2006051954A1 (en) Document processing apparatus and document processing method
US8335984B2 (en) Information processing for generating print data for variable-data printing
JP5409090B2 (en) Information processing apparatus, information processing method, program, and storage medium
JP2005056085A (en) Data structure conversion program
JP2004362343A (en) Source code conversion apparatus, source code conversion method, and program
JP5206675B2 (en) Structured document converter
JPWO2006051955A1 (en) Server apparatus and namespace issuing method
US20070143666A1 (en) Architecture for arbitrary extensible markup language processing engine
JP2007279795A (en) System for deciding whether or not screen to be displayed by program satisfy specification
JP5596517B2 (en) Internationalized screen generation system and program
JP2010224659A (en) Information processing device, information processing method, program and storage medium

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20120807