Очень практическая причина состоит в том, что IE 6 не позволяет Вам изменить размеры шрифта, если он определил пкс использования, тогда как он делает при использовании относительной единицы, такой как они или проценты. Разрешение пользователю изменить размеры шрифта очень плохо для доступности. Хотя это в состоянии упадка, существует все еще много IE 6 пользователей там.
Вот небольшой пример, который создает желаемый результат:
using System;
using System.Xml.Linq;
class Program
{
static void Main()
{
XNamespace ci = "http://somewhere.com";
XNamespace ca = "http://somewhereelse.com";
XElement element = new XElement("root",
new XAttribute(XNamespace.Xmlns + "ci", ci),
new XAttribute(XNamespace.Xmlns + "ca", ca),
new XElement(ci + "field1", "test"),
new XElement(ca + "field2", "another test"));
}
}
Надеюсь, вы получите некоторую полезную информацию из этой темы - Пространство имен по умолчанию XElement для атрибутов обеспечивает неожиданное поведение
РЕДАКТИРОВАТЬ:
Другой FAQ по адресу - http://social.msdn.microsoft.com/Forums/en-US/xmlandnetfx/thread/c0648840-e389-49be-a3d2-4d5db17b8ddd
XNamespace ci = "http://somewhere.com";
XNamespace ca = "http://somewhereelse.com";
XElement root = new XElement(aw + "root",
new XAttribute(XNamespace.Xmlns + "ci", "http://somewhere.com"),
new XAttribute(XNamespace.Xmlns + "ca", "http://somewhereelse.com"),
new XElement(ci + "field1", "test"),
new XElement(ca + "field2", "another test")
);
Console.WriteLine(root);
Это должно вывести
<root xmlns:ci="http://somewhere.com" xmlns:ca="http://somewhereelse.com">
<ci:field1>test</ci:field1>
<ca:field2>another test</ca:field2>
</root>