gpt4 book ai didi

java - 使用 xjc 离线包含 XMLSchema

转载 作者:数据小太阳 更新时间:2023-10-29 02:29:47 28 4
gpt4 key购买 nike

我有一个引用和元素 xs:schema 的 XSD 文件。当我运行连接到 Internet 的 xjc 时,它会创建适当的 JAXB 对象。当我尝试将 XMLSchema.xsd 作为本地文件引用时,它失败了。

如何引用 XMLSchema.xsd 的本地 xsd 文件副本,以便我可以离线运行 xjc 来创建 JAXB 类?

目前我调用xjc -d out schema0.xsd schema1.xsd

架构0.xsd

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema targetNamespace="http://www.w3schools.com"
xmlns="http://www.w3schools.com" xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified">

<xs:import namespace="http://www.w3.org/2001/XMLSchema" schemaLocation="http://www.w3.org/2001/XMLSchema.xsd"/>
<xs:element name="children">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="1" name="childname" />
<xs:element ref="xs:schema" />
<xs:any />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>

架构1.xsd

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema
targetNamespace="http://www.w3schools.com"
xmlns="http://www.w3schools.com"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified">
<xs:import namespace="http://www.w3.org/2001/XMLSchema" schemaLocation="http://www.w3.org/2001/XMLSchema.xsd" />
<xs:element name="person">
<xs:complexType>
<xs:sequence>
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
<xs:any minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>

最佳答案

下载 XMLSchema.xsd...

curl -H "Accept: application/xml" -H "Content-Type: application/xml" -X GET http://www.w3.org/2001/XMLSchema.xsd > XMLSchema-new.xsd

从...中删除文件的第一部分

<!DOCTYPE xs:schema PUBLIC "-//W3C//DTD XMLSCHEMA.....
.... To ....
<!ATTLIST xs:union id ID #IMPLIED>
]>

下载 XMLSchema.xsd 引用的 xml.xsd 文件....

curl -H "Accept: application/xml" -H "Content-Type: application/xml" -X GET http://www.w3.org/2001/xml.xsd > xml-new.xsd

创建目录文件....

目录.cat

SYSTEM "http://www.w3.org/2001/XMLSchema" "XMLSchema-new.xsd"
PUBLIC "http://www.w3.org/2001/XMLSchema" "XMLSchema-new.xsd"
PUBLIC "http://www.w3.org/XML/1998/namespace" "xml.xsd"

断开互联网连接并运行 xjc -catalog catalog.cat schema0.xsd schema1.xsd

感谢 Blaise 提供的详细信息 article .我未能删除 <!DOCTYPE XMLSchema.xsd 的一部分,这导致 xjc 失败。

关于java - 使用 xjc 离线包含 XMLSchema,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28562967/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com