以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 XML工具及XML开发环境 』  (http://bbs.xml.org.cn/list.asp?boardid=7)
----  请问dtd是否适合于支持递归定义  (http://bbs.xml.org.cn/dispbbs.asp?boardid=7&rootid=&id=5648)


--  作者:yubai
--  发布时间:3/14/2004 4:11:00 PM

--  请问dtd是否适合于支持递归定义
俺想用XML来描述一种模式(用于入侵检测)
用BNF大致可这样描述

<Body>::=<Filter>
                |<Body> (then|or|and|if_not) <Body>
                |<Body> such_that <ExternalPred>
<Filter>::=...
<ExternalPred>::=...

请问该怎么写DTD,俺刚开始接触XML,请DX不吝赐教,谢谢!
另外,如果可以这样写的话,是不是解析起来比较麻烦啊


--  作者:admin
--  发布时间:3/15/2004 12:26:00 AM

--  支持的
以下是引用yubai在2004-3-14 16:11:49的发言:
俺想用XML来描述一种模式(用于入侵检测)
用BNF大致可这样描述

<Body>::=<Filter>
                 |<Body> (then|or|and|if_not) <Body>
                 |<Body> such_that <ExternalPred>
<Filter>::=...
<ExternalPred>::=...

请问该怎么写DTD,俺刚开始接触XML,请DX不吝赐教,谢谢!
另外,如果可以这样写的话,是不是解析起来比较麻烦啊



--  作者:yubai
--  发布时间:3/15/2004 8:40:00 AM

--  
谢谢,能否给个例子说明一下啊
--  作者:yubai
--  发布时间:3/20/2004 10:26:00 AM

--  
继续请教!!!
--  作者:admin
--  发布时间:3/20/2004 11:39:00 AM

--  是否记得HTML里,<TABLE>里可以包含<TD>,<TD>里又可以包含<TABLE>
那么来看看HTML的DTD是如何书写来支持这一递归嵌套的吧:

<!ELEMENT TABLE - -
     (CAPTION?, (COL*|COLGROUP*), THEAD?, TFOOT?, TBODY+)>
<!ELEMENT CAPTION  - - (%inline;)*     -- table caption -->
<!ELEMENT THEAD    - O (TR)+           -- table header -->
<!ELEMENT TFOOT    - O (TR)+           -- table footer -->
<!ELEMENT TBODY    O O (TR)+           -- table body -->
<!ELEMENT COLGROUP - O (COL)*          -- table column group -->
<!ELEMENT COL      - O EMPTY           -- table column -->
<!ELEMENT TR       - O (TH|TD)+        -- table row -->
<!ELEMENT (TH|TD)  - O (%flow;)*       -- table header cell, table data cell-->

<!ENTITY % flow "%block; | %inline;">

<!ENTITY % block     "P | %heading; | %list; | %preformatted; | DL | DIV | NOSCRIPT |
      BLOCKQUOTE | FORM | HR | TABLE | FIELDSET | ADDRESS">


以下是引用yubai在2004-3-20 10:26:48的发言:
继续请教!!!


W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
46.021ms