Spring's XSD позволяет <constructor-arg>
содержать любой XML через:
<xsd:element name="constructor-arg">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="description" minOccurs="0" />
<xsd:choice minOccurs="0" maxOccurs="1">
<xsd:element ref="bean" />
<xsd:element ref="ref" />
<xsd:element ref="idref" />
<xsd:element ref="value" />
<xsd:element ref="null" />
<xsd:element ref="list" />
<xsd:element ref="set" />
<xsd:element ref="map" />
<xsd:element ref="props" />
<!-- Any XML -->
<xsd:any namespace="##other" processContents="strict" />
</xsd:choice>
</xsd:sequence>
...
</xsd:complexType>
</xsd:element>
Где атрибуты processContents
могут иметь одно из трех значений
строгий: должно быть объявление верхнего уровня для доступного элемента, или элемент должен иметь xsi:type
, и элемент должен быть · действительным · в зависимости от ситуации.
Итак, если в вашем XML-файле конфигурации есть схема, и вы правильно импортируете ее, это должно работать.
Затем вам необходимо зарегистрировать PropertyEditor для вашего XML, используя CustomEditorConfigurer
Надеюсь, это поможет