XSD通常是指以W3C XML Schema格式编写的文档,其中包含特定类型的XML文档的描述。
这是我收到的一个 xml 文件,我想用 delphi 生成相同的输出。我使用delphi xml 向导通过我的模式生成一个大单元。 所以这就是我想要的输出(起源...
尝试使用 JAXWS 将简单的 Web 服务绑定到 Spring bean,并且在我的应用程序上下文 xml 中读取 XSD 时出现错误
我尝试使用 JDK 1.7 绑定部署在 IBM WAS Liberty 8.5.5.4 上的已正常运行的 JAXWS Web 服务,但在根据 applicationContext.xml 绑定服务时出现以下错误。这是一个
我试图了解这个 xml 文件有什么问题: 我试图了解这个 xml 文件有什么问题: <?xml version="1.0" encoding="UTF-8"?> <FileRichiesta xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://ivaservizi.agenziaentrate.gov.it/docs/xsd/ServiziMassivi/input/RichiestaServiziMassivi/v1.0 RichiestaServiziMassivi_v1.0.xsd" xmlns="http://ivaservizi.agenziaentrate.gov.it/docs/xsd/ServiziMassivi/input/RichiestaServiziMassivi/v1.0" versione="1.0"> <TipoRichiesta>FATT</TipoRichiesta> <NomeFile>request.xml</NomeFile> <File>base64_encoded_file_which_seems_to_be_ok</File> </FileRichiesta> xsd 是: <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns="http://ivaservizi.agenziaentrate.gov.it/docs/xsd/ServiziMassivi/input/RichiestaServiziMassivi/v1.0" targetNamespace="http://ivaservizi.agenziaentrate.gov.it/docs/xsd/ServiziMassivi/input/RichiestaServiziMassivi/v1.0" version="1.0"> <xs:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/xmldsig-core-schema.xsd"/> <xs:element name="FileRichiesta" type="FileType"/> <xs:complexType name="FileType"> <xs:sequence> <xs:element name="TipoRichiesta" type="StringType" /> <xs:element name="NomeFile" type="NomeFileType" /> <xs:element name="File" type="xs:base64Binary" xmime:expectedContentTypes="*/*" xmlns:xmime="http://www.w3.org/2005/05/xmlmime" /> <xs:element ref="ds:Signature" minOccurs="0"/> </xs:sequence> <xs:attribute name="versione" type="VersioneType" use="required"/> </xs:complexType> <xs:simpleType name="NomeFileType"> <xs:restriction base="xs:normalizedString"> <xs:pattern value="[a-zA-Z0-9_\.]{9,50}" /> </xs:restriction> </xs:simpleType> <xs:simpleType name="StringType"> <xs:restriction base="xs:normalizedString"> <xs:pattern value="[A-Za-z_]{1,100}"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="VersioneType"> <xs:restriction base="xs:string"> <xs:maxLength value="5"/> </xs:restriction> </xs:simpleType> </xs:schema> 我收到此错误: Invalid content was found starting with element 'TipoRichiesta'. One of '{TipoRichiesta}' is expected. Row: 7 - Column: 20. 我的xml好吗? 我是在阅读意大利政府文件后写的。 您需要告诉架构 TipoRichiesta 元素与整个文档属于同一名称空间。将以下属性添加到 xs:schema: elementFormDefault="qualified"
我正在实施 SCAP,我需要将供应商资产类型添加到 ARF 报告中。 ARF 架构位于此处 https://scap.nist.gov/schema/asset-reporting-format/1.1/asset-reporting-for...
以下 XSD 定义了复杂类型 Base(指定 block="")和 Derived(扩展 Base 并指定 block="")。 以下 XSD 定义了复杂类型 Base,它指定 block="",以及 Derived,它扩展 Base 并还指定 block=""。 <?xml version="1.0" encoding="utf-8"?> <xs:schema targetNamespace ="http://example.org/scratch-type-substitution" xmlns ="http://example.org/scratch-type-substitution" xmlns:xs ="http://www.w3.org/2001/XMLSchema" blockDefault =""> <xs:complexType name="Base" block=""/> <xs:complexType name="Derived" block=""> <xs:complexContent> <xs:extension base="Base"/> </xs:complexContent> </xs:complexType> <xs:element name="root"> <xs:complexType> <xs:choice maxOccurs="unbounded"> <xs:element name="base" type="Base"/> </xs:choice> </xs:complexType> </xs:element> </xs:schema> 以下实例根据 XSD 有效。 它指定一个 Base 类型元素,该元素通过 Derived: 显式替换为 xsi:type 类型 <pre:root xmlns:pre="http://example.org/scratch-type-substitution" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <base xsi:type="pre:Derived"/> </pre:root> 但是,如果将属性blockDefault="#all"添加到<schema>,则实例将无法验证。 特别是,.NET 8.0 XmlDocument 方法 Load 发出: xsi:type 属性值“http://example.org/scratch-type-substitution:Derived”对于元素“base”无效,因为它不是从架构中的类型有效派生的类型,或者因为它阻止了 xsi:type 派生。 我认为前者不可能是真的。 如果后者是真的,我不明白为什么,因为两种类型的已解析 block 属性值的 PSVI 信息都是“空” - 并且 - 空字符串(或任何值)会覆盖 blockDefault 值. Saxon 模式验证器给出相同的结果。这是错误消息: test.xml 第 5 行第 33 列验证错误:FORG0001: xsi:type 不是从声明的类型有效派生的。推导 请求的类型 Q{http://example.org/scratch-type-substitution}派生被阻止 通过基本类型 Q{http://example.org/scratch-type-substitution}派生或由 元素声明 请参阅 https://www.w3.org/TR/xmlschema11-1/#cvc-elt 第 4.3 条 我认为最后一点给出了线索:虽然类型声明覆盖了 blockDefault,但元素声明却没有。 将元素声明更改为 <xs:element name="base" type="Base" block=""/> 修复它。
我正在使用一些特定于域的 GML 文件,这些文件实际上是 XML 文件,能够存储 GIS 域中空间要素的几何形状。 我有这两个描述数据模型的 xsd 文件...
XSD 1.0 可空,带有 xs:string 类型枚举限制基数
我想确认我对 XSD nillable 属性的理解,因为它涉及强制枚举的限制基础。例如,给出以下内容: 我想确认我对 XSD nillable 属性的理解,因为它涉及强制枚举的限制基础。例如,给出以下内容: <xs:complexType name="_fruits"> <xs:sequence> <xs:element name="fruit" nillable="true" minOccurs="0" maxOccurs="unbounded"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="apple"/> <xs:enumeration value="banana"/> <xs:enumeration value="pear"/> <xs:enumeration value="orange"/> </xs:restriction> </xs:simpleType> </xs:element> </xs:sequence> </xs:compexType> <xs:element name="fruits" type="_fruits"/> 以下模式验证失败: <fruits> <fruit>apple</fruit> <!-- ok --> <fruit>banana</fruit> <!-- ok --> <fruit xsi:nil="true"/> <!-- not ok --> </fruits> 允许空值的选项有哪些?我想到的是创建一个可为空的类型,然后使用联合 <xs:simpleType name="_nullableType"> <!-- the nullable type --> <xs:restriction base="xs:string"> <xs:maxLength value="0"/> </xs:restriction> </xs:simpleType> <xs:simpleType name= "_fruit"> <!-- the restriction base fruit --> <xs:restriction base="xs:string"> <xs:enumeration value="apple"/> <xs:enumeration value="banana"/> <xs:enumeration value="pear"/> <xs:enumeration value="orange"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="_nullableFruit"> <!-- a union of the restriction base and nullable --> <xs:union memberTypes="_fruit _nullableType"/> </xs:simpleType> <xs:element name="nullableFruit" type="_nullableFruit"/> <xs:complexType name="_fruits"> <!-- complex type --> <xs:sequence> <xs:element ref="nullableFruit" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:compexType> 然而,虽然上述达到了预期的效果,但非常复杂。任何其他选择将不胜感激。 您实际上声明了 xsi 命名空间吗? (如果您向我们展示了错误消息,那么我们就不需要询问...) 我的首选方法是将 fruit 声明为 minLength = 0、maxLength = 1 的列表类型。 我不喜欢使用xsi:nil,它看起来非常不必要的复杂。
转换 XML => JSON => 基于 XSD 架构的 XML
我看到了很多关于这个主题的帖子,但没有一个有答案。 实际上是否有一个 JAVA 库可以使用 XSD 架构进行 XML => JSON => XML 的转换,以更好地处理
我们正在使用 Crystal Report 来显示客户使用的报告。 他们可以通过我们使用 .rpt 文件的 C# 应用程序查看它们,该文件使用 .xsd 文件中的表。 我必须添加一些新的
我在 xml 架构方面遇到问题。 首先我想向您展示 xml 的可能情况: 1. 2012年1月1日 2. 2012年1月1日 ...
我希望所有 xjc 生成的类都实现可序列化接口。 阅读帖子中的解决方案后,我实现了它,但 jaxb2-maven-plugin 抛出以下错误: [错误] 文件:mapping.xsd [17,...
我正在使用 C# 和 .NET 8.0.6。 我有一个 XSD,它声明了一个带有 xs:token 内容的“根”元素。 当我使用具有填充内容的实例元素验证文档时,p...
如何使用 PowerShell 根据 XSD 验证 XML 文件?
作为我开发的一部分,我希望能够根据单个 XSD 文件验证整个文件夹的 XML 文件价值。 PowerShell 函数似乎是一个很好的候选者,因为我可以......
如何将 XML 模式 (XSD) 转换为 Relax NG?
Relax NG 主页列出了 Sun RELAX NG Converter,它显然能够将 XSD 文件转换为 Relaxng 文件 - 但链接已失效,并且有关二手来源的博客条目似乎是
我正在尝试为 Visual Studio 和 ModBuddy 创建一个 xsd 架构,以便更轻松、更用户友好地创建用于修改游戏《地球之外的文明》的 xml 文件。 我的问题是...
我有静态方法,我用它来根据 XSD 文件验证 XML 文件。这工作正常,直到存在包含另一个 XSD 文件的 XSD 文件。 例如,我遇到麻烦的地方: 类型.XSD:...
XSD:更改子 xsd 中的元素类型,其中类型是自定义创建的类型
我想更改从另一个 xsd 中的父 xsd 继承的元素的类型 这是“父”xsd 的一部分,其中包含类型 我想更改从另一个 xsd 中的父 xsd 继承的元素的类型 这是“父”xsd 的一部分,其中包含类型 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:vc="http://www.w3.org/2007/XMLSchema-versioning" elementFormDefault="qualified" attributeFormDefault="unqualified" vc:minVersion="1.1"> <xs:simpleType name="Str30m1"> <xs:restriction base="xs:string"> <xs:maxLength value="30"/> <xs:minLength value="1"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="Str20"> <xs:restriction base="xs:string"> <xs:maxLength value="20"/> </xs:restriction> </xs:simpleType> <xs:complexType name="Data"> <xs:sequence> <xs:element name="LINE1" type="Str30m1" minOccurs="0"/> <xs:element name="LINE2" type="Str20" minOccurs="0"/> <xs:element name="LINE3" type="Str20" minOccurs="0"/> </xs:sequence> </xs:complexType> <xs:complexType name="Common_dataType"> <xs:element name="Details"> <xs:complexType> <xs:sequence> <xs:element name="Values" type="Data"/> </xs:sequence> </xs:complexType> </xs:element> </xs:complexType> </xs:schema> 我想将 LINE2 的类型更改为 Str30m1,但似乎无法使其工作。我认为这与这些都是本地的这一事实有关(在这种情况下这个词正确吗?)并且令人困惑 到目前为止,在“child”xsd 中我尝试过类似的操作 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:vc="http://www.w3.org/2007/XMLSchema-versioning" elementFormDefault="qualified" attributeFormDefault="unqualified" vc:minVersion="1.1"> <xs:redefine schemaLocation="parent.xsd"> <xs:complexType name="Data"> <xs:complexContent> <xs:extension base="Data"> <xs:sequence> <xs:element name="LINE2" type="Str30m1" minOccurs="0"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> </xs:redefine> <xs:element name="Common_Data" type="Common_dataType"/> </xs:schema> 但是当我尝试验证这一点时,我收到错误 cos-element-consistent: Error for type 'Data'. Multiple elements with name 'LINE2', with different types, appear in the model group. 使用限制而不是扩展我得到 rcase-Recurse.2: There is not a complete functional mapping between the particles 我猜我在这里遗漏了一些东西或做错了一些事情,但我不确定,任何意见将不胜感激 xs:redefine机制不能用于对模式进行任意更改,例如将元素的类型更改为完全不相关的类型。即使可以使用它,它也存在严重问题,因为通常不清楚更改的具体范围是什么。 我建议编写一个 XSLT 转换来将此模式转换为不同的模式。
使用 XML 版本 1.1 对于游戏,我构建了一个名为“connected_condition”的复杂结构。它的代码看起来有点像这样: 使用 XML 版本 1.1 对于游戏,我构建了一个名为“connected_condition”的复杂结构。它的代码看起来有点像这样: <xs:complexType name="connected_condition" mixed="true"> <xs:sequence> <xs:choice minOccurs="0" maxOccurs="3"> <xs:element name="instruction" type="command" minOccurs="0" maxOccurs="2"/> <xs:element name="condition" type="extendedConditionFunction" minOccurs="0" maxOccurs="1"/> <xs:element name="annotation" type="defined_annotation" minOccurs="0" maxOccurs="2"/> </xs:choice> </xs:sequence> <xs:attribute name="annotation" type="annotation"/> <xs:attribute name="clothes" type="clothesType"/> <xs:attribute name="extended"> <xs:simpleType> <xs:union memberTypes="extendedParameter extendedFunction"/> </xs:simpleType> </xs:attribute> <xs:attribute name="value" type="valueString"/> <xs:attribute name="lasting" type="children" use='required'/> </xs:complexType> 此结构应该调用我的 xml xsd 文件中定义的几个可能属性的一个对象。第一个属性或元素应该是稍后要检查的条件(可以是任何预定义类型)。第二个元素及其属性始终被认为是当第一个属性或元素被满足时触发的结果。一个过于简单的例子如下所示: <connected_condition lasting ='false' annotation='stand'><annotation extended='roll_twice'/></connected_condition> 在这个例子中,当玩家处于站立状态时,他也应该掷两次骰子,而不是一次。属性lasting还定义了这是否是一次性使用,或者该效果是否将持续到被取消为止。 由于该结构应该检查并造成几种不同的效果,因此也可以使用类似的元素。所以像这样的结构也是有效的: <connected_condition lasting='false' annotation='stand'><annotation annotation='sit'/></connected_condition> 正如您可以想象的那样,这有可能两个元素实际上可能具有相同的属性,并且值也相同。所以可能有这样的结构:<annotation='stand'><annotation annotation='stand'/>。 为了防止这种情况,我在 xsd 文件中使用了一个断言,如下所示: <xs:assert test="not (. eq (annotation/@annotation))"/> 到目前为止,这一切都完美无缺。 然而,我的结构变得更加灵活,并且还应该调用给出新条件的函数(例如,为了在满足另一个条件时删除较早的状态或条件本身)。 这引出了我手头的问题。当我仅使用一次类似类型的子元素时,我的断言有效。但当我使用多个子元素时,它总是失败。我想要有效的结构看起来像这样: <connected_condition lasting='true' extended='sit'><annotation annotation='roll_twice'/><annotation annotation='changeMood'/><annotation annotation='delete'/></connected_condition> 在这里,玩家再次应该掷骰子两次,这次是坐着的。这种效果应该会持续到被取消为止。然而,一旦游戏情绪发生变化(可能由其他效果或条件触发),它就应该被删除。问题是,目前这些结构一旦具有多个相同类型的元素annotation,就会在默认情况下无法通过断言检查。 我如何编辑我的断言来检查,如果在具有相同类型的多个子元素的更复杂的条件结构中,这些元素的值永远不会相同,而不会在默认情况下失败? 我不确定我是否完全理解了您的要求,但是... 您通常可以通过唯一性约束来做到这一点。例如,在 connected_condition 的元素声明(不是类型声明)中使用 <xs:unique selector="annotation" field="@annotation"/>。 如果您不能这样做(例如,因为需要唯一的元素需要更复杂的谓词),那么您可以使用 test="count(annotation/@annotation) = count(distinct-values(annotation/@annotation))" 形式的断言。