Можно ли обнулить целое число в классе, созданном XSD?

Вот ситуация: у меня есть клиент, который выдал мне схему XML, и мое программное обеспечение преобразует их записи с разделителями табуляции в XML.

Одно из этих полей, "файл" -sequence, "вводится в схеме как целое число. Однако клиенту клиента (цель интеграции) требуется это целое число с дополнением нулями и длиной 4 цифры (EG, 0001 ) в фактическом выходном XML.

Я выполняю вывод с использованием сериализации, которая выполняется автоматически и безболезненно. Однако, поскольку поле набирается в XSD как целое число, поле последовательности файлов имеет вид 1 . В этом есть смысл. :)

Пока что я сузил возможные ответы до трех вариантов:

  1. Отредактируйте схему и измените тип на строковый. Обнулить порядковый номер после обновления поля. Оборотная сторона: я должен помнить об этом каждый раз, когда цель интеграции изменяет схему (а они уже были примерно полдюжины раз).

  2. Отказаться от сериализации XML, вручную генерируя XML в коде. Оборотная сторона: много работы, возможно, подверженной ошибкам, серьезный запах кода (для меня).

  3. Сериализуйте в поток в памяти, получите из него необработанный XML, добавьте туда целое число. Минусы: кажется действительно грязным, еще много работы.

Есть ли другие варианты? Если нет, то какой вариант является правильным? (Я думаю, что вариант 1, вероятно, самый чистый.)

1
задан John Rudy 4 October 2010 в 14:45
поделиться