В C # есть ли способ сгенерировать XDocument с использованием короткого префикса вместо полного пространства имен для каждого узла?

Я просто пытаюсь сделать свой XML немного более аккуратным и менее громоздким. Я знаю, что в C # можно сделать что-то вроде этого:

XNamespace ds = "http://schemas.microsoft.com/ado/2007/08/dataservices";
new XElement(ds + "MyDumbElementName", "SomethingStupid");

И получить XML-аналог этого:

<root>
    <MyDumbElementName xmlns="http://schemas.microsoft.com/ado/2007/08/dataservices">
        SomethingStupid
    </MyDumbElementName>
</root>

Вместо чего-то вроде этого:

<root xmlns:ds="http://schemas.microsoft.com/ado/2007/08/dataservices">
    <ds:MyDumbElementName>
        SomethingStupid
    </ds:MyDumbElementName>
</root>

Очевидно, что вторая версия намного красивее, легче читается и компактна. Есть ли способ сгенерировать XDocument эквивалент компактной версии без вызова Parse ("..." )?

Вы можете рискнуть и ответить «Нет», и в этом случае я считаю, что справедливо ждать ответа от других людей, и если никто не даст достойного ответа, я приму ваш «Нет», в противном случае, если кто-то ответит, я отмечу «Нет». Я надеюсь, что и вам это покажется справедливым.

РЕДАКТИРОВАТЬ: Возможно, мне следует быть более конкретным и сказать, что я хочу иметь возможность использовать несколько пространств имен, а не только одно.

7
задан John Saunders 3 September 2012 в 19:36
поделиться