当前位置: 首页 > 知识库问答 >
问题:

如何通过XSD使XML验证失败

麻书
2023-03-14
<?xml version="1.0" encoding="UTF-8"?>
<credentials xmlns:cdm="http://com.example/test/current">
   <cdm:username>jawad</cdm:username>
   <cdm:password>jawad123</cdm:password>
</credentials>
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"  
xmlns:cdm="http://com.example/test/current"
xmlns = "http://com.example/test/current"
elementFormDefault="qualified"
attributeFormDefault="unqualified">

<xs:element name="credentials"></xs:element>

<xs:complexType name="credentials">
    <xs:sequence>
        <xs:element name="username" type="xs:string" minOccurs="1" maxOccurs="1"/>
        <xs:element name="password" type="xs:string" minOccurs="1" maxOccurs="1"/>
    </xs:sequence>
</xs:complexType>

</xs:schema>

共有1个答案

燕烨
2023-03-14

首先,您的模式不能按预期工作,因为您的“credentials”元素没有引用“credentials”complexType。(当没有指定其他类型时,“credentials”元素默认允许任何格式良好的XML-这就是为什么即使“username”声明为“float”,您的文档也是有效的。)

可更正如下:

<xs:element name="credentials" type="credentials"/>

那么,你能解释一下你是如何验证文档的吗?的确,解析器应该正确地处理它,但是验证可能已经关闭了。

 类似资料:
  • 问题内容: 我当前正在使用XSD验证xml。这部分工作正常,我的问题是我想获取无效的标记/值的元素。 我有一个不切实际的想法,就是在消息中查找“ type”或“ end- tag”一词,并在其后获取值,但是我知道这不是一个好习惯!我发现这很令人沮丧,因为我看到了无效但无法抓住的标签! 这是我想要的元素的一些示例 问题答案: 下面是一种使用来实现用例的方法: MyErrorHandler 我建议您实

  • 我在验证xml和xsd时遇到问题。我从xsd模式中得到这个错误。 src解决方案。4.2:解析组件“urn:id”时出错。检测到“urn:id”位于命名空间“urn:schemas microsoft com:xml-diffgram-v1”中,但此命名空间中的组件无法从架构文档中引用virtual://server/schema.xsd。如果名称空间不正确,可能需要更改“urn:id”的前缀。如

  • 问题内容: 我需要使用给定的XSD文件验证XML文件。我只需要如果验证正常就返回true,否则返回false的方法。 问题答案: 仅返回true或false(也不需要任何外部库):

  • 我正在使用Delphi10.2更新3。我按照这些说明验证生成的xml文档。 属性noNamespaceSchema位置对XML解析有什么影响? 使用Windows DOM和TXMLDocument验证XML:在某些计算机上不起作用 delphi中msxml的模式验证 但我有一个错误。“DTD/架构中未定义元素‘jegyzek\u adatok’上的属性‘noNamespaceSchemaLocat

  • 谁能解释一下如何使用notepad++根据XSD验证xml文件。“XML Tools”插件下拉列表中没有提供指定XSD文件的选项。在plugins子目录中正确安装XML插件,并将3个DLL复制到notepad++EXE子目录。其他XML“验证”特性也可以工作,但无法针对XSD进行验证。

  • 我需要针对给定的XSD文件验证多个XML文件。问题是XSD由两个文件组成。它们是嵌套的,尽管我知道哪个是第一个(其他文件的“父”)。在XML文件中,我使用命名空间来定义子节点在哪个XSD中定义