2013-07-23 86 views
1

我期待在這片XML(可內DTD文件):xml DTD正確性,爲什麼在聲明XML節點時我們會在圓括號中使用圓括號?

<!ELEMENT entry ((node1?, node2?, node3?), node4, node5?, (node6 | node16)?, 
(node17, node18?, (node19, node20)?)*, node21?, node22?, node23*, node24*, 
((node25) | (node26?, node27?))?, node28*, node29?, node30*, node31*)> 

什麼是具有圓形括號(node1?, node2?, node3?)背後的原因?這是否意味着node1和node2和node3是可選的? - >但它們不是可選的,因爲它們已經添加了問號?

回答

2

括號用於分組。分組可以讓你在模式的一部分上放置限定符,如(node6 | node16)?,或者控制優先級,就像(node25) | (node26?, node27?)一樣。在(node1?, node2?, node3?)的情況下,括號是完全多餘的。這意味着與node1?, node2?, node3?相同的東西。

有時候人們會添加額外的括號,因爲他們認爲它使得事情更容易閱讀,或強調模式的相關部分。有時候人們會因爲沒有很好的理由而打字太多。

+0

謝謝!我想到了這些方面。 – user2568737

相關問題