JAXB基础知识和解析xml

时间:2016-01-16 23:25:47

标签: java xml xsd jaxb

我已经了解了有关JAXB的基础知识。我尝试了一个示例程序并需要一些帮助。

  1. 我创建了一个示例JAXB项目并尝试解析一个xsd及其xml文件..得到错误。后来我发现我需要jdk我的目标运行时间,因为JAXB使用了一些不在JRE中的额外文件。有人可以解释一下吗?

  2. 然后我解析了这些文件。我之前没有使用xml,所以我不确定要遵循什么语法。我认为我的xml文件应该有一些关于xsd文件的提及。它是否正确?当我在其中一个类中解析时,我生成了这个代码:

    @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "BookForm", propOrder = { "author", "title", "genre", "price", "pubDate", "review" })

  3. 这些数据类型不应该在它们前面吗?

    我的示例xsd是:

    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
            targetNamespace="urn:books"
            xmlns:bks="urn:books">
    <xsd:element name="books" type="bks:BooksForm"/>
    <xsd:complexType name="BooksForm">
    <xsd:sequence>
      <xsd:element name="book" 
                  type="bks:BookForm" 
                  minOccurs="0" 
                  maxOccurs="unbounded"/>
      </xsd:sequence>
    </xsd:complexType>
    <xsd:complexType name="BookForm">
    <xsd:sequence>
      <xsd:element name="author"   type="xsd:string"/>
      <xsd:element name="title"    type="xsd:string"/>
      <xsd:element name="genre"    type="xsd:string"/>
      <xsd:element name="price"    type="xsd:float" />
      <xsd:element name="pub_date" type="xsd:date" />
      <xsd:element name="review"   type="xsd:string"/>
    </xsd:sequence>
    <xsd:attribute name="id"   type="xsd:string"/>
    </xsd:complexType>
    

    我的样本xml是:

    <?xml version="1.0"?>
    <x:books xmlns:x="urn:books">
    <book id="bk001">
      <author>Writer</author>
      <title>The First Book</title>
      <genre>Fiction</genre>
      <price>44.95</price>
      <pub_date>2000-10-01</pub_date>
      <review>An amazing story of nothing.</review>
    </book></x:books>
    

    在哪里可以获得有关所有这些注释的更多信息以及JAXB如何生成类?

0 个答案:

没有答案