XML Doctype定义

时间:2011-03-10 14:21:17

标签: xml doctype

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

<?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一起使用。

2 个答案:

答案 0 :(得分: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>

当然,您不必重定向。这在我的情况下效果最好。

答案 1 :(得分: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> 
]>