我有一个架构文件,它已经变得很大,因为它具有针对多种语言的预定义字段。并非所有使用者都会使用所有字段(实际上,大多数字段只会使用1-2种语言),但是我们需要为客户设置合理的默认值。确实不是糟糕,但是如果我可以按语言划分架构,则管理起来会容易得多。
是否可以将模式文件导入另一个文件?像
<schema name="catalog-config" version="1.6">
...
<import file="./lang/spanish.xml"/>
...
</schema>
答案 0 :(得分:3)
使用XInclude
。
您的schema.xml可能已经包含xi:include
个代码块(不加注释),例如。
<fields>
<!-- regular/dynamic fields definitions... -->
</fields>
<xi:include href="schema_fields_spanish.xml" xmlns:xi="http://www.w3.org/2001/XInclude">
<xi:fallback></xi:fallback>
</xi:include>
您可以在用于TYPO3搜索的Solr配置中看到一个示例(例如for Korean)。
但是请注意,最新的Solr版本使用的是托管模式,它会在进行任何更改时重写。这意味着所有XIncludes将被插入并重新排列。如果您对此不满意,并且希望对架构文件进行版本控制,则可以使用Schema Factory configuration在solrconfig.xml中禁用它。