XSD通常是指以W3C XML Schema格式编写的文档,其中包含特定类型的XML文档的描述。
模式定义中<xsd:all>和<xsd:sequence>之间的区别?
我正在使用 xsd:all 复杂类型。当我在验证时错过任何强制性元素时,它将显示所有元素。它不会显示确切的丢失元素。 但如果我使用 xsd:sequence...
SAXParseException:cvc-elt.1:找不到元素“文档”的声明
我有这个问题 造成原因: org.xml.sax.SAXParseException:cvc-elt.1:找不到元素“文档”的声明。 XML 格式的文档 <
我是databricks新手,想要将嵌套的xml导入到多个表中。 我有一个 xml 和一个 xsd,您可以在下面找到。 到目前为止我已经完成了以下步骤: Python代码 将 XML 导入到 df: #...
Databricks - 将嵌套的 xml 文件导入到多个表
我是databricks新手,想要将嵌套的xml导入到多个表中。 我有一个 xml 和一个 xsd,您可以在下面找到。 到目前为止我已经完成了以下步骤: Python代码 将 XML 导入到 df: #...
如何修改我的设置以允许 VS2010 从“未经授权的区域”加载第 3 方 XSD 文件?
我在 Visual Studio 2010 中打开了第 3 方 XSD 文件,该文件从同一第 3 方的其他架构文件导入命名空间。 在架构文件的 XML 编辑器视图中,xs:import 元素是
我正在尝试修改 TSQL 中预定义的 xml(更具体地说是 xsd)。 我想将枚举限制插入到 xsd 元素之一。 任务是根据查询填充xsd限制 前...
Java:使用断言对 XML 进行 XSD 1.1 模式验证
我想针对包含断言的 xsd 1.1 文件测试生成的 xml 文件,并且我想在 Java 中执行此操作。 我的xml内容是 我想针对包含断言的 xsd 1.1 文件测试生成的 xml 文件,并且我想在 Java 中执行此操作。 我的xml内容是 <?xml version="1.0" encoding="UTF-8"?> <Person xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="person.xsd"> <Name>John Doe</Name> <Age>17</Age> </Person> xsd内容如下,包含两个断言 <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:vc="http://www.w3.org/2007/XMLSchema-versioning" vc:minVersion="1.1"> <xs:element name="Person"> <xs:complexType> <xs:sequence> <xs:element name="Name" type="xs:string"/> <xs:element name="Age" type="xs:integer"/> </xs:sequence> <xs:assert test="Age >= 18"/> <xs:assert test="(string-length(Name) > 15)"/> </xs:complexType> </xs:element> </xs:schema> 我用 implementation("org.opengis.cite.xerces:xercesImpl-xsd11:2.12-beta-r1667115") 作为我的 build.gradle.kts 文件中的依赖项。以下 Java 代码有效: // That's the important String which instantiates a xsd 1.1 aware schema factory + validator SchemaFactory sf = SchemaFactory.newInstance("http://www.w3.org/XML/XMLSchema/v1.1"); Schema s = sf.newSchema(new StreamSource(getClass().getResourceAsStream(xsdFilePath))); Validator v = s.newValidator(); v.validate(new StreamSource(getClass().getResourceAsStream(xmlFilePath))); 万岁,现在我收到验证异常: Exception in thread "main" org.xml.sax.SAXParseException; lineNumber: 6; columnNumber: 10; cvc-assertion: Assertion evaluation ('Age >= 18') for element 'Person' on schema type '#AnonType_Person' did not succeed. 问题 当我将年龄修正为 18 岁时,我不会收到有关名称的验证错误(长度 > 15),但我得到 Exception in thread "main" java.lang.NoClassDefFoundError: com/ibm/icu/text/UTF16 at org.eclipse.wst.xml.xpath2.processor.internal.function.FnStringLength.string_length(FnStringLength.java:105) at org.eclipse.wst.xml.xpath2.processor.internal.function.FnStringLength.evaluate(FnStringLength.java:74) at org.eclipse.wst.xml.xpath2.processor.DefaultDynamicContext.evaluate_function(DefaultDynamicContext.java:194) at org.eclipse.wst.xml.xpath2.processor.DefaultEvaluator.visit(DefaultEvaluator.java:1611) at org.eclipse.wst.xml.xpath2.processor.internal.ast.FunctionCall.accept(FunctionCall.java:46) at org.eclipse.wst.xml.xpath2.processor.DefaultEvaluator.visit(DefaultEvaluator.java:2139) at org.eclipse.wst.xml.xpath2.processor.internal.ast.FilterExpr.accept(FilterExpr.java:52) at org.eclipse.wst.xml.xpath2.processor.DefaultEvaluator.visit(DefaultEvaluator.java:1258) at org.eclipse.wst.xml.xpath2.processor.internal.ast.XPathExpr.accept(XPathExpr.java:43) at org.eclipse.wst.xml.xpath2.processor.DefaultEvaluator.do_bin_args(DefaultEvaluator.java:803) at org.eclipse.wst.xml.xpath2.processor.DefaultEvaluator.visit(DefaultEvaluator.java:614) at org.eclipse.wst.xml.xpath2.processor.internal.ast.CmpExpr.accept(CmpExpr.java:106) at org.eclipse.wst.xml.xpath2.processor.DefaultEvaluator.do_expr(DefaultEvaluator.java:315) at org.eclipse.wst.xml.xpath2.processor.DefaultEvaluator.visit(DefaultEvaluator.java:1573) at org.eclipse.wst.xml.xpath2.processor.internal.ast.ParExpr.accept(ParExpr.java:40) at org.eclipse.wst.xml.xpath2.processor.DefaultEvaluator.visit(DefaultEvaluator.java:2139) at org.eclipse.wst.xml.xpath2.processor.internal.ast.FilterExpr.accept(FilterExpr.java:52) at org.eclipse.wst.xml.xpath2.processor.DefaultEvaluator.visit(DefaultEvaluator.java:1258) at org.eclipse.wst.xml.xpath2.processor.internal.ast.XPathExpr.accept(XPathExpr.java:43) at org.eclipse.wst.xml.xpath2.processor.DefaultEvaluator.visit(DefaultEvaluator.java:1607) at org.eclipse.wst.xml.xpath2.processor.internal.ast.FunctionCall.accept(FunctionCall.java:46) at org.eclipse.wst.xml.xpath2.processor.DefaultEvaluator.visit(DefaultEvaluator.java:2139) at org.eclipse.wst.xml.xpath2.processor.internal.ast.FilterExpr.accept(FilterExpr.java:52) at org.eclipse.wst.xml.xpath2.processor.DefaultEvaluator.visit(DefaultEvaluator.java:1258) at org.eclipse.wst.xml.xpath2.processor.internal.ast.XPathExpr.accept(XPathExpr.java:43) at org.eclipse.wst.xml.xpath2.processor.DefaultEvaluator.do_expr(DefaultEvaluator.java:315) at org.eclipse.wst.xml.xpath2.processor.DefaultEvaluator.visit(DefaultEvaluator.java:336) at org.eclipse.wst.xml.xpath2.processor.ast.XPath.accept(XPath.java:43) at org.eclipse.wst.xml.xpath2.processor.DefaultEvaluator.evaluate(DefaultEvaluator.java:290) at org.apache.xerces.impl.xs.AbstractPsychoPathXPath2Impl.evaluateXPathExpr(Unknown Source) at org.apache.xerces.impl.xs.XMLAssertPsychopathXPath2Impl.evaluateOneAssertion(Unknown Source) at org.apache.xerces.impl.xs.XMLAssertPsychopathXPath2Impl.evaluateAssertionsFromAComplexType(Unknown Source) at org.apache.xerces.impl.xs.XMLAssertPsychopathXPath2Impl.processAllAssertionsOnElement(Unknown Source) at org.apache.xerces.impl.xs.XMLAssertPsychopathXPath2Impl.endElement(Unknown Source) at org.apache.xerces.impl.xs.XSDAssertionValidator.handleEndElement(Unknown Source) at org.apache.xerces.impl.xs.XMLSchemaValidator.assertionValidatorEndElementDelegate(Unknown Source) at org.apache.xerces.impl.xs.XMLSchemaValidator.handleEndElement(Unknown Source) at org.apache.xerces.impl.xs.XMLSchemaValidator.endElement(Unknown Source) at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source) at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) at org.apache.xerces.jaxp.validation.StreamValidatorHelper.validate(Unknown Source) at org.apache.xerces.jaxp.validation.ValidatorImpl.validate(Unknown Source) at java.xml/javax.xml.validation.Validator.validate(Validator.java:124) at org.example.HelloWorld.validateXMLSchemaXerxes(HelloWorld.java:50) at org.example.HelloWorld.main(HelloWorld.java:31) Caused by: java.lang.ClassNotFoundException: com.ibm.icu.text.UTF16 at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641) at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526) ... 48 more 问题: 如何解决这个问题 到了 2024 年,仍然没有其他可用的开源库可以验证 xsd 1.1 断言吗? 它显然失败了,因为它期望 ICU4J 位于类路径上,但找不到它。 不,没有其他可用的开源实现。 (我花了大约一年的时间在 Saxon-EE 中编写(商业)模式处理器,所以这并不奇怪。)
在Python中解析xsd文件时出现奇怪的现象(特别是行号/引用)
我正在解析一个XSD文件,解析时发生了一个奇怪的现象。例如我有这个元素: 我正在解析 XSD 文件,解析时发生了一个奇怪的现象。例如,我有这个元素: <xsd:element name="Example" type="ExampleType" minOccurs="0"> <xsd:annotation> <xsd:documentation> <Description>This is the description</Description> <LineNumber>4</LineNumber> </xsd:documentation> </xsd:annotation> </xsd:element> 我正在使用此代码: #xml.etree.ElementTree annotation = element.find(".//xsd:annotation", namespace) if annotation is not None: documentation = annotation.find(".//xsd:documentation", namespace) if documentation is not None: for doc_child in documentation: tag = doc_child.tag.split('}')[-1] element_dict[element_name][tag] = doc_child.text.strip() 现在这是奇怪的部分。一旦我将 element_dict 转换为数据框并将数据框转换为 Excel,行号就会发生变化。我正在获取描述和行号,如果我在示例中打印出来,那就是: Description: This is the description LineNumber: 4 但是在excel文件中却是这样的 Description: This is the description LineNumber: Part A Line 12 我已经确认该元素是从 A 部分第 12 行(xsd 中的后续元素)中提取的,但我很困惑代码中的原因是什么?另外,我将如何解析它,以便我可以获得 和此参考行号? 好吧,我明白了。事实证明,当我提取数据时,有两个元素具有完全相同的名称(ExampleName)。 由于我将此数据添加到字典中,其中元素名称是键,所以我有两个元素更新同一记录。 { "Name" : "ExampleName", "LineNumber" : "4" } { "Name" : "ExampleName", "LineNumber" : "Part A Line 12" } 首先将行号“4”设置为“Part A Line 12”
Jaxb2Marshaller:使用 0/1 来编组 xsd:boolean 值与生成的 java 模型
我正在使用 Jaxb2Marshaller 来编组和解组肥皂请求和响应。 我的java模型类是使用xjc基于wsdl生成的。 我有一个奇怪的要求,类型的字段...
我正在使用 Azure 逻辑应用从 MS Dynamics Business Central 检索数据。该数据使用 XSD 格式转换为 XML。然后 XML 被发送到外部系统。 我设法得到...
Jaxb 获取根据多个根元素 XSD 验证 XML 的根元素
我们有一个包含多个可能的根元素的 xsd。 要验证的 xml 可以采用其中任何一个,但显然每个 xml 一次。 我无法透露实际的 xsd,但让我们想象一下类似的东西: &l...
在我的 jar 中,我提供了我的 xsd 架构文件,即以下结构: 米贾尔 - myschema.xsd 当我解压缩该文件时,我可以验证该文件是否存在于 JAR 内的根级别。 我正在添加 xsd ...
根据 XSD 验证 XML 时出现问题 - PHP/schemaValidate
我正在尝试使用 DOMDocument 中的函数 schemaValidate(String file) 根据 XSD 验证 XML 文件。 当我在其他工具(例如在线验证器)上验证它时,它工作正常,但在我的
我正在尝试了解 XML 和 XSLT 的内容,在我的研究中我偶然发现了不同的 XSLT 处理器。 Xalan 是第一个,它似乎工作得很好而且是免费的,除了......
即使使用ErrorHandler,为什么模式验证会在第一个错误后结束?
我正在研究模式验证。 目标是获取 XSD 文件并根据它验证传入文档。 如果有错误,我想捕获所有错误。 我只得到第一个…
XSD 架构;在元素序列中,是否有任何方法可以指定允许任意数量的未指定的附加元素?
所以,我想编写一个 XSD,检查元素列表是否包含特定的必需元素,但除了它们之外,在列表的任何位置都允许任何数量的其他元素。难道是……
我是 XML 新手。我正在尝试导入 XML 文件,但收到错误 - “找不到元素“根”的声明”。我怀疑这是因为名称空间 URI (http://xmlns.oracle.com...
我想删除 .xml 文件中与 .xsd 文件定义不匹配的所有元素和/或属性。 我提供了 XML-XSD 文件对的简化版本,但它们实际上有更多属性......
我无法创建 xsd 文件来验证评论元素。 元素“comment”可以包含文本和可选子元素 , , 子元素可以嵌套... 我无法创建 xsd 文件来验证评论元素。 元素“comment”可以包含文本和可选子元素<b>, <i>, <ul> 子元素可以嵌套并出现多次 评论内容必须有长度限制(60) 我能够满足 1. 和 2.,但如何添加长度限制? 非常感谢您的帮助! 安德烈亚斯 <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> <xs:element name="Test"> <xs:complexType> <xs:sequence> <xs:element name="comment" type="FormattedText" minOccurs="0" /> </xs:sequence> </xs:complexType> </xs:element> <xs:complexType name="FormattedText" mixed="true"> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element ref="b" minOccurs="0" /> <xs:element ref="i" minOccurs="0" /> <xs:element ref="ul" minOccurs="0" /> </xs:choice> </xs:complexType> <xs:complexType name="ULType"> <xs:sequence> <xs:element name="li" minOccurs="1" maxOccurs="unbounded"> <xs:complexType mixed="true"> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element ref="b" minOccurs="0" /> <xs:element ref="i" minOccurs="0" /> <xs:element ref="ul" minOccurs="0" /> </xs:choice> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> <xs:element name="b" type="FormattedText" /> <xs:element name="i" type="FormattedText" /> <xs:element name="ul" type="ULType" /> </xs:schema> 这是 xml 的示例: <?xml version="1.0" encoding="UTF-8"?> <Test> <comment> Abstellorte: <ul> <li>Hinter <b>To<i>r</i></b></li> <li>Am <i>Fenster</i></li> </ul> </comment> </Test> 您可以在 XSD 1.1 中使用断言来执行此操作:test="string-length(.) le 60"。在 XSD 1.0 中无法完成。
Azure Databricks:PySpark:无法使用 XSD 验证 XML 文件
这就是我所做的。 创建了一个 XML 文件 xmlPath =“dbfs:/mnt/books.xml” xml字符串 = """ 科雷茨,伊娃 ...