構成パッチファイルの例

日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

以下のパッチ構文の例は、パッチングがSitecoreAI構成にどのように影響するかを示しています。すべての例は元の構成を示し、次にパッチファイル、そしてパッチファイルがSitecore.configファイルとマージされた後の構成を示します。

例は以下の通りです:

SitecoreAI設定をカスタマイズするには、これらのパッチ構文の例を使って設定の追加や変更に役立ちます。

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名前空間のいずれかを使うことができます。

この例では、mysiteサイトにdomainPath属性を追加し、/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>

もしその要素に名前属性がなければ、削除すべき要素とそのすべての属性をリストアップし、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:beforepatch: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>
この記事を改善するための提案がある場合は、 お知らせください!