xsd-validation 相关问题

XSD验证用于根据存储的架构验证XML文件。

XML 架构验证无法找到带有 xsd 的声明

我必须使用 xsd 文件验证 xml。 xsd 文件 companySendType.xsd 是: 我必须使用 xsd 文件验证 xml。 xsd 文件 companySendType.xsd 是: <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:CC="http://test.com" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://test.com" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xs:include schemaLocation="companyType.xsd"/> <xs:element name="companySendType" > <xs:complexType> ... </xs:complexType> </xs:element> </xs:schema> Java代码: SchemaFactory sf = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI); Schema schema = sf.newSchema(new Source[]{ new StreamSource(ClassLoader.getSystemClassLoader().getResourceAsStream("companyType.xsd")), new StreamSource(ClassLoader.getSystemClassLoader().getResourceAsStream("companySendType.xsd")) }); Validator validator = schema.newValidator(); StringReader stringReader = new StringReader(xmlToValidate); StreamSource streamSource = new StreamSource(stringReader); validator.validate(streamSource); 我得到的错误是: 找不到元素“CC:companySendType”的声明 xml 是: <?xml version="1.0" encoding="UTF-8"?> <CC:companySendType version="1.0" xsi:schemaLocation="http://test.com companySendTypev1.18.xsd" xmlns:CC="http://test.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> </CC:companySendType> 我不明白为什么它不起作用,xml文件似乎没问题。 我检查了你的xsd,看来你还没有声明元素的类型CC:companySendType。您可以使用一些默认类型,例如: <xs:element name="companySendType" type="xs:string"/> 或者如果您有一个复杂类型,您应该像下面的示例一样定义它: <xs:element name="companySendType"> <xs:complexType> <xs:sequence> <xs:element name="x1" type="xs:string"/> <xs:element name="x2" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element>

回答 1 投票 0

正确的 xs:ID 允许的 ID 名称是什么?

我正在尝试为其中一个标签的 id 属性定义一个 ID。文档和 xsd 架构要求使用 xs:id 确认 id 集。 我尝试了“ID_123”,但当我尝试时......

回答 1 投票 0

如何通过 XmlReader ValidationType.Schema 检测违反 xsd:unique 约束的情况

以下演示代码验证 XML 是否与给定的 XSD 匹配。 但它不会检测 XML 是否违反任何 xsd:unique 约束。为什么会这样,更重要的是,我如何验证唯一性

回答 1 投票 0

无效的 XML 元素名称,而它正是预期的名称

我正在尝试根据 XSD 验证 XML 文档,但我似乎无法解决以下错误: 元素名称“Elektriciteit”无效。 预期出现以下情况之一: - VloeibareBiobra...

回答 1 投票 0

使用未在 XML 中显式定义但存在于 XSD 中的默认命名空间时,如何使 XML 通过 XSD 验证

我有一个 XML,由于以下问题而验证失败: 元素“example:lotNumber”的前缀“example”未绑定。行“4”,列“19”。 前缀“考试...

回答 1 投票 0

无效架构或缺少命名空间 - 通过 notepad++ 进行 XML 验证

我正在尝试通过 notepad++ 验证 XML 文件,但出现以下错误: 架构无效或缺少命名空间 当我通过另一个 XML 验证器进一步调查时,我收到以下错误: ...

回答 1 投票 0

为 XSD 中的元素指定命名空间

我有一个 XML,需要为其生成 XSD。我的 XML 如下: 实例: 我有一个 XML,需要为其生成 XSD。我的 XML 如下: 实例: <mes:GetInboundResponseGetInboundSMS xmlns:mes="http://abcd.com"> <response> <messages> <item> <date>15/04/2014 00:00:00</date> </item> <item> <date>01/07/2014 10:01:32</date> </item> </messages> </response> </mes:GetInboundResponseGetInboundSMS> 请注意,只有最外面的元素 GetInboundResponseGetInboundSMS 属于命名空间 http://abcd.com - 其余元素不属于。如何在 XSD 中指定这一点? 我尝试过以下 XSD,但这给了我错误: XSD: <xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="GetInboundResponseGetInboundSMS"> <xs:complexType> <xs:sequence> <xs:element name="response"> <xs:complexType> <xs:sequence> <xs:element name="messages"> <xs:complexType> <xs:sequence> <xs:element name="item" maxOccurs="unbounded" minOccurs="0"> <xs:complexType> <xs:sequence> <xs:element type="xs:string" name="date"/> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:schema> 但是当我尝试使用在线验证器通过 XSD 验证实例时,我最终遇到了以下错误: 无效。 错误 - 第 1 行,第 95 行:org.xml.sax.SAXParseException;行号:1;列数:95; cvc-elt.1:找不到元素“mes:GetInboundResponseGetInboundSMS”的声明。 这是合乎逻辑的,因为我没有在 XSD 中提供命名空间。请帮助我理解 如何仅为 XSD 中的最外部元素提供此命名空间。 你有两件事不太符合你的要求。 您希望 GetInboundResponseGetInboundSMS 元素位于命名空间 http://abcd.com。 因此将 targetNamespace="http://abcd.com" 添加到您的架构元素中。 您希望该元素的子元素(全部声明为 GetInboundResponseGetInboundSMS 元素的匿名复杂类型的本地元素)是非限定的。 因此将 schema 元素上的 elementFormDefault="qualified" 更改为 elementFormDefault="unqualified"。 架构文档的开始标签应如下所示: <xs:schema targetNamespace="http://abcd.com" attributeFormDefault="unqualified" elementFormDefault="unqualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"> 请将架构元素从默认包含到限定中,它将起作用。如果要在 XML 文档中使用相同的命名空间,请在开始和结束标记的前缀中添加该命名空间。它有效。

