設定パッチ ファイルの例
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
以下に示すパッチ構文の例は、パッチの適用が Sitecore 設定にどのように影響するかを具体的に説明したものです。どの例でも、まず元の設定、次にパッチ ファイル、最後にパッチ ファイルが Sitecore.config
ファイルとマージされた後の設定を示しています。
以下の例を示します。
Sitecore 設定をカスタマイズするには、これらのパッチ構文の例を参考にして Sitecore の構成設定を追加または変更してください。
最初に、patch
と set
の名前空間を宣言してこれらを使用可能にする必要があります。通常、これらの名前空間は、次のようにパッチ ファイルの先頭で <configuration>
設定の一部として宣言します。
<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/"
xmlns:set="http://www.sitecore.net/xmlconfig/set/">
<sitecore>
. . . . .
</sitecore>
</configuration>
設定のマージ
異なるパッチ ファイルに記述された設定は、パッチ ファイルが処理される順にマージされます。
<!-- Sitecore.config -->
<settings>
<setting name="name" value="Aaron" />
</settings>
<!-- /App_Config/Include/file1.config -->
<settings>
<setting name="city" value="New York" />
</settings>
<!-- /App_Config/Include/file2.config -->
<settings>
<setting name="country" value="USA" />
</settings>
実行時に使用される設定は次のとおりです。
<settings>
<setting name="name" value="Aaron" />
<setting name="city" value="New York" />
<setting name="country" value="USA" />
</settings>
特定の要素の前への要素の挿入
特定の要素の前に設定要素を挿入できます。この例では、設定内での test2
の位置にかかわらず、test2
タイプのプロセッサの前にプロセッサを追加します。
<!-- Sitecore.config -->
<test>
<processor type="test1" />
<processor type="test2" />
<processor type="test3" />
</test>
<!-- Patch file -->
<test>
<processor type="testA" patch:before = "processor[@type='test2']"/>
</test>
実行時に使用される設定は次のとおりです。
<test>
<processor type="test1" />
<processor type="testA" />
<processor type="test2" />
<processor type="test3" />
</test>
特定の要素の後への要素の挿入
既存の要素の後に設定要素を挿入できます。この例では、設定内での test2
の位置にかかわらず、test2
タイプのプロセッサの後にプロセッサを挿入します。
<!-- Sitecore.config -->
<test>
<processor type="test1" />
<processor type="test2" />
<processor type="test3" />
</test>
<!-- Patch file -->
<test>
<processor type="testA" patch:after = "processor[@type='test2']"/>
</test>
実行時に使用される設定は次のとおりです。
<test>
<processor type="test1" />
<processor type="test2" />
<processor type="testA" />
<processor type="test3" />
</test>
属性の追加または更新
新しい属性を追加、または既存の属性の値を更新できます。指定した属性がすでに存在する場合は、その既存の値がパッチ ファイルの値に置き換えられます。指定した属性が mysite
にまだ存在しない場合は、mysite
に追加されます。patch
と set
のどちらの名前空間を使用しても、この結果を達成できます。
この例では、domainPath
属性を mysite
サイトに追加してその値を /home
に設定し、virtualFolder
属性を /sitecore modules/web
に変更します。
<!-- Sitecore.config -->
<sites>
<site name="mysite" virtualFolder="/"></site>
</sites>
このパッチ ファイルでは、patch
名前空間を使用して属性を変更します。
<!-- Patch file -->
<sites>
<site name="mysite" virtualFolder="/">
<patch:attribute name="domainPath">/home</patch:attribute>
<patch:attribute name="virtualFolder">/sitecore modules/web</patch:attribute>
</site>
</sites>
このパッチ ファイルでは、set
名前空間を使用して同じ結果を達成します。
<!-- Patch file -->
<sites>
<site name="mysite" virtualFolder="/" set:domainPath="/home" set:virtualFolder="/sitecore modules/web"></site>
</sites>
最終的な結果は、どちらのパッチ ファイルでも同じです。実行時に使用される設定は次のとおりです。
<sites>
<site name="mysite" domainPath="/home" virtualFolder="/sitecore modules/web"></site>
</sites>
要素の削除
patch:delete
構文を使用して設定要素を完全に削除できます。削除する要素を正確に識別するため、要素ノードの name 属性を指定する必要があります。その他の属性や内部要素は指定しないでください。
<!-- Sitecore config -->
<sitecore>
<element name="a"/>
<element name="b"/>
<element name="c"/>
</sitecore>
<!-- Patch file -->
<sitecore>
<element name="b">
<patch:delete />
</element>
</sitecore>
実行時に使用される設定は次のとおりです。
<sitecore>
<element name="a"/>
<element name="c"/>
</sitecore>
patch:delete
を使用する際は注意してください。この構文を使用すると、指定した要素とそのすべての属性が完全に削除されます。
要素の値の置換
兄弟要素を挿入するのではなく、選択した要素を置換するには、patch:instead
属性を使用します。patch:before
および patch:after
とは異なり、この属性を使用すると元のノードまたは要素を完全に置換できます。
構文は次のとおりです。
<processor type="CustomC, CustomA" patch:instead="*[@type='Sc, Sc']" />
<!-- Sitecore.config -->
<sitecore>
<element name="a"/>
<element name="b"/>
<element name="c"/>
</sitecore>
<-- Patch file -->
<sitecore>
<element name="d" patch:instead="*[@name='b']"/>
</sitecore>
実行時に使用される設定は次のとおりです。
<sitecore>
<element name="a"/>
<element name="d"/>
<element name="c"/>
</sitecore>