簡體   English   中英

在jar中引用/包含xsd文件

[英]referencing/including xsd files in a jar

我想在我們的項目中添加一個xsd文件,該文件依賴於jar中另一個xsd中定義的類型。 我們使用jaxb從xsds生成Java類。 我如何引用SchemaContainingFooTypeIsInaJAR.xsd以便'FooType'正確解析並生成正確的Java類

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:include schemaLocation="SchemaContainingFooTypeIsInaJAR.xsd"/>
<xs:complexType name="FooMoreType">
    <xs:complexContent>
        <xs:extension base="FooType">
            <xs:sequence>
                <xs:element name="something" type="xs:boolean" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation xml:lang="en">
                            something something
                        </xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:sequence>
        </xs:extension>
    </xs:complexContent>
</xs:complexType>
</xs:schema>

您可能對以下功能感興趣:

簡而言之,您可以編寫一個目錄文件,該文件將指向JAR文件中的架構:

REWRITE_SYSTEM "some/url/a.xsd" "maven:org.jvnet.jaxb2.maven2:maven-jaxb2-plugin-tests-episodes-a!/a.xsd"

免責聲明:我是maven-jaxb2-plugin的主要開發者。

請參閱XML Schema參考JAXB SchemaFactory源順序必須遵循模式之間的導入順序?

共識似乎是:您需要提供自己的解析器。

替換你的行:

<xs:include schemaLocation="SchemaContainingFooTypeIsInaJAR.xsd"/>

<xs:include schemaLocation="jar:file:///path/to/jar/thing.jar!/path/inside/jar/to/file.xsd"/>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM