я не могу только использовать часть ресурса своего приложения?
Да, но потребность быть собственными ресурсами, а не ресурсами.NET (т.е. использование rc.exe, собственный компилятор ресурса).
The default way of saving XML files is Way 2, as a lot of XML files use that markup.
But Personally I prefer Way 1 for markup over the others.
It produces way smaller files in terms to readability and linecount, gives a good overview of the items contained in another, bigger element and you don't have to bother creating an end-element tag for each item used in the file (except the container items).
But at the ent of the day, it comes to what YOU prefer and are comfortable with.
Еще одна альтернатива, которая кажется мне более в духе XML (при условии, что ваши ключи являются действительными именами QNames, а ваши значения не включают ничего, что могло бы привести к неправильному формату XML):
<k1>val1</k1>
<k2>val2</k2>
<k3>val3</k3>
The Way 3 is used by the 'java properties' files. Here is its DTD:
<!ELEMENT properties ( comment?, entry* ) >
<!ATTLIST properties version CDATA #FIXED "1.0">
<!ELEMENT comment (#PCDATA) >
<!ELEMENT entry (#PCDATA) >
<!ATTLIST entry key CDATA #REQUIRED>
In the end I think it's a matter of preference and not best practices (unless somebody can give me an example why one is superior to the other). I prefer to use way 3 and way 1.
You could use a Dictionary for this purpose.
Here is an example: http://msdn.microsoft.com/en-us/library/xfhwa508.aspx
Пока ключи будут действительными именами XML, а значения имеют простое текстовое представление, я сделаю это следующим образом:
<map key1="value1" key2="value2" key3="value3".../>
поскольку атрибуты по определению отображение имен в значения, в которых порядок сопоставления не важен - точно так же, как карта / словарь / хеш-таблица.
Есть масса случаев, когда вы не можете сделать это таким образом - if 123
- допустимый ключ, например, или если значения (или ключи) являются сериализованными объектами. На самом деле это нормально, если значения являются сериализованными объектами, если вы не возражаете, что они будут отображаться в значениях атрибутов с экранированной разметкой.
XML is flexible. You can choose whatever you want. I would choose 3. I think 3 is most flexible.