Xsd Xerces在向顶级元素提供属性时报告错误

Xsd Xerces在向顶级元素提供属性时报告错误,xsd,xerces,Xsd,Xerces,我有以下工作正常的模式: 但是,当我尝试为顶级绑定元素定义属性时,无论将属性代码放在何处,都会出现错误。我错过了什么或做错了什么 编辑:我的Java XML代码或Xerces似乎有问题。如果我更改XSD为顶级元素提供可选的parent属性,Xerves会给我错误问题:schema_reference.4:无法读取schema文档“null”,因为1找不到该文档;2文件无法阅读;3文档的根元素不是。但是,如果我为该属性指定除parent//之外的任何名称,它会报告属性“parent”不允许出现在元

我有以下工作正常的模式:

但是,当我尝试为顶级绑定元素定义属性时,无论将属性代码放在何处,都会出现错误。我错过了什么或做错了什么

编辑:我的Java XML代码或Xerces似乎有问题。如果我更改XSD为顶级元素提供可选的parent属性,Xerves会给我错误问题:schema_reference.4:无法读取schema文档“null”,因为1找不到该文档;2文件无法阅读;3文档的根元素不是。但是,如果我为该属性指定除parent//之外的任何名称,它会报告属性“parent”不允许出现在元素“bindings”中,正如您所期望的那样

我关于XSD和Xerces的Java代码是:

bindingsDocumentBuilderFactory= DocumentBuilderFactory.newInstance; DocumentBuilderFactory bdbf=bindingsDocumentBuilderFactory; bdbf.setValidatingtrue; //我在这里按原样获得输入流 bdbf.setAttributehttp://java.sun.com/xml/jaxp/properties/schemaLanguage, http://www.w3.org/2001/XMLSchema; bdbf.setAttributehttp://java.sun.com/xml/jaxp/properties/schemaSource是 编辑2:

正在验证的XML文件:


此操作可参见名为“代码”的属性:

<?xml version="1.0"?> 
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
    <xs:element name="bindings"> 
        <xs:complexType> 
            <xs:sequence maxOccurs="unbounded"> 
                <xs:element name="bind"> 
                    <xs:complexType> 
                        <xs:attribute name="trigger" use="required"> 
                            <xs:simpleType> 
                                <xs:restriction base="xs:string"> 
                                        <xs:minLength value="1"/> 
                                </xs:restriction> 
                            </xs:simpleType> 
                        </xs:attribute> 
                        <!-- trigger --> 
                        <xs:attribute name="command" use="required"> 
                            <xs:simpleType> 
                                <xs:restriction base="xs:string"> 
                                        <xs:minLength value="1"/> 
                                </xs:restriction> 
                            </xs:simpleType> 
                        </xs:attribute> 
                        <!-- command --> 
                    </xs:complexType> 
                </xs:element> 
                <!-- bind --> 
            </xs:sequence> 
            <xs:attribute name="code"/>
        </xs:complexType> 
    </xs:element> 
    <!-- bindings --> 
</xs:schema> 

我试着把它放在那里,Xerces给了我一个错误:[java]问题:schema_reference.4:无法读取schema文档“null”,因为1找不到该文档;2文件无法阅读;3文档的根元素不是。即使我把所有的xs:都改成xsd:我也会得到这个错误。如果你可以读取同一个文件,一次带属性,一次不带属性,那么你使用的Xerces版本中就有一个严重的bug。我发布的XSD毫无疑问是有效的-在打印时;。。。错误相当于显示XSD没有正确加载。。。你能发布你正在使用的Java代码吗?是的,如果该属性被命名为其他父属性,我只得到一个普通属性“parent”不允许出现在元素“bindings”中。错误但如果名为parent,则会出现读取模式文档失败错误。我将用我的XML代码更新我的帖子。你也可以发布XML吗?从你的描述中很难理解问题是什么。另外,你没有说你是否尝试了我在代码中发布的XSD,以及是否有任何错误。我将你的XSD文件剪切并粘贴到我的XSD文件中,得到了我报告的结果。我将添加有问题的XML文件。