JAXB sample例子

一.JAXB是什么?
   Java Architecture for XML Binding (JAXB)是一种Java技术,通过这种技术你可以从XML 模式生成Java类。作为这一过程的一部分,JAXB技术还提供将XML实例文档反编组为Java对象的一个内容树,然后再将内容树编组成一个XML文档。JAXB提供了一种快速和方便的方式来将一个XML模式绑定到Java代码的一个表示上,使得Java开发者能够更轻松地将XML数据和Java应用中的处理函数融合在一起,而不必对XML本身有很多的了解。

JAXB技术的一个好处就是它隐藏了细节,排除了SAX和DOM中的外部联系——生成的JAXB类仅仅描述了在源模式中实际定义了的关系。其结果就是产生了具有高度可移植性的XML数据,加入了具有高度可移植性的Java代码,这些Java代码可用于创建灵活的、轻量级的应用和Web服务。

二.你必须有两个文件,一个是xml,一个是与他相对应的xsd
现成的有两个文件可以从http://java.sun.com/developer/technicalArticles/WebServices/jaxb/上找到books.xml与books.xsd
books.xml
<?xml version="1.0"?>
<Collection>
<books>
    <book itemId="999">
      <name>
         Learning JAXB
      </name>
      <ISBN>
        123445
      </ISBN>
      <price>
        34 $
      </price>
      <authors>
        <authorName> Jane Doe
        </authorName>
      </authors>
      <description>
         This books contains step by step instructions for beginners so that they can start using Java API for XML Binding.
      </description>
      <promotion>
        <Discount> 10% on this book if purchased by March 2003
        </Discount>
      </promotion>
      <publicationDate>
        2003-01-01
      </publicationDate>
      <bookCategory>other
      </bookCategory>
    </book>

    <book itemId="129">
      <name>
         Java Webservices today and Beyond
      </name>
      <ISBN>
        522965
      </ISBN>
      <price>
        29 $
      </price>
      <authors>
        <authorName> John Brown
        </authorName>
        <authorName> Peter T.
        </authorName>
      </authors>
      <description>
         This books contains information for users so that they can start using Java Web Services Developer Pack.
      </description>
      <promotion>
        <Discount> Buy one get Learning webservices Part 1 free
        </Discount>
      </promotion>
      <publicationDate>
        2002-11-01
      </publicationDate>
      <bookCategory>magazine
      </bookCategory>
    </book>
</books>
</Collection>

books.xsd
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
           xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" jaxb:version="1.0">
<xs:element name="Collection">
   <xs:complexType>
      <xs:sequence>
        <xs:element name ="books">
           <xs:complexType>
              <xs:sequence>
                <xs:element name="book" type="bookType" minOccurs="1" maxOccurs="unbounded"/>
              </xs:sequence>
           </xs:complexType>
        </xs:element>
      </xs:sequence>
   </xs:complexType>
</xs:element>

<xs:complexType name="bookType">
<xs:sequence>
    <xs:element name="name" type="xs:string"/>
    <xs:element name="ISBN" type="xs:long"/>
    <xs:element name="price" type="xs:string"/>
    <xs:element name="authors" >
      <xs:complexType>
        <xs:sequence>
           <xs:element name="authorName" type="xs:string" minOccurs="1"
                maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>
    </xs:element>
    <xs:element name="description" type="xs:string" minOccurs="0"/>
    <xs:element name="promotion">
       <xs:complexType>
         <xs:choice>
           <xs:element name="Discount" type="xs:string" />
           <xs:element name="None" type="xs:string"/>
         </xs:choice>
       </xs:complexType>
    </xs:element>
    <xs:element name="publicationDate" type="xs:date"/>
    <xs:element name="bookCategory">
       <xs:simpleType>
         <xs:restriction base="xs:NCName">
           <xs:enumeration value="magazine" />
           <xs:enumeration value="novel" />
           <xs:enumeration value="fiction" />
           <xs:enumeration value="other" />
         </xs:restriction>
        </xs:simpleType>
     </xs:element>
</xs:sequence>
<xs:attribute name="itemId" type="xs:string" />
</xs:complexType>

<xs:simpleType name="bookCategoryType" >
   <xs:restriction base="xs:string">
      <xs:enumeration value="magazine" />
      <xs:enumeration value="novel" />
      <xs:enumeration value="fiction" />
      <xs:enumeration value="other" />
   </xs:restriction>
</xs:simpleType>
</xs:schema>
          

三.安装jwsdp-2.0
下载地址:http://java.sun.com/webservices/downloads/webservicespack.html别忘了设置环境变量
   下面是有关jwsdp的详细情况
   JWSDP提供了库和工具的集合,包含了开发和测试WEB服务的必需组件。除了标准的接口库外,还提供了每个库的引用实现。
   JWSDP组件介绍:

1,JAXP:
   XML处理的Java API(Java API for XML Processing,JAXP)提供了解析和转换 XML文档的标准化接口。

2,JAXM:
   JAXM提供SOAP1.1带附件的SOAP标准接口,以便Java程序员能够方便地发送和接 收SOAP消息。JAXM给厂商提供了一种机制,既   可以用于支持可靠的消息传输,也可以用于部分填充特定基于SOAP协议(如 ebXML)的SOAP消息。

