Возможно ли разделить файл свойств xml на подразделы?

#java

#java

Вопрос:

С помощью метода Properties.LoadFromXML я могу получить файл свойств xml. Возможно ли разделить этот файл на подразделы, такие как, например:

 <properties>
  <entry key="normalprop">normal value</entry>
  <aSubsection key="subname">
       <entry key="suboption">suboption value</entry>
       <entry key="suboption">suboption value</entry>
  </aSubsection>

<properties>
  

Ответ №1:

Из Java 7 Javadoc :

XML-документ должен иметь следующее объявление DOCTYPE:

<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">

Определение DOCTYPE используется Properties API для проверки формата файла и выдачи исключения, если он не подходит. Если вы прочтете это, то увидите, что оно допускает только элементы <entry> и <comment> внутри <properties> сегмента.

Вам придется написать свой собственный код для обработки разделов, или вы можете использовать библиотеку Commons Configuration, которая допускает иерархические свойства.

Ответ №2:

Я думаю, что для вас есть две альтернативы:

  1. Напишите пользовательское свойство, подобное inlcude. Если вы обнаружите какие-либо свойства, подобные этому, прочитайте дополнительные файлы свойств до -после того, как вы проанализировали текущий.
  2. Используйте альтернативу, например, конфигурацию Apache Commons, которая поддерживает конфигурацию, подобную включению и переопределению.