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