Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml 什么';这个dtd语法有什么问题?_Xml_Dtd - Fatal编程技术网

Xml 什么';这个dtd语法有什么问题?

Xml 什么';这个dtd语法有什么问题?,xml,dtd,Xml,Dtd,我不明白为什么xmllint会抱怨这种dtd语法,特别是et\u snote行我做错了什么 <!ELEMENT et_snote (is_required?, (#PCDATA | vis? | ri?)*) > <!ELEMENT is_required ( #PCDATA ) > 您已将et\u snote的类型声明为元素内容,根据定义,它要么删除\PCDATA,要么将类型更改为混合内容。我不介意声明为混合内容-但是如何确保是必需的标记始终是et\u snote下的

我不明白为什么
xmllint
会抱怨这种dtd语法,特别是
et\u snote
行我做错了什么

<!ELEMENT et_snote (is_required?, (#PCDATA | vis? | ri?)*) >
<!ELEMENT is_required ( #PCDATA ) >

您已将
et\u snote
的类型声明为元素内容,根据定义,它要么删除
\PCDATA
,要么将类型更改为混合内容。

我不介意声明为混合内容-但是如何确保
是必需的
标记始终是
et\u snote
下的第一个元素?您不能,如果要指定顺序,则不能允许使用字符数据。如果必须,请将字符数据包装到另一个元素中。
schema.dtd:166: parser error : expected '>'
<!ELEMENT et_snote (is_required?, ( #PCDATA | vis? | ri? )+) >
xmllint --noout --nowarning --nonet --dtdvalid schema.dtd my.xml