Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.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
xmllint是否正确处理可为零的compexType?_Xml_Xsd_Xmllint - Fatal编程技术网

xmllint是否正确处理可为零的compexType?

xmllint是否正确处理可为零的compexType?,xml,xsd,xmllint,Xml,Xsd,Xmllint,我们有在.NET下创建的XSD和示例XML(可能通过了验证),但它们无法在xmllint下验证。我们试图确定其中一方是否“不正确”,或者这是否是规范中模棱两可的内容。我尝试在这里和谷歌上搜索,但找不到任何描述相同问题的内容。我没有发布原始的xsd&XML,而是创建了一个更小的测试来重现这个问题 XSD是: <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLS

我们有在.NET下创建的XSD和示例XML(可能通过了验证),但它们无法在xmllint下验证。我们试图确定其中一方是否“不正确”,或者这是否是规范中模棱两可的内容。我尝试在这里和谷歌上搜索,但找不到任何描述相同问题的内容。我没有发布原始的xsd&XML,而是创建了一个更小的测试来重现这个问题

XSD是:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 
           elementFormDefault="qualified" 
           attributeFormDefault="unqualified">
  <xs:complexType name="A">
    <xs:sequence>
      <xs:element name="B" nillable="true" type="B" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="A" nillable="true" type="A" />
  <xs:complexType name="B">
    <xs:sequence>
      <xs:element name="date" 
                  minOccurs="1" 
                  maxOccurs="50" 
                  nillable="true" 
                  type="xs:date" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="B" nillable="true" type="B" />
</xs:schema>
xmllint的输出为:

test.xml:3: element B: Schemas validity error : Element 'B': Missing child element(s). Expected is ( date ).
test.xml fails to validate

我基本上是一个XSD/XML“开发人员”的初学者,所以请随意翻阅。:)

您显示的XML实例是针对您显示的XSD模式有效的模式。Xerces J是这样说的,MSV是这样说的,萨克森也是这样说的,我也是这样说的

xmllint中的XSD支持是不完整的;看起来这是一个不完整的领域


(顺便说一句,把问题简化为一个小测试用例做得很好。做得好!)

您显示的XML实例与您显示的XSD模式相比是有效的模式。Xerces J是这样说的,MSV是这样说的,萨克森也是这样说的,我也是这样说的

xmllint中的XSD支持是不完整的;看起来这是一个不完整的领域


(顺便说一句,把问题简化为一个小测试用例做得很好。做得好!)

由于您的回答,我决定更深入地研究我正在使用的xmllint版本。在此之前,我在CentOS5(libxml2的v2.6.26)和CentOS6(v2.7.6)上都遇到了相同的错误,所以我没有把它当作一个bug。我下载并编译了最新版本(v2.9.1),它通过了测试。再次感谢!关于2.9.1的好消息。由于您的回答,我决定更深入地研究我正在使用的xmllint版本。在此之前,我在CentOS5(libxml2的v2.6.26)和CentOS6(v2.7.6)上都遇到了相同的错误,所以我没有把它当作一个bug。我下载并编译了最新版本(v2.9.1),它通过了测试。再次感谢!关于2.9.1的好消息。
xmllint --schema test.xsd --noout test.xml
test.xml:3: element B: Schemas validity error : Element 'B': Missing child element(s). Expected is ( date ).
test.xml fails to validate