(57)【要約】【課題】リアルタイムで、拡張可能なマークアップ言語（ＸＭＬ）ドキュメントの検証およびスキーマのエラーの報告のためのシステムおよび方法を提供する。【解決手段】ＸＭＬドキュメントの非ネイティブＸＭＬの要素に対応するノードを含む、パラレルツリーを、保持する。変更がＸＭＬドキュメント内で起こると、それら変更に対応する非ネイティブＸＭＬの要素を、マークする。マークされた非ネイティブＸＭＬの要素に対応するノードを、非ネイティブＸＭＬマークアップに対応するＸＭＬスキーマで検証する。ついで、非ネイティブＸＭＬマークアップ内のエラーに対応する要素およびノードを、ＸＭＬドキュメントおよびパラレルツリー内の表示インジケータにより、ユーザへ報告する。【選択図】　図５
2004046849.tif 000002
【特許請求の範囲】
【請求項１】
拡張可能なマークアップ言語（ＸＭＬ）ドキュメント
のための、検証およびスキーマ違反の報告のための方法であって、前記ＸＭＬドキュメントは、ネイティブＸＭＬおよび非ネイティブＸＭＬを含む方法において、
変更を前記ＸＭＬドキュメント内の非ネイティブＸＭＬの要素へ組込むステップと、
前記ＸＭＬドキュメントの部分をマークして、前記変更が前記ＸＭＬドキュメントのその部分に関係して生じたことを示すステップと、
パラレルツリー内のノードをマークして、前記変更が生じたことを示すステップであって、前記ノードは、前記変更が生じたＸＭＬドキュメントの部分に対応するステップと、
対応する非ネイティブＸＭＬスキーマで前記パラレルツリーのノードを検証するステップと、
前記ノードの検証に応答して供給されたエラーデータから、前記非ネイティブＸＭＬの要素内のエラーが、存在するか否か決定するステップと、
前記エラーが生じた場合、前記ＸＭＬドキュメントおよび前記パラレルツリー内でエラー通知を表示するステップと
を備えたことを特徴とする方法。
【請求項２】
前記変更をＸＭＬの要素へ組込むステップは、
前記変更が生じた各非ネイティブＸＭＬの要素に関する親の要素を識別するステップと、
前記変更が生じた各非ネイティブＸＭＬの要素に関する最も近い兄弟の要素を識別するステップと
をさらに備えたことを特徴とする請求項１記載の方法。
【請求項３】
新しい非ネイティブＸＭＬの要素を前記ＸＭＬドキュメント内で生成する場合、前記パラレルツリー内に新しいノードを生成するステップをさらに備えたことを特徴とする請求項１記載の方法。
【請求項４】
前記新しいノードを生成するステップは、
新しい非ネイティブＸＭＬの要素に対応する識別子を作成するステップであって、前記新しい非ネイティブＸＭＬの要素の親の要素および兄弟の要素は、前記識別子から決定可能なステップと、
前記パラレルツリー内に親ではないノードを作成するステップと、
前記識別子と前記親ではないノードを関係付けるステップと、
前記親の要素に対応する親のノードを指示して、前記親ではないノードを採用するステップと
を備えたことを特徴とする請求項３記載の方法。
【請求項５】
前記パラレルツリーのノードを検証するステップは、
コンテンツを前記パラレルツリーへとコピーするステップであって、前記コンテンツを、前記変更が生じたＸＭＬドキュメントの部分に関連付けるステップと、
対応する非ネイティブＸＭＬスキーマで、前記コンテンツを含む前記ノードを検証するステップと、
前記パラレルツリーから前記コンテンツを削除し、その結果、前記パラレルツリーに関するストレージスペースを最小化するステップと
を備えたことを特徴とする請求項１記載の方法。
【請求項６】
前記対応する非ネイティブＸＭＬスキーマで前記コンテンツを含む前記ノードを検証するステップは、前記非ネイティブＸＭＬスキーマに従って、ＸＭＬ検証エンジンで前記パラレルツリーを調べることを含むことを特徴とする請求項５記載の方法。
【請求項７】
いつ、タイムアウトまたはアイドル状態が、前記パラレルツリーの検証より先に生じるかを決定するステップをさらに備えたことを特徴とする請求項１記載の方法。
【請求項８】
前記エラー通知を表示するステップは、
第１表示インジケータに従って、前記エラーが生じたＸＭＬドキュメントの部分を示すステップと、
第２表示インジケータに従って、前記エラーが生じたＸＭＬドキュメントの部分に対応するパラレルツリーのノードを示すステップと
を備えたことを特徴とする請求項１記載の方法。
【請求項９】
前記第１表示インジケータおよび前記第２表示インジケータのうちの少なくとも１つに対応するユーザ入力は、前記エラーについてインタラクティブな情報を提供するエラー表示を作成することを特徴とする請求項８記載の方法。
【請求項１０】
前記第１表示インジケータおよび前記第２表示インジケータのうちの少なくとも１つに対応するユーザ入力は、前記エラーについてテキストの情報を提供するツールチップを作成することを特徴とする請求項８記載の方法。
【請求項１１】
コンピュータ実行可能なコンポーネントを有するコンピュータ可読媒体であって、
第１ＸＭＬスキーマに関連した第１タイプの要素および第２ＸＭＬスキーマに関連した第２タイプの要素を含む、拡張可能なマークアップ言語（ＸＭＬ）ドキュメントを生成するための第１コンポーネントであって、前記第１コンポーネントを構成し、前記第１タイプの要素のうちの少なくとも１つが、前記第１ＸＭＬスキーマに違反することを報知する表示を提供するように構成された第１コンポーネントと、
ノードを格納するための第２コンポーネントであって、各ノードは前記第１コンポーネント内の対応する要素に関連付けられており、前記第１コンポーネントおよび前記第２コンポーネントは同期する第２コンポーネントと、
前記要素を検証するための第３コンポーネントであって、前記検証の違反に応答してエラーデータを第１コンポーネントへ戻すように構成された第３コンポーネントと
を備えたことを特徴とするコンピュータ可読媒体。
【請求項１２】
ユーザ入力が前記ＸＭＬドキュメントおよび前記第２コンポーネントのうちの少なくとも１つの中で表示されるインジケータとの対話するときに、生成するように構成されたエラーデータに対応する第４コンポーネントをさらに備えたことを特徴とする請求項１１記載のコンピュータ可読媒体。
【請求項１３】
前記第４コンポーネントは、前記エラーデータに対応する、エラーについての情報を表示するように構成されており、前記情報はエラータイプ、前記エラーを修正するための指示、および前記エラーの陳述を含むことを特徴とする請求項１２記載のコンピュータ可読媒体。
【請求項１４】
データ構造を符号化したコンピュータ可読媒体であって、
拡張可能なマークアップ言語（ＸＭＬ）の要素を備える第１データ構造と、
前記第１データ構造の要素に対応する要素のツリーを備える第２データ構造と、
前記第１データ構造内の要素に近接のおよび前記第２データ構造内の対応するノードに近接の表示インジケータであって、検証エラーを示す表示インジケータと
を備えたことを特徴とするコンピュータ可読媒体。
【請求項１５】
前記表示インジケータは、ユーザ入力と対話して、さらに、前記検証エラーに関する対話情報を提供するエラー表示を開始するように構成されていることを特徴とする請求項１４記載のコンピュータ可読媒体。
【請求項１６】
前記表示インジケータは、ユーザ入力と対話して、さらに、前記検証エラーに関するテキストの情報を提供するツールチップを開始するように構成されていることを特徴とする請求項１４記載のコンピュータ可読媒体。
【請求項１７】
拡張可能なマークアップ言語（ＸＭＬ）ドキュメントに対するスキーマ違反の検証および報告のためのコンピュータ実行可能な命令を有するコンピュータ可読媒体であって、前記ＸＭＬドキュメントは、ネイティブＸＭＬおよび非ネイティブＸＭＬを含むコンピュータ可読媒体において、
変更を前記ＸＭＬドキュメント内の非ネイティブＸＭＬの要素へ組込む命令と、
前記変更が、前記ＸＭＬドキュメント内の新しい非ネイティブＸＭＬの要素の作成に対応する場合、新しいノードをパラレルツリー内に作成する命令と、
前記変更による影響を受けるとき、前記ＸＭＬドキュメントの部分をマークする命令と、
前記パラレルツリー内のノードをマークし、前記変更が生じていることを示す命令であって、前記ノードは、前記変更によって影響を受けたＸＭＬドキュメントの部分に対応する命令と、
対応するスキーマで前記パラレルツリーのマークされたノードを検証する命令と、
前記ノードの検証に応答して供給されたエラーデータから、前記非ネイティブＸＭＬの要素内のエラーが、存在するか否か決定する命令と、
存在する場合、前記ＸＭＬドキュメントおよび前記パラレルツリー内で前記エラーの通知を表示する命令と
を備えたことを特徴とするコンピュータ可読媒体。
【請求項１８】
前記変更を前記非ネイティブＸＭＬの要素へ組込む命令は、
前記変更が生じている各非ネイティブＸＭＬの要素に関する親の要素を識別するステップと、
前記変更が起こっている各非ネイティブＸＭＬの要素に関して最も近接な兄弟を識別するステップと
をさらに備えたことを特徴とする請求項１７記載の方法。
【請求項１９】
新しいノードを作成する命令は、
新しい非ネイティブＸＭＬの要素に対応する識別子を作成するステップであって、前記非ネイティブＸＭＬの要素の親の要素および兄弟の要素は、前記識別子から決定可能なステップと、
前記パラレルツリー内に親ではないノードを作成するステップと、
前記識別子と前記親ではないノードとを関連付けるステップと、
前記親の要素に対応する親のノードを指示し、前記親ではないノードを採用するステップと
をさらに備えたことを特徴とする請求項１７記載の方法。
【請求項２０】
前記パラレルツリーのノードを検証する命令は、
コンテンツを前記パラレルツリーへコピーするステップであって、前記コンテンツは、前記ＸＭＬドキュメントの部分に対応するステップと、
対応する非ネイティブＸＭＬスキーマで前記コンテンツを含む前記ノードを検証するステップと、
前記パラレルツリーから前記コンテンツを削除し、その結果、前記パラレルツリーに関するストレージスペースを最小化するステップと
をさらに備えたことを特徴とする請求項１７記載の方法。
【請求項２１】
前記エラー通知を表示する命令は、
第１表示インジケータに従って、前記エラーが生じているＸＭＬドキュメントの部分を示すステップと、
第２表示インジケータに従って、前記エラーが生じているＸＭＬドキュメントの部分に対応するパラレルツリーのノードを示すステップと
をさらに備えたことを特徴とする請求項１７記載の方法。
【請求項２２】
前記第１表示インジケータおよび前記第２表示インジケータのうち少なくとも１つに対応するユーザ入力は、前記エラーに関するインタラクティブな情報を提供するエラー表示を作成することを特徴とする請求項２１記載の方法。
【請求項２３】
前記第１表示インジケータおよび前記第２表示インジケータのうちの少なくとも１つに対応するユーザ入力は、前記エラーに関するテキストの情報を提供するツールチップを作成することを特徴とする請求項２１記載の方法。
【発明の詳細な説明】
【背景技術】
【０００１】
マークアップ言語は、近年広い普及を達成してきた。マークアップ言語の１タイプである拡張可能なマークアップ言語（ＸＭＬ）は、種々の種類のデータを識別し、交換し、および処理するための世界的な言語である。例えば、ＸＭＬを使用し、種々のアプリケーションプログラムによって利用可能なドキュメントを作成する。ＸＭＬファイルの要素は、関連した名前空間とスキーマとを有する。
【０００２】
ＸＭＬにおいては、名前空間を一般に使用して、ユニークな、ＸＭＬドキュメントの各クラスを識別する。各ＸＭＬドキュメントは名前空間を使用して、そのドキュメントと関連したＸＭＬのタイプを簡単に識別する処理を行うことができる。ユニークな名前空間もまた、マークアップ要素、すなわち、異なるソースから生じ、およびたまたま同じ名前を有するマークアップ要素を区別することを支援する。
【０００３】
ＸＭＬスキーマは、ＸＭＬ環境で、データを記述し検証するための方法を提供する。スキーマは、どのような要素および属性を使用してＸＭＬドキュメントでコンテンツを記述するか、どこで各要素を許可するか、およびどの要素が他の要素内に出現可能か、を表す。スキーマの使用により、ファイルを一貫した方法で構築することが保証される。スキーマは、ユーザによって作成しても良いし、および一般的に、ＸＭＬのような、関連したマークアップ言語によって支援しても良い。スキーマを支援するＸＭＬエディタを使用することによって、ユーザは、ＸＭＬファイルを処理することができ、ユーザが作成したスキーマに添付するＸＭＬドキュメントを作成することができる。
【考案の開示】
【発明が解決しようとする課題】
【０００４】
一般的に、要素またはタグを、間違ったＸＭＬドキュメント内へ挿入すると、ＸＭＬエディタは、エラーに対処することなしに、ユーザがＸＭＬドキュメントの構築を続けることを許可しない。この場合、ＸＭＬエディタは、単に、スキーマに関して誤っているＸＭＬドキュメントの編集を認めず、その結果、エディタは、フリースタイルな編集を提供しない。エディタに対する他のオプションは、ユーザが全体のＸＭＬドキュメントを生成可能にすることであり、ついで、後に、ＸＭＬドキュメントを全部検証することである。全体のＸＭＬドキュメントを検証すると生じるエラーを、そのとき、発見し訂正する必要がある。
【０００５】
本発明の目的は、ユーザがドキュメントを編集するとき、拡張可能なマークアップ言語（ＸＭＬ）ドキュメントの検証、およびリアルタイムでスキーマ違反の報告を可能にすることである。
【課題を解決するための手段】
【０００６】
ワードプロセッサは、関連した拡張可能なマークアップ言語（ネイティブＸＭＬ）を有する。ユーザが、非ネイティブＸＭＬスキーマファイルをＸＭＬドキュメントに関連付けると、ワードプロセッサは、検証エンジンによって非ネイティブＸＭＬスキーマを使用して、ＸＭＬドキュメント内の非ネイティブＸＭＬの要素を検証する。ユーザが、非ネイティブＸＭＬの要素をスキーマからＸＭＬドキュメント内へ挿入するとき、パラレルツリーは、検証エンジンの対象としてワードプロセッサによって保持される。ツリーはノードを含み、そのノードは、ＸＭＬドキュメント内へ挿入された非ネイティブＸＭＬの要素に対応する。パラレルツリーは、ネイティブＸＭＬマークアップがＸＭＬドキュメント内の非ネイティブＸＭＬマークアップを妨害しないようにすることを支援する。非ネイティブＸＭＬマークアップは、同じＸＭＬドキュメント内のネイティブＸＭＬマークアップと共存しているが、パラレルツリーにより、非ネイティブＸＭＬマークアップをネイティブＸＭＬマークアップとは別におよび独立に認証することができる。
【０００７】
１つの実施形態においては、非ネイティブＸＭＬの要素を、ＸＭＬドキュメントに挿入する毎に、対応するノードを、パラレルツリー内の適切な位置に作成する。その位置は、非ネイティブＸＭＬの要素をどのように挿入するかに関するコンテキストに依存する。同様に、非ネイティブＸＭＬの要素を、ＸＭＬドキュメントから削除する毎に、対応するノードを、パラレルツリーから削除する。
【０００８】
非ネイティブＸＭＬの要素をトラックし続けることに加えて、パラレルツリーは、また、非ネイティブＸＭＬの要素のテキストのコンテンツをトラックし続ける。非ネイティブＸＭＬの要素のコンテンツは、パラレルツリーよりむしろＸＭＬドキュメント内に存在するが、パラレルツリーは、依然として、要素へのリンクを維持する。必要なときに、コンテンツを、パラレルツリーの検証の目的で、パラレルツリーによって取り出す。ついで、検証プロセスは、各ノードがそのテキストのコンテンツに課すコンテンツタイプの制限に加えて、パラレルツリーのノード間の構造的な関係を検証しても良い。
【０００９】
パラレルツリーは、リアルタイムでＸＭＬドキュメント内の変更を反映し、非ネイティブＸＭＬマークアップのリアルタイムの検証を可能にする。非ネイティブＸＭＬマークアップまたはＸＭＬドキュメントのテキストのコンテンツに対する変更の後に、アイドルモーメントが起こると、変更が起こったＸＭＬドキュメントの領域に対応するパラレルツリーのサブツリーを、検証エンジンによって検証する。非ネイティブＸＭＬまたはテキストのコンテンツへの変更に伴う１つまたは２つ以上のエラーがある場合、検証エンジンは、エラーをワードプロセッサに通知する。ついで、ワードプロセッサは、このようなエラーを処理するためのユーザインターフェイス命令に従って、ＸＭＬドキュメントおよびパラレルツリー双方内のエラーをハイライトする。
【発明を実施するための最良の形態】
【００１０】
本文脈で別の意味を明確に示さない限り、明細書と特許請求の範囲とを通して、以下の用語は、ここで明確に関連付けた意味を持つ。
【００１１】
用語“マークアップ言語”または“ＭＬ”は、どのようにしてドキュメントの部分をアプリケーションによってインタプリタすべきかを定義する、ドキュメント内の特別なコードのための言語を指す。ワードプロセッサファイルにおいては、マークアップ要素を、特定のフォーマット、すなわち、どのようにしてその要素のコンテンツを表示し、またはレイアウトするかを定義する特定のフォーマット、に関連させても良い。他のＸＭＬドキュメントのような、他のドキュメントでは、マークアップは、表示を行わない、記述データであっても良い。
【００１２】
用語“ネイティブ拡張可能なマークアップ言語”または“ネイティブＸＭＬ”は、ワードプロセッサアプリケーションとワードプロセッサアプリケーションに関連したスキーマとに関連付けられるマークアップ言語を指す。
【００１３】
用語“非ネイティブ拡張可能なマークアップ言語”または“非ネイティブＸＭＬ”は、ユーザまたは他のアプリケーションが作成し、ネイティブＸＭＬスキーマと異なるスキーマに添付する（ａｄｈｅｒｅ）マークアップ言語を指す。
【００１４】
用語“要素”は、ＸＭＬドキュメントの基本ユニットを指す。要素は、属性、他の要素、コンテンツ、およびＸＭＬドキュメントのための他のビルディングブロックを含んでも良い。
【００１５】
用語“タグ”は、ドキュメント内に挿入されるコマンドを指す。このドキュメントは、ＸＭＬドキュメント内の要素を記述する。各要素は、通常、２つ以上のタグ、すなわち開始タグおよび終了タグ、を持たない。（コンテンツが無い）空の要素を有することは可能であり、その場合、１つのタグが許可される。
【００１６】
タグの間のコンテンツを、要素の“子”（または子孫）と見なす。従って、要素のコンテンツに埋め込まれた他の要素を、“子の要素”または“子のノード”または要素と呼ぶ。要素のコンテンツに直接埋め込まれたテキストを、要素の“子のテキストノード”と見なす。子の要素と要素内のテキストとは、共に、その要素の“コンテンツ”を構成する。
【００１７】
用語“属性”は、特定な値に対する、および要素に関連した付加的なプロパティ・セットを指す。要素は、それらに関連した任意の多数の属性の設定を有しても良く、ない状態も含む。属性を使用して、付加的な情報を、要素のコンテンツに含まれていない要素と関連づける。
【００１８】
例示的な動作環境
図１に関して、本発明を実施するための１つの好例なシステムは、コンピューティングデバイス１００のようなコンピューティングデバイスを含む。基本構成は、破線１０８内のそれらのコンポーネントを含む。基本構成において、コンピューティングデバイス１００は、基本的に、少なくとも１つの処理装置１０２とシステムメモリ１０４とを含む。正確な構成およびコンピューティングデバイスのタイプに基づくと、システムメモリ１０４は、（ＲＡＭのような）揮発性、（ＲＯＭ、フラッシュメモリ、等のような）不揮発性またはそれら２つの組み合わせとすることができる。システムメモリ１０４は、一般的に、オペレーティングシステム１０５、１つまたは２つ以上のアプリケーション１０６を含み、プログラムデータ１０７を含んでも良い。１つの実施形態においては、アプリケーション１０６は、ＸＭＬエディタ１２２を有するワードプロセッサアプリケーション１２０を含む。この構成においては、ワードプロセッサアプリケーション１２０は、フリースタイルな編集環境でＸＭＬドキュメントを開始し編集することができる。ここでは、ワードプロセッサアプリケーション１２０のコンテキスト内に図示したけれども、本発明は、他のタイプのアプリケーションへの適用性を等しく有しており、それは、当業者には明らかなことである。
【００１９】
コンピューティングデバイス１００は、付加的な特徴または機能性を有することができる。例えば、コンピューティングデバイス１００も、また、付加的なデータストレージデバイス（着脱可能および／または着脱不可）を有しても良く、それは、例えば、磁気ディスク、光ディスク、またはテープのようなものである。このような付加的なストレージを、図１に、着脱可能なストレージ１０９および着脱不可なストレージ１１０によって図示する。コンピュータストレージメディアは、着脱可能および着脱不可なメディアを含んでも良い。それらメディアは、揮発性および不揮発性、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータのような、情報の記憶のためのあらゆる方法または技術によって実装される。システムメモリ１０４、着脱可能なストレージ１０９および着脱不可なストレージ１１０は、全て、コンピュータストレージメディアの例である。コンピュータストレージメディアは、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリまたは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）または他の光ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージまたは他の磁気ストレージデバイス、または所望の情報を格納するために使用され、およびコンピューティングデバイス１００によってアクセス可能な、あらゆる他のメディアを含むが、それらに限定されない。あらゆるこのようなコンピュータストレージは、デバイス１００の一部であっても良い。コンピューティングデバイス１００は、また、キーボード、マウス、ペン、ボイス入力デバイス、タッチ入力デバイス、等のような、入力デバイス１１２を有しても良い。ディスプレイ、スピーカ、プリンタ等のような出力デバイスも、また、含んでも良い。これらのデバイスは、当技術分野で良く知られており、ここで詳細に説明する必要は無いであろう。
【００２０】
コンピューティングデバイス１００は、また、デバイスが例えばネットワークを介して、他のコンピューティングデバイス１１８と通信可能になる通信コネクション１１６を含んでも良い。通信コネクション１１６は、通信メディアの一例である。通信メディアを、一般的に、コンピュータ可読命令、データ構造、プログラムモジュール、ならびに、搬送波または他のトランスポートメカニズムのような、変調されたデータ信号中の他のデータによって実現しても良く、およびあらゆる情報配信メディアを含んでも良い。用語“変調されたデータ信号”は、１つまたは２つ以上の特性のセット、すなわち信号中の情報を符号化するような方法で変えられたセットを有する信号を意味する。例えば、それは限定ではないが、通信メディアは、有線ネットワークあるいは直接有線コネクションのような、有線メディア、および音波、ＲＦ，赤外ならびに他の無線メディアのような、無線メディアを含む。ここで使用される用語コンピュータ可読メディアは、ストレージメディアと通信メディアとの双方を含む。
【００２１】
図２は、本発明を実施するための好例な環境を図示するブロック図である。図２に示された好例な環境２００は、ワードプロセッサ１２０、ＸＭＬドキュメント２１０、非ネイティブＸＭＬスキーマ２１５、ＸＭＬ検証エンジン２２５、およびデータ構造２３０を含む。データ構造２３０は、エラーデータ２３５、パラレルツリー２２０、シンクデータ２４０を含む。
【００２２】
１つの実施形態においては、ワードプロセッサ１２０は、それ自身の名前空間およびワードプロセッサ１２０に関連したＸＭＬドキュメントを使用するためのスキーマを有する。ワードプロセッサ１２０のためのスキーマによって規定されたタグおよび属性のセットは、それを、それ自身のマークアップ言語、すなわちワードプロセッサマークアップ言語（ネイティブＸＭＬ）、として参照するような、ＸＭＬドキュメントのフォーマットを規定する。ネイティブＸＭＬはワードプロセッサ１２０によって支援され、およびネイティブＸＭＬをそれ自身の規則をさらに作成する間に、他のマークアップ言語の規則と結び付けることもできる。ネイティブＸＭＬは、テキストのフォーマット（例えば、ボールド、イタリック、アンダーライン）、パラグラフのフォーマット（例えば、行間隔、行揃え、および同種のもの）、表のフォーマット（例えば、表の行および列）、および同種のもののような、通常のワードプロセシングに関連した豊富な表示情報を含む、マークアップ言語を提供する。ネイティブＸＭＬを、より現実的な構成をドキュメントへ加えるようなユーザ定義のスキーマと共に、使用しても良い。
【００２３】
本発明による、ネイティブＸＭＬおよび非ネイティブＸＭＬの要素は、ＸＭＬドキュメント２１０内で共存し別個に検証しても良い。非ネイティブＸＭＬの要素は、非ネイティブＸＭＬスキーマ２１５と関係付けられる。検証するとき、非ネイティブＸＭＬの要素が非ネイティブＸＭＬスキーマ２１５と一致しているかどうかに関して、非ネイティブＸＭＬの要素が調べられる。上述のように、スキーマは、どのようなタグおよび属性を使用してＸＭＬドキュメント内のコンテンツを記述するか、どこで各タグを許可するか、どのようなコンテンツのタイプが要素内に出現可能か、およびどの要素が他の要素内に出現可能かを示し、ドキュメントを、同じ方法で構成させることを保証している。従って、非ネイティブＸＭＬスキーマ２１５に示すように構成されたときに、非ネイティブＸＭＬの要素は有効（ｖａｌｉｄ）である。非ネイティブＸＭＬの要素の検証を、以下の図７の説明でさらに説明する。
【００２４】
ＸＭＬ検証エンジン２２５は、要素のツリーを保持してあるスキーマに対する要素のツリーを検証するように構成されたモジュールである。簡潔には、ＸＭＬ検証エンジン２２５に以下のオブジェクトを引き渡しても良い。そのオブジェクトは、ＸＭＬドキュメント２１０内の要素に対応するもののような要素のツリー、非ネイティブＸＭＬスキーマ２１５のようなスキーマへのポインタ、およびことによると要素のツリーのうちの１つまたは２つ以上の要素のコンテンツ、を規定している。この情報で、ＸＭＬ検証エンジンは、スキーマに対して要素のツリーを検証し、およびコーリングプロセスに対してあらゆる違反を報告する。
【００２５】
本発明の１つの実施形態によれば、ルーチンオペレーション中に、ワードプロセッサ１２０は、非ネイティブＸＭＬの要素の検証に関係する幾つかのデータ構造２３０を保持する。パラレルツリー２２０は、ＸＭＬドキュメント２１０内の各非ネイティブＸＭＬの要素に対応しているノードを含む要素のツリーである。１つの実施形態において、パラレルツリー２２０は、ＸＭＬドキュメント２１０の各要素およびコンテンツを認識（ａｗａｒｅ）しており、およびＸＭＬドキュメント２１０は、パラレルツリー２２０のノードを認識している。従って、ユーザは、パラレルツリー２２０内のノードおよび要素をハイライトすることができる。上記要素は、ＸＭＬドキュメント２１０内でノードが、また、ハイライトされたことに対応している。同様に、ＸＭＬドキュメント２１０の一部分をハイライトすることは、結果的に、パラレルツリー２２０の同様にハイライトされている対応のノードを生じる。好例なパラレルツリーを、以下の図３の説明でさらに説明する。
【００２６】
ＸＭＬ検証エンジン２２５によって検証される要素に関係してエラーが起こるとき、エラーデータ２３５は、ＸＭＬ検証エンジン２２５からワードプロセッサ１２０へ戻されるデータを含む。エラーデータ２３５は、また、ワードプロセッサ１２０によって、エラーの通知を表示するための情報も含んでも良い。１つの実施形態においては、エラーが検証に起因するとき、４つの別個のタイプのエラーが、ワードプロセッサ１２０によって報告される。４つのタイプのエラーは、位置のエラー、無効コンテンツのエラー、ミスの（ｍｉｓｓｉｎｇ）コンテンツのエラー、無効属性のエラーを含む。また、異なるタイプのエラーとして、記述された４つ以外のものを使用しても良い。あるタイプのエラーとしてそのエラーを示すことにより、エラーを修正するために実行しなければならない分析は容易になる。エラーデータ２３５は、また、エラーに関したさらなる情報、例えば、ユーザに表示可能な、どのようにエラーを修正可能とするかの提案を含むことができる。エラー情報の表示および関係を、図８に関してさらに説明する。
【００２７】
シンクデータ２４０は、リアルタイムで、パラレルツリー２２０をＸＭＬドキュメント２１０と同期させるためのデータを含む。１つの実施形態において、シンクデータ２４０は、識別子のテーブルを含み、その識別子は、ＸＭＬドキュメント２１０内の各要素に関連付けられている。識別子は、ユニークに、ＸＭＬドキュメント２１０内の各要素を識別し、それゆえに、また、ユニークに、パラレルツリー２２０内の各ノードを識別する。シンクデータ２４０は、ＸＭＬドキュメント２１０内に生じる変化をパラレルツリー２２０と同期させることを支援するが、それは、パラレルツリー２２０内のノードの追加または削除を含む。ノードをパラレルツリー２２０へ加えるためのステップを含む、好例なプロセスを、図６と共に説明する。
【００２８】
図３は、本発明による、保持することができる、好例なＸＭＬドキュメント２１０およびパラレルツリー２２０を示す。ＸＭＬドキュメント２１０は、ネイティブＸＭＬの要素および非ネイティブＸＭＬの要素の双方を含む。マークアップ言語内の要素は、通常、（“＜”、および“＞”によって示される）開始タグ、あるコンテンツ、および（“＜／”、および“＞”によって示される）終了タグを含む。この例において、ネイティブＸＭＬスキーマに関連したタグは、タグ内に“ｗ：”を含み（例えば、要素３０２）、および非ネイティブＸＭＬスキーマに関連したタグは、タグ内に“ｒ：”を含む（例えば、要素３０４）。ネイティブＸＭＬに関連したタグは、ワードプロセッサの名前空間（ワードプロセッサ名前空間）に関連付けられているものとして参照される。対照的に、非ネイティブＸＭＬに関連付けられるタグは、異なる名前空間、この例では“Ｒｅｓｕｍｅ”名前空間、に関連付けられるものとして参照される。ＸＭＬドキュメント２１０の要素は、さらにコンテンツを含んでも良い。例えば、“Ｗｏｒｋ”を、“Ｏｂｊｅｃｔｉｖｅ”要素内に含ませ、および“１２３Ｍａｉｎ”を、“Ｓｔｒｅｅｔ”要素内に含ませる。“Ｓｔｒｅｅｔ”要素を、“Ａｄｄｒｅｓｓ”要素内に含ませる。これらの要素は、前以って、ユーザまたは他のアプリケーションによって提供されている、ｒｅｓｕｍｅの名前空間に対応する非ネイティブＸＭＬスキーマ（例えば、ｒｅｓｕｍｅスキーマ）に従って定義される。“ｗ：”および“ｒ：”の接頭辞は、それらそれぞれの名前空間に対するＸＭＬの簡略概念（ｓｈｏｒｔｈａｎｄ　ｎｏｔｉｏｎ）として役立つ。
【００２９】
パラレルツリー２２０は、ＸＭＬドキュメント２１０内の各非ネイティブＸＭＬの要素のためのノード（例えば、ノード３２２、３２４、３２６）を含む。１つの実施形態において、パラレルツリー２２０は、ワードプロセッサ１２０とは別個に、検証エンジン２２５によって保持される（図２を参照）。ＸＭＬドキュメント２１０を変更するとき、パラレルツリー２２０はリアルタイムで更新される。ワードプロセッサ１２０が非ネイティブＸＭＬスキーマ２１５でＸＭＬドキュメント２１０を検証するので、パラレルツリー２２０により、ワードプロセッサ１２０はネイティブＸＭＬの要素を効果的に無視することが可能になる。言い換えると、パラレルツリー２２０を、検証のために検証エンジンに提供するとき、非ネイティブＸＭＬの要素は、非ネイティブＸＭＬの要素に対して効果的にトランスペアレントである。ついで、以下で図７と結び付けてさらに説明するが、ネイティブＸＭＬの要素とのいずれとも別個にパラレルツリー２２０を検証することができる。
【００３０】
上述のように、パラレルツリー２２０は、各非ネイティブＸＭＬの要素に関連したコンテンツを含む。他の実施形態においては、パラレルツリーを検証のために検証エンジン２２５へ引き渡すまで、コンテンツをパラレルツリーへコピーしない。さらに他の実施形態においては、パラレルツリー２２０へコピーされたコンテンツを、検証すべきパラレルツリー２２０の部分に関連したコンテンツに制限する。パラレルツリー２２０の検証については、図７と結び付けてさらに説明する。
【００３１】
図４は、エラーを含む、好例なＸＭＬドキュメント４１０およびパラレルツリー４２０のブロック図である。ＸＭＬドキュメント４１０およびパラレルツリー４２０は、図３に示されるＸＭＬドキュメント２１０およびパラレルツリー２２０に類似している。しかしながら、（非ネイティブＸＭＬスキーマ２１５に関する）エラーは、非ネイティブＸＭＬマークアップへ加えられていない。そのエラーを、エラー要素４３２によって表しており、そのエラー要素４３２は、ｚｉｐコードである。非ネイティブＸＭＬスキーマ２１５によれば、“ｚｉｐ”要素を、ａｄｒｅｓｓの子、または“ｓｔｒｅｅｔ”要素の兄弟であると仮定する。しかしながら、図示された例のように、“ｚｉｐ”要素を、“ｓｔｒｅｅｔ”の子として配置したので、その“ｚｉｐ”要素は無効である。従って、パラレルツリー４２０（または“ｓｔｒｅｅｔ”要素を含む、ある適切なサブツリー）を、非ネイティブＸＭＬスキーマ２１５に対して検証するとき、エラーが戻される。この例においては、ワードプロセッサ１２０は、アンダーラインを引いたＸＭＬドキュメント４１０内のエラーを識別するが、他の表示インジケータ（ｉｎｄｉｃａｔｏｒ）を使用して、エラーを表示しても良い。
【００３２】
エラーの表示を、また、パラレルツリー４２０の中に含ませても良く、そのパラレルツリー４２０では、アイコン４４２が、“ｚｉｐ”ノード４２２が関連のエラーを有することを示している。他の実施形態において、他の表示インジケータをパラレルツリー４２０内で使用して、ノードに関連したエラーの存在を表示しても良い。上述の例によれば、ＸＭＬドキュメント４１０内のアンダーラインされた要素（例えば、エラー要素４３２）を右クリックすると、エラーディスプレイ４３０（例えば、右クリックメニュー）が作成される。エラーディスプレイ４３０は、エラータイプのようなエラーに関する詳細な情報をリストアップする。エラーディスプレイ４３０は、また、エラーの修正の試行時のユーザのための提案のアクションを含む。提案のアクションは、インタラクティブ（対話的）であってもよく、アクションにより、ユーザは、現存のエラーに対する、可能な解決策のリストから選ぶことができる。
【００３３】
加えて、アイコン４４２上に停止することで、ツールチップ４４０のように、他の情報をユーザに表示することもできる。“ツールチップ”は、通常、ユーザに付加的な情報を提供する非インタラクティブな表示要素を指す。例えば、上述のツールチップは、“Ｚｉｐは、Ｓｔｒｅｅｔの内部にありえない”、というテキストの通知を提供する。１つの実施形態において、アイコン４４２またはエラー要素４３２のどちらかを、選択するかまたはそれらの上に停止して、エラーディスプレイ４３０またはツールチップ４４０を表示しても良い。ＸＭＬドキュメント４１０およびパラレルツリー４２０内のエラーのインジケータを表示することに関する好例なプロセスを、図８を使用して説明する。
【００３４】
検知、検証、およびエラー報告
図５は、本発明による、ＸＭＬドキュメントの検証およびスキーマ検証の報告のための好例なプロセスのフローチャートである。プロセス５００は、ブロック５０１で開始する。そこで、ＸＭＬドキュメントは編集され、および変更が生じる。“変更”は、ＸＭＬドキュメント内のＸＭＬ要素を、挿入すること、修正すること、または削除すること、または非ネイティブＸＭＬの要素のテキストのコンテンツを変更することを指す。変更に応答して、プロセスは、ブロック５０２へと続く。
【００３５】
ブロック５０２では、ＸＭＬドキュメントに生じた変更が、ＸＭＬドキュメント内に組込まれる。新しい要素を追加するような、幾つかの変更については、対応するノードをパラレルツリーに加えるためのプロセスをさらに要求するようにしても良い。ＸＭＬドキュメント内の変更を組込み、処理するための好例なプロセスについては、図６でさらに説明する。プロセスは、ブロック５０３へと続く。
【００３６】
ブロック５０３では、変更されたＸＭＬドキュメントの部分を、“ダーティ（ｄｉｒｔｙ）”としてマークする。“ダーティ”は、まだ検証される必要がないか、または、変更の故に、検証がもはや保証されない、ＸＭＬドキュメント部分を指す。識別子または他のインジケータを、変更が起こったＸＭＬドキュメントの部分に関連付けても良い。１つの実施形態において、変更され、削除され、または加えたいずれかの要素の親を、ダーティとしてマークしても良い。プロセス５００が、ダーティ部分を検証するために進行すると、検証エンジンは、親と親の子とを検証する。プロセスは、ブロック５０４へと続く。
【００３７】
ブロック５０４では、変更されたＸＭＬドキュメントの部分に対応するパラレルツリーのノードも、また、“ダーティ”としてマークされる。識別子および他のインジケータを、変更が生じた場所に対応するパラレルツリーのノードに関連付けても良い。１つの実施形態において、ＸＭＬドキュメントおよびパラレルツリーの各ノード内の各要素に関連付けられるユニークな識別子を、ダーティとしてマークし、それによって、ＸＭＬドキュメントおよびパラレルツリーのノードの双方を、同時にダーティとしてマークする。プロセスは、判断ブロック５０５へと続く。
【００３８】
判断ブロック５０５では、ＸＭＬドキュメントを構成または編集するユーザが、アイドルまたはタイムアウトポイントに達したかどうかを決定する。アイドルとは、ユーザが、現在、ユーザ入力をワードプロセッサに提供していない時間を指す。タイムアウトは、アイドル状態が予め決められた時間量の間、生じなかった状態を指す。十分な時間が経過した場合、タイムアウト状態は起こる。アイドル状態またはタイムアウト状態が生じるまで、プロセスは、ブロック５０５でループする。アイドル状態になり、またはタイムアウト状態が生じると、プロセスは、５０６へと続く。
【００３９】
ブロック５０６では、ダーティノードまたはパラレルツリーのノードを、検証エンジンによって検証する。パラレルツリーは、適切に検証エンジンのオブジェクトであるか、または検証エンジンにリンクされるので、ツリーを検証するために検証エンジンへ移す必要はない。パラレルツリーのダーティノードを検証するための好例なプロセスについては、図７でさらに説明する。プロセスは、判断ブロック５０７へと続く。
【００４０】
判断ブロック５０７では、検証エンジンによって戻されたエラーデータに従って、エラーがＸＭＬドキュメントの非ネイティブＸＭＬの要素内に存在するか否か決定する。検証エンジンは、エラーデータをワードプロセッサへと戻し、そのワードプロセッサは、検証エンジンによって分析されたパラレルツリー内の各ノードの検証を表示する。１つの実施形態において、エラーデータは、ワードプロセッサに生じるエラーのタイプを含む。エラーが存在しない場合、プロセスは、ブロック５０９へ移動し、そこで、プロセスは終了する。エラーが存在する場合、プロセスは、ブロック５０８へと続く。
ブロック５０８では、ＸＭＬドキュメント内のおよびパラレルツリー内の表示インジケータに従って、ユーザは、非ネイティブＸＭＬ検証の要素内のエラーの通知を受ける。生じたエラーをユーザに報告するための好例なプロセスについては、図８でさらに説明する。プロセスは、ブロック５０９へと続き、そこでプロセスは終了する。
【００４１】
図６は、本発明による、ＸＭＬドキュメント内の変更の組込みおよび処理のための好例なフローチャートである。図５で示されるプロセス５００がブロック５０２を開始すると、プロセス６００は、ブロック６０１で開始する。プロセスは、ブロック６０２へと続く。
【００４２】
ブロック６０２では、変更しているＸＭＬドキュメントの部分の親を、決定する。例えば、図４において、ＸＭＬドキュメント４１０内の“ｓｔｒｅｅｔ”要素は、“ｚｉｐ”要素４３２の親である。１つの実施形態においては、親を決定し、その結果、親および親の子孫を含む、パラレルノードのサブツリーを、ダーティとしてマークすることができる。親および親の子孫を検証することは、依然として、全体のＸＭＬドキュメントが有効であることを保証する。なぜならば、変更が、一般的に、変更されたノードの直接の親以外の要素の検証に影響を与えるべきではないからである。親を決定することは、また、ＸＭＬドキュメントへのパラレルツリーの同期を支援する。そのとき、その親を、ＸＭＬドキュメント内の変更の位置のインジケータとして使用しても良い。１つの実施形態において、変更の要素の親に関連した識別子を、図２で示されたシンクデータ２４０内に格納しても良い。プロセスは、ブロック６０３へと続く。
【００４３】
ブロック６０３では、変更されている要素の最も近い兄弟を、ワードプロセッサによって決定する。例えば、図３において、“ｏｂｊｅｃｔｉｖｅ”要素および“ａｄｒｅｓｓ”要素を、兄弟と見なす。最も近い兄弟を決定することは、ＸＭＬドキュメントへのパラレルツリーの同期を支援する。最も近い兄弟は、ＸＭＬドキュメント内の変更の位置の第２インジケータを提供する。１つの実施形態においては、変更の要素の親に関連した識別子を、図２に示されたシンクデータ２４０内に格納する。他の実施形態では、最も近い兄弟がＸＭＬドキュメント内で、変更の要素より上かまたは下かどうかを、また、決定する。プロセスは、判断ブロック６０４へと続く。
【００４４】
判断ブロック６０４では、変更がパラレルツリー内で作成されるべき新しいノードを必要とするか否か決定する。新しい非ネイティブＸＭＬの要素をＸＭＬドキュメント内で生成するとき、新しいノードを必要とする。新しいノードをリアルタイムで作成して、ＸＭＬドキュメントおよびパラレルツリーの同期を保持する。新しいノードを必要としないとき、プロセスは、ブロック６０９へと移動し、そこで、プロセスはプロセス５００のブロック５０３へと戻る。しかしながら、新しいノードを必要とするとき、プロセスは、ブロック６０５へと移動する。
【００４５】
ブロック６０５では、ＸＭＬドキュメント内の新しいノードに対応する、識別子を作成する。その識別子により、ユニークに、ＸＭＬドキュメント内の要素を識別する。プロセスは、ブロック６０６へと続く。
【００４６】
ブロック６０６では、親ではないノード（ｕｎｐａｒｅｎｔｅｄ　ｎｏｄｅ）を、パラレルツリー内に生成する。親ではないノードを、一般に、パラレルツリー内の親とは識別しない。プロセスは、ブロック６０７へと続く。
【００４７】
ブロック６０７では、ＸＭＬドキュメント内に生成された要素に関した識別子を、親ではないノードに関連付ける。識別子を親ではないノードに関連付けると、ワードプロセッサは、ＸＭＬドキュメント内の新しい要素の位置とそのノードを関連付けることができる。１つの実施形態においては、親および最も近い兄弟を、ＸＭＬドキュメント内の新しい要素について決定しており、従って、パラレルツリー内の親および最も近い兄弟も、また、決定される。プロセスは、ブロック６０８へと続く。
【００４８】
ブロック６０８では、ＸＭＬドキュメント内の新しい要素の親要素に対応するパラレルツリー内の親ノードに指示し、親ではないノードを採用する。新しいノードを、次に、ＸＭＬドキュメントとパラレルツリーとに同期させて、パラレルツリー内の正しい位置に表示する。プロセスは、ブロック６０９へと続き、そこで、プロセスは、プロセス５００のブロック５０３へと戻る。
【００４９】
図７は、本発明によれば、ＸＭＬドキュメントを検証するための好例なプロセスのフローチャートである。図５で示されたプロセス５００がブロック５０６を開始するとき、プロセス７００は、ブロック７０１で開始する。プロセスは、ブロック７０２へと続く。
【００５０】
ブロック７０２では、検証されるべき非ネイティブＸＭＬの要素に関連したコンテンツを、パラレルツリーへコピーする。１つの実施形態において、ＸＭＬドキュメントのそのコンテンツは、始めは、パラレルツリーに含まれていない。そのコンテンツをパラレルツリー内に含まれていたならば、パラレルツリーに要求されるストレージスペースは、ほとんど、ＸＭＬドキュメントに要求されるストレージスペースになるであろう。検証直前にそのコンテンツをパラレルツリーへコピーすることにより、パラレルツリーに要求されるストレージスペースは最小限となる。他の実施形態では、パラレルツリーにコピーされたコンテンツを、ダーティとしてマークされた非ネイティブＸＭＬの要素に関連したコンテンツに制限する。プロセスは、ブロック７０３へと続く。
【００５１】
ブロック７０３では、ダーティとしてマークされたノードおよびそれら関連したコンテンツを、検証エンジンによって非ネイティブＸＭＬスキーマで検証する。非ネイティブＸＭＬスキーマは、どのようなタグおよび属性を使用してＸＭＬドキュメントの非ネイティブＸＭＬの要素内のコンテンツを記述するか、どこで各タグを許可するか、どのようなコンテンツが許容可能か、およびどの要素が他の要素内に出現可能かを示している。検証の完了で、プロセスは、ブロック７０４へと続く。
【００５２】
ブロック７０４では、検証のためにパラレルツリー内に含まれたコンテンツを、パラレルツリーから削除する。パラレルツリーからコンテンツを削除することにより、さらに、パラレルツリーに要求されるストレージスペースを最小限にする。プロセスは、ブロック７０５へと続き、そこで、プロセスは、図５に示されたプロセス５００のブロック５０７へと戻る。
【００５３】
図８は、本発明による、ＸＭＬドキュメントおよびパラレルツリー内のエラーを表示するための好例なプロセスのフローチャートである。プロセス８００は、ブロック８０１で開始し、そのとき、図５で示されたプロセス５００は、ブロック５０８を開始し、およびエラーがＸＭＬドキュメントの非ネイティブＸＭＬ内に存在することを決定する。プロセスは、ブロック８０２へと続く。
【００５４】
ブロック８０２では、エラーを有すると検証エンジンによって示された要素に、ＸＭＬドキュメント内でアンダーラインを引く。他の表示インジケータ（例えば、ボールド、イタリック、曲線、等）を、エラーを有することを、ＸＭＬドキュメント内の要素に示すために使用しても良い。プロセスは、ブロック８０３へと続く。
【００５５】
ブロック８０３では、ＸＭＬドキュメントのエラーの要素に対応するパラレルツリーのノードに、フラグを付ける。１つの実施形態において、アイコンをノードの近くに設置して、ノードに対応する要素がエラーを含むことを示す。１つの実施形態においては、アイコンは、エラーの要素に関連する際に生じたエラーのタイプに対して特有である。プロセスは、判断ブロック８０４へと続く。
【００５６】
判断ブロック８０４では、ユーザがＸＭＬドキュメント内でハイライトされたエラー上で右クリックしたか否かを決定する。右クリックがなされない場合、プロセスは、ブロック８０６へと続く。しかしながら、右クリックがなされた場合、プロセスは、ブロック８０５へと続く。
【００５７】
ブロック８０５では、生じたエラーおよびエラーを修正するための指示についての詳細な情報を与える右クリックに応答して、エラー表示をユーザに提供する。他の実施形態においては、右クリックよりむしろ、他のユーザ入力を使用して、エラー表示しても良い。エラー表示を上述の図４の解説でさらに説明する。プロセスは、判断ブロック８０６へと続く。
【００５８】
判断ブロック８０６では、ユーザがマウスポインタをパラレルツリー内のアイコン上に停止しているか否か決定する。ユーザがマウスポインタをエラー上で停止していないと決定された場合、プロセスは８０８へと続き、そこで、プロセスは、図５に示されたプロセス５００のブロック５０９へと戻る。マウスポインタをアイコン上に停止させると、プロセスは、ブロック８０７へと続く。
【００５９】
ブロック８０７では、マウスポインタをパラレルツリー内のアイコン上に停止することに応答して、ツールチップをユーザに表示する。１つの実施形態においては、ツールチップのテキストは、生じたエラーを記述する簡単な陳述を提供する。例えば、ある要素がコンテンツを含まなければならない場合、ツールチップのテキストは、“この要素は、空ではありえない”とすることができる。１つの実施形態において、マウスポインタでアイコン上に停止することよりむしろ、他のユーザ入力を使用してツールチップを表示しても良い。好例なアイコンおよびツールチップを図４に示す。プロセスは、ブロック８０８へと続き、そこで、プロセスは、図５に示されたプロセス５００のブロック５０９へと戻る。
【００６０】
上記の明細書、複数の例およびデータにより、本発明の製造の完全な説明および構成の利用を提供する。本発明の多くの実施形態を、その精神および本発明の範囲から逸脱することなく作成することができるので、本発明は、特許請求の範囲に帰属する。
【図面の簡単な説明】
【００６１】
【図１】本発明の１つの好例な実施形態で使用する好例なコンピューティングデバイスを示す図である。
【図２】本発明を実施するための好例な環境を示すブロック図である。
【図３】本発明による、ＸＭＬドキュメントおよびパラレルツリーの好例なブロック図である。
【図４】本発明による、エラーを含むＸＭＬドキュメントおよびパラレルツリーの好例なブロック図である。
【図５】本発明による、ＸＭＬドキュメントを検証およびエラーを報告するための好例なプロセスのフローチャートである。
【図６】本発明による、ＸＭＬドキュメント内に位置しおよび変更を処理するための好例なプロセスのフローチャートである。
【図７】本発明による、ＸＭＬドキュメントを検証するための好例なプロセスのフローチャートである。
【図８】本発明による、ＸＭＬドキュメントおよびパラレルツリー内のエラーを表示するための好例なプロセスのフローチャートである。
【符号の説明】
【００６２】
１００　コンピューティングデバイス
１０２　処理装置
１０４　システムメモリ
１０５　オペレーティングシステム
１０６　アプリケーション
１０７　プログラムデータ
１０９　着脱可能なストレージ
１１０　着脱不可なストレージ
１１２　入力デバイス
１１４　出力デバイス
１１６　通信コネクション
１１８　他のコンピューティングデバイス
１２０　ワードプロセッサ
１２２　ＸＭＬエディタ
２１０　ＸＭＬドキュメント
２１５　非ネイティブＸＭＬスキーマ
２２０　パラレルツリー
２２５　ＸＭＬ検証エンジン
２３０　データ構造
２３５　エラーデータ
２４０　シンクデータ
【図１】
2004046849.tif 000003
【図２】
2004046849.tif 000004
【図３】
2004046849.tif 000005
【図４】
2004046849.tif 000006
【図５】
2004046849.tif 000007
【図６】
2004046849.tif 000008
【図７】
2004046849.tif 000009
【図８】
2004046849.tif 000010
【外国語明細書】
2004046849.tif 000011
2004046849.tif 000012
2004046849.tif 000013
2004046849.tif 000014
2004046849.tif 000015
2004046849.tif 000016
2004046849.tif 000017
2004046849.tif 000018
2004046849.tif 000019
2004046849.tif 000020
2004046849.tif 000021
2004046849.tif 000022
2004046849.tif 000023
2004046849.tif 000024
2004046849.tif 000025
2004046849.tif 000026
2004046849.tif 000027
2004046849.tif 000028
2004046849.tif 000029
2004046849.tif 000030
2004046849.tif 000031
2004046849.tif 000032
2004046849.tif 000033
2004046849.tif 000034
2004046849.tif 000035
2004046849.tif 000036
2004046849.tif 000037
2004046849.tif 000038
2004046849.tif 000039
2004046849.tif 000040
2004046849.tif 000041
2004046849.tif 000042
2004046849.tif 000043
2004046849.tif 000044
2004046849.tif 000045