xsd 相关问题

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

为 xml 模式中的简单类型生成正确的对象

我有 camt.026 ISO 消息的 ISO 20022 标准 .xsd 文件,以及它可以根据复杂类型 InvestigationStatus5Choice 上的 conf 元素使用的可能外部代码。 camt.026 xsd:...

回答 1 投票 0

使用 OpenXML 时按正确的顺序插入子元素

我正在使用 DocumentFormat.OpenXml 库修改 .docx 文档。我知道元素排序很重要,否则文档将无法通过模式验证,并且可能会导致文档无法...

回答 2 投票 0

XML:属性还是子项? [重复]哈利·波特

在 XSD、SOAP 和其他 XML 约定中,您经常会看到类似以下内容: 哈利·波特 J.K.罗琳 现在我想知道...

回答 2 投票 0

如何在Python中从xsd创建xml作为实例

我有xsd文件,我的任务是基于我尝试使用外部的xsd创建一个空的xml 我在 github 上找到的包是链接 https://github.com/fortesp/xsd2xml 这就是我的

回答 1 投票 0

如何定义一个模式定义,可以选择一个元素或另一个元素的多个元素

我正在尝试为可以有多种格式的类型进行架构定义,但我不太确定如何最好地做到这一点。 我试图为其创建类型的 XML 块将涵盖像这样的条目...

xsd
回答 1 投票 0

对于我附加了架构的 XML 文档,IntelliSense 无法在 VS2019 中工作

我想如果我将架构附加到 XML 文档,我会获得所有标签和属性名称的 IntelliSense 吗?但这似乎不起作用。我尝试将其添加到我的根标签中: 西西:

回答 2 投票 0

处理从 XSD 文件生成的两种不同 Java 类型中相同数据的最佳方法

我几乎一直在寻找解决这个问题的最佳方法。 我的情况是,我有一个提供程序,它为我提供 XSD 文件来生成我将用来调用其 SOAP api 的类型。那些 XSD 文件有时...

回答 1 投票 0

元素的 XSD,当元素既可以是强制元素也可以是可选元素时

我有两种可能的 XML 变体: “ElementB”和“ElementC”都是强制性的。 两个“埃莱姆...

回答 1 投票 0

WSDL 文件具有未定义的命名空间“ns1”和“xs”?

对 SOAP 和 WSDL 来说还是很陌生,但我有几个简单的问题。我在使用的 WSDL 文件中看到如下所示的部分,但名称空间 ns1 未在任何地方定义?元素

回答 1 投票 0

为什么 XML 模式验证没有检测到这种唯一性约束违规?

我正在尝试调试为什么使用 XSD 验证 XML 没有检测到唯一性约束违规。给定下面的 XML 数据及其后面的 XSD 架构,

回答 1 投票 0

我的 XML 与现有 XSD 是什么样子

学习 XSD 有点新鲜。 如果我有这个 XSD 有效架构,如下所示: ...

回答 1 投票 0

JAXB:xsd + xjb 到 POJO,无需注释

我在尝试将 XSD + XJB 文件转换为代码中没有 JAXB 注释的 POJO 时遇到了困难。 项目结构: pom.xml src/main/resources/schema.xsd 文件 schema.xsd 可以找到他...

回答 2 投票 0

如何从 XSD 生成 XML 文件

从 XSD 开始生成 XML 文件(随机或定向)的最佳方法是什么(最好是使用 python、bash 或其他...)? 有没有 python 模块可以做到这一点?另一种解决方案? 那个...

回答 1 投票 0

使用缺少属性的元素验证 XSD 上的 XML

我的问题有两个:当属性丢失时,确定行号以及该属性属于哪个元素。 我通过向 XDocument 添加适当的选项来解决第一部分

回答 1 投票 0

JAXB 生成的 Java 类不处理 SOAP 请求