回答 2 投票 0

无效的 XML 前缀

我正在尝试向 Swift Alliance Access(SAA) 发送 XML 消息。我的示例 xml 消息如下所示。但我收到“无效的 XML 前缀”错误消息。当我根据 XSD 检查 XML 时。它

回答 2 投票 0

使用 XSD 加载为文件与输入流进行 XML 验证

如果 XSD 作为文件或资源加载,我在 XML 验证中会遇到不同的行为。 如果我将 XSD 作为文件加载,一切都很好并且验证工作正常: SchemaFactory sf = SchemaFa...

回答 1 投票 0

生成.xsd文件的C#类

我试图从 XML 模式生成一个 C# 类,但没有成功。 这是 VS 2017 的开发人员命令提示符中的命令: xsd 发票Api.xsd /类 输出: c: emp est>xsd invo...

回答 1 投票 0

如何仅验证 XSD 文件?

我想在解析从外部服务器下载的文件之前仅验证 XSD 文件(我不想针对 XSD 架构执行 XML 验证器)。我想确保我写了...

回答 1 投票 0

如何使用 schemaLocation 或 noNamespaceSchemaLocation 将 XML 链接到 XSD?

我找到了一些解决这个问题的提示,但仍然没有帮助我。 这是我的 XML 我找到了一些解决这个问题的提示,但仍然没有帮助我。 这是我的 XML <?xml version="1.0" encoding="UTF-8"?> <work xmlns="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://www.w3.org/2001/XMLSchema-instance" tns:schemaLocation="myXSDSchema.xsd"> <tns:Objects> <tns:Object Name=":" Location=":"> </tns:Object> </tns:Objects> </work> 这是我的 XSD 文件: <schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:tns = "http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> (some checks) </schema> 我的 XSD 文件与 XML 位于同一文件夹中。 如何链接这两个文件? 如何将 XSD 链接到 XML 文档取决于 XML 文档是否使用命名空间... 没有命名空间 使用 xsi:noNamespaceSchemaLocation 提供有关要使用的 XSD 的提示: 文档.xml: <root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="example.xsd"> <!-- ... --> </root> 示例.xsd: <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:element name="root"> <!-- ... --> </xsd:element> </xsd:schema> 带有命名空间 使用 xsi:schemaLocation 提供有关要使用的 XSD 的提示: 文档.xml: <ns:root xmlns:ns="http://example.com/ns" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://example.com/ns example-ns.xsd"> <!-- ... --> </ns:root> 示例-ns.xsd: <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://example.com/ns"> <xsd:element name="root"> <!-- ... --> </xsd:element> </xsd:schema>

回答 1 投票 0

限制在任何年份的特定日期

我正在创建一个架构,需要一个与季度结束相对应的日期(因此 YYYY-03-31、YYYY-06-30、YYYY-09-30 和 YYYY-12-31)。 我正在创建一个架构,需要一个与季度结束相对应的日期(因此 YYYY-03-31、YYYY-06-30、YYYY-09-30 和 YYYY-12-31)。 <xs:element type="xs:date" name="FilingPeriod"/> 是否有一种明智的方法来接受 date 格式的这些值并将它们限制为这些特定但可能无限的值(即永远是任何一年)?我想我可以对 string 字段施加一些限制并以这种方式进行验证,但这似乎是使用正确的 date 格式的黑客行为。 XSD 1.1 带有简单类型断言: <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="dates"> <xs:complexType> <xs:sequence> <xs:element name="date" type="end-of-quarter-date" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> </xs:element> <xs:simpleType name="end-of-quarter-date"> <xs:restriction base="xs:date"> <xs:assertion test="(day-from-date($value) = 31 and month-from-date($value) = (3, 12)) or (day-from-date($value) = 30 and month-from-date($value) = (6, 9))"/> </xs:restriction> </xs:simpleType> </xs:schema> XML 工作台中的在线 XSD 小提琴。

回答 1 投票 0

带有枚举的 Xsd - 输入枚举类型时出现错误

我正在尝试添加枚举类型,如下所示。它添加了字符串类型,但当 jaxb 将 xsd 转换为 java 类时我需要枚举值。我使用 simpletype 将其转换为字符串但不...

回答 2 投票 0

XML 模式 Beispiel aus Buch“Einstieg in XML”funktioniert nicht

在一个 C# 程序中,包含了 bestellbeleg1.xml 和 XmlReader。 Das zugehörige XSD-Schema (bestellbeleg1.xsd) wird über schema.SourceUri = args[1] angegeben。贝姆拉德...

回答 1 投票 0

为什么 Unmarshaller 的行为不一致?

我创建了一个简单的 Web 服务(spring-web),用于验证传入的 XML 是否符合 XSD,如果发生任何验证错误,则应将它们返回给请求者。 ...

回答 2 投票 0

元素的 XSD,当元素既可以是强制元素也可以是可选元素时

我有两种可能的 XML 变体: “ElementB”和“ElementC”都是强制性的。 两个“埃莱姆...

回答 1 投票 0

为什么 XML 模式验证没有检测到这种唯一性约束违规?

我正在尝试调试为什么使用 XSD 验证 XML 没有检测到唯一性约束违规。给定下面的 XML 数据及其后面的 XSD 架构,

回答 1 投票 0

根据架构验证 XML 文件会引发异常

尝试根据 MVC/ASP.Net Core 中的架构验证 XML 文件时遇到异常错误。 我收到的错误是这样的: System.Xml.Schema.XmlSchemaValidationException:'Ty...

回答 3 投票 0

我的 XML 与现有 XSD 是什么样子

学习 XSD 有点新鲜。 如果我有这个 XSD 有效架构,如下所示: ...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.