xsd 相关问题

XSD通常是指以W3C XML Schema格式编写的文档,其中包含特定类型的XML文档的描述。

使用 Schematron 验证 XML

我正在尝试使用 Schematron 验证 XML 文件,这比 XSD 更复杂。我用谷歌搜索了很多,最好的结果是这个微软网站。但这仅展示了如何验证

回答 4 投票 0

如何使用 XSD 解析嵌套 XML 并在 Java 中创建结构化的 Hashmap 列表

我正在使用 Java 来处理 XML 数据。 我的目标是将嵌套的 XML 文件(带有关联的 XSD)转换为 Hashmap 列表,其中每个 HashMap 代表一行数据,带有 XML 标签名称...

回答 1 投票 0

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

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

回答 1 投票 0

在哪里可以找到 Amazon 发布的 S3 XSD(XML 架构定义)?

我的一个应用程序使用 REST API 与 Amazon S3 服务器交互,对服务器执行“删除多个”操作并遇到错误响应: 我的一个应用程序使用 REST API 与 Amazon S3 服务器交互,对服务器执行“删除多个”操作并遇到错误响应: <?xml version="1.0" encoding="UTF-8"?> <Error> <Code>MalformedXML</Code> <Message>The XML you provided was not well-formed or did not validate against our published schema</Message> <RequestId>6FA...D61</RequestId> <HostId>E5G...uhg=</HostId> </Error> 引用亚马逊文档: 当用户发送格式错误的 xml(不存在的 xml)时,就会发生这种情况 符合已发布的 xsd) 的配置。错误信息 是,“您提供的 XML 格式不正确或未验证 反对我们发布的模式。” 我的一些应用程序的删除键包含可能会导致问题的编码字符。因此,我希望查看 Amazon 发布的架构 (XSD) 文件本身,通过验证器运行它来确定问题。 在哪里可以找到 Amazon XSD 文件? AmazonS3.xsd 可用,但另请参阅 Amazon Simple Storage Service API 参考: 使用 REST API 发出请求 REST API 删除多个对象 验证请求(AWS 签名版本 4) 最后,特别是考虑到您对 编码字符 的担忧,请注意,您的请求实际上可能格式不正确,导致 XSD 验证无法发挥作用。 (请参阅格式良好与有效的 XML。)API 文档中提供的示例就是这种情况,这会引发您收到的相同错误: 示例 3:请求中格式错误的 XML 此示例显示 Amazon S3 如何响应包含以下内容的请求: 格式错误的 XML 文档。 索取样品 以下请求发送格式错误的 XML 文档(缺少 删除结束元素)。 POST /?delete HTTP/1.1 Host: bucketname.S3.amazonaws.com Accept: */* x-amz-date: Wed, 30 Nov 2011 03:39:05 GMT Content-MD5: p5/WA/oEr30qrEEl21PAqw== Authorization: AWS AKIAIOSFODNN7EXAMPLE:W0qPYCLe6JwkZAD1ei6hp9XZIee= Content-Length: 104 Connection: Keep-Alive <Delete> <Object> <Key>404.txt</Key> </Object> <Object> <Key>a.txt</Key> </Object> 示例响应 响应返回描述错误的错误消息。 HTTP/1.1 200 OK x-amz-id-2: P3xqrhuhYxlrefdw3rEzmJh8z5KDtGzb+/FB7oiQaScI9Yaxd8olYXc7d1111ab+ x-amz-request-id: 264A17BF16E9E80A Date: Wed, 30 Nov 2011 03:39:32 GMT Content-Type: application/xml Server: AmazonS3 Content-Length: 207 <?xml version="1.0" encoding="UTF-8"?> <Error> <Code>MalformedXML</Code> <Message>The XML you provided was not well-formed or did not validate against our published schema</Message> <RequestId>91F27FB5811111F</RequestId> <HostId>LCiQK7KbXyJ1t+tncmjRwmNoeeRNW1/ktJ61IC8kN32SFXJx7UBhOzseJCixAbcD</HostId> </Error> 可以在这里找到:https://doc.s3.amazonaws.com/2006-03-01/AmazonS3.xsd (另请参阅 https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingSOAPOperations.html)

回答 2 投票 0

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

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

回答 1 投票 0

使用导入另一个架构的架构验证 XML 错误,有关导入架构中最初描述的元素的命名空间是错误的

我有一个 XML 文件 Baseplate.xml(见下文),我正在尝试根据架构 place.xsd(见下文)进行验证,该文件本身导入另一个架构 instance.xsd(见下文),后者本身导入

回答 1 投票 0

IntelliJ 如何获得构建 |重新构建以从 XSD 文件生成 POJO 并编译它们

这个问题是针对 IntelliJ 的。我还将将此内容发布到 IntelliJ 支持社区网站:https://intellij-support.jetbrains.com/hc/en-us/community/topics。 我正在使用最新版本的

回答 2 投票 0

编写一个运行 xsd 的 ps 脚本,从 2 个 xsd 文件生成 C# 类

我正在尝试从 powershell *.ps 文件运行此命令: c:\路径\xsd /c ./schemas/A.xsd ./schemas/B.xsd 这个命令在 cli 中效果很好,但我在将其转换为 ps 时遇到了麻烦......

回答 1 投票 0

如何使用java将语句导入添加到xml(架构/xsd)

我想使用java将导入语句添加到现有的schema/xsd文件中,我们是否可以将它们添加到xsd中?,我确实尝试了如下但收到错误:“org.w3c.dom.DOMException:

回答 1 投票 0

如何修复执行xml验证时未声明属性

如何解决“未声明‘Level’属性。”下一个 xml 文件出错: 如何解决“未声明‘级别’属性。”下一个 xml 文件出错: <Settings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xsi:noNamespaceSchemaLocation="Settings.xsd"> <ItemId Level="Guest" xsi:type="xs:string">Tech Support</ItemId> <ItemType Level="Administrator" xsi:type="xs:int">1</ItemType> <ItemShift Level="User" xsi:type="xs:time">07:00:00</ItemShift> </Settings> 和架构文件: <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" > <xs:simpleType name="typeLevels"> <xs:restriction base="xs:string"> <xs:enumeration value="Administrator" /> <xs:enumeration value="User" /> <xs:enumeration value="Guest" /> </xs:restriction> </xs:simpleType> <xs:attribute name="Level" type="typeLevels" /> <xs:complexType name="MySettings"> <xs:sequence> <xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded" /> </xs:sequence> <xs:anyAttribute namespace="##targetNamespace" processContents="lax"/> </xs:complexType> <xs:element name="Settings" type="MySettings"/> </xs:schema> 从 xml 文件中删除 xmlns:xsd="http://www.w3.org/2001/XMLSchema" 命名空间修复了 Level 属性的问题,但会创建“根据其架构类型 'QName',属性 'type' 具有无效值 'xs:string' - 'xs' 是未声明的前缀”。错误。 使用下一个代码执行验证: void Validate(string xml, string xsd) { var schemaSet = new XmlSchemaSet() { XmlResolver = new XmlXsdResolver() }; schemaSet.Add(null, xsd); var settings = new XmlReaderSettings { ValidationType = ValidationType.Schema }; settings.Schemas = schemaSet; settings.ValidationFlags |= XmlSchemaValidationFlags.ProcessSchemaLocation | XmlSchemaValidationFlags.ProcessInlineSchema; settings.ValidationEventHandler += (sender, e) => { switch (e.Severity){ case XmlSeverityType.Error: Console.WriteLine(e.Message); break; }}; using (XmlReader validator = XmlReader.Create(xml, settings)) { while (validator.Read()) ; } } 我认为这里发生的事情如下: ItemId 元素与 lax 元素通配符匹配 xs:any 该元素没有元素声明,因此使用其 xsi:type 属性进行验证 xsi:type 属性表示元素必须属于 xs:string 类型。但是 xs:string 是一个简单类型,并且简单类型不允许属性。 我需要检查规格来确定这一点,但我认为这就是解释。

回答 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

XSLT 使用 xslt 2.0 或更高版本将纯文本文件处理为 XML

我正在与一位使用“Workday”ERP 的客户合作。该 ERP 主要处理 XML、XSLT 和 XSD 脚本,但不处理其他编程语言来将数据传入和传出 ERP。 我有一个...

回答 2 投票 0

无效的 XML 前缀

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

回答 2 投票 0

JAXB 不会从 XSD 简单类型生成枚举类

我的 JAXB XSD 到 Java 类生成器不知何故没有从包含枚举的简单类型创建类,如下所示: 我的 JAXB XSD 到 Java 类生成器不知何故没有从包含枚举的简单类型创建类,就像这样: <xsd:element name="MyPriorityEnum"> <xsd:simpleType final="restriction"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="NORMAL" /> <xsd:enumeration value="LOW" /> <xsd:enumeration value="HIGH" /> </xsd:restriction> </xsd:simpleType> </xsd:element> 我的build.gradle包含以下生成类的任务: def myXsd = "myxsd-v5.xsd" def myOutput = "$buildDir/generated/jaxb/model/src/main/java" tasks.register('generateSources') { doLast { def jaxbTargetDir = file("$myOutput") if (!jaxbTargetDir.exists()) { jaxbTargetDir.mkdirs() } ant.taskdef(name: 'xjc', classname: 'com.sun.tools.xjc.XJCTask', classpath: configurations.jaxb.asPath) ant.xjc( destdir: "${jaxbTargetDir}", schema: "${rootDir}/src/main/resources/xsd/${myXsd}", removeOldOutput: 'yes', extension: 'true' ) { arg(line: '-nv -disableXmlSecurity') } } } tasks.compileJava.dependsOn tasks.openApiGenerate, tasks.generateSources 我正在为所有 JAXB 依赖项使用最新版本,2.3.1。这可能是xjc的问题吗? 独立于 jaxb 版本/使用的插件/工具,我可以使用此 xsd 重现问题: <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" > <xsd:element name="MyPriorityEnum"> <xsd:simpleType final="restriction"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="NORMAL" /> <xsd:enumeration value="LOW" /> <xsd:enumeration value="HIGH" /> </xsd:restriction> </xsd:simpleType> </xsd:element> </xsd:schema> ...但不能这样: <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="https://my.org.com/foo/blahr" targetNamespace="https://my.org.com/foo/blahr" elementFormDefault="qualified"> <xsd:element name="MyPriorityEnum" type="tns:MyEnumType" /> <xsd:simpleType name="MyEnumType" final="restriction"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="NORMAL" /> <xsd:enumeration value="LOW" /> <xsd:enumeration value="HIGH" /> </xsd:restriction> </xsd:simpleType> </xsd:schema> ...这意味着它可以工作:xjc 生成枚举类型。 最显着的区别是从“嵌套简单类型”到“引用简单类型”......(?)

回答 1 投票 0

XSD 1.0 无法对无序 XML 进行验证

假设我有这个验证xsd: ...

回答 1 投票 0


无法使用架构验证 XML,但可以通过从中读取写入的文件来工作

我目前正在使用 lxml 并想要验证 XML 内容。 我从 tei = etree.Element("TEI", nsmap={None: 'http://www.tei-c.org/ns/1.0'} 完全用 Python 编写,有很多子元素...

回答 1 投票 0

解决 XPath 评估产生过多目标节点的错误

我正在尝试将 xjc 生成的全大写类名更改为 CamelCase。为了实现这一点,我编写了一个 Python 脚本来生成绑定文件。这是脚本的一部分: 定义

回答 1 投票 0

将 XSD 导入目标命名空间中的 WSDL 错误

使用 Apache CXF 4.0.3 中的 wsdl2java 在尝试将 XSD 导入我的 WSDL 文件时遇到错误。这些文件来自第 3 方,对于早期版本的 CXF,导入工作正常...

回答 2 投票 0

无法通过 jaxws:wsimport 实用程序 [binding.xsd] 创建 Web 服务客户端

我正在尝试使用网络服务,但我什至无法启动。一旦包含 Web 服务,我就会收到错误消息。我研究并发现了类似的错误,但没有发现这个错误。我希望你们知道...

回答 1 投票 0

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