JP5325920B2 - エンコーダコンパイラ、プログラムおよび通信機器 - Google Patents
エンコーダコンパイラ、プログラムおよび通信機器 Download PDFInfo
- Publication number
- JP5325920B2 JP5325920B2 JP2011070193A JP2011070193A JP5325920B2 JP 5325920 B2 JP5325920 B2 JP 5325920B2 JP 2011070193 A JP2011070193 A JP 2011070193A JP 2011070193 A JP2011070193 A JP 2011070193A JP 5325920 B2 JP5325920 B2 JP 5325920B2
- Authority
- JP
- Japan
- Prior art keywords
- exi
- event
- encoder
- code
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/205—Parsing
- G06F40/221—Parsing markup language streams
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Document Processing Apparatus (AREA)
- Devices For Executing Special Programs (AREA)
- Information Transfer Between Computers (AREA)
- Stored Programmes (AREA)
Description
(A)前記イベントの列を順番に処理して、前記イベントを処理するごとに前記EXI文法書に応じてEXIイベントコードを生成し、
(B)処理するイベントが前記置換文字列を指定するイベントであるときは、前記置換文字列が配置された箇所に対応する前記変数の値を取得する関数を生成し、
(C)前記イベントの列の処理順序に応じて、生成したEXIイベントコードの出力命令コードおよび前記関数の値の出力命令コードを配置することによりEXIエンコーダを生成する。
構造体の定義:入力となる「構造体」の定義(C 言語の定義などを利用)。構造体の名前と、構造体の各要素の名前およびその型とを含む。struct productが構造体の名称である。
変換関数:構造体の各要素の値を、教師XML文書の該当箇所に、どのような型で表記するかを定める関数。構造体の要素の型と、教師XML文書の該当箇所とが同じ型を有する場合は、変換は不要であり、構造体の要素の値のみを取得する関数を用いればよい。
(1)スキーマ-構造体対応情報が指定するタグの直前(本例では<product>の直前)までのSAXイベント列
(2)当該指定するタグの1 つまたは複数の繰り返しからなるSAXイベント列
(3)当該指定するタグが終了した直後(本例では</product>の直後>から文書の末尾までのSAXイベント列から成る。
1. スキーマ-構造体対応情報にて定義される構造体を入力として、L[R]の内容(リスト)を得る。
2. リストの先頭から順番に以下の処理を行う。
(a) もし処理対象が定数(たとえばイベントコードのビット)のみであったら、定数を出力する。
(b) もし処理対象が入力要素ポインタ(構造体を示す)とその変換関数の組であれば、そのポインタが示す値を変換関数に渡し、変換関数の出力をそのまま出力する。
(c) もしリストが終了したら、処理を終了する。
A.1 教師XML文書の例
<?xml>
<order>
<product sku="@SKU@" color="@COLOR@">
<quantity>@QUANTITY@</quantity>
<price>@PRICE@</price>
</product>
</order>
A.2 スキーマ-構造体対応情報
置換文字列方式によるもの:
/order/product => struct product {
w_char* sku -> wchar2utf8 | @SKU@;
w_char* color -> wchar2utf8 | @COLOR@;
int quantity -> int2string | @QUANTITY@;
float price -> float2string | @PRICE@;
};
相対XPath 方式によるもの
/order/product => struct product {
w_char* sku -> wchar2utf8 | @sku;
w_char* color -> wchar2utf8 | @color;
int quantity -> int2utf8 | quantity/text();
float price -> float2utf8 | price/text();
};
A.3 教師XML文書の分割例
A.3.1 HEAD 部
<?xml>
<order>
A.3.2 BODY 部
<product sku="@SKU@" color="@COLOR@">
<quantity>@QUANTITY@</quantity>
<price>@PRICE@</price>
</product>
A.3.3 END 部
</order>
A.4 想定するXML文書の具体例
<?xml>
<order>
<product sku="1JB339" color="white">
<quantity>40</quantity>
<price>339.50</price>
</product>
<product sku="1JB340" color="black">
<quantity>25</quantity>
<price>155.0</price>
</product>
<product sku="1JB341" color="green">
<quantity>30</quantity>
<price>183.95</price>
</product>
</order>
A.5 XMLスキーマの例(参考文献1より引用)
<xs:element name="product">
<xs:complexType>
<xs:sequence maxOccurs="2">
<xs:element name="description" type="xs:string" minOccurs="0"/>
<xs:element name="quantity" type="xs:integer" />
<xs:element name="price" type="xs:float" />
</xs:sequence>
<xs:attribute name="sku" type="xs:string" use="required" />
<xs:attribute name="color" type="xs:string" use="optional" />
</xs:complexType>
</xs:element>
<xs:element name="order">
<xs:complexType>
<xs:sequence>
<xs:element ref="product" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
</xs:element>
A.6 EXI 文法の例(参考文献1より引用)
Complete grammar for element <product>
Event Code
Use_color0 :
AT("color") [schema-typed value] Use_color1 0
AT("sku") [schema-typed value] Use_sku1 1
EE 2.0
AT(xsi:type) Use_color0 2.1
AT(xsi:nil) Use_color0 2.2
AT (*) Use_color0 2.3
AT("color") [untyped value] Use_color1 2.4.0
AT("sku") [untyped value] Use_sku1 2.4.1
AT (*) [untyped value] Use_color0 2.4.2
SE(*) Use_sku1_copied 2.5
CH [untyped value] Use_sku1_copied 2.6
Use_color1 :
AT("sku") [schema-typed value] Use_sku1 0
EE 1.0
AT (*) Use_color1 1.1
AT("sku") [untyped value] Use_sku1 1.2.0
AT (*) [untyped value] Use_color1 1.2.1
SE(*) Use_sku1_copied 1.3
CH [untyped value] Use_sku1_copied 1.4
Use_sku1 :
SE("description") Term_description0,1 0
SE("quantity") Term_quantity0,1 1
EE 2.0
AT (*) Use_sku1 2.1
AT (*) [untyped value] Use_sku1 2.2.0
SE(*) Use_sku1_copied 2.3
CH [untyped value] Use_sku1_copied 2.4
Use_sku1_copied :
SE("description") Term_description0,1 0
SE("quantity") Term_quantity0,1 1
EE 2.0
SE(*) Use_sku1_copied 2.1
CH [untyped value] Use_sku1_copied 2.2
Term_description0,1 :
SE("quantity") Term_quantity0,1 0
EE 1
SE(*) Term_description0,1 2.0
CH [untyped value] Term_description0,1 2.1
Term_quantity0,1 :
SE("price") Term_price0,1 0
EE 1
SE(*) Term_quantity0,1 2.0
CH [untyped value] Term_quantity0,1 2.1
Term_price0,1 :
SE("description") Term_description1,1 0
SE("quantity") Term_quantity1,1 1
EE 2
SE(*) Term_price0,1 3.0
CH [untyped value] Term_price0,1 3.1
Term_description1,1 :
SE("quantity") Term_quantity1,1 0
EE 1
SE(*) Term_description1,1 2.0
CH [untyped value] Term_description1,1 2.1
Term_quantity1,1 :
SE("price") Term_price1,1 0
EE 1
SE(*) Term_quantity1,1 2.0
CH [untyped value] Term_quantity1,1 2.1
Term_price1,1 :
EE 0
SE(*) Term_price1,1 1.0
CH [untyped value] Term_price1,1 1.1
Complete grammar for element <order>
Event Code
Term_product 0,0 :
SE("product") Term_product 1,0 0
EE 1.0
AT(xsi:type) Term_product 0,0 1.1
AT(xsi:nil) Term_product 0,0 1.2
AT (*) Term_product 0,0 1.3
AT (*) [untyped value] Term_product 0,0 1.4.0
SE(*) Term_product 0,0_copied 1.5
CH [untyped value] Term_product 0,0_copied 1.6
Term_product 0,0_copied :
SE("product") Term_product 1,0 0
EE 1.0
SE(*) Term_product 0,0_copied 1.1
CH [untyped value] Term_product 0,0_copied 1.2
Term_product 1,0 :
SE("product") Term_product 1,0 0
EE 1
SE(*) Term_product 1,0 2.0
CH [untyped value] Term_product 1,0 2.1
Claims (8)
- EXI(Efficient XML(Extensible Markup Language) Interchange)ストリームを生成するためのEXIエンコーダを生成するコンピュータであって、
XMLスキーマで定義された文書構造における特定箇所と、変数の名前とを互いに対応づけた対応情報を読み込む第1読み込み手段と、
少なくともタグ名を有する複数のタグと、前記特定箇所に配置された置換文字列とを含む教師XML文書を読み込む第2読み込み手段と、
前記教師XML文書を、前記タグ名および前記置換文字列を含む複数の要素のうちの1つを指定したイベントの列に変換するパーサと、
前記イベントの遷移と、EXIイベントコードとの関係を定義したEXI文法書を読み込む第3読み込み手段と、
(A)前記イベントの列を順番に処理して、前記イベントを処理するごとに前記EXI文法書に応じてEXIイベントコードを生成し、
(B)処理するイベントが前記置換文字列を指定するイベントであるときは、前記置換文字列が配置された箇所に対応する前記変数の値を取得する関数を生成し、
(C)前記イベントの列の処理順序に応じて、生成したEXIイベントコードの出力命令コードおよび前記関数の値の出力命令コードを配置することによりEXIエンコーダを生成する、
コードコンポーザと、
を備えたコンピュータ。 - 前記関数は、さらに、取得した変数の値を前記XMLスキーマに準拠した形式へ変換する
ことを特徴とする請求項1に記載のコンピュータ。 - 前記置換文字列は、前記タグに囲まれた箇所に記載されている
ことを特徴とする請求項1または2に記載のコンピュータ。 - 前記教師XML文書における前記タグは属性を有し、
前記置換文字列は、前記属性の値として、記載されている、
ことを特徴とする請求項1ないし2のいずれか一項に記載のコンピュータ。 - 前記パーサは、SAXパーサであり、
前記イベントは、SAXイベントである、
ことを特徴とする請求項1ないし4のいずれか一項に記載のコンピュータ。 - 前記変数は、構造体の要素である
ことを特徴とする請求項1ないし5のいずれか一項に記載のコンピュータ。 - 前記対応情報は、前記特定箇所が含まれる前記教師XML文書の範囲を、タグ名を用いて指定し、
前記コードコンポーザは、前記イベントの列を、前記範囲に対応するボディ部、前記ボディ部より前のヘッド部、および前記ボディ部より後のテイル部に分けて処理を行い、各処理でそれぞれ得られた出力命令コードを結合することにより、前記EXIエンコーダを生成する
ことを特徴とする請求項1ないし5のいずれか一項に記載のコンピュータ。 - EXI(Efficient XML(Extensible Markup Language) Interchange)ストリームを生成するためのEXIエンコーダを生成するコンピュータに実行させるためのプログラムであって、
所定のXMLスキーマで定義された文書構造における特定箇所と、変数の名前とを互いに対応づけた対応情報を読み込む第1読み込みステップと、
少なくともタグ名を有する複数のタグと、前記特定箇所に配置された置換文字列とを含む教師XML文書を読み込む第2読み込みステップと、
前記教師XML文書を、それぞれ前記タグ名および前記置換文字列を含む複数の要素のうちの1つを指定したイベントの列に変換するステップと、
前記イベントの遷移と、EXIイベントコードとの関係を定義したEXI文法書を読み込む第3読み込みステップと、
前記イベントの列を順番に処理して、前記イベントを処理するごとに前記EXI文法書に応じてEXIイベントコードを生成するステップと、
処理するイベントが前記置換文字列を指定するイベントであるときは、前記置換文字列が配置された箇所に対応する前記変数の値を取得する関数を生成するステップと、
前記イベントの列の処理順序に応じて、生成したEXIイベントコードの出力命令コードおよび前記取得関数の値の出力命令コードを配置することによりEXIエンコーダを生成するステップと
をコンピュータに実行させるためのプログラム。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2011070193A JP5325920B2 (ja) | 2011-03-28 | 2011-03-28 | エンコーダコンパイラ、プログラムおよび通信機器 |
| US13/235,834 US8892991B2 (en) | 2011-03-28 | 2011-09-19 | Encoder compiler, computer readable medium, and communication device |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2011070193A JP5325920B2 (ja) | 2011-03-28 | 2011-03-28 | エンコーダコンパイラ、プログラムおよび通信機器 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2012203819A JP2012203819A (ja) | 2012-10-22 |
| JP5325920B2 true JP5325920B2 (ja) | 2013-10-23 |
Family
ID=46928974
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2011070193A Expired - Fee Related JP5325920B2 (ja) | 2011-03-28 | 2011-03-28 | エンコーダコンパイラ、プログラムおよび通信機器 |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US8892991B2 (ja) |
| JP (1) | JP5325920B2 (ja) |
Families Citing this family (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP5166565B2 (ja) * | 2011-03-28 | 2013-03-21 | 株式会社東芝 | Exiエンコーダおよびプログラム |
| US10019418B2 (en) * | 2012-07-20 | 2018-07-10 | Fujitsu Limited | Efficient XML interchange profile stream decoding |
| JP2014086048A (ja) | 2012-10-26 | 2014-05-12 | Toshiba Corp | 検証装置、検査方法およびプログラム |
| DE102014219090A1 (de) * | 2014-09-22 | 2016-03-24 | Siemens Aktiengesellschaft | Gerät mit Kommunikationsschnittstelle und Verfahren zur Steuerung eines Datenbankzugriffs |
| US10282400B2 (en) * | 2015-03-05 | 2019-05-07 | Fujitsu Limited | Grammar generation for simple datatypes |
| US10311137B2 (en) * | 2015-03-05 | 2019-06-04 | Fujitsu Limited | Grammar generation for augmented datatypes for efficient extensible markup language interchange |
| US10210142B1 (en) * | 2017-11-29 | 2019-02-19 | Adobe Inc. | Inserting linked text fragments in a document |
| CN108228805B (zh) * | 2017-12-29 | 2021-04-06 | 北京安云世纪科技有限公司 | 一种用于对显示数据进行处理的方法、设备及移动终端 |
| CN109857384A (zh) * | 2018-11-21 | 2019-06-07 | 江苏方天电力技术有限公司 | 一种热工指标在线计算的编码方法 |
| CN115190184B (zh) * | 2022-06-14 | 2023-06-23 | 深圳市圣麾科技有限公司 | 一种二进制消息信元编辑方法、系统及存储介质 |
| CN119471097B (zh) * | 2024-10-16 | 2025-12-16 | 中国直升机设计研究所 | 一种直升机航电系统原位检测设备设计和应用方法 |
Family Cites Families (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2996296B2 (ja) | 1997-02-26 | 1999-12-27 | 日本電気株式会社 | メッセージ復号化装置及び有限状態機械生成装置 |
| US6772413B2 (en) | 1999-12-21 | 2004-08-03 | Datapower Technology, Inc. | Method and apparatus of data exchange using runtime code generator and translator |
| JP2004086642A (ja) * | 2002-08-28 | 2004-03-18 | Hitachi Ltd | Xml変換装置及びそのプログラムの記録媒体 |
| JP2004234405A (ja) * | 2003-01-31 | 2004-08-19 | Fujitsu Ltd | プロトコル符号化/復号化装置 |
| JP4898405B2 (ja) * | 2006-12-01 | 2012-03-14 | キヤノン株式会社 | 文書データ処理方法、文書データ作成装置、及び文書データ処理装置 |
| JP2009059215A (ja) * | 2007-08-31 | 2009-03-19 | Canon Inc | 構造化文書処理装置、構造化文書処理方法 |
| US8543898B2 (en) * | 2007-11-09 | 2013-09-24 | Oracle International Corporation | Techniques for more efficient generation of XML events from XML data sources |
| US8291392B2 (en) * | 2008-09-30 | 2012-10-16 | Intel Corporation | Dynamic specialization of XML parsing |
| JP5409090B2 (ja) * | 2009-04-13 | 2014-02-05 | キヤノン株式会社 | 情報処理装置、情報処理方法、プログラム及び記憶媒体 |
| FR2945363B1 (fr) * | 2009-05-05 | 2014-11-14 | Canon Kk | Procede et dispositif de codage d'un document structure |
| JP2010267092A (ja) * | 2009-05-14 | 2010-11-25 | Canon Inc | 情報処理装置、情報処理方法 |
-
2011
- 2011-03-28 JP JP2011070193A patent/JP5325920B2/ja not_active Expired - Fee Related
- 2011-09-19 US US13/235,834 patent/US8892991B2/en active Active
Also Published As
| Publication number | Publication date |
|---|---|
| US8892991B2 (en) | 2014-11-18 |
| JP2012203819A (ja) | 2012-10-22 |
| US20120254724A1 (en) | 2012-10-04 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP5325920B2 (ja) | エンコーダコンパイラ、プログラムおよび通信機器 | |
| US20030115548A1 (en) | Generating class library to represent messages described in a structured language schema | |
| US8601368B2 (en) | Processing method and device for the coding of a document of hierarchized data | |
| US8849726B2 (en) | Information processing apparatus and control method for the same | |
| US20090138529A1 (en) | Method and device for coding and decoding information | |
| US20090254882A1 (en) | Methods and devices for iterative binary coding and decoding of xml type documents | |
| JP5142638B2 (ja) | 文書変換装置、文書変換方法 | |
| JP5325921B2 (ja) | デコーダコンパイラ、プログラムおよび通信機器 | |
| US9560401B2 (en) | Method of transmitting at least one content representative of a service, from a server to a terminal, and associated device and computer program product | |
| US8788934B2 (en) | EXI encoder and computer readable medium | |
| US20100049727A1 (en) | Compressing xml documents using statistical trees generated from those documents | |
| US8250465B2 (en) | Encoding/decoding apparatus, method and computer program | |
| JP2005332146A (ja) | 動的コンテンツ作成プログラムの生成装置、動的コンテンツ作成プログラムを生成するためのプログラム、及び動的コンテンツ作成プログラムの生成方法 | |
| CN114721713B (zh) | 基于注解的数据处理方法、计算机设备以及可读存储介质 | |
| JP5206675B2 (ja) | 構造化文書変換装置 | |
| KR101165201B1 (ko) | 컨텐츠 제공 시스템의 변환서버 | |
| JP4313698B2 (ja) | 電子文書処理装置、電子文書処理方法および電子文書処理プログラム | |
| Lucarz et al. | Automatic synthesis of parsers and validation of bitstreams within the MPEG reconfigurable video coding framework | |
| JP2007219579A (ja) | ドキュメント変換装置、およびプログラム | |
| WO2008107802A2 (en) | Method and device for processing documents on the basis of enriched schemas and corresponding decoding method and device | |
| JP2009251688A (ja) | 構造化データ処理装置、方法及びプログラム | |
| CN116976285A (zh) | 组件说明文档生成方法、装置、设备及存储介质 | |
| KR100660057B1 (ko) | 패스트 인포셋을 이용한 이진 엑스엠엘 저장 방법 및 복원방법 | |
| JP2009048654A (ja) | ドキュメント変換装置、およびプログラム | |
| Fitzpatrick | XML in the VO: VOTables |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130329 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130412 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130611 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20130628 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130722 |
|
| R151 | Written notification of patent or utility model registration |
Ref document number: 5325920 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
| LAPS | Cancellation because of no payment of annual fees |