簡體   English   中英

xml中的DTD如何使使用Java DOM解析起來更容易?

[英]how does a DTD inside an xml makes it easier to parse using java DOM?

嗨,朋友們,我已經分配了一個查詢計划項目。 在這個項目中,如果輸入像查詢這樣的sql,我必須將其切片並轉換為xml。 我做了這部分,但是我需要為此XML添加一個DTD,因為如項目所述,它有助於解析(使用Java DOM)此查詢並輕松查找選擇-查詢中指定的重復項和聯接。

我不明白,使用DOM解析xml並找到該xml的不同部分時,DTD有什么幫助?

我可以使用DOM在沒有dtd的情況下找到xml的不同部分。有人可以給我和區別的例子嗎?

謝謝

DTD告訴解析器允許使用哪些標簽,以及應在文檔中的何處期望它們。 沒有DTD的情況下,解析器將讀取標簽,但不知道該標簽是否為預期標簽,或者是否位於正確的位置。

如果您使用SAX或DOM解析XML,則沒關系,沒有解析器都不會知道您的標簽是預期的還是意外的,而沒有DTD(或者其中一種是XSD,RelaxNG等的最新替代品)。

DTD不能幫助解析XML,但是它通過定義有關文檔的某些規則來提供基本的驗證。 如果文檔違反了驗證規則,則解析將失敗(或生成警告消息,該消息應取決於驗證者的配置)。 他們可能稱其為“有用的”,因為您的DOM導航代碼將能夠對文檔的結構做出更好的假設,而不必擔心出現不必要的失敗。

他們可能希望您包含DTD,因為否則必須從PUBLIC / SYSTEM文檔標識符中識別DTD,並將其托管在某個地方。 或者,他們應該在源代碼中具有預定義的DTD(也是該“托管於某處”的版本),如果相同的代碼必須在不事先了解結構的情況下處理不同的文檔,則這可能不是一個選擇。

關於查找重復項更容易的說法可能是因為他們計划在重復項的情況下將文檔扔掉; 不確定不知道切片和車削的細節,這對於聯接有多大幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM