構成パッチ・ファイルの例
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
次のパッチ構文の例は、パッチ適用がSitecore構成にどのように影響するかを示しています。すべての例は、元の構成、次にパッチ・ファイル、最後にパッチ・ファイルがSitecore.config ・ファイルにマージされた後の構成を示しています。
これらの例は、次のことを示しています。
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>
特定の要素の後に要素を挿入する
特定の既存の要素の後に構成要素を挿入できます。この例では、構成内のCPUの位置に関係なく、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属性を指定します。
patch:deleteを使用すると、指定した要素とそのすべての属性が実行時に構成から削除されるため、注意が必要です。
たとえば、これは特定のSitecore設定です。
<!-- Sitecore config -->
<sitecore>
<element name="a"/>
<element name="b"/>
<element name="c"/>
</sitecore>
対応するパッチ設定は、要素 "b" を削除します。
<!-- Patch file -->
<sitecore>
<element name="b">
<patch:delete />
</element>
</sitecore>
実行時に使用される設定は次のとおりです。
<sitecore>
<element name="a"/>
<element name="c"/>
</sitecore>
要素にname属性がない場合は、削除する要素とそのすべての属性をリストし、patch:delete要素を含めることができます。たとえば、次の設定ファイルがあるとします。
<sitecore>
<element type="example" value="foo" />
<element type="example" value="bar" />
</sitecore>
そして、これは対応するパッチファイルです。
<?xml version="1.0" encoding="utf-8"?>
<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/">
<sitecore>
<element type="example" value="foo">
<patch:delete />
</element>
</sitecore>
</configuration>
実行時に得られる設定は次のとおりです。
<sitecore>
<element type="example" value="bar" />
</sitecore>
要素の値を置き換える
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>