第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何跳過不使用 JAXB 驗證的節(jié)點

如何跳過不使用 JAXB 驗證的節(jié)點

回首憶惘然 2021-10-27 16:20:02
我的 xml 文件是這樣的:<Customers>    <Customer>        <name>foo</name>        <age>18</age>        <sexe>Male</sexe>    <Customer>    <Customer>         <name>foo1</name>         <age>25</age>         <sexe>Female</sexe>    <Customer>        .        .        .        .        .        .</Customers>這是一個巨大的 XML 文件(超過十萬個客戶),我需要將其解組然后放入我的數(shù)據(jù)庫中,這是每月的任務(wù)。我需要對其進行一些驗證,然后如果客戶正確將其保存到數(shù)據(jù)庫中,如果客戶的任何數(shù)據(jù)不正確,則記錄錯誤并跳過該客戶。我正在考慮將我的驗證規(guī)則寫入 xsd,然后在使用ValidationEventHandler解組期間忽略整個客戶。任何人都知道我該怎么做?還是有其他解決辦法?我已經(jīng)在網(wǎng)上搜索了幾個小時,但沒有找到任何答案。
查看完整描述

1 回答

?
函數(shù)式編程

TA貢獻1807條經(jīng)驗 獲得超9個贊

變體 1 - XML 方法

常見的 XML 處理方法是將驗證解析分開。驗證步驟通常以 XML Schema 為目的。

  1. XML 驗證始終應(yīng)用于文檔級別。也許之前拆分文檔(例如,每條記錄一個 DOM)對您的情況有所幫助。請參閱:如何使用 java 將 XML 文件拆分為多個 XML 文件

  2. 驗證 - 您可以使用trang 之類的工具來創(chuàng)建基本的 XSD

  3. 從源文檔中整理出有問題的條目(手動任務(wù) - 責怪數(shù)據(jù)提供者?

  4. 只反序列化好的

變體 2 - 純 Java

也可以使用像Jackson FasterXML這樣的庫來創(chuàng)建 XML 數(shù)據(jù)到 Java 類的相當松散的映射。在此處查找有關(guān)如何僅讀取列表中每個條目的某些屬性的示例。

  1. 將所有數(shù)據(jù)松散地反序列化為標準 POJO

  2. 在附加的 java 后處理步驟中驗證每個 POJO。

變體 3 - 有所不同

查找每個客戶的字節(jié)偏移量并將每個客戶讀取到準備好的 POJO。記錄異常并繼續(xù)下一個。查找此處描述的完整方法。

  1. 創(chuàng)建字節(jié)偏移列表

  2. 對你的 POJO 進行嚴格的反序列化


查看完整回答
反對 回復 2021-10-27
  • 1 回答
  • 0 關(guān)注
  • 139 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號