JP2009283010A - Declarative mechanism for defining hierarchy of objects - Google Patents

Declarative mechanism for defining hierarchy of objects Download PDF

Info

Publication number
JP2009283010A
JP2009283010A JP2009193622A JP2009193622A JP2009283010A JP 2009283010 A JP2009283010 A JP 2009283010A JP 2009193622 A JP2009193622 A JP 2009193622A JP 2009193622 A JP2009193622 A JP 2009193622A JP 2009283010 A JP2009283010 A JP 2009283010A
Authority
JP
Japan
Prior art keywords
tag
class
name
attribute
property
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.)
Granted
Application number
JP2009193622A
Other languages
Japanese (ja)
Other versions
JP4988797B2 (en
Inventor
Robert A Relyea
エイ.レリヤ ロバート
Roger Grambihler
グランビラー ロジャー
Jeff Bogdan
ボーダン ジェフ
Joseph King
キング ジョセフ
Chris Wilson
ウィルソン クリス
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.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from PCT/US2003/015692 external-priority patent/WO2004107195A1/en
Application filed by Microsoft Corp filed Critical Microsoft Corp
Priority to JP2009193622A priority Critical patent/JP4988797B2/en
Publication of JP2009283010A publication Critical patent/JP2009283010A/en
Application granted granted Critical
Publication of JP4988797B2 publication Critical patent/JP4988797B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/131Fragmentation of text files, e.g. creating reusable text-blocks; Linking to fragments, e.g. using XInclude; Namespaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/137Hierarchical processing, e.g. outlines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • G06F40/143Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Artificial Intelligence (AREA)
  • Software Systems (AREA)
  • Devices For Executing Special Programs (AREA)
  • Document Processing Apparatus (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide a method for defining objects declaredly. <P>SOLUTION: The present invention comprises a step for mapping a URL in the location of a definition file having at least one name space to an xmlns attribute of a route tag or a mapping tag, a step for setting a tag name to a class name in at least one name space, and a step for setting an attribute of the tag to a property name in the case that the object has property setting. <P>COPYRIGHT: (C)2010,JPO&INPIT

Description

本発明は一般にコンピュータシステムに関し、より詳細には、オブジェクトおよびオブジェクト型の階層を宣言的に作成するための方法およびシステムに関する。   The present invention relates generally to computer systems, and more particularly to a method and system for declaratively creating a hierarchy of objects and object types.

マークアップ言語は一般に、作成しやすく、理解しやすい。拡張可能なマークアップ言語は、一般にXMLとして知られており、今日使用されている最も一般的なマークアップ言語の1つである。XMLとは、構造化された情報をWebに運ぶように設計されている形式である。これは、電子データ交換用のWebベースの言語である。XMLは、ハイパーテキストマークアップ言語(HTML)および他のWeb関連の標準を維持し、促進する責任を負う標準化団体であるWorld Wide Web Consortium(W3C)のオープンな技術標準である。   Markup languages are generally easy to create and understand. An extensible markup language, commonly known as XML, is one of the most common markup languages used today. XML is a format designed to carry structured information to the Web. This is a web-based language for electronic data exchange. XML is an open technical standard of the World Wide Web Consortium (W3C), a standards body responsible for maintaining and promoting hypertext markup language (HTML) and other web-related standards.

XMLは、不必要な機能を削除しながらコンテキストによる分離という構造的に重要な側面を保つ標準一般化マークアップ言語(SGML)の一部である。XML文書形式は、その構造を表すタグ内にその内容を埋め込む。また、XMLは、文書の文法の規則を表す能力も提供する。これら2つの特徴によって、データおよびメタデータの自動的な分離が可能となり、一般のツールがその文法に対してXML文書を確認することができる。   XML is part of the Standard Generalized Markup Language (SGML) that maintains the structurally important aspect of separation by context while eliminating unnecessary functionality. The XML document format embeds its contents in a tag representing its structure. XML also provides the ability to express document grammar rules. These two features allow automatic separation of data and metadata, allowing a general tool to check an XML document against its grammar.

XMLは、システム統合のために設計されている。XMLは、広範囲に実施可能であり、配備しやすいことがわかっている、データの構造的表現を提供する。タグの存在によってマークされた情報を要素と呼ぶ。一致した開始タグおよび終了タグを使用して情報をマークアップする。属性と呼ばれる名前値の対を付加することによって、要素をさらに説明することができる。XML要素は、その関連するデータを任意の所望のデータ要素であると宣言することができる。例えば、要素は小売価格、本のタイトルなどとすることができる。現在XMLは、アプリケーションデータ(ビジネス文書、EDIメッセージなど)、アプリケーションのユーザインターフェース、XHTML、および固定された1組のタグを有する他の文法の文法ベースの表現に適用されている。   XML is designed for system integration. XML provides a structural representation of data that is widely implemented and known to be easy to deploy. Information marked by the presence of a tag is called an element. Mark up information with matching start and end tags. Elements can be further described by adding name-value pairs called attributes. An XML element can declare its associated data to be any desired data element. For example, the element can be a retail price, a book title, or the like. Currently, XML is applied to grammar-based representations of application data (business documents, EDI messages, etc.), application user interfaces, XHTML, and other grammars with a fixed set of tags.

こうした文法ベースの表現は、固定された1組のタグを容易に拡張して新しいタイプのXML要素を作成することができる能力がないという点で限られている。さらに、コンピュータ業界がオブジェクト指向のプログラミングに着々と移行していくにつれて、XMLは、拡張可能な構成要素のオブジェクトを十分に表さなくなってきている。これらのオブジェクトは、他のソフトウェアプログラムによって再利用可能であり、新しいオブジェクトは、既存のオブジェクトから容易に拡張することができる。その結果、プログラマは、オブジェクトの階層を、宣言的にではなく、プログラム言語でプログラム的に作成することが多い。オブジェクトの階層は、使用時にはいつでもプログラミング言語で作成する必要がある。   These grammar-based representations are limited in that they lack the ability to easily extend a fixed set of tags to create new types of XML elements. In addition, as the computer industry steadily transitions to object-oriented programming, XML is no longer fully representing extensible component objects. These objects can be reused by other software programs, and new objects can be easily extended from existing objects. As a result, programmers often create object hierarchies programmatically in a programming language rather than declaratively. Object hierarchies must be created in a programming language whenever they are used.

オブジェクトおよび型の階層をプログラムロジックとともに宣言的に作成する能力をプログラマに提供するシステムを、当業者は逃してきた。   Those skilled in the art have missed systems that provide programmers with the ability to declaratively create object and type hierarchies with program logic.

本発明は、オブジェクトの階層をマークアップ言語で宣言的に定義する機構を指向する。こうしたオブジェクトには、Microsoft.NET frameworkの共通言語ランタイム型などのオブジェクトがある。ユーザインターフェースなどの項目を実施する従来の方法では、項目は同期に作成する必要がある。非常に大きい項目の場合、項目のロードは、時間により制限される可能性がある。本発明は、1つの階層(すなわちツリー)内のオブジェクトを同期または非同期に作成できる能力をユーザに提供する。   The present invention is directed to a mechanism for declaratively defining a hierarchy of objects in a markup language. These objects include Microsoft. There are objects such as NET framework common language runtime types. In conventional methods of implementing items such as user interfaces, items need to be created synchronously. For very large items, item loading may be limited by time. The present invention provides the user with the ability to create objects in a hierarchy (ie tree) synchronously or asynchronously.

マークアップ言語はXMLベースである。オブジェクトは、マッピングに基づくマークアップ言語で書かれる。マッピングは、オブジェクトクラスが指定されるアセンブリおよび名前空間を有する定義ファイルの位置を定義するURL属性を含む。マークアップ言語によるタグ名は、クラス名にマップされる。タグの属性は、タグに関連するクラスのプロパティおよびイベントにマップされる。クラスに直接マップされない属性は、定義タグで定義される。また、プログラミングコードのページへの追加にも定義タグを使用する。   The markup language is XML based. Objects are written in a markup language based on mapping. The mapping includes a URL attribute that defines the location of the definition file having the assembly and namespace in which the object class is specified. Tag names in markup language are mapped to class names. Tag attributes are mapped to class properties and events associated with the tag. Attributes that are not mapped directly to a class are defined by definition tags. Definition tags are also used to add programming code to a page.

本発明はさらに、マークアップ言語を解析してオブジェクトの階層を作成する方法を含む。本発明の機構によってタグがマップされているクラスが検索されるように、定義ファイルを使用してオブジェクトクラスがどこに配置されているかを決定する。クラスが決定されると、クラスのプロパティセクションおよびイベントセクションで属性名が検索される。クラスのオブジェクトのインスタンスが作成される。属性は、複合プロパティを使用して指定することができる。   The present invention further includes a method for analyzing a markup language to create a hierarchy of objects. The definition file is used to determine where the object class is located so that the class to which the tag is mapped is searched by the mechanism of the present invention. Once the class is determined, the attribute name is searched in the property and event sections of the class. An instance of an object of the class is created. Attributes can be specified using complex properties.

本発明は、マークアップ言語を使用してユーザインターフェース、ベクトル図形、および文書などの項目を同期または非同期に作成する機能を提供する。文書には、固定形式文書、および適応的フロー(adaptive−flow)文書などがある。固定形式文書とは、装置に依存しないやり方で、ページ数および各ページでのオブジェクトの位置を明示的に定義する文書である。適応的フロー文書とは、ページサイズが変更されるたびに、自動的にページを付け直し、各ページにおいてオブジェクトを再配置することができる文書である。   The present invention provides the ability to create items such as user interfaces, vector graphics, and documents synchronously or asynchronously using a markup language. Documents include fixed format documents and adaptive-flow documents. A fixed format document is a document that explicitly defines the number of pages and the position of an object on each page in a device independent manner. An adaptive flow document is a document that can automatically be reattached and reposition objects on each page each time the page size is changed.

本発明の他の特徴および利点は、添付の図面を参照して進める以下の実施形態の例の詳細な説明から明らかになる。   Other features and advantages of the present invention will become apparent from the following detailed description of example embodiments, which proceeds with reference to the accompanying drawings.

本発明が存在するコンピュータシステムの例を示す概略ブロック図である。It is a schematic block diagram which shows the example of the computer system in which this invention exists. 本発明が動作可能な環境の例を示す概略ブロック図である。It is a schematic block diagram which shows the example of the environment which this invention can operate | move. マークアップ言語と図2の環境の例との間のマッピングを示す概略ブロック図である。FIG. 3 is a schematic block diagram illustrating a mapping between a markup language and the example environment of FIG. 本発明によるマークアップファイルを解析する諸ステップを示すフロー図である。FIG. 5 is a flow diagram illustrating steps for analyzing a markup file according to the present invention.

添付の特許請求の範囲には本発明の特徴を詳細に記載しているが、本発明、およびその目的および利点は、添付の図面を併せ読むことによって、以下の詳細な説明から最もよく理解できる。   The features of the invention are set forth with particularity in the appended claims, but the invention, and its objects and advantages, can best be understood from the following detailed description when read in conjunction with the accompanying drawings. .

本発明は、ユーザが、オブジェクトの階層、およびオブジェクトの階層の背後にあるプログラムロジックをXMLベースのマークアップ言語により指定できる機構を提供する。これによって、オブジェクトモデルをXMLで記述する能力が提供される。1つの結果は、Microsoft社による.Net Frameworkの共通言語ランタイム(CLR)でのクラスなど拡張可能なクラスにXMLでアクセスできることである。CLRでのクラスの数は増え続けている。これは、オブジェクトモデルのXML表現が動的に増加していることを意味する。本明細書で説明するように、この機構は、XMLタグのCLRオブジェクトへの直接のマッピングおよび関連するコードをマークアップで表す能力を提供する。この機構を使用して、固定形式文書、適応的フロー文書、ベクトル図形、アプリケーションユーザインターフェースおよびコントロールなど、および上記の任意の組合せを、XMLマークアップによって作成することができる。   The present invention provides a mechanism that allows a user to specify a hierarchy of objects and program logic behind the hierarchy of objects in an XML-based markup language. This provides the ability to describe the object model in XML. One result is from Microsoft. It is possible to access an extensible class such as a class in the common language runtime (CLR) of Net Framework in XML. The number of classes at CLR continues to increase. This means that the XML representation of the object model is increasing dynamically. As described herein, this mechanism provides the direct mapping of XML tags to CLR objects and the ability to represent related code in markup. Using this mechanism, fixed format documents, adaptive flow documents, vector graphics, application user interfaces and controls, and any combination of the above can be created with XML markup.

図面を参照すると、図中、同様の参照番号は同様の要素を指しており、本発明を適したコンピューティング環境で実施されるものとして示している。必須ではないが、本発明は、パーソナルコンピュータによって実行されるプログラムモジュールなどのコンピュータ実行可能命令の一般的な文脈で説明することができる。一般にプログラムモジュールは、特定のタスクを実行する、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、構成要素、データ構造などを含む。さらに、本発明は、ハンドヘルド装置、マルチプロセッサシステム、マイクロプロセッサベースまたはプログラム可能家庭用電化製品、ネットワークPC、ミニコンピュータ、メインフレームコンピュータなどを含む他のコンピュータシステム構成で実施できることを当業者であれば理解できよう。また、本発明は、タスクが通信ネットワークによってリンクされているリモート処理装置によって実行される分散コンピューティング環境で実施できる。分散コンピューティング環境では、プログラムモジュールを、ローカルおよびリモートのメモリ記憶装置に置くことができる。   Referring to the drawings, wherein like reference numerals refer to like elements, the invention is illustrated as being implemented in a suitable computing environment. Although not required, the invention may be described in the general context of computer-executable instructions, such as program modules, being executed by a personal computer. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. Further, those skilled in the art will appreciate that the present invention can be implemented in other computer system configurations including handheld devices, multiprocessor systems, microprocessor-based or programmable consumer electronics, network PCs, minicomputers, mainframe computers, and the like. I understand. The invention may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules can be located in local and remote memory storage devices.

図1は、本発明を実施できる、適したコンピューティングシステム環境100の例を示している。コンピューティングシステム環境100は、適したコンピューティング環境の一例にすぎず、本発明の使用または機能の範囲に関する限定を示唆するものではない。また、コンピューティングシステム環境100を、動作環境(符号100)の例に示した構成要素のいずれか1つ、またはその組合せに関連する依存性または必要条件を有しているものと解釈すべきではない。   FIG. 1 illustrates an example of a suitable computing system environment 100 on which the invention may be implemented. The computing system environment 100 is only one example of a suitable computing environment and is not intended to suggest any limitation as to the scope of use or functionality of the invention. Neither should the computing system environment 100 be interpreted as having any dependency or requirement relating to any one or combination of components illustrated in the example operating environment (reference numeral 100). Absent.

本発明は、他の多くの汎用または専用コンピューティングシステム環境または構成で動作可能である。本発明との使用に適したよく知られているコンピューティングシステム、環境、および/または構成の例には、それだけには限定されないが、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドまたはラップトップ装置、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラム可能家庭用電化製品、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、上記の任意のシステムまたは装置を含む分散コンピューティング環境などがある。   The invention is operational with numerous other general purpose or special purpose computing system environments or configurations. Examples of well-known computing systems, environments, and / or configurations suitable for use with the present invention include, but are not limited to, personal computers, server computers, handheld or laptop devices, multiprocessor systems, There are microprocessor-based systems, set-top boxes, programmable consumer electronics, network PCs, minicomputers, mainframe computers, distributed computing environments including any of the above systems or devices, and the like.

本発明は、コンピュータによって実行されるプログラムモジュールなどのコンピュータ実行可能命令の一般的な文脈で説明することができる。一般にプログラムモジュールは、特定のタスクを実行する、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、構成要素、データ構造などを含む。また、本発明は、タスクが通信ネットワークによってリンクされているリモート処理装置によって実行される分散コンピューティング環境で実施できる。分散コンピューティング環境では、プログラムモジュールを、メモリ記憶装置を含むローカルおよびリモートのコンピュータ記憶媒体に置くことができる。   The invention may be described in the general context of computer-executable instructions, such as program modules, being executed by a computer. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. The invention may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules can be located in both local and remote computer storage media including memory storage devices.

図1を参照すると、本発明を実施するシステムの例は、汎用コンピューティング装置をコンピュータ110の形で含んでいる。コンピュータ110の構成要素は、それだけには限定されないが、処理ユニット120、システムメモリ130、およびシステムメモリを含む様々なシステム構成要素を処理ユニット120に結合するシステムバス121を含む。システムバス121は、様々なバスアーキテクチャのうちの任意のものを使用するメモリバスまたはメモリコントローラ、周辺バス、およびローカルバスを含むいくつかのタイプのバス構造のうちどんなものでもよい。こうしたアーキテクチャには、それだけには限定されないが一例として、ISA(Industy Standard Architecture)バス、MCA(Micro Channel Architecture)バス、EISA(Enhanced ISA)バス、VESA(Video Electronics Standard Associte)ローカルバス、およびメザニンバスとしても知られているPCI(Peripheral Component Interconnect)バスなどがある。   With reference to FIG. 1, an exemplary system for implementing the invention includes a general purpose computing device in the form of a computer 110. The components of the computer 110 include, but are not limited to, a processing unit 120, a system memory 130, and a system bus 121 that couples various system components including the system memory to the processing unit 120. The system bus 121 may be any of several types of bus structures including a memory bus or memory controller, a peripheral bus, and a local bus using any of a variety of bus architectures. Examples of such architectures include, but are not limited to, an ISA (Industry Standard Architecture) bus, an MCA (Micro Channel Architecture) bus, an EISA (Enhanced ISA) bus, and a VESA (Video Electronics Standard bus). There are also known PCI (Peripheral Component Interconnect) buses.

コンピュータ110は、一般に様々なコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピュータ110からアクセスできる使用可能な任意の媒体とすることができ、揮発性および不揮発性媒体、リムーバブルおよび非リムーバブル媒体を含む。コンピュータ可読媒体は、それだけには限定されないが一例として、コンピュータ記憶媒体および通信媒体を含み得る。コンピュータ記憶媒体には、コンピュータ可読命令、データ構造、プログラムモジュール、他のデータなど、情報を記憶するための任意の方法または技術で実施される揮発性および不揮発性のリムーバブルおよび非リムーバブル媒体がある。コンピュータ記憶媒体には、それだけには限定されないが、RAM、ROM、EEPROM、フラッシュメモリまたは他のメモリ技術、CD−ROM、デジタル多用途ディスク(DVD)または他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶装置、または所望の情報の格納に使用でき、コンピュータ110からアクセスできる他の任意の媒体などがある。通信媒体は一般に、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータを搬送波または他の移送機構などの変調されたデータ信号に組み込む。これには任意の情報配送媒体がある。「変調されたデータ信号」という用語は、信号内の情報を符号化するように設定または変更された1つまたは複数のその特徴を有する信号を意味する。通信媒体には、それだけには限定されないが一例として、有線ネットワーク、直接配線された接続などの有線媒体、および音響、RF、赤外線、その他の無線媒体などの無線媒体がある。また、上記のどんな組合せもコンピュータ可読媒体の範囲内に含まれるものとする。   Computer 110 typically includes a variety of computer readable media. Computer readable media can be any available media that can be accessed by computer 110 and includes both volatile and nonvolatile media, removable and non-removable media. Computer-readable media can include, by way of example and not limitation, computer storage media and communication media. Computer storage media includes volatile and non-volatile removable and non-removable media implemented in any method or technique for storing information, such as computer readable instructions, data structures, program modules, and other data. Computer storage media include, but are not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disk (DVD) or other optical disk storage device, magnetic cassette, magnetic tape, Such as a magnetic disk storage device or other magnetic storage device, or any other medium that can be used to store desired information and that is accessible from computer 110. Communication media typically embodies computer readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism. This includes any information delivery medium. The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. Examples of communication media include, but are not limited to, wired media such as wired networks, direct wired connections, and wireless media such as acoustic, RF, infrared, and other wireless media. Any combination of the above should also be included within the scope of computer-readable media.

システムメモリ130は、読取り専用メモリ(ROM)131やランダムアクセスメモリ(RAM)132など、揮発性および/または不揮発性メモリの形のコンピュータ記憶媒体を含む。BIOS(basic input/output system)133は、例えば起動中など、コンピュータ110内の要素間での情報の転送を助ける基本ルーチンを含み、一般にROM131に格納されている。RAM132は一般に、処理ユニット120から直接アクセス可能な、かつ/または処理ユニット120が現在処理しているデータおよび/またはプログラムモジュールを含む。図1は、それだけには限定されないが一例として、オペレーティングシステム134、アプリケーションプログラム135、他のプログラムモジュール136、およびプログラムデータ137を示している。   The system memory 130 includes computer storage media in the form of volatile and / or nonvolatile memory such as read only memory (ROM) 131 and random access memory (RAM) 132. A BIOS (basic input / output system) 133 includes a basic routine that assists in transferring information between elements in the computer 110 such as during startup, and is generally stored in the ROM 131. The RAM 132 typically includes data and / or program modules that are directly accessible from and / or currently being processed by the processing unit 120. FIG. 1 shows, by way of example and not limitation, an operating system 134, application programs 135, other program modules 136, and program data 137.

コンピュータ110は、他のリムーバブル/非リムーバブル、揮発性/不揮発性コンピュータ記憶媒体を含むこともできる。一例にすぎないが、図1は、非リムーバブル不揮発性磁気媒体から読み取り、あるいはそこに書き込むハードディスクドライブ141、リムーバブル不揮発性磁気ディスク152から読み取り、あるいはそこに書き込む磁気ディスクドライブ151、およびCD−ROMや他の光媒体など、リムーバブル不揮発性光ディスク156から読み取り、あるいはそこに書き込む光ディスクドライブ155を示している。動作環境の例で使用できる他のリムーバブル/非リムーバブル、揮発性/不揮発性コンピュータ記憶媒体には、それだけには限定されないが、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、半導体RAM、半導体ROMなどがある。ハードディスクドライブ141は一般に、インターフェース140などの非リムーバブルメモリインターフェースを介してシステムバス121に接続され、磁気ディスクドライブ151および光ディスクドライブ155は一般に、インターフェース150などのリムーバブルメモリインターフェースによってシステムバス121に接続される。   The computer 110 may also include other removable / non-removable, volatile / nonvolatile computer storage media. For example only, FIG. 1 illustrates a hard disk drive 141 that reads from or writes to a non-removable nonvolatile magnetic medium, a magnetic disk drive 151 that reads from or writes to a removable nonvolatile magnetic disk 152, and a CD-ROM, An optical disk drive 155 is shown that reads from or writes to a removable non-volatile optical disk 156, such as another optical medium. Other removable / non-removable, volatile / nonvolatile computer storage media that can be used in examples of operating environments include, but are not limited to, magnetic tape cassettes, flash memory cards, digital versatile disks, digital video tapes, semiconductor RAM And semiconductor ROM. The hard disk drive 141 is generally connected to the system bus 121 via a non-removable memory interface such as the interface 140, and the magnetic disk drive 151 and the optical disk drive 155 are generally connected to the system bus 121 via a removable memory interface such as the interface 150. .

上述し、図1に示したドライブおよびその関連のコンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、およびコンピュータ110の他のデータの記憶を提供する。図1では例えば、ハードディスクドライブ141は、オペレーティングシステム144、アプリケーションプログラム145、他のプログラムモジュール146、およびプログラムデータ147を記憶するものとして示されている。これらの構成要素は、オペレーティングシステム134、アプリケーションプログラム135、他のプログラムモジュール136、およびプログラムデータ137と同じであっても、異なっていてもよいことに注意されたい。オペレーティングシステム144、アプリケーションプログラム145、他のプログラムモジュール146、およびプログラムデータ147は少なくとも異なるコピーであることを示すために、ここではそれらに異なる番号を付している。ユーザは、キーボード162、および一般にマウス、トラックボール、またはタッチパッドと呼ばれるポインティング装置161などの入力装置を介してコマンドおよび情報をコンピュータ110に入力することができる。他の入力装置(図示せず)には、マイクロフォン、ジョイスティック、ゲームパッド、衛星パラボラアンテナ、スキャナなどがある。これらおよび他の入力装置は、しばしばシステムバスに結合されているユーザ入力インターフェース160を介して処理ユニット120に接続されるが、パラレルポート、ゲームポート、ユニバーサルシリアルバス(USB)など他のインターフェースおよびバス構造で接続してもよい。モニタ191または他のタイプの表示装置もまた、ビデオインターフェース190などのインターフェースを介してシステムバス121に接続される。モニタに加えて、コンピュータは、出力周辺インターフェース195などを介して接続できるスピーカー197、プリンタ196などの他の周辺出力装置を含むこともできる。   The drive described above and shown in FIG. 1 and its associated computer storage media provide storage of computer readable instructions, data structures, program modules, and other data of the computer 110. In FIG. 1, for example, hard disk drive 141 is illustrated as storing operating system 144, application programs 145, other program modules 146, and program data 147. Note that these components can either be the same as or different from operating system 134, application programs 135, other program modules 136, and program data 137. Operating system 144, application program 145, other program modules 146, and program data 147 are numbered differently here to indicate that they are at least different copies. A user may enter commands and information into the computer 110 through input devices such as a keyboard 162 and pointing device 161, commonly referred to as a mouse, trackball or touch pad. Other input devices (not shown) include a microphone, joystick, game pad, satellite dish, scanner, and the like. These and other input devices are often connected to the processing unit 120 via a user input interface 160 coupled to the system bus, but other interfaces and buses such as parallel ports, game ports, universal serial bus (USB), etc. You may connect by structure. A monitor 191 or other type of display device is also connected to the system bus 121 via an interface, such as a video interface 190. In addition to the monitor, the computer can also include other peripheral output devices such as a speaker 197 and a printer 196 that can be connected via an output peripheral interface 195 or the like.

コンピュータ110は、リモートコンピュータ180など1つまたは複数のリモートコンピュータへの論理接続を使用してネットワーク式環境で操作することができる。リモートコンピュータ180は、別のパーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピア装置、または他の一般のネットワークノードでよく、一般にパーソナルコンピュータ110に関連して上述した多くまたはすべての要素を含むが、図1にはメモリ記憶装置181のみを示している。図1に示した論理接続は、ローカルエリアネットワーク(LAN)171および広域エリアネットワーク(WAN)173を含むが、他のネットワークを含んでいてもよい。こうしたネットワーキング環境は、オフィス、全社規模のコンピュータネットワーク、イントラネット、およびインターネットではごく一般的である。   Computer 110 can operate in a networked environment using logical connections to one or more remote computers, such as remote computer 180. The remote computer 180 may be another personal computer, server, router, network PC, peer device, or other common network node and generally includes many or all of the elements described above in connection with the personal computer 110, although 1 shows only the memory storage device 181. The logical connections shown in FIG. 1 include a local area network (LAN) 171 and a wide area network (WAN) 173, but may include other networks. Such networking environments are very common in offices, enterprise-wide computer networks, intranets, and the Internet.

LANネットワーキング環境で使用する場合、パーソナルコンピュータ110は、ネットワークインターフェースまたはアダプタ170を介してLAN171に接続される。WANネットワーキング環境で使用する場合、コンピュータ110は一般に、モデム172、またはインターネットなどWAN173を介して通信を確立する他の手段を含む。モデム172は、内蔵のものでも外付けのものでもよく、ユーザ入力インターフェース160または他の適切な機構を介してシステムバス121に接続することができる。ネットワーク式環境では、パーソナルコンピュータ110に関連して示したプログラムモジュール、またはその一部をリモートメモリ記憶装置に格納することができる。図1は、それだけには限定されないが一例として、リモートアプリケーションプログラム185をメモリ装置181上に存在するものとして示している。図示したネットワーク接続は例であり、コンピュータ間の通信リンクを確立する他の手段を使用してもよいことは理解されよう。   When used in a LAN networking environment, the personal computer 110 is connected to the LAN 171 through a network interface or adapter 170. When used in a WAN networking environment, the computer 110 typically includes a modem 172 or other means for establishing communications over the WAN 173, such as the Internet. The modem 172 can be internal or external and can be connected to the system bus 121 via the user input interface 160 or other suitable mechanism. In a networked environment, program modules shown in connection with the personal computer 110, or portions thereof, can be stored in a remote memory storage device. FIG. 1 illustrates, by way of example and not limitation, the remote application program 185 as residing on the memory device 181. It will be appreciated that the network connections shown are exemplary and other means of establishing a communications link between the computers may be used.

以下の説明では、特に指定のない限り、1つまたは複数のコンピュータによって実行される動作および操作のシンボルを参照して本発明を説明する。したがって、コンピュータで実行されると言うこともあるこうした動作および操作が、コンピュータの処理単位による構造化された形式のデータを表す電気信号の操作を含むことは理解されよう。この操作は、データを変換し、またはコンピュータのメモリシステムのいくつかの場所にデータを維持し、これによって当業者にはよく理解されているようにコンピュータが再構成され、そうでない場合はその動作が変更される。データが維持されるデータ構造は、データの形式で定義された特定の特性を有するメモリの物理位置である。しかし、本発明を上記の文脈で説明しているが、以下に記載する様々な動作および操作をハードウェアでも実施できることを当業者であれば理解できるので、これに限定されるものではない。   In the description that follows, the invention will be described with reference to acts and symbolic illustrations of operations that are performed by one or more computers, unless indicated otherwise. Thus, it will be appreciated that such operations and operations, which may be said to be performed by a computer, involve the manipulation of electrical signals representing structured forms of data by computer processing units. This operation converts the data or maintains the data in several places in the computer's memory system, thereby reconfiguring the computer as otherwise well understood by those skilled in the art, otherwise its operation Is changed. The data structure in which data is maintained is a physical location in memory that has specific characteristics defined in the form of the data. However, although the present invention is described in the above context, those skilled in the art can understand that various operations and operations described below can be performed by hardware, and the present invention is not limited thereto.

上記に示したように、.NET FrameworkのCLRでの拡張可能なクラスには、本発明ではXMLでアクセスすることができる。必ずしも必要ではないが、本発明が提供する利益をよりよく理解するために.NET frameworkの概略が有益となり得る。ここで図2を参照すると、最も簡単に表現した.NET framework200は、CLR202、フレームワーククラスライブラリ204、ユーザインターフェース206、およびWebサービスおよびアプリケーション208から成る。.NET frameworkは、オペレーティングシステム134など、マシンのオペレーティングシステムに存在する。   As shown above,. In the present invention, an extensible class in the CLR of the NET Framework can be accessed in XML. Although not necessary, to better understand the benefits provided by the present invention. An overview of the NET framework can be useful. Here, referring to FIG. The NET framework 200 includes a CLR 202, a framework class library 204, a user interface 206, and web services and applications 208. . The NET framework is present in the machine's operating system, such as operating system 134.

ユーザインターフェース206およびWebサービスおよびアプリケーション208は、ファイルアクセスを含む一般の入/出力、XMLサポート、およびサービスを提供する。これらは、HTTPからHTMLへのWeb技術およびサービスを公開し、Webページおよび/または従来のWindows(登録商標)ベースのユーザインターフェースを構築するユーザインターフェース要素を提供し、ASP.NETおよび他の多くのサービスを公開する。   User interface 206 and web services and applications 208 provide general input / output including file access, XML support, and services. These publish HTTP-to-HTML web technologies and services and provide user interface elements for building web pages and / or traditional Windows®-based user interfaces. Publish NET and many other services.

CLR202は、メモリを管理し、スレッドおよびプロセスを起動および停止し、セキュリティポリシーを実施する責任を負う。これは、プログラミング言語に依存しないデータ型の概念を提供する共通型システムを提供し、これによって様々なプログラミング言語が.Net frameworkにおいてデータおよびコードを共有できるようになる。また、CLR202は、特定のマシンがマシンのシステムプロセッサ上でネイティブに実行するように、MSIL(Microsoft中間言語)コードを変換し、最適化するJITコンパイラ(just−in−time)を有している。   The CLR 202 is responsible for managing memory, starting and stopping threads and processes, and enforcing security policies. It provides a common type system that provides the concept of data types independent of programming languages, which allows various programming languages. Data and code can be shared in the Net framework. The CLR 202 also has a JIT compiler (just-in-time) that converts and optimizes MSIL (Microsoft Intermediate Language) code so that a specific machine executes natively on the system processor of the machine. .

フレームワーククラスライブラリは、いくつかのクラスを含む。1つのクラスは、オブジェクトが実行できる操作(メソッド、イベント、またはプロパティ)を定義し、オブジェクトの状態を保持する値(フィールド)を定義する。クラスは、一般に定義および実装を含んでいるが、実装を有していない1つまたは複数のメンバを有することができる。共通型システムは、ランタイムにおいて型がどのように宣言され、使用され、管理されるかを定義する。.NET framework型は、階層を含むドット構文名前付け方式(dot syntax naming scheme)を使用する。この技術は、関連する型を名前空間にグループ分けし、それらをより容易に検索でき、参照できるようにする。右端のドットまでの完全名の第1の部分は、名前空間名である。名前の最後の部分は、型名である。例えば、System.Collections.ArrayListは、System.Collections名前空間に属しているArrayList型を表している。System.Collectionsの型を使用して、オブジェクトの集まりを操作することができる。クラスがこのように系統立てられると、名前空間が果たす目的、およびそれがどのクラス機能を含むかを理解しやすくなる。例えば、System.Web.Servicesは、そのクラスが何らかのWeb機能のサービスを提供することを伝える。同様に、System.Windows(登録商標).Shapesは形状のサービスを提供すると判断しやすい。クラスを意味をつかみやすい統一クラスに論理的にグループ分けすることに加えて、名前空間は、ユーザが既存のものから各自の名前空間を導出できるという点で、拡張性がある。例えば、System.Web.UI.ACMECorpはSystem.Web.UIから導出することができ、カスタムUI要素を提供することができる。フレームワークの名前空間は、ソリューションの構築および稼動に必要な「システム」または基本機能およびサービスを提供する。   The framework class library contains several classes. One class defines operations (methods, events, or properties) that an object can perform and defines values (fields) that hold the state of the object. A class generally has a definition and an implementation, but can have one or more members that do not have an implementation. The common type system defines how types are declared, used, and managed at runtime. . The NET framework type uses a dot syntax naming scheme including a hierarchy. This technique groups related types into namespaces so that they can be searched and referenced more easily. The first part of the full name up to the rightmost dot is the namespace name. The last part of the name is the type name. For example, System. Collections. ArrayList is available from System. It represents an ArrayList type belonging to the Collections namespace. System. A collection type can be used to manipulate a collection of objects. When classes are organized in this way, it is easier to understand the purpose of the namespace and what class functions it contains. For example, System. Web. Services tells that the class provides some web function service. Similarly, System. Windows (registered trademark). Shapes is easy to determine to provide shape services. In addition to logically grouping classes into unified classes that are easy to grasp, namespaces are extensible in that users can derive their own namespaces from existing ones. For example, System. Web. UI. ACMECorp is available from System. Web. It can be derived from the UI and can provide custom UI elements. The framework namespace provides the “system” or basic functions and services needed to build and operate the solution.

以下の説明で、本発明は、本発明の特徴をXMLから区別するためにxamlの用語を使用して説明する。次に図3を参照すると、本発明は、CLR概念300のXML310への直接マッピングを提供する。名前空間302は、リフレクション(reflection)と呼ばれるCLR概念を使用して、xmlns宣言312を介して検索される。クラス304は、XMLタグ314に直接マップする。プロパティ306およびイベント308は、属性316に直接マップする。ユーザは、このマッピングを使用して、XMLマークアップファイル内の任意のCLRオブジェクトの階層ツリーを指定することができる。   In the following description, the present invention will be described using xaml terminology to distinguish features of the present invention from XML. Referring now to FIG. 3, the present invention provides a direct mapping of CLR concept 300 to XML 310. Namespace 302 is retrieved via xmlns declaration 312 using a CLR concept called reflection. Class 304 maps directly to XML tag 314. Properties 306 and events 308 map directly to attributes 316. The user can use this mapping to specify a hierarchical tree of any CLR object in the XML markup file.

xamlファイルは、拡張子が.xamlで、メディアタイプがapplication/xaml+xmlのxmlファイルである。xamlファイルは、一般にxmlns属性を使用して名前空間を指定する1つのルートタグを有する。特定のルートタグは必要なく、それによってユーザは、ルートとして異なるCLR関連のタグを有することができる。名前空間は、他のタイプのタグで指定することができる。   The xaml file has the extension. It is an xml file with xaml and media type application / xaml + xml. An xaml file typically has one root tag that specifies a namespace using the xmlns attribute. No specific root tag is required, thereby allowing the user to have different CLR-related tags as roots. Namespaces can be specified with other types of tags.

デフォルトの1組の名前空間を使用する。一実施形態では、5つの名前空間を使用する。これらの名前空間は、(要素のクラスを有する)System.Windows(登録商標)、(ボタン、パネル、テキストパネルなどのコントロール要素のクラスを有する)System.Windows(登録商標).Controls、(文書中心のテキストレンダリング要素のクラスを有する)System.Windows(登録商標).Documents、(Windows(登録商標)Vector Graphics要素のクラスを有する)System.Windows(登録商標).Shapes、および(スクロールビューアなどブロック要素を構築するクラスを有する)System.Windows(登録商標).Controls.Atomsであり、xmlns宣言で指定される。他の名前空間を使用してもよく、デフォルトの組は、用途に応じて構成可能である。   Use the default set of namespaces. In one embodiment, five namespaces are used. These namespaces are System. (With element classes). Windows (registered trademark), System. (Having control element classes such as buttons, panels, and text panels). Windows (registered trademark). Controls, System. (With a class of document-centric text rendering elements). Windows (registered trademark). Documents, System. (With class of Windows® Vector Graphics element). Windows (registered trademark). Shapes, and System. (With classes that build block elements such as scroll viewers). Windows (registered trademark). Controls. Atoms, specified in the xmlns declaration. Other namespaces may be used and the default set is configurable depending on the application.

上述したように、xamlファイルのタグは、一般にCLRオブジェクトにマップする。タグは、要素、複合プロパティ、定義、またはリソースとすることができる。要素は、一般にランタイム中にインスタンス化され、オブジェクトの階層を形成するCLRオブジェクトである。これらの要素は階層に留まる。一部の要素は、必要な場合のみにインスタンス化される。要素は、.NET frameworkに適合するように、大文字で表す。一実施形態では、要素の主な組が5つある。これらは、Panel、Control、DocumentElement、Shape、およびDecoratorである。Panelは、要素がページにどのように配列されるかを定義するために使用する。Panelの例には、TextPanel、DockPanel、Canvas、FlowPanel、およびTableがある。Controlは、対話式の経験を提供する。Controlの例には、Button、RadioButton、およびListBoxがある。DocumentElementは、流し込みテキストをレンダリングし、その書式設定をするために使用する。これらの要素は、他の要素を含むことができる任意の要素内に配置することができる。DocumentElementの例には、Paragraph、Section、Bold、およびItalicがある。ShapeはVector Graphicの要素である。Shapeの例には、Ellipse、Line、およびPathがある。Decoratorは、子を1つしか持てないことを除いてPanel要素に似ている。Decoratorの例には、BorderおよびGlowがある。   As described above, tags in xaml files generally map to CLR objects. A tag can be an element, complex property, definition, or resource. Elements are CLR objects that are typically instantiated during runtime and form a hierarchy of objects. These elements remain in the hierarchy. Some elements are instantiated only when needed. The elements are. It is expressed in capital letters to conform to the NET framework. In one embodiment, there are five main sets of elements. These are Panel, Control, DocumentElement, Shape, and Decorator. Panel is used to define how the elements are arranged on the page. Examples of Panel include TextPanel, DockPanel, Canvas, FlowPanel, and Table. Control provides an interactive experience. Examples of Control include Button, RadioButton, and ListBox. DocumentElement is used to render the flowed text and format it. These elements can be placed in any element that can contain other elements. Examples of DocumentElement include Paragraph, Section, Bold, and Italic. Shape is an element of Vector Graphic. Examples of Shape include Ellipse, Line, and Path. A Decorator is similar to a Panel element, except that it can have only one child. Examples of Decorators are Border and Glow.

複合プロパティタグを使用して、親タグ内にプロパティを設定する。これについて以下で詳述する。ランタイム中、複合プロパティタグは、階層ツリー内に一要素として存在してはいない。定義タグは、ページにコードを追加し、リソースを定義するために使用する。定義タグは、xamlページで、またはxamlページの構成要素内で<def:xyz>として識別される。この場合、xyzは定義される項目である。例えば<def:Code>は、コードをページに追加するために使用され、<def:Resources>は、1つまたは複数の再利用可能なリソースを定義する。<def:Resources>タグ内に表示されるタグは、任意の要素または任意のCLRオブジェクトにマップすることができる。リソースタグは、単にツリーをリソースとして指定しているオブジェクトのツリーを再利用する能力を提供する。定義タグは、別のタグ内でxmlns属性として定義することもできる。   Use a complex property tag to set the property within the parent tag. This will be described in detail below. During runtime, complex property tags do not exist as an element in the hierarchical tree. Definition tags are used to add code to a page and define resources. The definition tag is identified as <def: xyz> in the xaml page or in the components of the xaml page. In this case, xyz is an item to be defined. For example, <def: Code> is used to add code to the page, and <def: Resources> defines one or more reusable resources. The tag displayed within the <def: Resources> tag can be mapped to any element or any CLR object. Resource tags simply provide the ability to reuse a tree of objects that specify the tree as a resource. A definition tag can also be defined as an xmlns attribute within another tag.

上述したように、属性は、クラスに関連するプロパティおよびイベントにマップする。一部の属性は真のCLRクラスと関連付けられないため、定義タグも使用して、これらの属性を、プロパティまたはイベントにマップする属性と区別する。次の表には、こうした属性をまとめている。   As described above, attributes map to properties and events associated with the class. Because some attributes are not associated with a true CLR class, definition tags are also used to distinguish these attributes from attributes that map to properties or events. The following table summarizes these attributes.

Figure 2009283010
Figure 2009283010

基本の名前空間からxmlns属性、クラス名からタグ名、ならびにプロパティおよびイベントから属性へのマッピングおよび定義済みの属性について説明してきたので、xamlファイルの解析時に本発明が行うステップについて説明する。以下xamlパーサーと呼ぶ本発明のパーサーは、ルートタグから、タグを見つけるためにどのCLRアセンブリおよび名前空間を検索すべきかを決定する。ルートタグの例は、次の形式のものである。   Having described the xmlns attribute from the basic namespace, the class name to the tag name, the property and event to attribute mapping, and the predefined attributes, the steps performed by the present invention when analyzing the xml file will be described. The parser of the present invention, hereinafter referred to as the xaml parser, determines from the root tag which CLR assembly and namespace to search to find the tag. Examples of route tags are of the following format:

Figure 2009283010
Figure 2009283010

xamlパーサーは、xmlns属性によって指定されるURLディレクトリ内で名前空間定義ファイルを探す。例えば上記のルートタグの例で、xamlパーサーは、http://microsoft.com/xaml/2004/xmlns.definitionで定義ファイルを検索する。   The xaml parser looks for the namespace definition file in the URL directory specified by the xmlns attribute. For example, in the example of the above root tag, the xaml parser searches for a definition file at http://microsoft.com/xaml/2004/xmlns.definition.

名前空間定義がxmlns位置にないシナリオでは、一実施形態では<?Mapping?>タグを使用する。アセンブリに組み込まれているカスタム構成要素の場合、タグは
<?Mapping xmlns="foo" Namespace="ACME.Widgets" Assembly="acme" ?>の形式のものである。ユーザが実装を提供する別のエンティティ(例えばw3c.org)によって制御されるあるサイトをxmlnsが指す名前空間では、タグは、
<?Mapping xmlns="http://www.w3c.org/2000/svg"
xmlnsdefinition="http://www.acme.com/svg/2000/xmlns.definition ?>の形式のものである。名前空間は、xmlns:foo=http://www.ACME/fooの形式を使用して指定することもできる。これは、名前空間「foo」を定義する。上述したように、名前空間は、別のタイプのタグで指定することもできる。例えば、名前空間は、次のMyCoolButtonタグで指定される。
For scenarios where the namespace definition is not in the xmlns position, in one embodiment <? Mapping? > Use tags. For custom components built into an assembly, the tag is
<? Mapping xmlns = "foo" Namespace = "ACME.Widgets" Assembly = "acme"?> In a namespace where xmlns points to a site that is controlled by another entity for which the user provides an implementation (eg, w3c.org), the tag is
<? Mapping xmlns = "http://www.w3c.org/2000/svg"
The format is xmlnsdefinition = "http://www.acme.com/svg/2000/xmlns.definition?> The namespace uses the format xmlns: foo = http: //www.ACME/foo Which defines the namespace “foo”. As mentioned above, the namespace can also be specified with another type of tag. For example, the namespace is specified by the following MyCoolButton tag.

Figure 2009283010
Figure 2009283010

名前空間定義ファイルは、アセンブリの名前およびそのインストールパス、およびCLR名前空間のリストを提供する。定義ファイルの例は次の通りである。   The namespace definition file provides a list of assembly names and their installation paths, and CLR namespaces. An example of a definition file is as follows.

Figure 2009283010
Figure 2009283010

xamlパーサーが新しいxmlns定義ファイルに出会うと、定義ファイルは、フェッチされ、ローカルに格納される。   When the xaml parser encounters a new xmlns definition file, the definition file is fetched and stored locally.

パーサーは、タグに出会うと、タグのxmlnsおよびそのxmlnsのxmlns定義ファイルを使用してそのタグがどのCLRクラスを参照するかを決定する。例えば、タグが<Text xmlns=“...”>の場合、パーサーは、定義ファイルで提供された名前空間内でテキストと呼ばれるクラスを検索する。パーサーは、アセンブリおよび名前空間がその定義ファイルで指定されている順序で検索する。一致を見つけると、パーサーは、クラスのオブジェクトをインスタンス化する。   When the parser encounters a tag, it uses the tag's xmlns and its xmlns xmlns definition file to determine which CLR class the tag references. For example, if the tag is <Text xmlns = “...”>, the parser searches for a class called text in the namespace provided in the definition file. The parser searches the assembly and namespace in the order specified in its definition file. If it finds a match, the parser instantiates an object of the class.

xamlタグ内の属性は、2つの方法のうちの一方で使用される。それは、プロパティを設定すること、またはイベントハンドラを連結することのいずれかである。例えば、xamlパーサーは、以下のタグ
<Button Text="OK" Background ="Red" Click= "RunHandler" ID="bl">
をテキスト、背景、およびクリックプロパティおよび/またはイベントを有するButtonと呼ばれるクラスとして解釈する。パーサーは、Buttonクラスのプロパティセクションにおいてテキスト、背景、およびクリック名を検索する。名前がプロパティセクションにない場合、パーサーは、イベントセクションで名前を探す。
Attributes in the xaml tag are used in one of two ways. It can either set properties or attach event handlers. For example, the xaml parser has the following tag
<Button Text = "OK" Background = "Red" Click = "RunHandler" ID = "bl">
As a class called Button with text, background, and click properties and / or events. The parser searches for text, background, and click names in the properties section of the Button class. If the name is not in the properties section, the parser looks for the name in the event section.

上記の例で、パーサーは、TextおよびBackgroundはプロパティであり、Clickはイベントであると決定する。テキスト文字列「OK」が設定される。テキスト文字列の設定より複雑なプロパティおよびイベントの場合、CLR型コンバータを使用して、文字列に変換する、また文字列から変換するオブジェクトを作成する。例えば、プロパティBackgroundは、CLR型の型Paintであると決定される。型PaintのCLR型コンバータを使用して、文字列「Red」を型Paintのオブジェクトに変換する。この文字列は、Buttonの背景色の値として設定される。同様に、Clickイベントは、RunHandlerメソッドに連結され、IDプロパティはb1に設定される。   In the above example, the parser determines that Text and Background are properties and Click is an event. A text character string “OK” is set. For properties and events that are more complex than text string settings, an object that converts to and from a string is created using a CLR converter. For example, the property Background is determined to be a CLR type Paint. A character string “Red” is converted into an object of type Paint using a CLR type converter of type Paint. This character string is set as the value of the background color of Button. Similarly, the Click event is linked to the RunHandler method, and the ID property is set to b1.

プロパティは、簡単な属性、文字列値を有する複合プロパティ、または値としてオブジェクトを有する複合プロパティとして設定することができる。簡単な属性は、<Button Background=“Blue”/>という形式のものである。この場合「Blue」は、型Paint(Backgroundプロパティの型)のオブジェクトに文字列をどのように変換するかを知っている型コンバータを呼び出すことによって解釈される。次いでこれをButtonのBackgroundプロパティの値として設定する必要がある。属性値が*で開始する場合、属性は、リテラル値を指定しておらず、代わりに新しくインスタンス化されたオブジェクトまたは既存のオブジェクトと等しい値を設定している。 Properties can be set as simple attributes, complex properties with string values, or complex properties with objects as values. A simple attribute is of the form <Button Background = “Blue” />. In this case, “Blue” is interpreted by calling a type converter that knows how to convert a string to an object of type Paint (a type of Background property). This then needs to be set as the value of the Button Background property. If the attribute value starts with * , the attribute does not specify a literal value and instead sets a value equal to a newly instantiated object or an existing object.

文字列値を有する複合プロパティは、次の形式のものである。   Composite properties with string values are of the form:

<Button>
<Button.Background>Blue</Button.Background>
</Button>
<Button>
<Button.Background> Blue </Button.Background>
</ Button>

その中にピリオドが含まれているタグは、そのタグがプロパティへの参照であることを示す。パーサーは、後ろにピリオドが続く親タグのタグ名(例えば「Button.Background」タグの「Button」)で始まるタグを見つけると、そのピリオドの後ろの名前(例えば「Button.Background」タグの「Background」)によって指定されるプロパティを検索する。この場合、「Blue」は、文字列を型Paint(Backgroundプロパティの型)のオブジェクトに変換する方法を知っている型コンバータを呼び出すことによって解釈する必要がある。次いでこれをButtonのBackgroundプロパティの値として設定する必要がある。 A tag that contains a period indicates that the tag is a reference to a property. When the parser finds a tag that begins with the tag name of the parent tag followed by a period (eg, “Button” in the “Button.Background” tag), the name after the period (eg, “Bacground” in the “Button.Background” tag) Search for the property specified by In this case, “Blue” needs to be interpreted by calling a type converter that knows how to convert a string to an object of type Paint (Background property type). This then needs to be set as the value of the Button Background property.

別のクラスからのプロパティもタグで宣言することができる。例えば、
<TextBox Button.Background="Blue">
のタグは、属性Button.BackgroundがTextBoxクラスとは異なるクラスにマップされることを示す。パーサーは、ピリオドを見つけ、そのピリオドの後ろの名前によって指定されるプロパティ(例えば「Button.Background」タグの「Background」)をピリオドの前の名前によって指定されるクラス(例えば「Button」)内で検索する。
Properties from other classes can also be declared in tags. For example,
<TextBox Button.Background = "Blue">
The tag of the attribute Button. Indicates that Background is mapped to a different class than the TextBox class. The parser finds a period and sets the property specified by the name after that period (eg, “Bacground” in the “Button.Background” tag) within the class (eg, “Button”) specified by the name before the period. Search for.

値としてオブジェクトを含む複合プロパティは、次の形式のものである。   A composite property that contains an object as a value is of the form:

Figure 2009283010
Figure 2009283010

この場合、CLR HorizontalGradientオブジェクトが作成され、次いでBottonのBackgroundプロパティの値として設定される。   In this case, a CLR HorizonGradient object is created and then set as the value of the Botton Background property.

複合プロパティ構文を使用すると、単に値に対してオブジェクトを提供するだけではない。例えば次のように、Animationまたは一部のデータへのBindを達成することができる。   Using complex property syntax doesn't just provide an object for the value. For example, an animation or a bind to some data can be achieved as follows.

Figure 2009283010
Figure 2009283010

これらの場合、タグは、特徴を提供するための適切なシステムを設定する能力をAnimationまたはBindに提供するために使用される。例えば、Animationオブジェクトを作成した後、xamlパーサーは、IApplyValueと呼ばれるインターフェースを実装したかどうかを確認するためにオブジェクトに照会する。実装している場合、xamlパーサーは、ColorAnimationObject.ApplyValue(elementReference, BackgroundPropertyID)を呼び出す。次いでColorAnimationObjectは、Animationに連結する。オブジェクトがインスタンスをサポートしていない場合、xamlパーサーは、ButtonのBackgroundプロパティをColorAnimationObjectに設定する。   In these cases, the tags are used to provide the Animation or Bind with the ability to set up an appropriate system for providing features. For example, after creating an Animation object, the xamml parser queries the object to see if it implements an interface called IAApplyValue. If implemented, the xaml parser will have ColorAnimationObject. Call ApplyValue (elementReference, BackgroundPropertyID). The ColorAnimationObject then connects to the Animation. If the object does not support an instance, the xamml parser sets Button's Background property to ColorAnimationObject.

上述したように、属性値が*で開始する場合、この属性は、新しくインスタンス化されたオブジェクトまたは既存のオブジェクトに等しい値を設定している。xamlパーサーは、*の後ろの名前を探し、*の後ろの名前のCLR型を探す。例えば、<Button Background = "*HorizontalGradient(Start=Red End=Blue)">タグでは、パーサーは、括弧の前の名前(すなわちHorizontalGradient)を決定し、前のxmlns設定値によって確立された現在の名前空間内でそのCLR型を検索する。パーサーは、括弧の後の項目を属性および値として扱う(例えばstartは属性であり、redはその属性の値である)。「*」エスケープ文字の使用の他の例を以下に示す。これらのすべての場合に、値が一度設定される。このプロパティと何らかのオブジェクトとの間の関係を維持するのに式または結合は設定しない。前方の参照は可能である。ツリー作成中、参照されるオブジェクトがまだ存在していない場合、それが現れるまで、またはツリーが完全に作成されるまでそのプロパティの設定が遅延する。 As described above, if an attribute value starts with * , this attribute is set to a value equal to a newly instantiated object or an existing object. xaml parser, looking for the name of the back of the *, look for the CLR type of the name of the back of the *. For example, in the <Button Background = " * HorizontalGradient (Start = Red End = Blue)"> tag, the parser determines the name before the parenthesis (ie, HorizontalGradient) and the current name established by the previous xmlns setting Search for the CLR type in space. The parser treats the item after the parenthesis as an attribute and value (eg, start is an attribute and red is the value of that attribute). Other examples of using the " * " escape character are as follows: In all these cases, the value is set once. No expressions or joins are set to maintain the relationship between this property and some object. Forward references are possible. During tree creation, if the referenced object does not already exist, setting its properties is delayed until it appears or until the tree is completely created.

Figure 2009283010
Figure 2009283010

Figure 2009283010
Figure 2009283010

プログラミング言語は、.xamlページの2つの場所に関連付けることができる。これらの場所は、.xamlファイル、および関連するコードビハインドファイル(code−behind file)の中にある。コードビハインドファイルは、一般に.xamlファイルと同じ名前が付けられ、末尾にプログラミング言語の一般の拡張子が添付されている。例えば、.xaml.csはC#、.xaml.vbはVB、.xaml.jsはJscriptの場合に使用される。xmlns:def=“Definition”の名前空間は、コードをページに追加するのに必要なタグを使用するために、ルート要素に追加される。ユーザは、def:Language属性をページのルート要素に追加することによってxamlページに関連するプログラミング言語を選択する。例えば、次のタグは、定義および言語属性がルート要素にどのように追加されるかを示している。<DockPanel xmlns="http://microsoft.com/xaml/2005" xmlns:def="Definition" xmlns:Language="C#">
「>」、「<」および/または「&」文字を含むxamlファイル内にコードを追加するために、XMLで定義されたCDATAセクションが<def:Code>セクションに必要である。この例を以下に示す(この例では、含まれているコードは、「<」、「>」、または「&」文字を使用しないため、CDATAの括弧付けは必要ない)。
The programming language is. It can be associated with two locations on the xaml page. These locations are. in the xaml file and the associated code-behind file. Code-behind files are generally. It has the same name as the xaml file and is appended with a common extension for programming languages. For example,. xaml. cs is C #,. xaml. vb is VB,. xaml. js is used in the case of Jscript. The namespace of xmlns: def = “Definition” is added to the root element to use the tags necessary to add code to the page. The user selects the programming language associated with the xaml page by adding a def: Language attribute to the root element of the page. For example, the following tag shows how definitions and language attributes are added to the root element. <DockPanel xmlns = "http://microsoft.com/xaml/2005" xmlns: def = "Definition" xmlns: Language = "C #">
In order to add code in an xaml file that contains “>”, “<” and / or “&” characters, a CDATA section defined in XML is required in the <def: Code> section. An example of this is shown below (in this example, the included code does not use the “<”, “>”, or “&” characters, so CDATA parentheses are not required):

Figure 2009283010
Figure 2009283010

コードビサイドファイル(code−beside file)内においてコードを指定するには、ソース属性を使用する。ソース属性は、xamlファイルのコードビハインドにURIを提供する。URIは、相対または絶対とすることができる。URIおよび簡単なコードビサイドファイルを指定する例を以下に示す。   A source attribute is used to specify a code in a code-beside file. The source attribute provides a URI to the code behind of the xaml file. The URI can be relative or absolute. An example of specifying a URI and a simple code-beside file is shown below.

Figure 2009283010
Figure 2009283010

簡単なコードビサイドファイルは次の通りである。   A simple code-beside file is as follows.

Figure 2009283010
Figure 2009283010

Figure 2009283010
Figure 2009283010

また、xamlパーサーは、ILiteralContentと呼ばれる特徴をサポートしている。ILiteralContentを実装するオブジェクトでは、xamlパーサーは、オブジェクトのタグを文字列として扱い、タグを解析しない。例えば、PublicクラスのFooObjectがILiteralContentを実装する場合、xamlパーサーがタグ<FooObject>“I am a string”</FooObject>に出会うと常に、パーサーは、FooObjectのインスタンスを作成し、<FooObject>タグ内のデータ(例えば「I am a string」)を新しく作成されたFooObjectに渡す。   The xaml parser supports a feature called ILiterContent. For objects that implement IliteralContent, the xamml parser treats the tag of the object as a character string and does not parse the tag. For example, if the Public object of the Public class implements IliteralContent, whenever the xamml parser encounters the tag <FooObject> “I am a string” </ FooObject>, the parser creates an instance of FooObject and <FooOj> (E.g., “I am a string”) is passed to the newly created FooObject.

要するに、要素/オブジェクトが直接含むルートタグを解析するときに以下の規則を使用する。図4を参照すると、タグがスキーマ位置を指定するxmlns属性を有する場合、xmlns属性に関連するアセンブリ/名前空間を有する定義ファイルは、ローカルに配置され、格納される(ステップ400)。アセンブリ/名前空間は一般に、文書のルートタグまたはマッピングタグでスキーマのURLを使用して検索される。タグが要素タグである場合、パーサーは、要素がそこで指定されているxml名前空間に基づいて、その名前のクラスを適切な1組のアセンブリ/名前空間で探し、そのクラスのオブジェクトのインスタンスがインスタンス化される(ステップ402)。クラス名が見つからない場合、xamlパーサーは、包含側の親がその名前のプロパティを有しているかどうかをチェックする。それが包含側要素のプロパティである場合、xamlパーサーは、複合プロパティ規則を使用してそのタグの内容を解析する。タグが属性タグの場合、その属性に関連するプロパティまたはイベントが設定される(ステップ404)。属性値が*で開始する場合、属性は、リテラル値を指定しておらず、代わりに新しくインスタンス化されたオブジェクトまたは既存のオブジェクトに等しい値を設定している。タグは、親タグ上にプロパティを設定するために使用するタグを有していてもよい。タグは、複合プロパティである。タグが複合プロパティの場合、複合規則に従う(ステップ406)。こうした規則を以下に示す。xamlパーサーは、複合プロパティが文字列であるかどうかを決定する。内容が文字列である場合、xamlパーサーは、設定されるプロパティの適切な型の型コンバータを呼び出す。親タグの内容が別のタグである場合、xamlパーサーは、オブジェクトを基準としてインスタンス化する。オブジェクトをインスタンス化した後、xamlパーサーは、それをプロパティの値として親オブジェクトに設定する。タグのxmlnsが「def:」の場合、xamlパーサーは、後述するように、内蔵されている1組の意味(a set of built in meanings)を使用する(ステップ408)。ファイル内の次のタグが解析され(ステップ410)、xamlパーサーがxamlファイルの終了ルートタグを検出するまで、ステップ400から408がタグごとに繰り返される。 In short, the following rules are used when parsing the root tag that an element / object contains directly. Referring to FIG. 4, if the tag has an xmlns attribute that specifies a schema location, a definition file having an assembly / namespace associated with the xmlns attribute is located locally and stored (step 400). The assembly / namespace is typically searched using the schema URL in the document root tag or mapping tag. If the tag is an element tag, the parser looks for the class of that name in the appropriate set of assemblies / namespaces based on the xml namespace in which the element is specified, and an instance of an object of that class is an instance (Step 402). If the class name is not found, the xaml parser checks whether the containing parent has a property with that name. If it is a property of the containing element, the xamml parser parses the contents of the tag using complex property rules. If the tag is an attribute tag, the property or event associated with the attribute is set (step 404). If the attribute value starts with * , the attribute does not specify a literal value, but instead sets a value equal to a newly instantiated object or an existing object. The tag may have a tag that is used to set properties on the parent tag. A tag is a complex property. If the tag is a composite property, the composite rule is followed (step 406). These rules are shown below. The xaml parser determines whether the composite property is a string. If the content is a string, the xaml parser calls the type converter for the appropriate type of the property being set. If the content of the parent tag is another tag, the xaml parser instantiates relative to the object. After instantiating the object, the xaml parser sets it to the parent object as the property value. If the tag's xmlns is “def:”, the xamml parser uses a set of built-in meanings (a set of build in means), as will be described later (step 408). The next tag in the file is analyzed (step 410), and steps 400-408 are repeated for each tag until the xaml parser detects the end root tag of the xaml file.

本発明は、オブジェクトモデルをマークアップタグを使用してXMLベースのファイルで表すことができる機構を提供することが上記からわかる。オブジェクトモデルをマークアップタグとして表すことができるこの能力を使用すると、ベクトル図形、固定形式文書、適応的フロー文書、およびアプリケーションUIを作成することができる。こうしたベクトル図形、固定形式文書、適応的フロー文書、およびアプリケーションUIは、非同期または同期に作成することができる。これによって、これらの項目をマークアップから構築してオブジェクトのツリーを作成することができるという利益が得られる。   It can be seen from the above that the present invention provides a mechanism by which an object model can be represented in an XML based file using markup tags. Using this ability to represent object models as markup tags, vector graphics, fixed format documents, adaptive flow documents, and application UIs can be created. Such vector graphics, fixed format documents, adaptive flow documents, and application UIs can be created asynchronously or synchronously. This has the advantage that these items can be built from markup to create a tree of objects.

固定形式文書は、予め決定されている装置に依存しないやり方で、文書ページ数およびサイズ、ならびに各ページでのオブジェクトの位置を明示的に定義する文書である。これによって、文書の表示に使用する実装システムに関係なく同じページがレンダリングされる形式で文書を作成し、共有できる能力がユーザに提供される。一実施形態では、固定形式文書のルートタグの一方は<FixedPanel>であり、ページは<Fixed Page>タグを使用して指定される。固定ページ内に、いくつかのタイプの要素を使用することができる。これらの要素には、テキスト、ベクトル図形、および画像などがある。フォントおよび共有画像などの外部リソースが指定される。テキストに使用するタグは、個々の文字グリフおよび文字グリフの位置に対する正確な制御をユーザに提供する。他のタグは、テキスト、ベクトル図形、および画像がどのように1ページに結び付けられるかに対する制御をユーザに提供する。xamlパーサーは、固定形式文書のタグを認識する。他の任意のタイプの.xamlファイルと同様、パーサーは、タグに関連するCLR名前空間およびクラスを決定し、xamlファイル内のタグの型コンバータを呼び出し、固定形式文書をレンダリングする。   A fixed format document is a document that explicitly defines the number and size of document pages and the position of objects on each page in a manner that does not depend on a predetermined device. This provides the user with the ability to create and share documents in a format that renders the same page regardless of the implementation system used to display the document. In one embodiment, one of the fixed format document root tags is <FixedPanel> and the page is specified using the <Fixed Page> tag. Several types of elements can be used within a fixed page. These elements include text, vector graphics, and images. External resources such as fonts and shared images are specified. Tags used for text provide the user with precise control over individual character glyphs and the position of character glyphs. Other tags provide the user with control over how text, vector graphics, and images are combined into a page. The xaml parser recognizes fixed format document tags. Any other type. Like the xaml file, the parser determines the CLR namespace and class associated with the tag, calls the tag's type converter in the xaml file, and renders the fixed format document.

適応的フロー文書には、予め決定されているページサイズはない。適応的フロー文書におけるテキスト、画像、DocumentElement、および他のオブジェクトの組は、様々なページ幅に合うようにページ上に流出し、または再配置される。例えば、表示画面上のウィンドウにレンダリングされたページは、使用しているコンピューティングシステム、またはユーザの選好に応じて、異なる表示画面上では異なる幅となる可能性がある。印刷されるページは、ページサイズに応じて幅が異なる。例えば、テキストの行は、ページの幅が狭くなるとより短くなり、それによってテキストは、追加の単語をテキスト行からテキスト行にカスケード式の順序でページのさらに下方の行に流出し、または再配置される。属性を使用して、適応的フロー文書がどのように表示されるかに対するユーザの選好を指定する。   There is no predetermined page size for adaptive flow documents. The set of text, images, DocumentElements, and other objects in the adaptive flow document is flushed or rearranged on the page to fit various page widths. For example, a page rendered in a window on a display screen may have different widths on different display screens, depending on the computing system being used, or user preferences. The printed pages have different widths depending on the page size. For example, a line of text becomes shorter as the page becomes narrower, which causes the text to flow or rearrange additional words down the page in a cascaded order from the text line to the text line. Is done. Attributes are used to specify user preferences for how the adaptive flow document is displayed.

xamlパーサーは、これらの属性を、オブジェクトのCLR型コンバータに渡して文書を作成する。オブジェクトは、ページ番号の振られていない、またはページ番号の振られているプレゼンテーションを作成することができる。ページ番号の振られていないプレゼンテーションでは、縦方向のスクロールバーなどのコントロールを用いて、表示画面上に底部のない単一のページが表示される。ページ番号の振られているプレゼンテーションでは、ページ高さに基づいて文書内容をセグメントに分割し、次ボタンや前ボタンなどのコントロールを用いて、各ページを表示画面に別個に表示する。別の属性は、ページ上の列幅および列数、すべてのテキスト要素のサイズ、テキスト行間隔、すべての画像および図形のサイズおよび位置、ならびにマージン幅および段組間の幅を決定する。またユーザは、ページサイズに合わせて最適に読めるように、文書を作成するオブジェクトが、列、テキストサイズおよび行間隔、画像サイズおよび位置、マージンおよび段組間の幅、ならびに他のページまたはテキストパラメータを自動的に調整すべきかどうかを属性によって指定することもできる。xamlパーサーは、適応的フロー文書のタグを解析し、タグに関連するCLR名前空間およびクラスを決定し、適応的フロー文書をレンダリングするためにxamlファイル内で指定されたオブジェクトの型コンバータを呼び出す。   The xaml parser passes these attributes to the object's CLR converter to create the document. An object can create an unpaged or paged presentation. In presentations without page numbers, a single page with no bottom is displayed on the display screen using controls such as a vertical scroll bar. In a presentation with page numbers, the document content is divided into segments based on the page height, and each page is displayed separately on the display screen using controls such as a next button and a previous button. Other attributes determine the column width and number of columns on the page, the size of all text elements, the spacing between text lines, the size and position of all images and graphics, and the margin width and width between columns. Also, the user creating the document has columns, text size and line spacing, image size and position, margin and column width, and other page or text parameters so that the user can read it optimally for the page size. It is also possible to specify by attribute whether or not to be automatically adjusted. The xaml parser parses the adaptive flow document's tags, determines the CLR namespace and class associated with the tag, and invokes the type converter for the object specified in the xaml file to render the adaptive flow document.

本発明の原理を適用できる多くの可能な実施形態を考慮して、図面との関連で本明細書に記載した実施形態は、例示的なものにすぎず、本発明の範囲を限定するものとみなされるべきではないことを理解されたい。例えば、ソフトウェアで示した実施形態の例の要素をハードウェアに、またその逆に実装でき、あるいは、実施形態の例を、本発明の意図から逸脱することなく、構成および詳細について変更できることを当業者であれば理解されよう。したがって、本明細書に記載した本発明は、添付の特許請求の範囲、およびその均等物の範囲内に含まれ得るすべての実施形態を企図する。   In view of the many possible embodiments in which the principles of the present invention may be applied, the embodiments described herein in connection with the drawings are merely exemplary and are intended to limit the scope of the invention. It should be understood that it should not be considered. For example, it should be understood that elements of example embodiments illustrated in software may be implemented in hardware and vice versa, or that the example embodiments may be modified in configuration and detail without departing from the spirit of the invention. It will be understood by a contractor. Accordingly, the invention described herein contemplates all embodiments that may be included within the scope of the appended claims and their equivalents.

Claims (12)

マークアップ言語データ構造を格納しているコンピュータ可読媒体であって、
プログラミング言語クラスにマップされるデータを含む第1のフィールドと、
前記クラスのプロパティおよびイベントの一方にマップされるデータを含む第2のデータフィールドと
を含むことを特徴とするコンピュータ可読媒体。
A computer readable medium storing a markup language data structure comprising:
A first field containing data mapped to a programming language class;
And a second data field containing data mapped to one of the class properties and events.
前記第1のフィールドおよび前記第2のフィールドを解釈するために少なくとも1つのアセンブリおよび少なくとも1つの名前空間を有する定義ファイルを取り出すためのURL(uniform resource locator)を示すデータを含む第3のフィールドをさらに含むことを特徴とする請求項1に記載のコンピュータ可読媒体。   A third field including data indicating a uniform resource locator (URL) for retrieving a definition file having at least one assembly and at least one namespace to interpret the first field and the second field; The computer-readable medium of claim 1, further comprising: 前記第2のデータフィールドが*文字を有している場合、前記第2のデータフィールドは、前記データ構造のプロセス中に、新しくインスタンス化されたオブジェクトおよび既存の参照されるオブジェクトの一方に等しい値に設定されることを特徴とする請求項1に記載のコンピュータ可読媒体。 If the second data field has a * character, the second data field has a value equal to one of a newly instantiated object and an existing referenced object during the process of the data structure. The computer-readable medium according to claim 1, wherein the computer-readable medium is set as follows. 前記第2のデータフィールドは複合プロパティを格納しており、前記第2のデータフィールドがテキスト文字列である場合、前記第2のデータフィールドが処理されると、型コンバータが呼び出されることを特徴とする請求項1に記載のコンピュータ可読媒体。   The second data field stores a composite property, and when the second data field is a text string, a type converter is called when the second data field is processed. The computer readable medium of claim 1. 前記第2のデータフィールドが他のタグである場合、前記第2のデータフィールドが処理されると、前記他のタグの名前に基づくクラスが探され、前記他のタグの名前に基づくクラスのオブジェクトがインスタンス化され、前記オブジェクトがプロパティの値として前記タグに設定されることを特徴とする請求項4に記載のコンピュータ可読媒体。   If the second data field is another tag, when the second data field is processed, a class based on the name of the other tag is searched and an object of the class based on the name of the other tag 5. The computer-readable medium of claim 4, wherein is instantiated and the object is set in the tag as a property value. オブジェクトを宣言的に定義するための方法であって、
少なくとも1つの名前空間を有する定義ファイルの位置のURLをルートタグおよびマッピングタグのうちの一方のxmlns属性にマップするステップと、
前記少なくとも1つの名前空間内のクラス名にタグ名を設定するステップと、
前記オブジェクトがプロパティ設定を有している場合、プロパティ名に前記タグの属性を設定するステップと
を含むことを特徴とする方法。
A method for declaratively defining an object,
Mapping a URL of a definition file having at least one namespace to an xmlns attribute of one of a root tag and a mapping tag;
Setting a tag name to a class name in the at least one namespace;
If the object has a property setting, the method includes: setting an attribute of the tag in a property name.
前記オブジェクトが定義されたイベントを有する場合、前記タグの属性をイベント名に設定するステップをさらに含むことを特徴とする請求項6に記載の方法。   The method of claim 6, further comprising setting an attribute of the tag to an event name if the object has a defined event. プログラミングコードの1つをページおよびリソースに追加する定義タグを定義するステップをさらに含むことを特徴とする請求項6に記載の方法。   The method of claim 6, further comprising defining a definition tag that adds one of the programming codes to the page and resource. 前記プログラミングコードの1つを前記ページおよび前記リソースに追加する定義タグを定義するステップは、def:Code要素を設定して前記プログラミングコードを前記ページに追加することを含むことを特徴とする請求項8に記載の方法。   The step of defining a definition tag for adding one of the programming codes to the page and the resource comprises setting a def: Code element to add the programming code to the page. 9. The method according to 8. クラスに関連付けられていない属性を追加する定義タグを定義するステップをさらに含むことを特徴とする請求項6に記載の方法。   The method of claim 6, further comprising defining a definition tag that adds an attribute that is not associated with a class. クラスに関連付けられていない属性を追加する定義タグを定義するステップは、def:Language属性をコードのコンパイルに使用する言語を指定するように設定することを含むことを特徴とする請求項10に記載の方法。   11. The step of defining a definition tag that adds an attribute not associated with a class includes setting a def: Language attribute to specify a language to be used for code compilation. the method of. ピリオドで区切られた第1のセクションおよび第2のセクションとして属性を表し、前記第1のセクションは前記プロパティおよびイベントの一方が定義される前記クラスに対応するクラス名に設定され、前記第2のセクションは前記プロパティおよび前記イベントの一方の名前に設定されるステップをさらに含むことを特徴とする請求項6に記載の方法。   Expressing attributes as a first section and a second section separated by a period, the first section is set to a class name corresponding to the class in which one of the property and event is defined, and the second section The method of claim 6, further comprising the step of setting the section to the name of one of the property and the event.
JP2009193622A 2003-05-16 2009-08-24 Method and program for creating objects Expired - Fee Related JP4988797B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009193622A JP4988797B2 (en) 2003-05-16 2009-08-24 Method and program for creating objects

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
PCT/US2003/015692 WO2004107195A1 (en) 2003-05-16 2003-05-16 Declarative mechanism for defining a hierarchy of objects
JP2009193622A JP4988797B2 (en) 2003-05-16 2009-08-24 Method and program for creating objects

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2004567659A Division JP2006526180A (en) 2003-05-16 2003-05-16 A declarative mechanism for defining a hierarchy of objects

Publications (2)

Publication Number Publication Date
JP2009283010A true JP2009283010A (en) 2009-12-03
JP4988797B2 JP4988797B2 (en) 2012-08-01

Family

ID=56291125

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009193622A Expired - Fee Related JP4988797B2 (en) 2003-05-16 2009-08-24 Method and program for creating objects

Country Status (1)

Country Link
JP (1) JP4988797B2 (en)

Also Published As

Publication number Publication date
JP4988797B2 (en) 2012-08-01

Similar Documents

Publication Publication Date Title
US7464329B2 (en) Declarative mechanism for defining a hierarchy of objects
US7577938B2 (en) Data association
US7178101B2 (en) Content template system
US20050188350A1 (en) Data binding
US20040046789A1 (en) Extensible user interface (XUI) framework and development environment
US8095565B2 (en) Metadata driven user interface
US7299411B2 (en) Providing a presentation engine adapted for use by a constrained resource client device
US10008009B1 (en) Method for generating dynamic vector graphics
US8413070B1 (en) Declarative resizeable list in electronic form
US10061575B2 (en) Managed execution environment for software application interfacing
US20050091672A1 (en) Facilitating presentation functionality through a programming interface media namespace
US20100011284A1 (en) Dynamic web page behavior
WO2002023336A1 (en) Xml-based graphical user interface application development toolkit
Phelps et al. The multivalent browser: a platform for new ideas
US20040133595A1 (en) Generation of persistent document object models
US8458586B2 (en) X/HTML support for silverlight applications
US20100269032A1 (en) Advanced text completion, such as for markup languages
KR101292982B1 (en) Declarative mechanism for defining a hierarchy of objects
de Moura et al. Interface Development for Hypermedia Applications in the Semantic Web.
US20050268233A1 (en) System and method for mixed language editing
US20030222904A1 (en) Method and system for displaying information on a user interface
Nebeling et al. XCML: providing context-aware language extensions for the specification of multi-device web applications
JP4988797B2 (en) Method and program for creating objects
Dengler et al. Scalable vector graphics (SVG) 1.1
Sunderaraman Practical Ext JS 4

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090824

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100115

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100309

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100525

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100825

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100917

RD13 Notification of appointment of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7433

Effective date: 20110118

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20110118

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120426

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150511

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees