Module  java.xml.bind
软件包  javax.xml.bind.util

Class JAXBSource

  • All Implemented Interfaces:
    Source


    public class JAXBSource
    extends SAXSource
    编写 JAXB生成的对象的JAXP Source实现。

    此实用程序类将JAXB与其他Java / XML技术相结合是有用的。

    以下示例显示如何使用JAXB来编组文档以进行XSLT的转换。

           MyObject o = // get JAXB content tree
    
           // jaxbContext is a JAXBContext object from which 'o' is created.
           JAXBSource source = new JAXBSource( jaxbContext, o );
    
           // set up XSLT transformation
           TransformerFactory tf = TransformerFactory.newInstance();
           Transformer t = tf.newTransformer(new StreamSource("test.xsl"));
    
           // run transformation
           t.transform(source,new StreamResult(System.out));
        

    JAXBSource源自SAXSource的事实是一个实现细节。 因此,一般来说,强烈建议不要访问在SAXSource上定义的方法。 特别地,不能调用setXMLReader和setInputSource方法。 由getXMLReader方法获取的XMLReader对象只能用于解析由getInputSource方法返回的InputSource对象。

    类似地,由getInputSource方法获取的InputSource对象将仅用于由getXMLReader返回的XMLReader对象进行解析。

    从以下版本开始:
    1.6
    • 构造方法详细信息

      • JAXBSource

        public JAXBSource​(JAXBContext context,
                          Object contentObject)
                   throws JAXBException
        为给定的内容对象创建一个新的Source
        参数
        context - 用于创建contentObject JAXBContext。 这个上下文用于创建一个新的marshaller实例,不能为null。
        contentObject - JAXB生成的类的一个实例,将用作一个Source (通过将其编组为XML)。 它不能为空。
        异常
        JAXBException - 如果在创建JAXBSource时遇到错误,或者如果任一参数为空。
      • JAXBSource

        public JAXBSource​(Marshaller marshaller,
                          Object contentObject)
                   throws JAXBException
        为给定的内容对象创建一个新的Source
        参数
        marshaller - 将用于将contentObject为XML的编组器实例。 这必须从用于构建contentObject的JAXBContext创建,并且不能为空。
        contentObject - JAXB生成的类的一个实例,将用作一个Source (通过将其编组为XML)。 它不能为空。
        异常
        JAXBException - if an error is encountered while creating the JAXBSource or if either of the parameters are null.