Java Architecture for XML Binding
以前如果要用xml文件存储一些值的话,那么只能用最原始的SAX或者DOM方式进行parse,然后得到需要的值。现在有了JAXB,就更加方便了。
先说什么叫做Schema。它是一种XML的规范,比如规定哪些元素可以出现在XML文件中,它们是按照什么样的顺序出现的,有些什么属性,哪些属性是哪些属性的子属性,元素的数量,数据类型等等。JAXB要求所有需要使用的XML必须有Schema,必须按照Schema规定的规范进行编写XML,而Schema本身也是以XML文件的形式编写的。
通过定义数据格式,可以保证发送方和接受方的想法达到一致。同时,通过
写好schema以后,写xml的时候,在首行要对其进行引用,格式是固定的。
当你定义好了以后,就可以使用JAXB的绑定编译器 xjc来生成Java代码,生成的都是一些类,这些类以一种类安全(typesafe)的形式描述了那些需要获取的元素,属性和其它的内容。
JAXB使用java的Annotation来标注一些Schema中定义的信息,这样方便JAXB在运行时使用这些信息。凡是在Schema中定义了的所有的Type,无论是ComplexType还是SimpleType,都会生成一个和type参数值名字一样的java类,每个element会是该java类中的一个成员变量。如果是Attribute的话,也会生成相应的成员变量,但是和element不同的是,attribute生成的成员变量前面会有一个annotation,标注着@XmlAttribute(name=" xxx", required = true)。除此之外,就是生成getters和setters。
所有的成员变量都是protected修饰的,getters和setters都是public修饰的。
JAXB使用java的Annotation来标注一些Schema中定义的信息,这样方便JAXB在运行时使用这些信息。凡是在Schema中定义了的所有的Type,无论是ComplexType还是SimpleType,都会生成一个和type参数值名字一样的java类,每个element会是该java类中的一个成员变量。如果是Attribute的话,也会生成相应的成员变量,但是和element不同的是,attribute生成的成员变量前面会有一个annotation,标注着@XmlAttribute(name=" xxx", required = true)。除此之外,就是生成getters和setters。
所有的成员变量都是protected修饰的,getters和setters都是public修饰的。