Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/249.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.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
PHP';s";schemaValidate“;函数支持DTD参数实体?_Php_Dtd Parsing - Fatal编程技术网

PHP';s";schemaValidate“;函数支持DTD参数实体?

PHP';s";schemaValidate“;函数支持DTD参数实体?,php,dtd-parsing,Php,Dtd Parsing,我有一个XSD(对于HTML4.01,来自通常的公共源代码),其中包括如下参数实体声明: 。。。但是,当我使用PHP-7的DOMDocument::schemaValidate函数引用此DTD时,我似乎得到了以下错误: StartTag:元素名称无效 ... 然后是上面显示的声明 随后是以下消息,随后是声明: 文档末尾的额外内容 PHP-7的DTD模式验证实现真的不支持参数实体语法吗 还要注意:我的目标是使用它来验证HTML文档,而不是XML文档。还请注意,我的程序确实包含了输出LibXML错

我有一个XSD(对于HTML4.01,来自通常的公共源代码),其中包括如下参数实体声明:

。。。但是,当我使用PHP-7的
DOMDocument::schemaValidate
函数引用此DTD时,我似乎得到了以下错误:

StartTag:元素名称无效
... 然后是上面显示的声明

随后是以下消息,随后是声明:

文档末尾的额外内容

PHP-7的DTD模式验证实现真的不支持参数实体语法吗


还要注意:我的目标是使用它来验证HTML文档,而不是XML文档。还请注意,我的程序确实包含了输出LibXML错误消息的代码(来自典型示例):没有。您在这里看到的所有内容都来自PHP的“警告”,PHP警告停止,并生成前面的两条消息(作为“致命错误”),这次使用行号确认,是的,它引用了上面给出的ContentType实体声明。因此,我们现在可以肯定地说,这确实是它所说的。但是,为什么呢?认识到PHP在幕后使用“libxml”,这也被许多其他语言使用,我正在沿着这些思路寻找这个问题的答案,当然,如果我自己找到解决方案,我会向大家汇报。。。。我开始不安地被说服。。。基于。。。libxml可能不准备在这里预测参数实体的存在。(基于源代码中唯一一个出现
StartTag:invalidateelementname
的点)其他DTD验证工具似乎对此语法没有问题。然而,“libxml注定是我所知道的魔鬼™" 在本例中。还要注意,我的程序确实包含了输出LibXML错误消息的代码(来自典型示例):没有。您在这里看到的所有内容都来自PHP“警告”。其他发现:当我偶然发现
LibXML\u use\u internal\u errors(true);
,PHP警告停止,前面的两条消息生成(如图所示)致命错误),这一次是用行号确认的,是的,它引用的是上面给出的ContentType实体声明。因此,我们现在可以明确地说,这确实是它所依赖的。但是,为什么?认识到PHP使用的是“libxml”“在许多其他语言也使用的引擎盖下,我正沿着这些思路寻求这个问题的答案,当然,如果我自己找到解决方案,我会向大家汇报。。。。我开始不安地被说服。。。基于。。。libxml可能不准备在这里预测参数实体的存在。(基于源代码中唯一一个出现
StartTag:invalidateelementname
的点)其他DTD验证工具似乎对此语法没有问题。然而,“libxml注定是我所知道的魔鬼™" 在这种情况下。