從計算的角度來看,它是一種成熟的產品,具有悠久的歷史。
那麼,有什麼我可以新增到該主題的新東西嗎?
xml的處理方式實際上取決於您和您的情況,重點是 情況 。
在乙個極端情況下,您可能會參與乙個舒適的「內部」專案,其中乙個內部系統必須與另乙個系統對話。
在另一種極端情況下,您處於一種xml模式下,這種模式將有一天包含系統和其他國家的系統之間的對話,該系統由一組不同的開發人員編寫,在遙遠的國家/地區。
像往常一樣,為了演示xml的不同方法,我將採用乙個完全人為的和令人髮指的方案,在這種情況下,您正在為pete的perfect pizza
1工作 ,這是一條在大街小巷的小商店,皮特有很大的想法,他要做的第一件事就是自動將前台的訂單傳送到廚房,他要您編寫一些**。 您的大主意是為此使用xml,然後匆忙在紙上寫下您的主意,並與pete達成一致…
<?xml version='1.0' encoding='utf-8'?>
capricciosa
thin
2
pete's是一家非常小的公司,您最終需要對前台訊息生成器和廚房xml解析器**進行編碼。 這是您第一次嘗試xml,並為您提供了廚房解析器**:
public class orderpizza
@test
public void readorderfromxml()
}
它上線了,一切都很好…。
時間流逝, pete的perfect pizza開始擴大。 前台應用程式需要進行一些調整,pete會加入另乙個開發人員。 新開發人員要做的第一件事是確定擺脫xml訊息中的空白字元並向廚房傳送類似以下**的效率更高:
<?xml version='1.0' encoding='utf-8'?>capricciosa
thin
2
<?xml version='1.0' encoding='utf-8'?>
2005-01-01
monthly
0.8 page1/
2006-01-02
weekly
0.8
…但它同樣可以返回以下內容:
<?xml version='1.0' encoding='utf-8'?>
2005-01-01
monthly
0.8page1/
2006-01-02
weekly
0.8
…或這個:
<?xml version='1.0' encoding='utf-8'?>
2005-01-01
monthly
0.8page1/
2006-01-02
weekly
0.8
…而且它們都是有效的,等同的並且包含相同的資訊。 只是它們的字串表示形式有所不同並且放在一起,它們強調了xml的第乙個規則,即xml不是string。
回到pete的perfect pizza ,您想知道當pete進來並要求增強功能時如何修復**。 他希望您改進系統,以便您的xml文件一次可以訂購多個披薩。 您意識到字串處理已經出來了,並且在internet上遇到了sax解析,但是在另一時間卻更多。
1使用google,您會發現全球有四頁的pete's perfect pizza價值。 這個故事是虛構的,與它們的任何相似之處純屬巧合。
2通過閱讀訂單xml,您可能會猜到我最喜歡的披薩是capricciosa,而有史以來最好的披薩可從pizza margherita獲得
可從github上獲得源**:
git:
參考:
XML的方法 第2部分 SAX呢?
而是乙個可以使用字串表示的物件導向的文件模型。今天的部落格使用我的 pete的 完 美披薩 場景 繼續了此討論 如果你還記得的話,皮特只是把頭撞在門上 並要求您增強系統,以便前台可以在單個xml訊息中傳送多個披薩的訂單。您知道您的簡單字串解析 有缺陷,不會割裂芥末,因此您 在xml上使用了 goog...
Hibernate硬事實第1部分
hibernate是乙個廣泛使用的orm框架。許多組織在其專案中使用它來管理其資料訪問層。但是,許多使用hibernate的開發人員並不完全了解其功能的全部內容。這是第1 週後在hibernate中鐵的事實集中series.other職位包括 hibernate硬事實第1部分 本文 hibernat...
MySQL系列,第1部分 Mysql簡介
mysql是乙個關係型資料庫管理系統 由瑞典 mysql ab 公司開發,目前屬於 oracle 公司。mysql 最流行的關係型資料庫管理系統 在 web 應用方面 mysql 是最好的 rdbms relational database management system,關聯式資料庫管理系統 ...