簡體   English   中英

如何使用JAXB生成單個XSD文件?

[英]How to generate individual XSD files using JAXB?

我有一個帶有幾種方法的Web服務,每種方法都有自己的響應和請求(POJO類)。

我想將XSD文件分發給我的用戶,因此我決定使用JAXB生成架構文件。

我的問題是我想擁有單個文件(每個服務一個)!

我已經嘗試過JAXB,但是我得到的只是一個包含所有對象的大型XSD

當您使用JAX-WS發布Web服務時, wsdl告訴所有事情每個客戶端的需求和范圍。

反正..說JAX-RS?

您可以使用JAXBContext#generateSchema為每個類或某些類生成較小范圍的XSD。

public void generateSchema(final Class<?> classesToBeBound,
                           final OutputStream schemaStream)
    throws JAXBException, IOException {

    final JAXBContext context = JAXBContext.newInstance(classesToBeBound);

    context.generateSchema(new SchemaOutputResolver() {
        public Result createOutput(final String namespaceUri,
                                   final String suggestedFileName)
            throws IOException {

            return new StreamResult(schemaStream) {
                @Override
                public String getSystemId() {
                    return suggestedFileName;
                }
            }
        }
    });
}

暫無
暫無

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

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