---
title: "パッチファイルの設定を制御する"
slug: "control-a-patch-file-setting"
abstract: "パッチされた設定が既存設定とマージされるか、新しい設定として追加されるかを制御する方法。"
---
# パッチファイルの設定を制御する

パッチファイルを使って設定を変更する場合、追加または更新したいノードを必ず特定する必要があります。デフォルトではパッチされた属性で既存ノードを更新しますが、重要な属性を使って新しいノードを強制的に追加することもできます。

このトピックでは、以下の方法を説明します:

-   [ノードを指定する](https://doc.sitecore.com/xp/ja/developers/103/platform-administration-and-architecture/control-a-patch-file-setting.html#UUID-73b9ffb8-e2b9-5ecd-df71-a8798875cda2_N1527495128937 "Specify a node")
-   [重要な属性を使う](https://doc.sitecore.com/xp/ja/developers/103/platform-administration-and-architecture/control-a-patch-file-setting.html#UUID-73b9ffb8-e2b9-5ecd-df71-a8798875cda2_N1527496376330 "Use a significant attribute")
-   [重要な属性定義を追加する](https://doc.sitecore.com/xp/ja/developers/103/platform-administration-and-architecture/control-a-patch-file-setting.html#UUID-73b9ffb8-e2b9-5ecd-df71-a8798875cda2_N1527496364526 "Add a significant attribute definition")

## ノードを指定する

どのノードを更新したいかを指定する必要があります。

ノードを指定するために:

-   要素名と Sitecore.config ファイルのXML構造内での位置を指定します。

例えば、AliasActive設定は <settings> 要素ノードの一部であり、<sitecore> 要素ノードの一部です。 AliasActive設定の値をfalseに変更するには、パッチファイル内に以下の要素ノードを含める必要があります:

<sitecore>
 <settings>
   <setting name="AliasActive">
     <patch:attribute name="value">False</patch:attribute>
   </setting>
 </settings>
</sitecore>

## 重要な属性を使う

パッチファイルから属性を処理する際、パッチファイルノードの属性に適合する既存のSitecore.configノードを探します。見つけた場合は、デフォルトでパッチファイルの属性を既存のノードとマージします。

例えば、Sitecore.configファイルの<clientscripts>ノードにスクリプトファイルを追加するパッチファイルを2つ持つことができます。

<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/">
  <sitecore>
 <clientscripts>
 <script src="script-1.js" language="javascript" />
 </clientscripts>
  </sitecore>
</configuration>

<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/">
  <sitecore>
 <clientscripts>
 <script src="script-2.js" language="javascript" att1="test" />
 </clientscripts>
  </sitecore>
</configuration>

最初のパッチファイルを処理すると、<script src="script-1.js"> 要素を追加します。2つ目のパッチファイルを処理すると、新しい情報を最初の <script> 要素とマージし、src属性を更新し、att1属性を追加します。最終的な結果は次のようになります:

<sitecore>
 <clientscripts>
   <script src="script-2.js" language="javascript" att1="test" patch:source="Add-script-2.config"
/>
 </clientscripts>
</sitecore>

2つ目のパッチファイルのノードを新しいノードとして追加したい場合は、ノード定義に重要な属性を追加できます。重要な属性は決してマージしません。例えば、2番目のscript要素に一意の価値を持つ重要な属性が含まれている場合は、新しい要素として追加します。例えば、2番目のパッチファイルのscript要素にdesc属性を追加できます:

<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/">
  <sitecore>
 <clientscripts>
 <script src="script-2.js" language="javascript" att1="test" desc="new script" />
 </clientscripts>
  </sitecore>
</configuration>

両方のパッチファイルを処理した後の結果は以下の通りです:

<sitecore>
 <clientscripts>
 <script src="script-1.js" language="javascript" patch:source="Add-script-1.config" />
 <script desc="new script" src="script-2.js"
 language="javascript" att1="test" patch:source="Add-script-2.config" />
 </clientscripts>
</sitecore>

以下の重要な属性をこのように活用できます:

-   先祖
-   集会
-   ビルダータイプ
-   カテゴリー
-   channelId(チャンネルID)
-   コメント
-   包含
-   creationType(創造タイプ)
-   概要
-   説明
-   displayName
-   拡張
-   facetKey
-   fieldID
-   フィールド名
-   fieldType
-   fieldTypeName
-   ファイル
-   発見
-   フォルダ
-   グループ名
-   ヒント
-   ホスト名
-   ID
-   実装タイプ
-   本文内
-   インターフェース
-   キー
-   messageDataType
-   メッセージアイテムベースタイプ
-   方法
-   名称
-   名前空間
-   ネットワーク名
-   オリジナルキー
-   経路
-   postingConfiguration
-   接頭辞
-   providerName
-   クエリ文字列
-   参考文献
-   地域
-   サービスタイプ
-   sitecoreKey
-   statusCode
-   タグ名
-   テンプレートID
-   トラフィックタイプ
-   トリガー
-   種類
-   タイプコンバーター
-   タイプネーム
-   UID
-   urlReferrerHost
-   価値
-   動詞
-   ビューネーム
-   では
-   xmlControl
-   XMLS

既存のノードにおける重要な属性の値を変更するには:

-   patch:attributeの構文を使いましょう:
    
    <sitecore>
     <clientscript >
       <script src="script-1.js" att1="test">
         <patch:attribute name="desc">new description</patch:attribute>
       </script>
     </clientscript>
    </sitecore>
    

## 重要な属性定義を追加する

デフォルトの重要な属性を使えない場合は、自分で定義できます。

自分の重要な属性を定義するために:

-   重要な属性を Sitecore.config ファイル内の <sitecore> 要素ノードに追加します。

例えば、以下はmy-own-attributeという有意な属性を加えます:

<patch>
  <significantAttributes>
  <add name="my-own-attribute"/>
  </significantAttributes>
</patch>

> !importantはパッチファイルを処理する前に、重要な属性のリストを処理します。したがって、新しい重要な属性はSitecore.configファイルに直接追加しなければならず、パッチファイルを通じて追加することはできません。この方法は、あらかじめ定義された属性を絶対に使えない場合のみ使用してください。