这是我的 .xsd 文件中的请求,如下所示。正如您所看到的,一些首字母故意是大写和小写的。 这是我的 .xsd 文件中的请求,如下所示。正如您所看到的,一些首字母故意是大写和小写的。 <xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://tempuri.org/" targetNamespace="http://tempuri.org/" xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"> <xs:element name="Deneme"> <xs:complexType> <xs:sequence> <xs:element name="count" type="xs:int"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="CustomerRequest"> <xs:complexType> <xs:sequence> <xs:element name="CustomerName" type="xs:string" /> <xs:element name="Age" type="xs:int" /> <xs:element name="YearlyIncome" type="xs:long" /> <xs:element name="cibilScore" type="xs:int" /> <xs:element name="employmentMode" type="xs:string" /> <xs:element ref="tns:Deneme"/> </xs:sequence> </xs:complexType> </xs:element> 使用 JAXB 生成类后: CustomerRequest.java @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "", propOrder = { "customerName", "age", "yearlyIncome", "cibilScore", "employmentMode", "deneme" }) @XmlRootElement(name = "CustomerRequest") public class CustomerRequest { @XmlElement(name = "CustomerName", required = true) protected String customerName; @XmlElement(name = "Age") protected int age; @XmlElement(name = "YearlyIncome") protected long yearlyIncome; protected int cibilScore; @XmlElement(required = true) protected String employmentMode; @XmlElement(name = "Deneme", required = true) protected Deneme deneme; // getter and setters } 如您所见,@XmlElement 与 xsd 文件相同。但是,propOrder 值以小写字母开头。它给我带来了以下问题:当我尝试使用 SoapUI 发送请求时,这种情况问题会阻止请求。 如果我发送这样的请求,它会起作用: <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/"> <soapenv:Header/> <soapenv:Body> <tem:CustomerRequest> <customerName>5</customerName> <age>5</age> <yearlyIncome>5</yearlyIncome> <cibilScore>5</cibilScore> <employmentMode>5</employmentMode> <deneme> <count>55</count> </deneme> </tem:CustomerRequest> </soapenv:Body> </soapenv:Envelope> 但是,下面它无法访问以大写开头的元素。 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/"> <soapenv:Header/> <soapenv:Body> <tem:CustomerRequest> <CustomerName>5</CustomerName> <Age>5</Age> <YearlyIncome>5</YearlyIncome> <cibilScore>5</cibilScore> <employmentMode>5</employmentMode> <Deneme> <count>55</count> </Deneme> </tem:CustomerRequest> </soapenv:Body> </soapenv:Envelope> 我认为问题出在 SOAP UI,但可能有不同的原因,所以我想问你。 获取某人的企业 Instagram 用户名可能并不总是一件容易的事。即使有人停用其帐户并声称帐户的用户名也涉及限制和解决方法。这并不像提交表单并获取所需的用户名那么简单。不过,Instagram 上的 SYLVESTER G. BRYANT(也称为 Yt7crackersz)等专业人士可以帮助您完成此过程,而不会提出任何警告或造成延误。我亲自与他一起申请我自己想要的用户名。您可以通过 [电子邮件受保护] 与他联系。

回答 1 投票 0

生成基本 int 的枚举

我正在尝试使用 Maven maven-jaxb2-plugin 从简单类型的基本 int 生成枚举。但没有生成任何枚举。 我可以看到生成器正在使用绑定文件,因为它...

回答 1 投票 0

添加 maxOccurs 指示器后,为什么此 xml 架构对于 .NET 数据集变得无效?

将下面的 xml 传递给 C# 程序中的 DataSet.ReadXml 函数(使用 .NETFramework v4.8)时,该函数会抛出异常,表明 foo 的声明重复(“Dupli...

回答 1 投票 0

如何在java 11中使用JAXB Maven插件创建POJO类

需要在java 11中使用JAXB maven插件创建Pojo类,我在java 8中使用这个插件并且工作正常: org.jvnet.jaxb2.maven2...

回答 1 投票 0

Kotlin - JAXB 解组导致错误

我在解组时遇到了大问题。 我使用 xsd 文件中的 xjc 数据类生成。 这似乎工作没有任何问题。 现在我在我的 Kotlin 项目中尝试了这个 val jaxbContext = JAXBContext.

回答 1 投票 0

无法使用 JAXB 编组器为来自不同包的嵌套对象生成 XML

