XSD通常是指以W3C XML Schema格式编写的文档,其中包含特定类型的XML文档的描述。
有没有办法使用 xsd 或 xsd2Code 生成单独的 xml 元素属性而不是集体属性
我正在尝试使用 xsd 或 xsd2code 从 XSD 文件生成 C# 类。 XSD 文件来自第三方,无法修改。 它确实生成类,但它们包含这样的块。 [
从 XSD 解组 XML 失败,JAR 执行显示“java.io.IOException:缓冲区已关闭”
我有一个java代码,可以从PDF(Apache PDFBox)中提取Xml部分并将其解组为java类。 在使用 IntelliJ 进行本地执行时,一切正常,但是当我在 openshift 集群上部署 jar 时...
我有这个对象,作为复杂对象的节点: 公共类参数实现可序列化 { @XmlElement(名称 = "键") 受保护的字符串键; @XmlElement(名称 = "值")
我正在尝试为下面的示例 xml 文件生成 XSD。我们的想法是生成此文件并作为自动化的一部分对其进行验证。 我正在尝试为下面的示例 xml 文件生成 XSD。我们的想法是生成此文件并验证它作为自动化的一部分。 <?xml version="1.0" encoding="UTF-8"?> <CustomLabels xmlns="http://soap.sforce.com/2006/04/metadata"> <labels> <fullName>Label1</fullName> <categories>L1</categories> <language>en_US</language> <protected>false</protected> <shortDescription>This is label 1</shortDescription> <value>1</value> </labels> <labels> <fullName>Label2</fullName> <categories>L2</categories> <language>en_US</language> <protected>false</protected> <shortDescription>Label 2 </shortDescription> <value>2</value> </labels> <labels> <fullName>Label2</fullName> <categories>L2</categories> <language>en_US</language> <protected>false</protected> <shortDescription>New label</shortDescription> <value>New value</value> </labels> </CustomLabels> 到目前为止我生成的xsd是: <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://soap.sforce.com/2006/04/metadata" targetNamespace="http://soap.sforce.com/2006/04/metadata" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xs:element name="CustomLabels"> <xs:complexType> <xs:sequence> <xs:element maxOccurs="unbounded" name="labels"> <xs:complexType> <xs:sequence> <xs:element name="fullName" type="xs:string"/> <xs:element name="categories" type="xs:string" minOccurs="0"/> <xs:element name="language" type="xs:string"/> <xs:element name="protected" type="xs:boolean" minOccurs="0"/> <xs:element name="shortDescription" type="xs:string" minOccurs="0"/> <xs:element name="value" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> <xs:unique name="fullname_unique"> <xs:selector xpath="labels/fullName"/> <xs:field xpath="."/> </xs:unique> </xs:element> </xs:schema> 我已经对 fullName 进行了唯一性检查,但这似乎不起作用。有人可以解释这里的问题是什么并指导如何实现这一目标吗? 您的元素位于命名空间中,XPath 表达式需要反映这一点。使用 <xs:selector xpath="p:labels/p:fullName"/> 并将 xmlns:p="http://soap.sforce.com/2006/04/metadata" 添加到 xs:schema 元素。
与 JAXB 为给定 XSD 生成 JAXB 类类似,Jackson 是否提供任何实用程序来从 XSD 或 JSON 生成 Jackson 类。 JAXB 类生成器已为 XSD 生成了一组类...
我有以下 XML 架构: 我有以下 XML 架构: <?xml version="1.0" encoding="utf-16"?> <xs:schema xmlns:tns="http://www.orbis-software.com/WebSvcCon" attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://www.orbis-software.com/WebSvcCon" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="root"> <xs:complexType> <xs:sequence> <xs:element name="totalResults" type="xs:unsignedShort" /> <xs:element maxOccurs="unbounded" name="summaries"> <xs:complexType> <xs:sequence> <xs:element name="itemIdentifier"> <xs:complexType> <xs:sequence> <xs:element name="sku" type="xs:string" /> <xs:element name="id" type="xs:decimal" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="qualifier" /> <xs:element name="totalReceived" type="xs:decimal" /> <xs:element name="allocated" type="xs:decimal" /> <xs:element name="available" type="xs:decimal" /> <xs:element name="onHold" type="xs:decimal" /> <xs:element name="onHand" type="xs:decimal" /> <xs:element name="facilityId" type="xs:unsignedByte" /> </xs:sequence> <xs:attribute name="Array" type="xs:boolean" use="required" /> </xs:complexType> </xs:element> <xs:element name="_links"> <xs:complexType> <xs:sequence> <xs:element name="self"> <xs:complexType> <xs:sequence> <xs:element minOccurs="0" maxOccurs="unbounded" name="href" type="xs:string" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="next"> <xs:complexType> <xs:sequence> <xs:element minOccurs="0" maxOccurs="unbounded" name="href" type="xs:string" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="prev"> <xs:complexType> <xs:sequence> <xs:element minOccurs="0" maxOccurs="unbounded" name="href" type="xs:string" /> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:schema> 我正在验证的特定 XML 文档中没有“下一个”字段(尽管某些文档可以)。当我加载此文档时,我收到错误: Error validating source XML against schema - The element '_links' in namespace 'http://www.orbis-software.com/WebSvcCon' has invalid child element 'prev' in namespace 'http://www.orbis-software.com/WebSvcCon'. List of possible elements expected: 'next' in namespace 'http://www.orbis-software.com/WebSvcCon'. 根据 XSD,“下一个”元素设置为 minOccurs=0 使其成为可选,那么为什么我收到错误? 在您的架构中,_links元素的内容在中定义 <xs:element name="_links"> <xs:complexType> <xs:sequence> <xs:element name="self"> <xs:complexType> <xs:sequence> <xs:element minOccurs="0" maxOccurs="unbounded" name="href" type="xs:string" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="next"> <xs:complexType> <xs:sequence> <xs:element minOccurs="0" maxOccurs="unbounded" name="href" type="xs:string" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="prev"> <xs:complexType> <xs:sequence> <xs:element minOccurs="0" maxOccurs="unbounded" name="href" type="xs:string" /> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> 作为三个元素的序列,即self、next和prev。这些元素都不是可选的,因为它们都没有 mixOccurs="0",每个元素的内容上只有 mixOccurs="0",因为它们可以包含 0 到无界 href 元素。 所以 <_links><self/><next/><prev/></_links> 是可能的,但你不能忽略这三个元素中的任何一个。
我可以使用 python 库“xmlschema”从头开始创建 XML 文档吗?
有一些模式定义文件(xsd)。可以使用 xmlschema 库读取它们。我可以使用它来验证或转换一些现有的 XML 文档。没事儿。 但我必须创造整个...
我必须编写一个 XML 模式(在 XSD 1.0 中)来验证给定的文档。 在本文档中,有一个名为 box 的元素,它可以: 有两个必需的属性,名称和重量以及其他一些
我有一个 xsd,其中有一个名为 toc 的元素在 xsd 中两次。它会导致 java 类生成错误。现在,我想编写 xml 绑定来解决这个问题。 我有一个 xsd,其中有一个名为 toc 的元素在 xsd 中两次。它会导致 java 类生成错误。现在,我想编写 xml 绑定来解决这个问题。 <jaxb:bindings schemaLocation="../DMS_Dokument.Versenden_response.xsd"> <jaxb:bindings node="xsd:element[@name='toc']"> <jaxb:factoryMethod name="TOC"/> </jaxb:bindings> </jaxb:bindings> 我得到的错误是 原因:无法解析schema。应该提供错误消息 为了避免 JAXB 从 XSD 生成重复的类,您可以使用本地或外部绑定为生成的类定义不同的名称。 <jaxb:bindings node="XPATH"> <jaxb:class name="YourDistinctName"/> </jaxb:bindings> Java 类名重复的一个原因是在全局绑定中使用 toplevel 作用域。 注意: localScoping 属性的值可以是 nested 或 toplevel。此属性描述嵌套 XML 模式组件与嵌套模式派生的 JAXB 类或顶级模式派生的 JAXB 类的 JAXB 绑定。为了避免嵌套组件之间的命名冲突,该属性的默认值是嵌套的。当模式组件嵌套太深或应用程序不希望使用嵌套类或使用 JPA 时(JPA 第 2.1 节,实体必须是顶级类),开发人员可以将 localScoping 自定义为 toplevel。 例如,下载此演示 (zip) 并考虑其 XML 架构 trilogy.xsd,该架构对 Trilogy 书籍进行建模。它在根 trilogy 元素上定义一个 TOC,并为每个 book 定义另一个 TOC。该架构将每个 TOC 定义为匿名类型,并且每个 TOC 都有不同的用途。第一个目录描述了三本书的标题,但第二个目录是每本书的章节列表。两者具有相同的元素名称 <toc>...</toc>,如该 XML 实例 trilogy.xml 所示,但需要不同的 Java 类定义。 当模式被定制为使用 <jaxb:globalBindings localScoping=”toplevel”/> 时,JAXB 会尝试根据一个元素名称生成两种类型,这会导致名称冲突。 为了解决 Java 类名重复问题,演示使用 HiSrc BasicJAXB 项目中的工具来扫描 XSD 并输出这些建议的绑定:trilogy.xjb。例如,这是书 TOC 的装订: <jaxb:bindings node="//xs:element[@name='trilogy']/xs:complexType/xs:sequence/xs:element[@name='book']/xs:complexType/xs:sequence/xs:element[@name='toc']/xs:complexType"> <jaxb:class name="TrilogyBookTocType"/> </jaxb:bindings> 绑定使用 XPATH 选择目标节点,并将 Java 类名称声明为 TrilogyBookTocType。 演示提供了一个 bash 脚本来运行该工具,但它可以像这样手动运行... java -cp \ $HOME/.m2/repository/org/patrodyne/jvnet/hisrc-basicjaxb-tools/2.1.1/hisrc-basicjaxb-tools-2.1.1.jar \ org.jvnet.basicjaxb.util.CreateToplevelXJBindings \ --nested src/main/resources/trilogy.xsd 该工具将其输出发送到 stdout,您可以在其中将其复制/粘贴到绑定文件或架构中。 执行 该演示是一个独立的 Maven 项目。您可以使用以下命令运行测试: mvn -Ptest clean test mvn -Pexec compile exec:java 方法 hisrc-higherjaxb-maven-plugin 配置为使用提供的 trilogy.xsd 模式和绑定文件 trilogy.xjb 生成 JAXB 类。该模式提供了命名空间 "http://org.example/trilogy",JAXB 使用它来使用自己的命名约定创建 Java package 名称。 作为一个选项,可以使用这些 XJC hisrc-basicjaxb-plugins 生成 Java 内置 Object 方法的更高级实现。特别是,示例项目使用 toString 插件来显示未编组的 Trilogy 对象的人类可读表示。 hisrc-basicjaxb-插件 <args> <arg>-no-header</arg> <arg>-XhashCode</arg> <arg>-Xequals</arg> <arg>-XtoString</arg> </args> 注意: 使用 XJC hisrc-basicjaxb-plugins 时,运行时类路径需要 hisrc-basicjaxb-runtime 依赖。 测试 JUnit 测试类 TrilogyTest.java 扫描示例文件并调用方法 checkSample(File sample) 将每个文件提供给测试人员。对于此项目,创建了一个 JAXBContext,并且 samples 路径中的每个文件都被 unmarshaled 为 Trilogy 对象。成功后,每个对象都会被编组以用于日志记录和您的审查。 示范 具有 main(...) 方法的 Java 标准引擎应用程序位于 org.example.trilogy.Main。该应用程序使用以下命令执行: mvn -Pexec compile exec:java -Dexec.args="src/test/samples/trilogy.xml" 免责声明:我是这些HiSrc项目的维护者。
根据 XML 架构文件将 SQL Server 数据导出到 XML
我有一个包含多个元素和属性的 .XSD(XML 架构文件),并且我有一个包含 .XSD 文件中所有列的 SQL Server 表。如何将数据从 SQL Server 表导出到 XM...
我有一个包含多个元素和属性的 xsd(XML 架构文件),并且我有一个包含 xsd 文件中所有列的 SQL Server 表。如何将sql表数据导出到具有相同的XML文件
我们有以下正则表达式 (^\S+([0-9a-zA-Z\-\?:\(\)\.,'\+\s].\S+)*$) 此正则表达式的 XML 架构解释不允许在文本中的任何位置使用与号 (&),但在 .NET 中
我知道如何以 XSD 格式定义类/数据结构并自动生成等效的 C# 类(使用 xsd.exe 或更详细的 xsd2code.exe)。 我想定义接口类
我需要使用 VS2008 开发一个 MS-Word 插件应用程序,将具有内容控件的 docx 文件转换为 iXBRL 格式。 iXBRL 格式是一种相对较新的财务报表标准。 难道是……
将带有 XSD 的 WSDL 读取到 org.dom4j.io.SAXReader 中的正确方法是什么?有没有办法使用 ZipInputStream 来做到这一点,这样我就不必将其保存到磁盘?
我有这套锅炉模板语言,有很多重复区域。我制作了表单字段,以便可以将重复区域相互映射。我将其保存在特定文档中,因此任何...