XML文档类型定义中<!Element>里+、*标识符含义咨询
关于XML DTD中元素声明的
+和*符号含义 嘿,这俩符号是XML DTD里的量词,用来指定子元素的出现次数规则,结合你给出的<!Element Player (Name+,Race*)>例子,给你掰明白:
+符号:代表前面的元素必须出现至少1次(1次或多次)
对应例子里的Name+:意思是<Player>元素里必须包含至少一个<Name>子元素。比如合法的写法可以是:<Player> <Name>Link</Name> </Player>也可以是多个
<Name>:<Player> <Name>Link</Name> <Name>Hero of Hyrule</Name> </Player>但如果
<Player>里没有任何<Name>,那就是不符合DTD规则的。*符号:代表前面的元素可以出现0次或多次(可选,想加多少加多少,不加也没问题)
对应例子里的Race*:意思是<Player>里可以完全没有<Race>元素,也可以有一个或者多个。比如合法的写法:<Player> <Name>Zelda</Name> </Player>或者带一个
<Race>:<Player> <Name>Zelda</Name> <Race>Hylian</Race> </Player>甚至多个
<Race>(虽然实际场景可能少见,但DTD允许):<Player> <Name>Ganon</Name> <Race>Demon</Race> <Race>Gerudo</Race> </Player>
顺便补个小知识点:DTD里还有个常用量词?,表示元素出现0次或1次(也就是可选,且最多只能有一个),比如Age?就意味着<Age>子元素可以有或者没有,但不能出现多次。
内容的提问来源于stack exchange,提问作者artisticaligator
相关产品推荐
相关产品推荐