**XSD1** **XSD1** <xs:complexType name="Root1"> <xs:sequence> <xs:element name="Revision" type="xs:string" /> <xs:element name="Header" type="Header" /> <xs:element name="Body" type="SwAny" minOccurs="0" /> </xs:sequence> </xs:complexType> <xs:complexType name="SwAny" mixed="true"> <xs:sequence> <xs:any namespace="##any" processContents="skip" minOccurs="0" maxOccurs="unbounded" /> </xs:sequence> </xs:complexType> The JAVA Object for the above XSD is like below @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "root1", propOrder = { "revision", "header", "body" }) public class Root1 implements Serializable { private final static long serialVersionUID = 1L; @XmlElement(name = "Revision", required = true) protected String revision; @XmlElement(name = "Header", required = true) protected SAA_Header header; @XmlElement(name = "Body") protected SAA_SwAny body; -- getter and setter -- } @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "SwAny", propOrder = { "content" }) public class SAA_SwAny implements Serializable { private final static long serialVersionUID = 1L; @XmlMixed @XmlAnyElement protected List<Object> content; } I have another XSD which I have marshalled and generated POJO objects like below @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "Header", propOrder = { "fr", "to" }) public class Header implements Serializable { private final static long serialVersionUID = 1L; @XmlElement(name = "Fr", required = true) protected PartyChoice__1 fr; @XmlElement(name = "To", required = true) protected PartyChoice__1 to; -- getter & setter -- } In my class where I marshall, I create like below and marshall Header header = new Header(); header.setFr(fr); header.setTo(to); Root1 **pdu** = new Root1(); **pdu**.setRevision("rev"); SAA_SwAny any = new SAA_SwAny(); any.getContent().add(header); Marshaller mars = cfgsvc.createMarshaller(jaxbCtx, true, "UTF8", false, localPart); String schemaLoc = cfgsvc.findSchemaLoc(localPart); JAXBElement<?> elm = new JAXBElement(xmlQName, docCls, **pdu**); sw = new StringWriter(); mars.marshal(elm, sw);` 按照上面的代码执行时,遇到下面的异常 原因:com.sun.istack.SAXException2:无法将类型“com.test.Header”封送为元素,因为它缺少 @XmlRootElement 注释 在 com.sun.xml.bind.v2.runtime.XMLSerializer.reportError(XMLSerializer.java:225) ~[jaxb-impl-2.0.1.jar:2.0.1] 在 com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeRoot(ClassBeanInfoImpl.java:274) ~[jaxb-impl-2.0.1.jar:2.0.1] 在 com.sun.xml.bind.v2.runtime.property.ArrayReferenceNodeProperty.serializeListBody(ArrayReferenceNodeProperty.java:78) ~[jaxb-impl-2.0.1.jar:2.0.1] 在 com.sun.xml.bind.v2.runtime.property.ArrayERProperty.serializeBody(ArrayERProperty.java:101) ~[jaxb-impl-2.0.1.jar:2.0.1] 在 com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(ClassBeanInfoImpl.java:293) ~[jaxb-impl-2.0.1.jar:2.0.1] 在 com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(XMLSerializer.java:619) ~[jaxb-impl-2.0.1.jar:2.0.1] 在 com.sun.xml.bind.v2.runtime.property.SingleElementNodeProperty.serializeBody(SingleElementNodeProperty.java:114) ~[jaxb-impl-2.0.1.jar:2.0.1] 在 com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(ClassBeanInfoImpl.java:293) ~[jaxb-impl-2.0.1.jar:2.0.1] 在 com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(XMLSerializer.java:619) ~[jaxb-impl-2.0.1.jar:2.0.1] 在 com.sun.xml.bind.v2.runtime.property.SingleElementNodeProperty.serializeBody(SingleElementNodeProperty.java:114) ~[jaxb-impl-2.0.1.jar:2.0.1] 在 com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl$1.serializeBody(ElementBeanInfoImpl.java:98) ~[jaxb-impl-2.0.1.jar:2.0.1] 在 com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl$1.serializeBody(ElementBeanInfoImpl.java:127) ~[jaxb-impl-2.0.1.jar:2.0.1] 在 com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeBody(ElementBeanInfoImpl.java:244) ~[jaxb-impl-2.0.1.jar:2.0.1] 在 com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeRoot(ElementBeanInfoImpl.java:251) ~[jaxb-impl-2.0.1.jar:2.0.1] 在 com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeRoot(ElementBeanInfoImpl.java:33) ~[jaxb-impl-2.0.1.jar:2.0.1] 在 com.sun.xml.bind.v2.runtime.XMLSerializer.childAsRoot(XMLSerializer.java:461) ~[jaxb-impl-2.0.1.jar:2.0.1] 在 com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:292) ~[jaxb-impl-2.0.1.jar:2.0.1] The workaround i did was in the header class added the below code **@XmlRootElement(name = "header", namespace = "head.namespace")** @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "Header", propOrder = { "fr", "to" }) public class Header implements Serializable { private final static long serialVersionUID = 1L; @XmlElement(name = "Fr", required = true) protected PartyChoice__1 fr; @XmlElement(name = "To", required = true) protected PartyChoice__1 to; -- getter & setter -- } now the xml marshaller works as expected and i get the below xml <?xml version="1.0" encoding="UTF8" standalone="yes"?> <PDU xsi:schemaLocation="...." xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <Revision>rev</Revision> <Body> <head:Hdr> <head:Fr> <head:Id> <head:InstnId> <head:FI>AAAASGSGXXX</head:FI> </head:InstnId> </head:Id> </head:Fr> <head:To> <head:Id> <head:InstnId> <head:FI>AAAASGSGXXX</head:FI> </head:InstnId>`your text` </head:Id> </head:To> </head:Hdr> </Body> </PDU> 我期待一个无需手动添加 @xmlrootelement 的解决方案。 JAXB 有办法解决这个问题吗? 假设您正在使用像以前的 maven-jaxb2-plugin 这样的工具,并使用 jaxb api 3+ (雅加达版本),您可以使用以下绑定文件告诉 xjc 在生成的每个类上添加 @XmlRootElement (有趣的是部分是<xjc:simple/>) <?xml version="1.0" encoding="UTF-8"?> <jxb:bindings xmlns:jxb="https://jakarta.ee/xml/ns/jaxb" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc" jxb:extensionBindingPrefixes="xjc" jxb:version="3.0"> <jxb:globalBindings> <xjc:simple/> </jxb:globalBindings> </jxb:bindings> 希望对你有帮助。 我说的是以前的maven-jaxb2-plugin,因为该插件在最新版本中被重命名(查看迁移指南)

回答 1 投票 0

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