首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XMLSchema与xjc的离线包含

XMLSchema与xjc的离线包含
EN

Stack Overflow用户
提问于 2015-02-17 13:48:53
回答 1查看 1.3K关注 0票数 3

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

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

目前我叫xjc -d out schema0.xsd schema1.xsd

Schema0.xsd

代码语言:javascript
复制
<?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>

Schema1.xsd

代码语言:javascript
复制
<?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>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-18 14:32:51

下载XMLSchema.xsd..。

代码语言:javascript
复制
curl -H "Accept: application/xml" -H "Content-Type: application/xml" -X GET http://www.w3.org/2001/XMLSchema.xsd > XMLSchema-new.xsd

从.移除文件的第一部分。

代码语言:javascript
复制
<!DOCTYPE xs:schema PUBLIC "-//W3C//DTD XMLSCHEMA.....
.... To ....
<!ATTLIST xs:union id ID #IMPLIED>
]>

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

代码语言:javascript
复制
curl -H "Accept: application/xml" -H "Content-Type: application/xml" -X GET http://www.w3.org/2001/xml.xsd > xml-new.xsd

创建一个目录文件..。

catalog.cat

代码语言:javascript
复制
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

感谢布莱斯的详细文章。我未能删除<!DOCTYPE部分的XMLSchema.xsd,这导致了xjc失败。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28562967

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档