CodeIgniter中的xsd验证

CodeIgniter中的xsd验证,codeigniter,xsd,Codeigniter,Xsd,我正在使用CodeIgniter,我想用下面的xsd验证xml <?xml version="1.0"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> <xsd:simpleType name="non_empty_string"> <xsd:restriction base="xsd:string

我正在使用CodeIgniter,我想用下面的xsd验证xml

<?xml version="1.0"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
    <xsd:simpleType name="non_empty_string">
        <xsd:restriction base="xsd:string">
            <xsd:minLength value="1" />
        </xsd:restriction>
    </xsd:simpleType>

    <xsd:element name="xml">
        <xsd:complexType>
            <xsd:sequence>
                <xsd:element name="item">
                    <xsd:simpleType>
                        <xsd:union memberTypes="non_empty_string xsd:integer"/>
                    </xsd:simpleType>
                </xsd:element>
            </xsd:sequence>
        </xsd:complexType>
    </xsd:element>
</xsd:schema>


当我试图根据这个xsd验证xml时,只有第一个成员类型得到验证(非空字符串),而不是第二个,猜猜为什么会发生这种情况。谢谢。

您可以使用XMLReader根据xsd文件验证XML。 有关更多信息,请参阅此

您如何使用codeigniter的验证来验证它。请发布代码虽然我使用的是codeignitor,但我没有使用任何特定的vlaidation库,我使用php将xml与xsd进行比较,它们是否有任何特定的函数可用于验证具有不同成员类型的xsd?thanks@Nishikant你能包括你测试过的xml和你得到的结果吗?我用xmllint检查了它,它同时接受一个单字母和一个多数字整数(正如预期的那样),所以至少可以确认xsd是正确的。工具有时不能完全实现xml模式规范(或者有缺陷),因此这可能解释了这一点。