Includes

Документы, содержимое которых будет включено в текущий документ.

Описание Include

<Include Path = "IncludeDocument.xml" />

Атрибуты Include

Описание процесса включения документов

Включаемый файл представляет собой xml-файл формы.

При включении производится поиск тэгов <Include> в блоке <Includes>.

Если тэги присутствуют в текущем документе, то xml-документ, указанный в атрибуте Path, загружается.

В загруженном документе так же производится поиск тэгов <Include>, тем самым поддерживается любой уровень вложенности документов.

При этом, если файл был загружен ранее, то повторно он загружен не будет.

После загрузки документа для включения все тэги внутри корневного тэга <Forms> копируются в вышестоятещий документ. Если в вышестоящем документе присутствует тэг, например <DataConnections>, то из документа-включения копируются тэги внутри <DataConnections> в тэг <DataConnections> вышестоящего документа.

Пример простого включения документа

Файл Form1.xml

<Forms>
  <Includes>
    <Include Path="Form2.xml" />
  </Includes>
  <MyObjects>
    <MyObject Name="Panel" Type="Panel" Assembly="BaseControls"></MyObject>
  </MyObjects>
</Forms>

Файл Form2.xml

<Forms>
  <Appearance>
    <Colors>
      <Color Name="Red" Red="255" Green="0" Blue="0" Alpha="255" />
    </Colors>
  </Appearance>
  <MyObjects>
    <MyObject Name="Panel2" Type="Panel" Assembly="BaseControls"></MyObject>
  </MyObjects>
</Forms>

Итоговый документ после включения Form2.xml в Form1.xml

<Forms>
  <Includes>
    <Include Path="Form2.xml" />
  </Includes>
  <Appearance>
    <Colors>
      <Color Name="Red" Red="255" Green="0" Blue="0" Alpha="255" />
    </Colors>
  </Appearance>
  <MyObjects>
    <MyObject Name="Panel" Type="Panel" Assembly="BaseControls"></MyObject>
    <MyObject Name="Panel2" Type="Panel" Assembly="BaseControls"></MyObject>
  </MyObjects>
</Forms>

Пример включения документов с вложенными документами

Файл Form1.xml

<Forms>
  <Includes>
    <Include Path="Form2.xml" />
  </Includes>
  <MyObjects>
    <MyObject Name="Panel" Type="Panel" Assembly="BaseControls"></MyObject>
  </MyObjects>
</Forms>

Файл Form2.xml

<Forms>
  <Includes>
    <Include Path="Form3.xml" />
  </Includes>
  <MyObjects>
    <MyObject Name="Panel2" Type="Panel" Assembly="BaseControls"></MyObject>
  </MyObjects>
</Forms>

Файл Form3.xml

<Forms>
  <Appearance>
    <Colors>
      <Color Name="Red" Red="255" Green="0" Blue="0" Alpha="255" />
    </Colors>
  </Appearance>
</Forms>

Итоговый документ после включения Form3.xml в Form2.xml, который был включен в Form1.xml

<Forms>
  <Includes>
    <Include Path="Form2.xml" />
  </Includes>
  <Appearance>
    <Colors>
      <Color Name="Red" Red="255" Green="0" Blue="0" Alpha="255" />
    </Colors>
  </Appearance>
  <MyObjects>
    <MyObject Name="Panel" Type="Panel" Assembly="BaseControls"></MyObject>
    <MyObject Name="Panel2" Type="Panel" Assembly="BaseControls"></MyObject>
  </MyObjects>
</Forms>

Last updated