在查看HTML 4 dtd(https://www.w3.org/TR/html4/sgml/dtd.html)时,我在dtd定义中看到了很多描述性注释。
public Map<Boolean, String> findMetadata(String scanPackage) {
Map<Boolean, String> metadatas = new HashMap<>();
ClassPathScanningCandidateComponentProvider provider = createComponentScanner();
for (BeanDefinition beanDef : provider.findCandidateComponents(scanPackage)) {
try {
Class<?> cl = Class.forName(beanDef.getBeanClassName());
Indexable indexable = cl.getAnnotation(Indexable.class);
logger.info("---------------------------- " + indexable.dictionary() + " " + indexable.indexName());
if (!metadatas.containsValue(indexable.indexName())) {
metadatas.put(indexable.dictionary(), indexable.indexName());
}
} catch (ClassNotFoundException e) {
logger.error(ERROR + e);
}
}
return metadatas;
}
&GT;
我知道这是一个SGML dtd。当我尝试在我的XML dtds中引入它们时,我从处理器中解析出错误。是否已从XML的DTD变体中删除了这些注释?
<!ELEMENT A - - (%inline;)* -(A) -- anchor -->
<!ATTLIST A
%attrs; -- %coreattrs, %i18n, %events --
charset %Charset; #IMPLIED -- char encoding of linked resource --
type %ContentType; #IMPLIED -- advisory content type --
name CDATA #IMPLIED -- named link end --
href %URI; #IMPLIED -- URI for linked resource --
hreflang %LanguageCode; #IMPLIED -- language code --
rel %LinkTypes; #IMPLIED -- forward link types --
rev %LinkTypes; #IMPLIED -- reverse link types --
accesskey %Character; #IMPLIED -- accessibility key character --
shape %Shape; rect -- for use with client-side image maps --
coords %Coords; #IMPLIED -- for use with client-side image maps --
tabindex NUMBER #IMPLIED -- position in tabbing order --
onfocus %Script; #IMPLIED -- the element got the focus --
onblur %Script; #IMPLIED -- the element lost the focus --
答案 0 :(得分:2)
在SGML中,以--
开头和结尾的注释可以出现在标记声明中的任何地方或多次;在XML中,标记声明必须只包含一个注释或另一个标记声明:
<!-- valid in XML -->
<!-- only -- -- valid -- -- in -- -- SGML -->
由于XML被定义为SGML子集,因此不允许在任何地方的XML注释中显示文本字符串--
。
答案 1 :(得分:1)
根据X3 XML 1.0规范,DTD声明中允许注释。但是,它们是以"bar"
开头并以<!--
结尾的XML样式注释,如之前的评论员所述。有关语法详细信息,请参阅https://www.w3.org/TR/2008/REC-xml-20081126/#NT-DeclSep。
但是,它们并未嵌入到元素或属性列表声明中,如上面的示例所示。 XHTML DTD中的示例使用带有注释的XML DTD语法描述元HTML标记。完整的dtd:https://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd
-->