2011-03-10 84 views
1

这是我第一次尝试XML。在写这篇文章之前,我读了很多关于它的内容,但是如果我正确地做DOCTYPE定义,我有点困惑。有人可以看看并让我知道吗?XML文档类型定义

<?xml version="1.0" encoding="ISO-8859-1"?> 
<!DOCTYPE quiz [ 
<!ELEMENT quiz (items)> 
<!ELEMENT items (item)> 
<!ELEMENT item (question,answer)> 
<!ELEMENT question (#PCDATA)> 
<!ELEMENT answer (#PCDATA)> 
]> 
<quiz> 
    <items> 
    <item> 
     <question>What is the name of the movie with jedis?</question> 
     <answer value="0">Star Trek</answer> 
     <answer value="0">E.T.</answer> 
     <answer value="1">Star Wars</answer> 
     <answer value="0">Titanic</answer> 
    </item> 
    <item> 
     <question>What is my favorite color?</question> 
     <answer value="0">Blue</answer> 
     <answer value="1">Purple</answer> 
     <answer value="0">Green</answer> 
     <answer value="0">Pink</answer> 
    </item> 
    <item> 
     <question>What comes after 2?</question> 
     <answer value="1">3</answer> 
     <answer value="0">1</answer> 
     <answer value="0">4</answer> 
     <answer value="0">11</answer> 
    </item> 
    </items> 
</quiz> 

此外,这显然是一个测验应用程序。有没有一种使XML无法访问的标准方式,使人们无法从浏览器中读取答案?它将与AJAX和PHP一起使用。

回答

0

我不确定你的答案与你的DOCTYPE声明问题有关,但你确实需要更正。您需要添加一些发生指标和ATTLIST声明:

<!DOCTYPE quiz [ 
<!ELEMENT quiz (items)> 
<!ELEMENT items (item+)> 
<!ELEMENT item (question,answer+)> 
<!ELEMENT question (#PCDATA)> 
<!ELEMENT answer (#PCDATA)> 
<!ATTLIST answer 
      value CDATA #REQUIRED> 
]> 
+0

哈哈,谢谢!答案是我的另一个问题。 :) – Amanda 2011-03-10 16:47:38

+0

:-)我以为它可能是。 – 2011-03-10 17:17:43

+0

你能推荐任何网站阅读更多关于这种类型的东西吗?这真的很吸引人,但我几乎不知道Google要做什么! – Amanda 2011-03-10 17:41:40

0

我找到了解决这个问题的办法。

将第二行粘贴到xml开始标记下。

<?xml version="1.0" encoding="ISO-8859-1"?> 
    <?xml-stylesheet href="no.xsl" type="text/xsl"?> 

Make a second file named no.xsl and paste something like this: 


<?xml version="1.0" encoding="iso-8859-1"?> 

<xsl:stylesheet 
    version="1.0" 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 

    <xsl:output 
    doctype-public="-//W3C//DTD HTML 4.01//EN" 
    doctype-system="http://www.w3.org/TR/html4/strict.dtd" 
    encoding="iso-8859-1" 
    indent="yes" 
    method="html" 
    version="4.01"/> 

    <xsl:template match="/"> 
    <html lang="en"> 
     <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/> 
     <meta http-equiv="REFRESH" content="0;url=http://WHEREVER YOU WANT TO REDIRECT TO"> 
     </head> 
     <body> 
     </body> 
    </html> 
    </xsl:template> 
</xsl:stylesheet> 

当然,您不必重定向。这对我来说效果最好。

+0

虽然这可能会阻止普通用户的,因为它显示在浏览器中,它不会完全隐藏信息看到XML。他们只需要“查看源代码”并显示原始XML。 – 2011-03-10 16:49:15

+0

有趣!对不起,我删除了你。我对这个网站还不是很好。 – Amanda 2011-03-10 16:50:53

+0

Deny From All in htaccess? – Amanda 2011-03-10 16:52:04