我得到了head元素声明如下
<!ENTITY % head.misc "(script|style|meta|link|object)*">
<!ELEMENT head (%head.misc;,((title, %head.misc;, (base, %head.misc;)?) | (base, %head.misc;, (title, %head.misc;))))>并被要求描述“head.misc实体代表什么?”
我所能找到的只有使用head.misc的DTD文件,还有一个简短的解释:“head.misc的元素只允许是HEAD元素的子元素,所以样式只允许是HEAD元素的子元素”,但它看起来不像是完整的答案。
我应该说它代表了哪些元素应该只在head元素标记中使用?
发布于 2019-06-18 06:37:22
以下是一些注释说明:
%head.misc; --只是对上面定义的实体的引用,所以可以用表达式(script|style|meta|link|object)*替换它。, --逗号似乎是一个列表分隔符。() --括号是分组的东西,如regex中的? --问号是一个零或一个量词(即左边的东西可以是0或1次,换句话说,它是可选的,但仅限于一个实例)。* --星号是一个零或多个量词(左边的东西可以是0、1、2或任何其他次数-可选,但不限于一个实例)。| --条形字符是or --即分组的左部分或右部分,但不能两者兼有(当然,原则是相同的)。因此,head.misc后面的表达式可以这样解释:
head.misc是这些元素中任意数量的任意组合(包括空大小写,即零元素):
我应该说它代表了哪些元素应该只在head元素标记中使用?
不,因为下一条语句增加了两个可能的元素-- title和base。据我所知,head可以是:
script/style/meta/link/object标记titlescript/style/meta/link/object标记base标记和零或多个script/style/meta/link/object标记或者这个:
script/style/meta/link/object标记basescript/style/meta/link/object标记title标记和零或多个script/style/meta/link/object标记因此,似乎有两条规则共同表达了关于head中的标记的如下内容
script/style/meta/link/object标记。title标记base标记。https://stackoverflow.com/questions/56642729
复制相似问题