(57)【要約】【課題】２つまたはそれ以上のスキーマに関連した要素を有する拡張可能なマークアップ言語（ＸＭＬ）ドキュメントの検証を可能にするためのシステムおよび方法を提供する。【解決手段】２つまたはそれ以上のスキーマで、各スキーマの要素を、任意に、他のスキーマから要素内にネストしても良く、要素の各セットは、それ自身のスキーマ内で有効である。ワードプロセッサが第１スキーマの要素を検証するとき、第２スキーマの要素は、第１スキーマの要素に対してトランスペアレントとなる。第２スキーマの要素を、検証するときの、第１スキーマの要素は、第２スキーマに対応する要素を検証するためにトランスペアレントとなる。【選択図】　図６
2004046848.tif 000002
【特許請求の範囲】
【請求項１】
ネイティブＸＭＬ内に非ネイティブＸＭＬを含む、拡
張可能なマークアップアップ言語（ＸＭＬ）ドキュメントの検証を支援するための方法であって、
前記ＸＭＬドキュメント内の要素が、前記非ネイティブＸＭＬおよび前記ネイティブＸＭＬのうちの１つに関連付けられているかどうか決定するステップと、
ノードを含むパラレルツリーを生成するステップであって、各ノードは、前記非ネイティブＸＭＬに関連したマークアップ言語ファイルの要素に対応するステップと、
任意のマークアップ言語に関連した要素を無視する一方、前記ＸＭＬドキュメント内のネイティブＸＭＬに関連した要素を検証するステップと、
前記パラレルツリーを前記ＸＭＬドキュメントとは別個に検証して、前記非ネイティブＸＭＬを検証するときに、前記ネイティブＸＭＬに関連した要素がトランスペアレントであるようにするステップと、
を備えたことを特徴とする方法。
【請求項２】
各ノードを前記マークアップ言語ファイル内の対応する要素にマッピングして、前記任意のマークアップ言語に関連した各要素の位置が格納されるようにするステップをさらに備えたことを特徴とする請求項１記載の方法。
【請求項３】
前記ネイティブＸＭＬに関連した、検証された要素、および前記非ネイティブＸＭＬに関連した、検証された要素に対応するマークアップ言語ドキュメントを生成するステップをさらに備えたことを特徴とする請求項１記載の方法。
【請求項４】
前記ネイティブＸＭＬに関連した要素を検証するステップを、ワードプロセッサによって内部で実行することを特徴とする請求項１記載の方法。
【請求項５】
前記ワードプロセッサは、前記ネイティブＸＭＬに関連した要素の有効性を判定し、その結果、前記ワードプロセッサが各要素を評価するとき、前記ＸＭＬドキュメントが構築されることを特徴とする請求項４記載の方法。
【請求項６】
前記ＸＭＬドキュメントとは別個に前記パラレルツリーを検証するステップは、前記非ネイティブＸＭＬに関連付けられているＸＭＬドキュメントの要素に対応する非ネイティブＸＭＬスキーマに従って、マークアップ言語検証エンジンで前記パラレルツリーを調べることを含むことを特徴とする請求項１記載の方法。
【請求項７】
検証するときに、前記非ネイティブＸＭＬに関連した要素であって別々のファイルの多数の異なるスキーマとも関連付けられた要素を有効に扱うステップをさらに備えたことを特徴とする請求項１記載の方法。
【請求項８】
コンピュータ実行可能なコンポーネントを有するコンピュータ可読媒体であって、
ワードプロセッサのネイティブＸＭＬに関連した要素内にネストされ、非ネイティブＸＭＬに関連した要素を含む、拡張可能なマークアップ言語（ＸＭＬ）ドキュメントを作成するための第１コンポーネントと、
記憶ノードのための第２コンポーネントであって、各ノードは、前記非ネイティブＸＭＬに関連した各要素に関連付けられる第２コンポーネントと、
前記非ネイティブＸＭＬに関連した要素がトランスペアレントである一方、前記第１コンポーネント内のネイティブＸＭＬに関連した要素を検証するための第３コンポーネントと、
前記第１コンポーネントとは別個に前記第２コンポーネントを検証するための第４コンポーネントであって、前記非ネイティブＸＭＬに関連した要素を検証する一方、前記ネイティブＸＭＬに関連した要素はトランスペアレントである第４コンポーネントと、
を備えたことを特徴とするコンピュータ可読媒体。
【請求項９】
前記非ネイティブＸＭＬの要素に関連付けられたスキーマを提供するための第５コンポーネントをさらに備え、前記非ネイティブＸＭＬの要素を前記第５コンポーネントで検証することを特徴とする請求項８記載のコンピュータ可読媒体。
【請求項１０】
前記第２コンポーネントは、各ノードを前記第１コンポーネント内の対応する非ネイティブＸＭＬの要素へマッピングするように構成されたことを特徴とする請求項８記載のコンピュータ可読媒体。
【請求項１１】
前記第１コンポーネントは、前記対応するノードを前記第２コンポーネント内に作成するとき、プレースホルダを、各非ネイティブＸＭＬに関連付けるように構成されたことを特徴とする請求項８記載のコンピュータ可読媒体。
【請求項１２】
前記第１コンポーネントは、前記非ネイティブＸＭＬに関連した要素内にネストされ、前記ネイティブＸＭＬに関連した要素をさらに含むことを特徴とする請求項８記載のコンピュータ可読媒体。
【請求項１３】
データ構造で符号化されたコンピュータ可読媒体であって、
ワードプロセッサに関連したネイティブ拡張可能なマークアップ言語（ＸＭＬ）に関連付けられた第１要素と、
非ネイティブＸＭＬに関連付けられた第２要素とを備え、前記第２要素を、前記第１要素内にネストし、前記第２要素を検証するとき、前記第１要素はトランスペアレントであり、および前記第１要素を検証するとき、前記第２要素はトランスペアレントであることを特徴とするコンピュータ可読媒体。
【請求項１４】
前記ネイティブＸＭＬに関連付けられた第３要素を備え、前記第３要素を前記第２要素内にネストすることを特徴とする請求項１３記載のコンピュータ可読媒体。
【請求項１５】
前記第１要素を、前記第２要素とは別個に検証することを特徴とする請求項１３記載のコンピュータ可読媒体。
【請求項１６】
前記第１要素を、前記ネイティブＸＭＬに関連した第１スキーマで検証し、および前記第２要素を、前記非ネイティブＸＭＬに関連した第２スキーマで検証することを特徴とする請求項１３記載のコンピュータ可読媒体。
【請求項１７】
前記第１要素を、ワードプロセッサによって検証することを特徴とする請求項１３記載のコンピュータ可読媒体。
【請求項１８】
前記第２要素を、非ネイティブＸＭＬ検証エンジンによって検証することを特徴とする請求項１３記載のコンピュータ可読媒体。
【請求項１９】
前記第１および第２要素は、有効なＸＭＬドキュメントを形成することを特徴とする請求項１３記載のコンピュータ可読媒体。
【請求項２０】
ワードプロセッサのネイティブＸＭＬ内に非ネイティブＸＭＬを含む、拡張可能なマークアップ言語（ＸＭＬ）の検証を支援するためのコンピュータ実行可能な命令を有するコンピュータ可読可能な媒体であって、前記命令は、
前記ＸＭＬドキュメント内の要素は、第１名前空間および第２名前空間のうちの１つに関連付けられているかを決定する命令であって、前記第１名前空間は、前記ネイティブＸＭＬに関連付けられ、および前記第２名前空間は、前記非ネイティブＸＭＬに関連付けられた命令と、
ノードを含むパラレルツリーを生成する命令であって、各ノードは、前記第２名前空間に関連したＸＭＬドキュメントの要素に対応する命令と、
各ノードをマークアップ言語ファイル内の対応する要素へマッピングし、その結果、前記第２名前空間に関連した各要素の位置を格納する命令と、
前記ＸＭＬドキュメントの各要素を検証し、前記第２名前空間に関連した要素を検証しているときは、前記第１名前空間に関連した要素がトランスペアレントであり、および前記第１名前空間に関連した要素を検証しているときは、前記第２名前空間に関連した要素がトランスペアレントである命令と、
を有することを特徴とするコンピュータ可読媒体。
【請求項２１】
前記第１名前空間に関連した前記要素を検証するステップを、ワードプロセッサによって内部で実行することを特徴とする請求項２０記載の方法。
【請求項２２】
前記ワードプロセッサが各要素を評価するとき、前記ワードプロセッサは、前記第１名前空間に関連した要素の有効性を判定して、前記ＸＭＬドキュメントを構築することを特徴とする請求項２１記載の方法。
【請求項２３】
前記ＸＭＬファイルとは別個に前記パラレルツリーを検証するステップは、前記第２名前空間に関連付けられたＸＭＬファイルの要素に対応する非ネイティブＸＭＬスキーマに従って、前記パラレルツリーをＸＭＬ検証エンジンで検査することを含むことを特徴とする請求項２０記載の方法。
【発明の詳細な説明】
【背景技術】
【０００１】
マークアップ言語は、近年広い普及を達成してきた。マークアップ言語の１タイプである拡張可能なマークアップ言語（ＸＭＬ）は、種々の種類のデータを識別し、交換し、および処理するための世界的な言語である。例えば、ＸＭＬを使用し、種々のアプリケーションプログラムによって利用可能なドキュメントを作成する。ＸＭＬファイルの要素は、関連した名前空間とスキーマとを有する。
【０００２】
ＸＭＬにおいては、名前空間を一般に使用して、ユニークな、各ＸＭＬドキュメントを識別する。各ＸＭＬドキュメントは名前空間を使用して、そのドキュメントと関連したＸＭＬのタイプを簡単に識別する処理を行うことができる。ユニークな名前空間もまた、マークアップ要素、すなわち、異なるソースから生じ、およびたまたま同じ名前を有するマークアップ要素を区別することを支援する。
【０００３】
ＸＭＬスキーマは、ＸＭＬ環境で、データを記述し検証するための方法を提供する。スキーマは、どのような要素および属性を使用してＸＭＬドキュメントでコンテントを記述するか、どこで各要素を許可するか、およびどの要素が他の要素内に出現可能か、を表している。スキーマの使用により、ファイルを同じ方法で構築することが保証される。スキーマを、ユーザによって作成するかもしれないし、および一般的に、ＸＭＬのような、関連したマークアップ言語によって支援するかもしれない。スキーマを支援するＸＭＬエディタを使用することによって、ユーザは、ＸＭＬファイルを処理することができ、ユーザが作成したスキーマに添付するＸＭＬドキュメントを作成することができる。
【考案の開示】
【発明が解決しようとする課題】
【０００４】
ＸＭＬドキュメントを、１つまたは２つ以上のスキーマへ添付すべく作成するかもしれない。しかしながら、１つ以上のスキーマで、ＸＭＬドキュメント内の要素を検証するための従来のメカニズムは、ある状況では受け入れることができない。
【０００５】
第１スキーマに関連した要素を、第２スキーマの要素内にネストする場合、双方のスキーマを、互いを考慮する方法で構築しなければ、ネストされた要素のあらゆる子を、第１スキーマで検証することができない。言い換えれば、既存の検証メカニズムは、要素およびその子をスキーマで検証するが、その孫は直接検証しない。しばしば、親は、その子の規則を設定できる唯一のものとなることがある。子の要素が異なったスキーマ内にある場合、そのとき、要望が、親のスキーマ内に孫を挿入することであるならば、子の要素のスキーマはその親のスキーマを参照しなければならない。子のスキーマがトランスペアレントでないものと見なされ、無視されることを始めに示し、および親が、その孫が何であるかを定義可能にする方法は無かった。現在まで、マークアップ言語のツールの開発者にとって、この限定が問題であった。
【課題を解決するための手段】
【０００６】
本発明の目的は、２つまたはそれ以上のスキーマに関連した要素を有する拡張可能なマーク付け言語（ＸＭＬ）ドキュメントの検証を可能にすることである。そのスキーマでは、要素内で各スキーマの要素を、任意に、他のスキーマからネストしても良い。要素の各集合（ｓｅｔ）は、それ自身のスキーマ内で有効（ｖａｌｉｄ）のままである。ワードプロセッサは、最初に関連した、すなわちネイティブＸＭＬに対応するネイティブスキーマを有する。対応するネイティブＸＭＬを作成するドキュメントは、任意に、すなわちネイティブＸＭＬの要素内にネストされた非ネイティブＸＭＬの要素および非ネイティブＸＭＬの要素内にネストされたネイティブＸＭＬの要素を含んでも良い。ミックスのＸＭＬファイルのネイティブＸＭＬの要素を検証するとき、非ネイティブＸＭＬの要素を、ワードプロセッサによって無視する。ミックスのＸＭＬファイル内の非ネイティブＸＭＬの要素から作成されるパラレルＸＭＬツリーを利用することにより、およびまるでトランスペアレントであるかのようにネイティブＸＭＬの要素を扱うことによって、非ネイティブＸＭＬの要素を別個に検証する。
【０００７】
本発明は、自身が関連した名前空間を有する非ネイティブＸＭＬの要素を、他の関連した名前空間を有するネイティブＸＭＬの要素内に埋め込みを可能とする。以前は、ユーザは、表示または他の機能に対して、ＸＭＬファイルを他のフォーマットへ変換した。（双方の関連したスキーマが、明白に、それら自身内に他の名前空間の各々を許可しない場合、）検証されるとき、以前のＸＭＬエディタは、第２名前空間の要素内に埋め込まれた第１名前空間の要素を認めなかった（すなわち、検証しなかった）。本発明は、ネイティブＸＭＬを提供し、そのネイティブＸＭＬは、あらゆるＸＭＬスキーマが、明白に、埋め込まれた要素を許可するかどうか考慮することなしに、他の非ネイティブＸＭＬの要素を、同じＸＭＬファイル内のネイティブＸＭＬの要素内に埋め込み可能とする。ＸＭＬファイルからネイティブＸＭＬの要素を除去することは、結果的に、非ネイティブＸＭＬのみを有する非ネイティブＸＭＬスキーマに有効なドキュメントになる。同様に、ＸＭＬファイルから非ネイティブＸＭＬの要素を除去することは、結果的に、ネイティブＸＭＬのみを有するネイティブＸＭＬスキーマに有効なドキュメントになる。従って、ある名前空間のＸＭＬスキーマは、他の名前空間のＸＭＬスキーマに対して適切にトランスペアレントであり、各スキーマに関連した要素を、個々におよび別々に検証する。
【０００８】
トランスペアレンシーのために、非ネイティブＸＭＬの要素は別の位置に格納される。この位置は、ドキュメントがミックスのＸＭＬファイルから作成された場合のようにパラレルＸＭＬツリーにより参照される。ツリーの各ノードは、ミックスのＸＭＬファイル内のＸＭＬ名前空間の要素に対応する。ノードは、ミックスのＸＭＬファイル内のそれらの対応する要素の位置へマッピングされる。従って、ＸＭＬファイルを格納するとき、それは、非ネイティブＸＭＬとネイティブＸＭＬの要素との双方を保持する。ＸＭＬツリーの利点は、非ネイティブＸＭＬスキーマで、検証目的のためにネイティブＸＭＬとは別に非ネイティブＸＭＬを扱うことが可能となり、その間、ネイティブＸＭＬ内に非ネイティブＸＭＬの位置を保持する。ネイティブＸＭＬを非ネイティブＸＭＬに対してトランスペアレントのように扱うことにより、ＸＭＬファイルをなおいっそう使用し、単一のファイルとして保存することが可能となる。
【発明を実施するための最良の形態】
【０００９】
本文脈で別の意味を明確に示さない限り、明細書と特許請求の範囲を通して、以下の用語は、明確にここで関連付けた意味を持つ。
【００１０】
用語“マークアップ言語”または“ＭＬ”は、どのようにしてドキュメントの部分をアプリケーションによって解釈すべき（ｉｎｔｅｒｐｒｅｔｅ）かを定義する、ドキュメント内の特別なコードについての言語を指す。ワードプロセッサファイルにおいては、マークアップ要素を、特定のフォーマットに関連させても良く、そのフォーマットは、どのようにしてその要素のコンテントを表示し、またはレイアウトするかを定義する。他のドキュメントでは、表示を考慮しないで、マークアップを記述データに記載することを指向しても良い。
【００１１】
用語“ネイティブマークアップ言語”または“ネイティブＸＭＬ”は、ワードプロセッサアプリケーションおよびワードプロセッサアプリケーションに関連したスキーマに関連付けられるマークアップ言語の要素を指す。
【００１２】
用語“非ネイティブマークアップ言語”または“非ネイティブＸＭＬ”は、ユーザまたは他のアプリケーションが作成し、ネイティブＸＭＬスキーマとは異なるスキーマに添付する（ａｄｈｅｒｅ）マークアップ言語の要素を指す。
【００１３】
用語“要素”は、ＸＭＬドキュメントの基本ユニットを指す。その要素は、属性、他の要素、コンテント、およびＸＭＬドキュメントのための他のビルディングブロックを含んでも良い。
【００１４】
用語“タグ”は、ＸＭＬドキュメント内に要素を記述し、ドキュメントに挿入されるコマンドを指す。各要素は、２つのタグ、つまりスタートタグおよびエンドタグ、以上を有することはできない。（コンテントを持たない）空の要素を有することは可能であり、その場合、１つのタグが許される。
【００１５】
タグ間のコンテントを、その要素の“子”（または子孫）と見なす。従って、要素のコンテント内に挿入された他の要素を、“子の要素”または“子のノード”または要素と呼ぶ。要素のコンテント内に直接挿入されたテキストを、要素の“子のテキストノード”と見なす。子の要素と要素内のテキストとは、共に、その要素の“コンテント”を構成する。
【００１６】
用語“属性”は、特定の値に対する、および要素に関連した付加的なプロパティ・セットを指す。要素は、それらに関連した任意で多数の属性の設定を有しても良く、無い状態も含む。属性を使用して、要素に付加的な情報を、コンテントに含まれていない要素と関連付ける。
【００１７】
例示的な動作環境
図１に関して、本発明を実施するための例示のシステムは、コンピューティングデバイス１００のようなコンピューティングデバイスを含む。非常に基本的な配置においては、コンピューティングデバイス１００は、一般的に、少なくとも１つの処理装置１０２とシステムメモリ１０４とを含む。正確な配置およびコンピューティングデバイスのタイプに基づくと、システムメモリ１０４は、（ＲＡＭのような）揮発性、（ＲＯＭ、フラッシュメモリ、等のような）不揮発性、またはそれら２つの組み合わせとすることができる。システムメモリ１０４は、一般的に、オペレーティングシステム１０５、１つまたは２つ以上のアプリケーション１０６を含み、およびプログラムデータ１０７を含んでも良い。ある実施形態においては、アプリケーション１０６は、ワードプロセッサアプリケーション１２０を含んでも良く、そのワードプロセッサアプリケーション１２０は、さらにＸＭＬエディタ１２２を含む。この基本的な配置を、破線１０８内のコンポーネントによって図１に図示する。
【００１８】
コンピューティングデバイス１００は、付加的な特徴または機能性を有することができる。例えば、コンピューティングデバイス１００も、また、付加的な（着脱可能なおよび／または非着脱可能な）データストレージデバイスを含んでも良く、それは、例えば、磁気ディスク、光ディスクまたはテープといったものである。このような付加的なストレージを、着脱可能なストレージ１０９と非着脱可能なストレージ１１０とによって図１に図示する。コンピュータストレージメディアは、揮発性および不揮発性、着脱可能および非着脱可能なメディアを含んでも良く、それらメディアは、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータのような、情報の記憶のためのあらゆる方法または技術で実現される。システムメモリ１０４、着脱可能なストレージ１０９および非着脱可能なストレージ１１０は、全て、コンピュータストレージメディアの例である。コンピュータストレージメディアは、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリまたは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）または他の光ディスク、磁気カセット、磁気テープ、磁気ディスクストレージまたは他の磁気ストレージデバイス、または所望の情報を格納するために使用できおよびコンピューティングデバイス１００によってアクセスできるあらゆる他のメディアを含むが、それらに限定されない。あらゆるこのようなコンピュータストレージメディアは、デバイス１００の一部であっても良い。コンピューティングデバイス１００は、また、キーボード、マウス、ペン、ボイス入力デバイス、タッチ入力デバイス、等のような、入力デバイス１１２を含んでも良い。ディスプレイ、スピーカ、プリンタ、等のような出力デバイス１１４も、また、含んでも良い。これらデバイスは、当技術分野において良く知られており、およびここで詳細に説明する必要は無いであろう。
【００１９】
コンピューティングデバイス１００は、また、通信コネクション１１６を含み、その通信コネクション１１６により、そのデバイスは例えばネットワークを介して他のコンピューティングデバイス１１８と通信することが可能になる。通信コネクション１１６は、通信メディアの一例である。通信メディアも、また、一般的に、コンピュータ可読命令、データ構造、プログラムモジュール、または搬送波または他のトランスポートメカニズムのような変調されたデータ信号中の他のデータにより実現しても良く、およびあらゆる情報配信メディアを含んでも良い。用語“変調されたデータ信号”は、その特徴的なセット、すなわち信号内の情報を符号化するような方法で変えられたセットのうちの１つまたは２つ以上を有する信号を意味している。例えば、それは限定ではないが、通信メディアは、有線ネットワークまたは直接有線コネクションのような有線メディア、および音波、ＲＦ、赤外および他の無線メディアのような無線メディアを含む。ここで使用される用語であるコンピュータ可読メディアは、ストレージメディアおよび通信メディアの双方を含む。
【００２０】
ワードプロセッサファイル構造
図２は、本発明を実施するための例示の環境を示すブロック図である。図２に示された例示の環境は、ワードプロセッサ環境２００を含み、そのワードプロセッサ環境２００は、ワードプロセッサ１２０、ミックスのＸＭＬファイル２１０、非ネイティブＸＭＬスキーマ２１５、パラレルＸＭＬツリー２２０、およびＸＭＬ検証エンジン２２５を含む。ミックスのＸＭＬファイル２１０は、ネイティブＸＭＬ２１１および非ネイティブＸＭＬ２１２の双方を含む。
【００２１】
１つの実施形態において、ワードプロセッサ１２０は、それ自身の名前空間、およびワードプロセッサ１２０に関連したドキュメントを使用するために規定されたスキーマのセットを含む。ワードプロセッサ１２０のためにスキーマによって規定されたタグおよび属性のセットは、ドキュメントのフォーマットを適切な範囲に規定しても良く、それは、それ自身のマークアップ言語であるネイティブＸＭＬとして参照される。ネイティブＸＭＬは、ワードプロセッサ１２０によって支援され、それ自身の規則を作成している間、他のマークアップ言語の規則へ添付しても良い。ネイティブＸＭＬは、マークアップ言語を供給し、そのマークアップ言語は、表示情報に対応するスキーマを作成する時間を費やす必要無しに、ユーザが求めることができる豊富な表示情報を含む。
【００２２】
ネイティブＸＭＬ２１１と非ネイティブＸＭＬ２１２とを、ミックスのＸＭＬファイル２１０内に混在させる。本発明によれば、非ネイティブＸＭＬ２１２の要素を、ネイティブＸＭＬ２１１の要素内にネストしても良く、およびネイティブＸＭＬ２１１の要素を、非ネイティブＸＭＬの要素内にネストしても良い。従って、ワードプロセッサ１２０が、内部で、ミックスのＸＭＬファイル２１０のネイティブＸＭＬ２１１を検証するとき、内部検証プロセスを、非ネイティブＸＭＬ２１２の要素と突き合わせる。好例なミックスのＸＭＬファイル２１０を、以下の図２の説明でさらに説明する。
【００２３】
非ネイティブＸＭＬスキーマ２１５を、非ネイティブＸＭＬ２１２の要素に関連付ける。検証するとき、非ネイティブＸＭＬ２１２の要素を、それらが非ネイティブＸＭＬスキーマ２１５と一致しているかどうかについて調べる。上述したように、スキーマは、どのようなタグおよび属性を使用しＸＭＬドキュメントでコンテントを記述するか、どこで各タグを許可するか、およびどのタグが他のタグ内に出現できるかを表し、ドキュメンテーションを同じ方法で構成することを保証している。従って、非ネイティブＸＭＬスキーマ２１５で示すように構成されるとき、非ネイティブＸＭＬ２１２は有効である。非ネイティブＸＭＬ２１２の検証を、以下の図５の説明でさらに説明する。
【００２４】
検証の前に、非ネイティブＸＭＬ２１２の要素を、パラレルＸＭＬツリー２２０内に格納する。パラレルＸＭＬツリー２２０を、以下の図４の説明でさらに説明する。パラレルＸＭＬツリー２２０をＸＭＬ検証エンジン２２５に示し、非ネイティブＸＭＬ２１２を検証する。ＸＭＬ検証エンジン２２５は、ＸＭＬドキュメントについて、類似した他の利用できる検証エンジンを動作させる。ＸＭＬ検証エンジン２２５は、非ネイティブＸＭＬスキーマ２１５の構成中にあるＸＭＬを評価する。１つの実施形態においては、多数のマークアップ言語の構成を検証するために、多数の検証エンジンをワードプロセッサ１２０と関連付けても良い。
【００２５】
図３は、本発明による例示のミックスのＸＭＬファイルを示す。ミックスのＸＭＬファイル２１０は、ネイティブＸＭＬの要素および非ネイティブＸＭＬの要素の双方を含む。マークアップ言語における要素は、たいてい、（“＜”、および“＞”によって示される）開始タグ、幾つかのコンテント、および（“＜／”、および“＞”によって示される）終了タグを含む。ネイティブＸＭＬに関連したタグを、ワードプロセッサに関連したもの（ワードプロセッサ名前空間）として参照する。対照的に、非ネイティブＸＭＬに関連したタグは、異なった名前空間、この例では“履歴（ｒｅｓｕｍｅ）”名前空間、と関連したものとして参照される。ミックスのＸＭＬドキュメント２１０の要素は、さらにコンテントを含んでも良い。例えば、“仕事（ｗｏｒｋ）”を、“目的（ｏｂｊｅｃｔｉｖｅ）”要素内に含ませ、および“１２３メイン（Ｍａｉｎ）”を、“通り（ｓｔｒｅｅｔ）”要素内に含ませる。“通り”要素を、“住所（ａｄｄｒｅｓｓ）”要素内に含ませる。これらの要素を、以前に、ユーザまたは他のアプリケーションによって提供されている履歴の名前空間に対応する非ネイティブＸＭＬスキーマ（例えば、履歴スキーマ）に従って規定する。
【００２６】
ミックスのＸＭＬファイル２１０を検査するとき、ファイルは、ネイティブＸＭＬの要素内にネストされた非ネイティブＸＭＬの要素を、および非ネイティブＸＭＬの要素内にネストされたネイティブＸＭＬの要素を含む。従って、ミックスのＸＭＬファイル２１０を、内部で、ワードプロセッサによって検証し、または検証エンジンへツリーとして転送するとき、ミックスのＸＭＬファイル２１０を検証するアプリケーションを、２つの異なるスキーマに対応するネストされた要素に直面させる。検証するアプリケーションに関連した規則に依存して、非ネイティブＸＭＬスキーマがネイティブＸＭＬについて許可していない場合、ミックスのＸＭＬファイル２１０を無効と見ても良い。例えば、ミックスのＸＭＬファイル２１０を、そっくりそのまま、他の検証エンジンへ転送した場合、ファイルは、無効と見られる可能性がある。ＸＭＬスキーマは、一般的に、１つの名前空間の要素が第２名前空間の要素内にネストされるのを許可しない。１つの実施形態においては、本発明は、ワードプロセッサに関連したネイティブＸＭＬスキーマ、すなわち、他の非ネイティブＸＭＬスキーマに関連した任意の要素をネスト可能とするネイティブＸＭＬスキーマを有することによって、この制限を克服する。有効なミックスのＸＭＬファイルを実現するための好例なプロセスを、図５および図６を使用してさらに説明する。
【００２７】
図４は、本発明による、例示のミックスのＸＭＬファイルと例示のパラレルＸＭＬツリーとの間の関連の例を示すブロック図である。
【００２８】
ミックスのＸＭＬファイル２１０を内部で検証する間、ワードプロセッサ１２０（図１および図２に図示）がドキュメントを構築するとき、パラレルＸＭＬツリー２２０が作成される。内部の検証により、ワードプロセッサ１２０が要素自身の規則のセットに従って、各要素を評価することができる。非ネイティブＸＭＬ要素が、ネイティブＸＭＬ要素内にネストされおよび突き合わされるとき、ノード（例えば、４０２）が、その要素に対応するパラレルＸＭＬツリー２２０内に作成される。パラレルＸＭＬツリー２２０内のノードの位置を、他の要素に関係するミックスのＸＭＬドキュメント２２０内の対応する要素の位置によって決定する。従って、ミックスのＸＭＬファイル２１０の各非ネイティブＸＭＬ要素は、パラレルＸＭＬツリー２２０のノード（例えば、４０２）によって表される。直接の親−子の関係は、パラレルＸＭＬツリー２２０内で表されたＸＭＬ要素の間に確立される。それらＸＭＬ要素の幾つかは、介在するネイティブＸＭＬマークアップのために、ミックスのＸＭＬファイル２１０内に、元々、存在しなくても良い。好例な非ネイティブＸＭＬツリー２２０のためのノードの作成に関連した好例なプロセスを、図６と結び付けて説明する。内部でミックスのＸＭＬファイル２１０を検証するとき、パラレルＸＭＬツリー２２０により、ワードプロセッサ１２０は、本質的に、非ネイティブＸＭＬ要素を無視することが可能となる。ついで、パラレルＸＭＬツリー２２０を、以下で図５と関連して説明するように、ミックスのＸＭＬファイルから別個に検証することができる。
【００２９】
ミックスのＸＭＬファイルの要素の処理
図５は、本発明によれば、ミックスのＸＭＬドキュメントを作成するための例示のプロセスのフローチャートである。プロセス５００は、ブロック５０１でスタートする。そこでは、ミックスのＸＭＬファイルは、図１で示されたワードプロセッサと類似したワードプロセッサアプリケーションのユーザによって前もって作成される。プロセスは、ブロック５０２へと続く。
【００３０】
ブロック５０２では、ミックスのＸＭＬファイルの要素を処理する。各要素の処理において、要素がネイティブＸＭＬの要素であるか、または非ネイティブＸＭＬの要素であるかが決定される。各要素をどのように処理するかは、要素のタイプに依存する。要素が非ネイティブＸＭＬ要素であるとき、その要素に対応するノードを、図６と結び付けてさらに説明するように、パラレルＸＭＬツリーへ挿入する。各要素を処理するための好例なプロセスを、図６と関連してさらに説明する。一度、要素を処理すると、プロセスは、判断ブロック５０３へ移行する。
【００３１】
判断ブロック５０３では、ミックスのＸＭＬファイルに含まれた各要素を処理したかどうかが判断される。各要素の処理が完了するのは、ミックスのＸＭＬファイルからドキュメントを構築するときに、ワードプロセッサが、ミックスのＸＭＬファイルの最終の終了タグに到達したときである。更なる要素を、未だに処理していない場合、プロセスはブロック５０２に戻り、更なる要素の処理を始める。全ての要素を処理した場合、プロセスはブロック５０４へと続く。
【００３２】
ブロック５０４では、パラレルＸＭＬツリーを検証する。パラレルＸＭＬツリーを、ワードプロセッサによって、ＸＭＬ検証エンジンへ転送する。そのＸＭＬ検証エンジンは、図２で示したＸＭＬ検証エンジンと同様である。ＸＭＬ検証エンジンが動作し、関連したスキーマに従ってパラレルＸＭＬツリーを調べる。その関連したスキーマは、図２で示した非ネイティブＸＭＬスキーマ２１５と同様である。その関連したスキーマは、どのようなタグおよび属性を使用して、結果として生じるＸＭＬドキュメント内でコンテントを記述するか、どこでタグを許可するか、およびどの要素が、他の要素内で出現することができるか、を示す。パラレルＸＭＬツリーが関連したスキーマに添付されるときに、パラレルＸＭＬツリーは有効となる。一度、パラレルＸＭＬツリーを検証すると、プロセスは、ブロック５０５へと続く。
【００３３】
ブロック５０５では、ミックスのＸＭＬファイルに対応するドキュメントを、ワードプロセッサによって生成する。１つの実施形態において、そのドキュメントを、ワードプロセッサによって提供されたネイティブＸＭＬスキーマに従ってフォーマットし、ミックスのＸＭＬファイルの非ネイティブＸＭＬの要素に関連したタグを表示する。プロセスはブロック５０６へと続き、そこでプロセスは終了する。
【００３４】
１つの実施形態においては、プロセス５００を、内部で、ネイティブＸＭＬの検証または非ネイティブＸＭＬの検証の結果を、変更しても良い。例えば、ネイティブＸＭＬまたは非ネイティブＸＭＬのどちらかが無効であるとの決定をしても良い。結果として、プロセス５００を中断しても良く、エラーメッセージをリターンしても良く、プログラムを起動してＸＭＬの訂正を促進しても良く、または更なるオペレーションを起動しても良い。
【００３５】
図６は、本発明により、ミックスのＸＭＬドキュメント内で要素を処理する好例なプロセスのフローチャートである。図５で示されたプロセス５００がブロック５０２を開始するとき、プロセス６００は、ブロック６０１から開始する。プロセスは、ブロック６０２へと続く。
【００３６】
ブロック６０２では、処理される要素がネイティブＸＭＬの要素に対応するか、または非ネイティブＸＭＬの要素に対応するか判断される。要素のタイプを、各要素の開始タグを調べることによって判断することができる。各要素の開始タグは、その要素に対応するスキーマに対するリファレンスを含む（図３を参照）。各スキーマは、ネイティブＸＭＬまたは非ネイティブＸＭＬのどちらかに関連付けられる。一度、要素のタイプを決定すると、プロセスは、決定ブロック６０３へ移行する。
【００３７】
判断ブロック６０３では、要素が非ネイティブＸＭＬ要素かどうか判断される。上述したように、各要素を、要素のタイプに従い異なって処理する。要素が非ネイティブＸＭＬ要素ではない場合、プロセスは、ブロック６０４へ続く。
【００３８】
ブロック６０４では、要素を、ワードプロセッサのネイティブフォーマット（例えば、ネイティブＸＭＬ）に従って処理する。１つの実施形態においては、ワードプロセッサは、それ自身の内部の検証を、それ自身のフォーマット内の要素のために提供する。言い換えると、プロセッサは、そのネイティブフォーマット（例えば、ネイティブＸＭＬ）に対応する要素を検証するために、ＸＭＬ検証エンジンを引用する必要はない。プロセスは続くので、そのネイティブフォーマットの要素を有効か有効でないか認識することによって、ワードプロセッサは、これら要素に対応するドキュメントを構築する。一度、ネイティブＸＭＬ要素を、ネイティブＸＭＬに従って処理すると、プロセスはブロック６０７へと続き、そこでプロセスは、図５のブロック５０３へと戻る。
【００３９】
しかしながら、要素が非ネイティブＸＭＬ要素であるとき、プロセスはブロック６０５へと続く。
【００４０】
ブロック６０５では、非ネイティブＸＭＬの要素の開始タグまたは属性に対応するノードを、パラレルＸＭＬツリー中で作成する。パラレルＸＭＬツリーを、ＸＭＬ検証エンジンにより有効性を調べる。ＸＭＬ検証エンジンは、パラレルＸＭＬツリーがその関連した非ネイティブＸＭＬスキーマに添付しているかどうか決定する。パラレルＸＭＬツリーを作成しおよび別々に検証することによって、本発明は、ミックスのＸＭＬドキュメントを検証するための機能を有する。そのドキュメントは、２つまたはそれ以上のスキーマと関連した要素を有しており、その２つまたはそれ以上のスキーマで、各スキーマの要素を、任意に、お互いの内部にネストすることができる。一度、ノードをパラレルツリー内に作成すると、プロセスは、ブロック６０６へと続く。
【００４１】
ブロック６０６では、非ネイティブＸＭＬ要素を、パラレルツリー内に作成されたノードへマッピングする。１つの実施形態においては、プレースホルダは、ミックスのＸＭＬファイル内で各要素に関連付けられる。プレースホルダは、各ノードにミックスのＸＭＬファイル内の各非ネイティブＸＭＬの要素の位置を示す。非ネイティブＸＭＬの要素をそれらに対応するノードへマッピングすることにより、ユーザによって作成および／または適用される要素を、結果的に生じるＸＭＬドキュメント内で正確に位置させることが可能となる。一度、非ネイティブＸＭＬ要素を、ノードへマッピングすると、プロセスはブロック５０６へと続き、そこで、プロセスは、図５のブロック５０３へと戻る。
【００４２】
１つの実施形態においては、多数の非ネイティブＸＭＬスキーマを、同じミックスのＸＭＬファイルのそれぞれのセクションに含ませることができる。パラレルＸＭＬツリーを、各非ネイティブＸＭＬスキーマに対応している各要素に対応するノードで作成する。このような場合、パラレルＸＭＬツリーを検証するとき、各スキーマに対応する非ネイティブＸＭＬ要素を、あたかも、同じミックスのＸＭＬファイルのそれぞれのセクションの各々が、効果的に別々のＸＭＬファイルであるかのように検証する。しかしながら、多数の非ネイティブＸＭＬスキーマがお互いを参照する場合、それは、結果的に混在している要素になっても良い。
【００４３】
上述の明細書、それぞれの例およびデータは、本発明の製造の完全な説明および構成の利用を提供している。本発明の多くの実施形態を、その精神および本発明の範囲から逸脱することなく実現することができるので、本発明は、特許請求の範囲に帰属する。
【図面の簡単な説明】
【００４４】
【図１】本発明の１つの例示の実施形態で使用することのできる例のコンピューティングデバイスを示す図である。
【図２】本発明を実行するための例示の環境を示すブロック図である。
【図３】本発明による、例示のミックスのＸＭＬファイルを示す図である。
【図４】本発明による、例示のミックスのＸＭＬファイルと例示のパラレルＸＭＬツリーとの間の関係を示す図である。
【図５】本発明により、ミックスのＸＭＬドキュメントを作成するための例示のプロセスを示すフローチャートである。
【図６】本発明により、ミックスのＸＭＬドキュメント内の要素を処理するための例示のプロセスを示すフローチャートである。
【符号の説明】
【００４５】
１０２　処理装置
１０４　システムメモリ
１０５　オペレーティングシステム
１０６　アプリケーション
１０７　プログラムデータ
１０９　着脱可能なストレージ
１１０　非着脱可能なストレージ
１１２　入力装置
１１４　出力装置
１１６　通信コネクション
１１８　他のコンピューティングデバイス
１２０　ワードプロセッサ
１２２　ＸＭＬエディタ
２１０　ミックスのＸＭＬファイル
２１１　ネイティブＸＭＬ
２１２　非ネイティブＸＭＬ
２１５　非ネイティブＸＭＬスキーマ
２２０　パラレルＸＭＬツリー
２２５　ＸＭＬ検証エンジン
【図１】
2004046848.tif 000003
【図２】
2004046848.tif 000004
【図３】
2004046848.tif 000005
【図４】
2004046848.tif 000006
【図５】
2004046848.tif 000007
【図６】
2004046848.tif 000008
【外国語明細書】
2004046848.tif 000009
2004046848.tif 000010
2004046848.tif 000011
2004046848.tif 000012
2004046848.tif 000013
2004046848.tif 000014
2004046848.tif 000015
2004046848.tif 000016
2004046848.tif 000017
2004046848.tif 000018
2004046848.tif 000019
2004046848.tif 000020
2004046848.tif 000021
2004046848.tif 000022
2004046848.tif 000023
2004046848.tif 000024
2004046848.tif 000025
2004046848.tif 000026
2004046848.tif 000027
2004046848.tif 000028
2004046848.tif 000029
2004046848.tif 000030
2004046848.tif 000031
2004046848.tif 000032