情况如下:我有一位客户向我发布XML模式,我的软件将他们的记录从制表符分隔转换为XML。我可以在XSD生成的类中填零整数吗?
其中一个字段“文件序列”在模式中键入为整数。但是,客户端(集成目标)需要实际输出XML中的零填充整数和4位数字长整数(EG,<file-sequence>0001</file-sequence>
)。
我输出使用序列化,这是很好,自动和无痛。但是,由于该字段在XSD中以整数形式输入,因此文件序列字段为<file-sequence>1</file-sequence>
。这是有道理的。 :)
到目前为止,我已经收窄可能的答案到三个选项:
编辑模式和类型更改为字符串。在更新字段时将填充序号填零。下行:我必须记得在集成目标改变模式的任何时候这样做(因为他们已经有大约6次了)。
Forego使用XML序列化,在代码中手动生成XML。下行:很多工作,可能容易出错,严重的代码异味(对我来说)。
序列化为内存流,获取原始XML,填充整数。缺点:感觉真的很脏,仍然很多工作。
还有其他的选择吗?如果不是,这里选择哪种方法是正确的方法? (我想选项1可能是最干净的。)
这就是我最终做的。另一方面,由于我使用XSD生成类,如果我在下次更改模式时忘记了关键的编辑步骤,我至少会收到构建错误。 – 2010-10-05 01:50:51