XML у Delphi та недійсні простори імен (xmlns)

Формат документа – простіше нікуди:
Створити такий документ – справа п'яти хвилин. Єдиний момент, який слід враховувати – це оголосити простору імен (xmlns) у кореневому вузлі, інакше Google не приймає такий документ і виникає помилка. У своїй роботі я найчастіше використовую для роботи з інтерфейсом XMLIXMLDocument. На цей раз вирішив вчинити також. Ось як виглядав код на самому початку:
Аналогічно додавалися і вузлиgCal:. У результаті отримуємо такий документ:
Зверніть увагу на порожні атрибути xmlns у перших двох вузлів. Відправляючи такий документ Googl'у отримуємо помилку "Календар, що додається, не має назви", тобто. якраз вузла title.
Якщо прибираємо з кореневого елемента:
То вузли title і summary записуються нормально, але знову ж таки Google посилає такий документ у піч. Щоб хтось із Вас, шановні читачі, не робив теж “танці з бубном” при роботі з XML (все-таки цей пост я пишу більше для новачків у ледве роботи з XML) я перерахуюте, що робитимарно. Отже, при використанніIXMLDocument Вине позбавитеся порожніх атрибутів xmls у вузлі, якщо:
1. Спробуйте додати простору імен після того, як згенеруєте всі вузли. Як тільки ви впишіть простір імен у кореневий елемент, Ви автоматично отримаєте той самий порожній xmlns=””;
2. Спробуйте видалити атрибут із вузла. Цей варіант, на простоту, що здається, теж не проходить. Приклад видалення атрибуту з вузла:
Під час виконання цього коду функція Remove поверне Вам 1, тобто. як би атрибут видалений ... а документ отримаємо знову "кострубатий".
3. Не допомогли маніпуляції з набором властивостей Options у документа.
Якщо Ви мали намір використати якийсь варіант із запропонованих вище – не використовуйте. Все одно не допоможе. Зачаток вирішення проблеми нагуглився на одному з буржуазних форумах, присвячених роботі з MSXML в C++. У Delphi вирішення проблеми з порожніми xmlns вирішується так (на прикладі того ж документа):
Якщо виконати цей код, отримаємо нормальний правильний XML-документ, без порожніх xmlns. Як виявилося, цей варіант роботи з вузлами є єдино правильним, коли в документі використовуються простори імен. Сподіваюся ця нотатка допоможе комусь уникнути зайвих проблем при роботі з XML у Delphi.