【发布时间】:2023-04-01 04:50:01
【问题描述】:
因为我需要 XHTML。
那么这是我的 DOCTYPE(代码):
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html SYSTEM "http://myweb.com/DTD/prueba.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Cosmos</title>
<meta http-equiv="Content-Type" content="application/xhtml+xml;
charset=UTF-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta http-equiv="Content-Script-Type" content="text/javascript" />
<link rel="icon" href="https://myweb.com/graficos/favicon.ico"
type="image/x-icon" />
<style type="text/css">@import url("https://myweb.com/css/style.css");</style>
</head><body>
<div><planet>Jupiter!</planet></div>
</body></html>
而“mydtd.tdt”的代码是:
<!ELEMENT planet ANY>
<!ENTITY % html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
%html;
但是 validator.w3.org 回复:
document type does not allow element "planet" here
我相信这个答案是因为corse的元素BODY的定义不包括元素“planet”,我去W3C,他们在https://www.w3.org/TR/xhtml-modularization/dtd_developing.html#sec_E.3.1中说。
" 在其他元素已经定义了内容模型的情况下,添加一个元素将需要在 myelement 之外重新声明现有的内容模型。 "
然后我可以按照 W3C 的说明编辑我的 DTD: https://www.w3.org/TR/xhtml-modularization/dtd_developing.html#s_dtd_dev_elems " 基本上,DTD 作者应该为每个元素编写元素声明: "
<!ATTLIST %MyModule.myelement.qname;
myattribute CDATA #IMPLIED
>
但我真的不知道如何修复我的 DTD 以添加我的元素/标签“行星”,请帮忙?
【问题讨论】: