Мне нужно выразить в xml список действий, которые может выполнять моя программа. Проблема в том, что некоторые действия требуют дополнительных элементов, а другие нет. Например, если моя программа должна выполнять действия с файлами: если я удаляю единственное, что меня интересует, это путь, если программа выполняет копирование ... снова мне нужен путь, но также и путь назначения .. Как сделать написать XML-файл с такой структурой?
Напишите xml-файл с элементами в зависимости от типа выполняемого действия
Ответы (1)
Что-то вроде этого?
<actions>
<action name="FileCopy">
<params>
<param name="SourcePath" value="c:\source.txt"/>
<param name="DestPath" value="c:\dest.txt"/>
</params>
</action>
<action name="FileDelete">
<params>
<param name="DeletePath" value="c:\source.txt"/>
</params>
</action>
<action name="ReloadCache"/>
<action name="Alert">
<params>
<param name="Message" value="Done!"/>
</params>
</action>
</actions>
Конечно, вы можете удалить уровень params
и поместить теги param
непосредственно под тегом action
, однако предлагаемая структура позволит добавлять другие типы узлов под тегом action
(например, обратные вызовы проверки), не нарушая слишком много вещей.
person
Maxim Gueivandov
schedule
17.01.2011
Хотя приведенный выше пример работает как есть, он может не стать полностью гибким в будущем. Это очень спорная тема, но многие рекомендуют ограничивать атрибуты метаданными, касающимися содержимого элемента, а не данными значений: например: ´ ‹единицы веса = кг› 75 ‹/weight› ´ Подробнее см. В этом сообщении. обсуждение: stackoverflow.com/questions / 521454 /
- person James Walford; 17.01.2011
@James: по крайней мере, так структурированы стандартные разделы .NET
appSettings
conf (<add key="..." value="..."/>
).
- person Maxim Gueivandov; 18.01.2011
правда, хотя это не обязательно считается хорошей поддержкой :-) В любом случае это не совсем обсуждение, а просто общее наблюдение, так что +1 за рабочий ответ.
- person James Walford; 18.01.2011