3,JAX-RPC
   基于XML远程过程调用的Java API(Java API for XML-based Remote ProcedureCalls,JAX-RPC)提供了一种机制,使得可以通   过基于SOAP的消息跨网络调用对象。对于JAX-RPC,事实上可以使用任何支持SOAP的语言在跨网络(包括Internet)的机器上托管     Java对象的实现。JAX-RPC的作用与RMI大致相同,因为创建的插件(Stub)对象可以用于调用远程对象。从概念上讲,可以同样        地使用这两个系统。JAX-RPC和RMI的不同之处在于两台机器之间所传递的数据格式。RMI使用底层的Java特有的协议(或CORBA
        IIOP),而JAX-RPC使用的则是XML。

4,JAXR:
   JAXR(XML注册中心的Java API,Java API for XML Registries)提供了查询注册中心的抽象接口;JAXR可用来让用户不必了解   UDDI或ebXML RegRep的细节。

5,JSSE:
   JSSE提供了一种机制,可用于在加密的网络连接上进行通信,并且管理与加密有关的密匙。JSSE提供了免版税的SSL v3(安全        套接字层,Secure Sockets Layer)的实现和TLS(传输层安全,Transport Layer Security)1.0的支持。JSSE还提供了附加的        URL处理器,以便java.net.URL类能够理解和处理HTTPURL.

6,JSTL:
   JSP的标准标签库

7,ANT和TOMCAT
   ANT是一个开放工源代码构建工具,ANT起源于创建WAR(Web应用归档)的内置任务,WAR是Java Web服务的默认封装。Tomcat 是       JSP和Servlet标准的引用实现。它同样允许开发基于servlet的web服务托管,例如那些JAXM支持。

    8,JWSDP也包括WSDP(WEB服务开发人员包,Web Services Developer
   Package)Registry服务器。这是一个简单的UDDI服务器,可用于开发和测试
源文来源:http://www.iteye.com/topic/419455

四.生成代码绑定schema
    D:\EclipseWorkSpace\cxfdemo\src>xjc.bat -p com.ce.open.sample books.xsd -d src
parsing a schema...
compiling a schema...
com\ce\open\sample\BookCategoryType.java
com\ce\open\sample\BookType.java
com\ce\open\sample\Collection.java
com\ce\open\sample\ObjectFactory.java

其中 -p为生成代码的包名 后面为xml文件名 -d 为生成代码的存放位置

五.测试
public class Jaxbdemo {
public static void main(String[] args) {
   try {
    //books.xsd生成的包名
    JAXBContext jc = JAXBContext.newInstance("com.ce.open.sample");
    Unmarshaller unmarshaller = jc.createUnmarshaller();
    //注意这里的Collection是上面生成的不是java.util.Collection
    Collection collection = (Collection) unmarshaller.unmarshal(new File("src/books.xml"));
    Books books = (Books) collection.getBooks();
    List<BookType> bookList = books.getBook();
    for(BookType type : bookList){
     System.out.println(type.getName());
    }
   } catch (JAXBException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
}
}

六.相关资源链接
http://java.sun.com/developer/technicalArticles/WebServices/jaxb/

http://gceclub.sun.com.cn/staticcontent/html/webservices/web_services_tutorial/index.htm

http://java.sun.com/webservices/docs/1.5/tutorial/doc/JAXBUsing.html

http://www.xyzws.com/scdjws/studyguide/jaxb_samples2.0.html

http://java.sun.com/webservices/downloads/webservicespack.html (Java Web Services Developer Pack (Java WSDP) )

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于PyTorch的Embedding和LSTM的自动写诗实验LSTM (Long Short-Term Memory) 是一种特殊的循环神经网络(RNN)架构,用于处理具有长期依赖关系的序列数据。传统的RNN在处理长序列时往往会遇到梯度消失或梯度爆炸的问题,导致无法有效地捕捉长期依赖。LSTM通过引入门控机制(Gating Mechanism)和记忆单元(Memory Cell)来克服这些问题。 以下是LSTM的基本结构和主要组件: 记忆单元(Memory Cell):记忆单元是LSTM的核心,用于存储长期信息。它像一个传送带一样,在整个链上运行,只有一些小的线性交互。信息很容易地在其上保持不变。 输入门(Input Gate):输入门决定了哪些新的信息会被加入到记忆单元中。它由当前时刻的输入和上一时刻的隐藏状态共同决定。 遗忘门(Forget Gate):遗忘门决定了哪些信息会从记忆单元中被丢弃或遗忘。它也由当前时刻的输入和上一时刻的隐藏状态共同决定。 输出门(Output Gate):输出门决定了哪些信息会从记忆单元中输出到当前时刻的隐藏状态中。同样地,它也由当前时刻的输入和上一时刻的隐藏状态共同决定。 LSTM的计算过程可以大致描述为: 通过遗忘门决定从记忆单元中丢弃哪些信息。 通过输入门决定哪些新的信息会被加入到记忆单元中。 更新记忆单元的状态。 通过输出门决定哪些信息会从记忆单元中输出到当前时刻的隐藏状态中。 由于LSTM能够有效地处理长期依赖关系,它在许多序列建模任务中都取得了很好的效果,如语音识别、文本生成、机器翻译、时序预测等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值