XSD通常是指以W3C XML Schema格式编写的文档,其中包含特定类型的XML文档的描述。
我正在尝试创建一个 XSD 文件来验证 DICOM 中定义的十进制字符串 (DS): http://dicom.nema.org/medical/dicom/current/output/chtml/part05/sect_6.2.html#para_15754884-9ca2...
我有这个示例 XSD。它可以工作,但是当发生验证错误时,它会显示错误,如下所示。我也想要字段名称: 验证错误:“FIELD”元素无效 - 值“12...
参见标题:我有大约 50 个互相导入的 XSD 文件(带标签),我需要分析它们的依赖关系。 你知道有什么软件(最好是免费的)可以生成依赖关系图
Excel Office 加载项manifest.xml 不喜欢命名空间前缀
构建 Excel Office Web 加载项时,需要一个 manifest.xml 文件来描述服务。 下面是一个在 Excel 中打开任务面板的简单方法: 构建 Excel Office Web Add-Ins 时,需要一个 manifest.xml 文件来描述服务。 这是一个在 Excel 中打开任务面板的简单方法: <?xml version="1.0" encoding="utf-8"?> <OfficeApp xsi:type="TaskPaneApp" xmlns="http://schemas.microsoft.com/office/appforoffice/1.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:bt="http://schemas.microsoft.com/office/officeappbasictypes/1.0" xmlns:ov="http://schemas.microsoft.com/office/taskpaneappversionoverrides" > <Id>61b854ed-e679-4ae7-9c91-c04e9846f706</Id> <Version>0.0.0.1</Version> <ProviderName>MyProvider</ProviderName> <DefaultLocale>en-US</DefaultLocale> <DisplayName DefaultValue="MyDisplayName" /> <Description DefaultValue="My Description." /> <IconUrl DefaultValue="~remoteAppUrl/Images/Button32x32.png" /> <SupportUrl DefaultValue="http://www.google.com" /> <Hosts> <Host Name="Workbook" /> </Hosts> <DefaultSettings> <SourceLocation DefaultValue="~remoteAppUrl/excel/" /> </DefaultSettings> <Permissions>ReadWriteDocument</Permissions> </OfficeApp> 这里是修改为使用命名空间前缀的相同的manifest.xml。这不起作用。 Excel 只是忽略它并且不提供任何错误消息。 <?xml version="1.0" encoding="utf-8"?> <x:OfficeApp xsi:type="x:TaskPaneApp" xmlns:x="http://schemas.microsoft.com/office/appforoffice/1.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:bt="http://schemas.microsoft.com/office/officeappbasictypes/1.0" xmlns:ov="http://schemas.microsoft.com/office/taskpaneappversionoverrides" > <x:Id>61b854ed-e679-4ae7-9c91-c04e9846f706</x:Id> <x:Version>0.0.0.1</x:Version> <x:ProviderName>MyProvider</x:ProviderName> <x:DefaultLocale>en-US</x:DefaultLocale> <x:DisplayName DefaultValue="MyDisplayName" /> <x:Description DefaultValue="My Description." /> <x:IconUrl DefaultValue="~remoteAppUrl/Images/Button32x32.png" /> <x:SupportUrl DefaultValue="http://www.google.com" /> <x:Hosts> <x:Host Name="Workbook" /> </x:Hosts> <x:DefaultSettings> <x:SourceLocation DefaultValue="~remoteAppUrl/excel/" /> </x:DefaultSettings> <x:Permissions>ReadWriteDocument</x:Permissions> </x:OfficeApp> 对于一个应用程序来说,两者应该是相同的。 而且,这两种格式都可以根据 Office 清单 XML 架构进行彻底验证。 我说得对吗? Excel 应该能够处理命名空间前缀,但我在翻译中犯了一个错误。 我错了吗? Excel 仅适用于未修饰的 XML 元素,并且不允许使用前缀。 (最终目标是从 XSLT 生成清单,但我发现没有命名空间前缀很难实现。) 谢谢。 我认为您是正确的,Excel 确实应该 同样地理解这些 XML 文档,无论使用什么命名空间前缀(如果有),只要前缀与正确的命名空间 URI 关联即可。无论您使用将给定名称空间 URI 与前缀关联还是不带前缀(即使其成为“默认”名称空间),实际上应该没有什么区别,因为这纯粹是语法差异。 但这当然是语法上可检测到的差异,当我得知 Excel 并没有同等对待这两种语法变体,而是要求 http://schemas.microsoft.com/office/appforoffice/1.1 命名空间 URI 是默认命名空间时,我并不感到非常惊讶,即与 null 命名空间前缀关联。 我的建议是花点时间向 Microsoft 的方向愤怒地挥动拳头,然后通过在默认名称空间中生成不带前缀的元素来解决问题。 在 XSLT 中的默认命名空间中生成元素通常是一件简单的事情;通常,您只需在样式表的根元素上声明默认名称空间,即 xmlns="http://schemas.microsoft.com/office/appforoffice/1.1",然后在模板中创建不使用前缀的文字元素,例如: <ProviderName>MyProvider</ProviderName> ...或者,如果您使用 xsl:element,就像这样: <xsl:element name="ProviderName">MyProvider</xsl:element>
模式定义中<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,检查元素列表是否包含特定的必需元素,但除了它们之外,在列表的任何位置都允许任何数量的其他元素。难道是……