一般規則
ここでは、XML ヘルパー関数について説明します。
このトピックの内容
一般的な XML のガイドライン
ヘルパー関数
一般的な XML のガイドライン
.xml ファイルを変更する前に、次のガイドラインについて熟知しておく必要があります。
XML スキーマ
移行 .xml ファイルの作成と検証には、ユーザー状態移行ツール (USMT) 5.0 XML スキーマ (MigXML.xsd) を使うことができます。
競合
一般に、XML スキーマ内に競合がある場合は最も限定的なパターンが優先されます。詳しくは、「競合と優先度」をご覧ください。
必要な要素
移行 .xml ファイルに必要な要素は、<migration>、<component>、<role>、<rules> です。
必須の子要素
必要な子要素を指定しなくても、USMT がエラーで失敗することはありません。ただし、親要素が移行されるようにするには、必要な子要素を指定する必要があります。
必要な子要素は、要素の最初の定義にのみ適用されます。これらの要素が定義されており、その名前を使って参照されている場合は、必要な子要素は適用されません。たとえば、<namedElements> で
<detects name="Example">
を定義し、この要素を参照するように <component> で<detects name="Example"/>
を指定した場合、<namedElements> 内の定義には必要な子要素が含まれている必要がありますが、<component> 要素にはそれが必要ありません。
角かっこ付きのファイル名
ファイル名に角かっこ ([ または ]) を含むファイルを移行する場合、角かっこの文字を有効にするために、角かっこの直前にカラット (^) を挿入する必要があります。たとえば、ファイル名が File.txt の場合、
<pattern type="File">c:\documents\mydocs [file].txt]</pattern>
ではなく<pattern type="File">c:\documents\mydocs [file^].txt]</pattern>
と指定する必要があります。引用符の使用
コードを引用符で囲む場合、二重引用符 ("") と単一引用符 ('') のどちらかを使うことができます。
ヘルパー関数
XML 要素ライブラリの XML ヘルパー関数を使って、移行の動作を変更できます。.xml ファイルでこれらの関数を使う前に、次の点に注意してください。
すべてのパラメーターは文字列です。
NULL パラメーターは空白のままにすることができます。
既定値規則を持つパラメーターに関しては、リストの最後に NULL パラメーターがある場合、そのままにしておくことができます。たとえば、次のような関数があるとします。
SomeFunction("My String argument",NULL,NULL)
これは、次の関数と同等です。
SomeFunction("My String argument")
すべてのヘルパー関数で使われるエンコードされた場所は、オブジェクトの名前の明確な文字列表現です。
これは、ノード部分で構成され、場合によっては、角かっこで囲まれたリーフが続きます。これにより、ノードとリーフを明確に区別できます。
たとえば、ファイル C:\Windows\Notepad.exe を指定する場合は、c:\Windows[Notepad.exe] とします。同様に、ディレクトリ C:\Windows\System32 を指定する場合は、c:\Windows\System32 とします。[] 文字がないことに注目してください。
レジストリも、似た方法で表されます。レジストリ キーの既定値は、空の [] 構造として表されます。たとえば、HKLM\SOFTWARE\MyKey レジストリ キーの既定値は、HKLM\SOFTWARE\MyKey[] です。
実際の場所を指定するのと同じような方法で、場所のパターンを指定できます。
例外は、ノードとリーフの両方の部分でパターンを受け入れる場合です。ただし、ノードのパターンがリーフまで拡張されることはありません。
たとえば、c:\Windows\* というパターンは、\Windows ディレクトリとすべてのサブディレクトリに一致しますが、これらのディレクトリ内のファイルとは一致しません。ファイルとも一致するようにするには、c:\Windows\*[*] と指定する必要があります。