Один из наших конфигурационных файлов странным образом трансформируется.
<?xml version = "1.0"?>
<configuration >
</configuration>
<?xml version = "1.0"?>
<configuration xmlns:xdt = "http://schemas.microsoft.com/XML-Document-Transform" xmlns:role = "http://www.sitecore.net/xmlconfig/role/" xmlns:patch = "http://www.sitecore.net/xmlconfig/">
<sitecore xdt:Transform = "Insert">
<contentSearch>
<configuration>
<indexes>
<index id = "sitecore_web_index">
<param desc = "core" patch:instead = "param[@desc='core']">#{IndexEnvironment}#_web_index</param>
</index>
</indexes>
<indexes role:require = "Standalone or ContentManagement">
<index id = "sitecore_master_index">
<param desc = "core" patch:instead = "param[@desc='core']">#{IndexEnvironment}#_master_index</param>
</index>
После запуска сборки вывод финальной конфигурации выглядит очень странно:
<?xml version = "1.0"?>
<configuration>
<sitecore>
<contentSearch>
<configuration>
<indexes>
<index id = "sitecore_web_index">
<param desc = "core" d7p1:instead = "param[@desc='core']" xmlns:d7p1 = "http://www.sitecore.net/xmlconfig/">ASHQA_web_index</param>
</index>
</indexes>
<indexes d5p1:require = "Standalone or ContentManagement" xmlns:d5p1 = "http://www.sitecore.net/xmlconfig/role/">
<index id = "sitecore_master_index">
<param desc = "core" d7p1:instead = "param[@desc='core']" xmlns:d7p1 = "http://www.sitecore.net/xmlconfig/">ASHQA_master_index</param>
</index>
Обратите внимание, как определения patch
и role
меняются на d7p1
и d5p1
соответственно.
Хотя это допустимый XML, он вызывает проблемы в нашем приложении, которое анализирует XML и ищет правильные термины patch
и role
.
Любые пространства имен, необходимые в преобразованной конфигурации, должны быть определены в базовой конфигурации.
<?xml version = "1.0"?>
<configuration xmlns:role = "http://www.sitecore.net/xmlconfig/role/" xmlns:patch = "http://www.sitecore.net/xmlconfig/">
</configuration>
Несмотря на то, что базовая конфигурация не использует эти пространства имен, они не переносятся должным образом, если не включены. Это также очищает вывод полученной конфигурации, как и ожидалось:
<?xml version = "1.0"?>
<configuration xmlns:xdt = "http://schemas.microsoft.com/XML-Document-Transform" xmlns:role = "http://www.sitecore.net/xmlconfig/role/" xmlns:patch = "http://www.sitecore.net/xmlconfig/">
<sitecore>
<contentSearch>
<configuration>
<indexes>
<index id = "sitecore_web_index">
<param desc = "core" patch:instead = "param[@desc='core']">#{IndexEnvironment}#_web_index</param>
</index>
</indexes>
<indexes role:require = "Standalone or ContentManagement">
<index id = "sitecore_master_index">
<param desc = "core" patch:instead = "param[@desc='core']">#{IndexEnvironment}#_master_index</param>
</index>