以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 DTD/XML Schema 』  (http://bbs.xml.org.cn/list.asp?boardid=23)
----  求助把内部DTD转化为外部DTD和schema  (http://bbs.xml.org.cn/dispbbs.asp?boardid=23&rootid=&id=26250)


--  作者:huobing2005
--  发布时间:1/9/2006 12:27:00 AM

--  求助把内部DTD转化为外部DTD和schema
我用的是内部DTD,请帮忙改一下stu-marks.xml, 变为带外部DTD和SCHEMA的.多谢了.我试着改写,但总有问题.
[B]stu-marks.xml
<?xml version="1.0" encoding="gb2312" ?>
<?xml-stylesheet type="text/xsl" href="stu_marks.xsl" ?>
[color=#FF0000][color=#FF0000][color=#FF0000][color=#FF0000][color=#FF0000][color=#FF0000][color=#FF0000][color=#FF0000][color=#FF0000][color=#FF0000][color=#FF0000][color=#FF0000][color=#FF0000][color=#FF0000][color=#FF0000][color=#FF0000][color=#FF0000][color=#FF0000][color=#FF0000][color=#FF0000][color=#FF0000][color=#FF0000][color=#FF0000][color=#FF0000][color=#FF0000][color=#FF0000][color=#FF0000][color=#FF0000][color=#FF0000][color=#FF0000][color=#FF0000][color=#FF0000][color=#FF0000][color=#FF0000][color=#FF0000][color=#FF0000][color=#FF0000]<!DOCTYPE transcript[
<!ELEMENT transcript (item)>
<!ELEMENT item (name,mark*,contact_method)>
<!ELEMENT name (#PCDATA)>
<!ATTLIST name student_id ID #REQUIRED
               ename CDATA  #REQUIRED>
<!ELEMENT mark (#PCDATA)>
<!ATTLIST mark subject CDATA #REQUIRED>
<!ELEMENT contact_method (email?,phone?,address?)>
<!ELEMENT email (#PCDATA)>
<!ELEMENT phone (#PCDATA)>
<!ELEMENT address (#PCDATA)>
]>
<transcript>[/color][/color][/color][/color][/color][/color][/color][/color][/color][/color][/color][/color][/color][/color][/color][/color][/color][/color][/color][/color][/color][/color][/color][/color][/color][/color][/color][/color][/color][/color][/color][/color][/color][/color][/color][/color][/color]<item>
 <name student_id="1000001" ename="zhang">张三</name>
 <mark subject="XML">89</mark>
 <mark subject="算法分析">93</mark>
 <mark subject="高级数据库">92</mark>
 <mark subject="程序设计理论">89</mark>
 <mark subject="英语">89</mark>
 <contact_method>
  <email>zhangsan@163.com</email>
  <phone>13548247816</phone>
  <address>中国广州</address>
 </contact_method>
</item>
<item>
 <name student_id="1000002" ename="li">李四</name>
 <mark subject="XML">80</mark>
 <mark subject="算法分析">95</mark>
 <mark subject="高级数据库">89</mark>
 <mark subject="程序设计理论">97</mark>
 <mark subject="英语">87</mark>
 <contact_method>
  <email>lisi@eyou.com</email>
  <phone>13464762975</phone>
  <address>中国广州</address>
 </contact_method>
</item>
<item>
 <name student_id="1000003" ename="wang">王五</name>
 <mark subject="XML">94</mark>
 <mark subject="算法分析">93</mark>
 <mark subject="高级数据库">96</mark>
 <mark subject="程序设计理论">92</mark>
 <mark subject="英语">91</mark>
 <contact_method>
  <email>wangwu@126.com</email>
  <phone>13264762978</phone>
  <address>中国广州</address>
 </contact_method>
</item>
</transcript>


stu_marks.xsl[/B]

<?xml version="1.0" encoding="gb2312" ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:template>
<html>
<head><title>成绩单</title>
<script language="vbs">
sub display(i)     '显示个人信息菜单
     set source=window.event.srcElement
     if i=0 then
     source.style.color="blue"
     barname=source.id+"bar"   
     set menu=document.all(barname)
     menu.style.left=source.offsetwidth+table1.offsetleft
     menu.style.top=source.offsettop+source.offsetheight+50
     menu.style.visibility="visible"         
     else
     source.style.visibility="visible"
     end if     
end sub
sub hide(i)        '隐藏个人信息菜单
     set source=window.event.srcElement
     if i=0 then
     source.style.color="black"
     barname=source.id+"bar"   
     set menu=document.all(barname)
     menu.style.visibility="hidden"
     else
     source.style.visibility="hidden"
     end if
end sub
</script>
<!--设定个人信息菜单的样式-->
<style type="text/css">
  .menu
{color:white;
  font-weight:bold;
  font-size:12;
  position:absolute;
  visibility:hidden;
  width:150;
  background-color:green;}
</style>
</head>
<body bgcolor="teal">
<center><h1>成绩单</h1></center>
<!--以表格形式显示成绩单-->
<table id="table1" border="1" bgcolor="white" align="center" cellspacing="5" cellpadding="3">
 <xsl:for-each select="transcript/item" order-by="name">
 <tr>
  <td><font color="teal"><b>姓名\科目</b></font></td>
  <xsl:for-each select="mark">
  <td><font color="teal"><xsl:value-of select="@subject" /></font></td>
  </xsl:for-each>
 </tr>
 <tr>
  <td style="cursor:hand;" onmouseover='display(0)' onmouseout='hide(0)'>
  <xsl:attribute name="ID"><xsl:value-of select="name/@ename"/></xsl:attribute>
   <xsl:value-of select="name" />
  </td>
  <!--个人信息菜单-->
  <div onmouseover='display(1)' onmouseout='hide(1)' class="menu">
  <xsl:attribute name="ID"><xsl:value-of select="name/@ename"/>bar</xsl:attribute>
  学号:<xsl:value-of select="name/@student_id"/><br/>
  邮件:<xsl:value-of select="contact_method/email"/><br/>
  电话:<xsl:value-of select="contact_method/phone"/><br/>
  地址:<xsl:value-of select="contact_method/address"/>
  </div>
  <xsl:for-each select="mark">
   <td><xsl:value-of /></td>
  </xsl:for-each>
 </tr>
 </xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>


--  作者:huobing2005
--  发布时间:1/9/2006 12:31:00 AM

--  
不好意思,
内部DTD为
<!DOCTYPE transcript[
<!ELEMENT transcript (item)>
<!ELEMENT item (name,mark*,contact_method)>
<!ELEMENT name (#PCDATA)>
<!ATTLIST name student_id ID #REQUIRED
               ename CDATA  #REQUIRED>
<!ELEMENT mark (#PCDATA)>
<!ATTLIST mark subject CDATA #REQUIRED>
<!ELEMENT contact_method (email?,phone?,address?)>
<!ELEMENT email (#PCDATA)>
<!ELEMENT phone (#PCDATA)>
<!ELEMENT address (#PCDATA)>
]>
<transcript>

--  作者:SATOKO2006
--  发布时间:1/9/2006 11:29:00 AM

--  郁闷!!
这是XMLSPY等编辑工具的一个Bug,你直接用
<!DOCTYPE 根元素名
SYSTEM "外部DTD文件的URL">
即可!!
--  作者:huobing2005
--  发布时间:1/9/2006 1:09:00 PM

--  
<!DOCTYPE transcript[
<!ELEMENT transcript (item)>
这个怎么办,能具体点吗,谢谢啊

--  作者:梦猫猫
--  发布时间:6/18/2006 9:56:00 AM

--  
内部用<!DOCTYPE transcript SYSTEM "outside.dtd">

外部用:
<?xml version="1.0" ?>
<!DOCTYPE transcript[
<!ELEMENT transcript (item)>
<!ELEMENT item (name,mark*,contact_method)>
<!ELEMENT name (#PCDATA)>
<!ATTLIST name student_id ID #REQUIRED
               ename CDATA  #REQUIRED>
<!ELEMENT mark (#PCDATA)>
<!ATTLIST mark subject CDATA #REQUIRED>
<!ELEMENT contact_method (email?,phone?,address?)>
<!ELEMENT email (#PCDATA)>
<!ELEMENT phone (#PCDATA)>
<!ELEMENT address (#PCDATA)>
]>


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