DTD问题(一个或另一个[或两者])

时间:2009-01-20 00:16:37

标签: xml xsd dtd

对于我的任务,我被分配了创建DTD以表示虚拟地理藏宝游戏的任务。

我遇到一个问题,表示可以是gps或wifi或两者的位置,但不是每个都有一个。我怎么代表这个?我能想到的最接近列表如下。

<!ELEMENT location ((gps|wifi)+)> 

完整的DTD就在这里。

<!ELEMENT game (information, caches)>
    <!ELEMENT information (gameID, gameName, gameDescription, date, author)>
        <!ELEMENT gameID (#PCDATA)>
        <!ELEMENT gameName (#PCDATA)>
        <!ELEMENT gameDescription (#PCDATA)>
        <!ELEMENT date (#PCDATA)>
        <!ELEMENT author (#PCDATA)>
    <!ELEMENT caches (cache+)>
        <!ELEMENT cache (cacheID, cacheName, location, value)>
            <!ELEMENT cacheID (#PCDATA)>
            <!ELEMENT cacheName (#PCDATA)>
            <!ELEMENT location ((gps|wifi)+)>
                <!ELEMENT gps (longitude, latitude)>
                    <!ELEMENT latitude (#PCDATA)>
                    <!ELEMENT longitude (#PCDATA)>
                <!ELEMENT wifi (#PCDATA)>
            <!ELEMENT value (#PCDATA)>

每个游戏都包含一些有关它的信息和一些缓存。

提前干杯。

1 个答案:

答案 0 :(得分:1)

试试这个:

<!ELEMENT location ((gps|wifi|(gps,wifi)|(wifi,gps)))>