请教yysun关于dfwdtd(0分)

G

gutian

Unregistered / Unconfirmed
GUEST, unregistred user!
不知道你的dfwdtd有没有新的版本,我下载了dtd0.2,在xmlspy中打开,提示:
not well-formed。
我想用php来开发一个基于xml的类似delphibbs的论坛。我想在论坛分类中增加属性,
也就是说对于不同的论坛可能有不同的操作。
希望得到你的指点。谢谢
 
dfwml 0.3 正在制作中,尚未完成。
奇怪,我的 dtd 就是用 xmlspy 生成的,是哪个文件出的错?
 
xmlspy 如何生成dtd,孙老师给指点一下,我对这个一头雾水,要不介绍些
入门教材?
 
不对的,每个文件读入都有问题。我用的是xmlspy3.5,因为由错误,所以至能使用text的
浏览方式,不能使用grid的浏览方式。
但是我看看dtd和xml例子,好像没有什么问题。真是奇怪
 
<?xml version="1.0" encoding="gb2312"?>
<!-- 贴子 DTD -->
<!ELEMENT DFWML (HEADER, Q+, ERROR)>
<!ATTLIST type CDATA #REQUIRED>
[red][/red]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~在type前加入DFWML则通过
<!ELEMENT HEADER (DATEFROM, DATETO, RecCount)>
<!ELEMENT DATEFROM (#PCDATA)>
<!ELEMENT DATETO (#PCDATA)>
<!ELEMENT RecCount (#PCDATA)>
<!ELEMENT Q (from, datetime, parent)>
<!ATTLIST Q
ID CDATA #REQUIRED
>
<!ELEMENT datetime (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT parent (#PCDATA)>
<!ELEMENT ERROR (#PCDATA)>
 
同时,我看过你的xml的例子,好像并不是从dtd产生出来的,是么。这样的话,dtd的定义
有什么很大的意义么
 
我觉得如果按照你的dtd,xml文件应该是:
代码:
<?xml version="1.0" encoding="gb2312"?>
<!-- edited with XML Spy v3.5 NT (http://www.xmlspy.com) by chenp (css) -->
<!DOCTYPE DFWML SYSTEM "D:/Documents and Settings/chenp/桌面/source/20010917/delphidtd/rooms.dtd">
<DFWML type="基础类">
	<ROOM ID="1">基础类-数学	</ROOM>
	<ROOM ID="2">基础类-物理</ROOM>
</DFWML>
 
您说得正确!我们是由 xml 生成的 dtd,而不是由 dtd 生成 xml。
搞本论坛页面设计时,想到的是:需要什么样的数据,放到 xml 的哪部分,于是就编程从
数据库得到这些数据,生成 xml。这样比较简单快捷。
有了 xml,才考虑生成 DTD。DTD 有两个作用:验证和作为标准公布。
原来打算用 dtd 作 xml 验证,后来发现简直是自讨苦吃。稍有一点不对就报错。
所以干脆不做验证了。
只剩下作为一种对外的标准一个作用的时候,DTD 的更新就相对慢了,只能等 dfwml 公布
的时候才做。
我检查了 xml_dtd_0.2.zip,发现其中存在 xml 和 dtd 不配套的问题,有些 xml 是 0.1
版本的,而 dtd 是 0.2 版本的。为此,我重新生成了最新的 0.3 版本的全部 xml 文件
供大家参考: http://www.delphibbs.com/dfwml/dfwml-0.3-xml.zip
如果您愿意为这些 xml 生成 DTD 或者 schema,请 email 给我: mailto:yysun@263.net
 
好的,还有一点,我想dtd作为xml的验证,对于速度的影响是否应该考虑?我看了你的dfw
源代码,发现每组asp文件都有两个文件,我想知道这是基于什么的考虑
 
目前我们采用客户端 xml 解析,所以即使采用 DTD 验证,效率不会有太大影响。
但是,问题就是我说的不能错一点点,否则就通不过验证了。有时候这样也够灵活了。
用两个文件是为了实现 MVC 结构。以大富翁论坛的问题列表 listq.asp 为例,其中:
Module - listq_.asp 从数据库获取数据,生成 xml (dfwml)。
View - listq_1.xsl, listq_2.xsl,实现 xml 的数据显示。
Controller - listq.asp 控制 Module,选择 View。
 
哦,不错,不过我如果使用php的话,就可以使用专门的类来处理数据了,比asp好像还
舒服点。呵呵,一管之见。dtd如果直接使用xmlspy的工具的话,很方便就可以生成了。
 
asp 的 vbscript 也可以做类 (class)。
不过 php 也不错,可以做字符串替换,例如:
$mytype="问题列表";
$topline= "<DFWML type=/"$mytype/">";
echo($topline);
结果就是:<DFWML type="问题列表">,很方便。
用 XML Spy 生成的 DTD,还必须经过人工编辑,它定义的类型、出现次数,都得一一改过。
 
请问yysun,如果我想显示mathml通过html,该如何操作,(我想做一个mathml的编辑器)
 
接受答案了.
 
顶部