Basic Examples

本节描述了基本的 JAXB 示例(修改 marshal,取消 marshal 验证),它们演示了如何:

修改 marshal 示例

Modify Marshal 示例演示了如何修改 Java 内容树。

import java.io.FileInputStream;
import java.io.IOException;
import java.math.BigDecimal;

import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBElement;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;
import javax.xml.bind.Unmarshaller;

import primer.po.*;
JAXBContext jc = JAXBContext.newInstance( "primer.po" );
Unmarshaller u = jc.createUnmarshaller();
PurchaseOrder po = (PurchaseOrder)
    u.unmarshal(new FileInputStream("po.xml"));
USAddress address = po.getBillTo();
address.setName("John Bob");
address.setStreet("242 Main Street");
address.setCity("Beverly Hills");
address.setState("CA");
address.setZip(new BigDecimal
address.setName("John Bob");
address.setStreet("242 Main Street");
address.setCity("Beverly Hills");
address.setState("CA");
address.setZip(new BigDecimal("90210"));
Marshaller m = jc.createMarshaller();
m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
m.marshal(po, System.out);

使用 Ant 构建并运行 Modify Marshal 示例

要使用 Ant 编译并运行 Modify Marshal 示例,请在终端窗口中,转到 jaxb-ri-install /samples/modify\-marshal/目录,然后键入以下内容:

ant

解组验证示例

“解组验证”示例演示了如何在解组期间启用验证。请注意,JAXB 提供了用于在编组期间进行验证的功能,但不在编组期间进行验证。验证在有关验证的更多信息中有更详细的说明。

import java.io.File;

import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;
import javax.xml.bind.UnmarshalException;
import javax.xml.bind.Unmarshaller;
import javax.xml.bind.ValidationEvent;
import javax.xml.bind.ValidationEventHandler;
import javax.xml.bind.ValidationEventLocator;

import static javax.xml.XMLConstants.W3C_XML_SCHEMA_NS_URI;
import javax.xml.validation.SchemaFactory;
import javax.xml.validation.Schema;

import primer.po.*;
JAXBContext jc = JAXBContext.newInstance("primer.po");
Unmarshaller u = jc.createUnmarshaller();
u.setValidating( true );
PurchaseOrder po = (PurchaseOrder)u.unmarshal(
    new FileInputStream("po.xml"));
} catch( UnmarshalException ue ) {
    System.out.println("Caught UnmarshalException");
} catch( JAXBException je ) { 
    je.printStackTrace();
} catch( IOException ioe ) {
    ioe.printStackTrace();
}

使用 Ant 构建和运行解组验证示例

要使用 Ant 编译并运行 Unmarshal Validate 示例,请在终端窗口中,转到 jaxb-ri-install /samples/unmarshal\-validate/目录并键入以下内容:

ant
首页