情況如下:我有一位客戶向我發佈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