XSD通常是指以W3C XML Schema格式编写的文档,其中包含特定类型的XML文档的描述。
我需要将不使用任何模式的 XML 文档转换为使用定义良好的模式的另一种格式。 所以基本上我必须改变这个: 我需要将不使用任何模式的 XML 文档转换为使用定义良好的模式的另一种格式。 所以基本上我必须改变这个: <healthCareFacilityTypeCode displayName="Home" codingScheme="Connect-a-thon healthcareFacilityTypeCodes" >Home</healthCareFacilityTypeCode> 进入此: <healthCareFacilityTypeCode> <code>Home</code> <displayName> <LocalizedString value="Home" /> </displayName> <schemeName>Connect-a-thon healthcareFacilityTypeCodes</schemeName> </healthCareFacilityTypeCode> 我知道如何通过查看架构来手动转换它。这是 XSD 的片段: <xsd:complexType name="DocumentEntryType"> <xsd:sequence> <xsd:element minOccurs="0" name="healthCareFacilityTypeCode" type="tns:CodedMetadataType"/> </xsd:sequence> <xsd:attribute default="false" name="existing" type="xsd:boolean" use="optional"/> </xsd:complexType> <xsd:element name="DocumentEntry" type="tns:DocumentEntryType"/> 我不知道如何解决的是:如何利用目标 XSD 将节点从源 XML 转换为目标 XML 文档。我觉得执行转换的所有信息都位于 XSD 中,但我可以使用它吗?怎么办? 遵循建议,这就是我想到的。不完美,但足以满足我的目的。 <xsl:template match="XDSDocumentEntry"> <DocumentEntryType> <xsl:call-template name="namespaceChange"/> <xsl:apply-templates/> </DocumentEntryType> </xsl:template> <xsl:template match="node() | @*"> <xsl:copy> <xsl:apply-templates select="node() | @*"/> </xsl:copy> </xsl:template> <xsl:template match="//*[matches(name(), 'Code')]"> <xsl:copy> <code> <xsl:value-of select="."/> </code> <schemeName> <xsl:value-of select="@codingScheme"/> </schemeName> <displayName> <LocalizedString> <xsl:attribute name="value"> <xsl:value-of select="@displayName"/> </xsl:attribute> </LocalizedString> </displayName> </xsl:copy> </xsl:template>
对于这个问题我有些不知所措。 我正在编写一小段代码,用于根据相应的 XSD 架构验证 XML 文件。 为了测试,我向它传递了一个有效的 XML 文件(有效...
是否可以在没有适配器的情况下绑定到字符串? 我有一个第三方架构,其属性类型(日期)错误,并且在外部文件绑定中我将其转换为字符串,因此
我尝试使用 JAXB 从 spring-beans.xsd 生成 Java 类(仅用于训练目的),但出现此错误: 正在解析架构... [错误] 属性“Ref”已定义。使用<...
您可以根据 XML 文档验证 XPath 表达式来验证它,但是有没有一种简单的方法可以根据该文档的架构验证相同的 XPath 表达式? 假设我有一个 XSD 架构,例如...
我有一个逻辑应用工作流程,使用 XML 文件的平面文件编码步骤。 我已将 XSD 文件上传到逻辑应用程序的工件/架构位置。 当我运行工作流程时,我看到以下内容...
Visual studio 2022 对 .xsd 设计器执行搜索
我有一个大项目,其中有一个 .xsd 文件,其中包含数据库所有表的数据集。 我使用与 Visual Studio 集成的 .xsd 设计器向表适配器和其他项目添加查询...
只是为了防止有一天有人产生同样的错误。 在 NLog.config 文件的起始部分,Visual Studio 告诉我(带有警告)它找不到 NLog.xsd 文件 <...
创建 XML 时,属性 wait 可能并不总是包含值。如何编辑架构以便允许属性等待包含数字或不包含值? 创建 XML 时,属性 wait 可能并不总是包含值。如何编辑架构以便允许属性 wait 包含数字或不包含值? <xs:complexType name="CommandType"> <xs:simpleContent> <xs:extension base="xs:string"> <xs:attribute type="xs:string" name="exe" use="required" /> <xs:attribute type="xs:string" name="args" use="required" /> <xs:attribute type="xs:int" name="wait" use="required" /> <xs:attribute type="xs:string" name="expectedOutput" use="required" /> <xs:attribute type="xs:string" name="toVariable" use="required" /> </xs:extension> </xs:simpleContent> </xs:complexType> 我尝试过做这两个nillable="true"xsi:nil="true",但它们不起作用。当我尝试验证 XSD 时,出现错误。 “nillable”仅适用于元素,不适用于属性 - 即使这样它也不是很有用,因为如果元素为空,您必须添加 xsi:nil="true",这是完全多余的。 (a) 定义一个类型,它是 xs:integer 和一个零长度字符串的联合,如 IMSoP 所建议的,或者 (b) 定义一个项目类型为整数、minLength 0、maxLength 1 的列表类型。我更喜欢后者解决方案,因为它与模式感知 XSLT 和 XQuery 配合得更好。 例如: <xs:simpleType name="list-of-int"> <xs:list itemType="xs:integer"/> </xs:simpleType> <xs:simpleType name="optionalInt"> <xs:restriction base="list-of-int"> <xs:minLength value="0"/> <xs:maxLength value="1"/> </xs:restriction> </xs:simpleType> 可能有更简单的方法,但也许您可以创建一个自定义类型,该类型可以是空字符串,也可以使用 xs:int 类型符合 union 的定义: <xs:simpleType name="emptyString"> <xs:restriction base="xs:string"> <xs:length value="0" /> </xs:restriction> </xs:simpleType> <xs:simpleType name="intOrEmpty"> <xs:union memberTypes="xs:int emptyString" /> </xs:simpleType> 顺便说一句,值得记住的是 xs:string 类型包含空字符串,因此,如果 exe 属性应始终具有非空值,则需要 nonEmptyString 类型(使用 minLength 限制)以及将其标记为 required。我知道这让我过去很困惑。
Autosar DEXT ARXML 文件中的元素以及创建 DEXT 后的“检查规则”是什么?
我正在尝试为 git 中的开源 python 代码做出贡献,该代码从一组输入(doc、xls)创建 DEXT ARXML 文件。我想知道/获取应该包含在其中的元素列表以及所有
将两个具有不重叠定义的命名空间 2 的 XSD 导入命名空间 1 的 XSD 中
我提到了“从不同的 xsd 导入相同的命名空间”的问题,区别在于我的两个导入的 XSD 中的定义不重叠。 我需要导入两个 XSD(kd1.xsd 和 kd2.xsd)...
XSLT 错误:提供给 xsl:evaluate 的 XPath 表达式中出现静态错误:XPath 表达式中未声明变量
我尝试使用特定标签中的值作为变量名。但是,在转换 xml 时,系统会在 XPath 表达式中给出未声明的变量异常。 我的 Xml 文件是 我尝试使用特定标签中的值作为变量名。但是在转换 xml 时系统给出了 XPath 表达式中未声明的变量异常。 我的 Xml 文件是 <request> <entityType>individual</entityType> </request> Xslt 文件是 <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:math="http://www.w3.org/2005/xpath-functions/math" exclude-result-prefixes="xs math" version="3.0"> <xsl:param name="individual" static="yes" as="xs:string" select="'1'"/> <xsl:param name="legal" static="yes" as="xs:string" select="'2'"/> <xsl:template match="/*"> <xsl:param name="entity" as="xs:string" select="concat('$',entityType)"/> <xsl:variable name="input" as="xs:string"> <xsl:evaluate xpath="$entity"/> </xsl:variable> <HTML><TITLE><xsl:value-of select="$input"/></TITLE></HTML> </xsl:template> </xsl:stylesheet> 我期望结果为 <HTML><TITLE>1</TITLE></HTML> 但是我收到“提供给 xsl:evaluate 的 XPath 表达式中出现静态错误:XPath 表达式中未声明的变量”消息。 如果您阅读https://www.w3.org/TR/xslt-30/#dynamic-xpath,那么您会发现它清楚地指出“在xsl:variable或xsl:param元素中的样式表中声明的变量不是在目标表达式的范围内。”。您必须在 xsl:with-param 内使用 xsl:evaluate 和/或 with-params 上的 xsl:evaluate 来声明所需的参数。 <xsl:evaluate xpath="$entity" with-params="map{ QName('', 'individual') : $individual }"/>
我正在尝试编写一个 XSD 来验证 XML,其中以下内容必须为真: 一个元素(父元素)包括: “Choice1”或“Choice2”元素 加上“Field1”、“Field2”、“F...
如何使用 jaxb2-maven-plugin 预定义 XSD 文件名
我使用下面的代码从带注释的 java 类生成 XSD。 XSD 的默认名称始终为“schema1.xsd”。我应该如何仅使用该插件来预定义它?目前我使用maven-antrun-
架构验证失败; XML 不符合符合 ZATCA 规范的 UBL 2.1 标准
我正在尝试使用符合沙特阿拉伯 ZATCA(Zakat、税务和海关当局)规范的 UBL 2.1 标准来验证我的 xml。此验证的网址:https://sandbox.zatca.gov.sa/T ...
根据 SHACL 验证 RDF,错误消息:节点 ex:**** 不包含集合中的值:['Literal("false" = False, datatype=xsd:boolean)']
我正在尝试根据 SHACL 图验证 RDF 文件。我无法在此处发布这些文件,因为它们太大,但我粘贴了示例部分。 辐射分布函数: 例如:GUID_5ACC3D0F-28A1-4E83-A0F1-
我的xsd,如附加文件中所示,报告关系ROOT 1-->1标头,但是当我使用hyperjaxb3构建项目时,它创建了一个错误的@ManyToOne注释而不是@OneToOne,因为xsd有一个默认值