Вот ситуация: у меня есть клиент, который выдал мне схему XML, и мое программное обеспечение преобразует их записи с разделителями табуляции в XML.
Одно из этих полей, "file-sequence", вводится в схеме как целое число. Однако клиент клиента (цель интеграции) хочет, чтобы это целое число было дополнено нулями и содержало 4 цифры (EG, <file-sequence>0001</file-sequence>
) в фактическом выходном XML.
Я выводлю с использованием сериализации, которая хороша, автоматична и безболезненна. Однако, поскольку в XSD это поле введено как целое число, поле последовательности файлов выглядит как <file-sequence>1</file-sequence>
. Что имеет смысл. :)
Пока что я сузил потенциальные ответы до трех вариантов:
Отредактируйте схему и измените тип на строку. Обнулить порядковый номер при обновлении поля. Недостаток: я должен помнить, чтобы делать это в любое время, когда цель интеграции изменяет схему (поскольку они уже около полдюжины раз).
Откажитесь от использования XML-сериализации, вручную создав XML в коде. Недостаток: большая работа, возможно, подверженная ошибкам, серьезный запах кода (для меня).
Сериализация в поток в памяти, извлечение из него необработанного XML, добавление туда целого числа. Недостатки: чувствует себя очень грязно, все еще много работы.
Есть ли другие варианты? Если нет, какой вариант здесь является правильным способом сделать это? (Я думаю, что вариант 1, вероятно, самый чистый.)