SlideShare a Scribd company logo
1 of 16
Download to read offline
JAXB Part 2
XML Schema Definition(XSD)

XML Schema เป็ นการกําหนดว่าโครงสร้ างของเอกสาร XML

ชนิดข้ อมูลของ xsd แบ่งออกเป็ น 2 ประเภทใหญ่ๆ
    ‐ Simple type คือภายใน element จะมีข้อความอยูเ่ ท่านัน
                                                         ้
        (ไม่มี attribute)
    ‐ Complex type คือภายใน element จะมี element 
        ลูกอยู่ และมี attribute อยูด้วยก็ได้
                                  ่
Example XSD Simple type

<xsd:element name="dateborn"> 
   <xsd:simpleType> 
       <xsd:restriction base="xsd:date"> 
              <xsd:pattern value="d{2}‐d{2}" /> 
       </xsd:restriction>
   </xsd:simpleType> 
</xsd:element>
Example XSD Complex type

<xs:complexType name="addRequest">
  <xs:sequence>
   <xs:element name="detail" type="xs:string" minOccurs="0"/>
   <xs:element name="telNo" type="xs:string" minOccurs="0"/>
   <xs:element name="firstName" type="xs:string"/>
   <xs:element name="lastName" type="xs:string"/>
   <xs:element name="numberID" type="xs:string"/>
  </xs:sequence>
 </xs:complexType>
Example XSD

<xs:element name="Exception" nillable="true" type="tns:exceptionBean"/>
<xs:element name="addRequest" type="tns:addRequest"/>
<xs:element name="addRequestResponse" type="tns:addRequestResponse"/>
<xs:element name="cancelRequestR" type="tns:cancelRequestR"/>
<xs:element name="cancelRequestRResponse" type="tns:cancelRequestRResponse"/>
<xs:element name="completeRequestR" type="tns:completeRequestR"/>
<xs:element name="completeRequestRResponse" type="tns:completeRequestRResponse"/>
<xs:element name="getRequestStudent" type="tns:getRequestStudent"/>
<xs:element name="getRequestStudentResponse" type="tns:getRequestStudentResponse"/>
<xs:element name="getSpecialize" type="tns:getSpecialize"/>
<xs:element name="getSpecializeResponse" type="tns:getSpecializeResponse"/>
Example XSD(2)




       คือ class ที่คอยทําหน้ าที่สร้ าง object 
       ให้ กบ class อื่นๆ เมื่อมีการ request 
            ั

       ตัวอย่าง code ใน ObjectFactory
       public Student createStudent() {
            return new Student();
         }
จาก Java 
เป็ น XML
Main.java

เป็ นส่วนที่ใส่ input ที่จะทําการเปลี่ยนให้ อยูในรูป XML  โดยจะต้ องทําการสร้ าง
                                              ่
ตัวแปรที่จะใช้ รับค่า input ดังนี ้

  Student s[] = new Student[7];
  for(int i=0;i<=6;i++){
      s[i] = new ObjectFactory().createStudent();
  }
Example Main.java

ตัวอย่ างการ input ข้ อมูลลงใน file XML

s[1].setStudentID(String.valueOf("51050560"));
s[1].setStudentFirstName(String.valueOf("เกศิริน "));
s[1].setStudentLastName(String.valueOf("คุณสืบพงษ์ พนธ์ "));
                                                      ั
Example Main.java(2)

try {
    javax.xml.bind.JAXBContext jaxbCtx = 
    javax.xml.bind.JAXBContext.newInstance(s[1].getClass().getPackage().getName());
           javax.xml.bind.Marshaller marshaller = jaxbCtx.createMarshaller();
           marshaller.setProperty(javax.xml.bind.Marshaller.JAXB_ENCODING, "UTF‐8"); //NOI18N
           marshaller.setProperty(javax.xml.bind.Marshaller.JAXB_FORMATTED_OUTPUT, 
    Boolean.TRUE);
           marshaller.marshal(s[1], System.out);
     } catch (javax.xml.bind.JAXBException ex) {
        // XXXTODO Handle exception
        java.util.logging.Logger.getLogger("global").log(java.util.logging.Level.SEVERE, null, ex); 
    //NOI18N
     }
Output XML
จาก XML 
เป็ น Java
File XML


<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<ns2:student xmlns:ns2="http://webservice.component/">
<Student_ID>51050560</Student_ID>
<Student_FirstName>เกศิริน </ Student_FirstName>
<Student_LastName>คุณสืบพงษ์ พนธ์ </ Student_LastName>
                               ั
</ns2:student>
Main.java

Student s = new ObjectFactory().createStudent();

try {
        javax.xml.bind.JAXBContext jaxbCtx = 
    javax.xml.bind.JAXBContext.newInstance(s.getClass().getPackage().getName());
        javax.xml.bind.Unmarshaller unmarshaller = jaxbCtx.createUnmarshaller();
        s = (Student) unmarshaller.unmarshal(new java.io.File("D://Student.XML")); 
    //NOI18N
     } catch (javax.xml.bind.JAXBException ex) {
        // XXXTODO Handle exception
        java.util.logging.Logger.getLogger("global").log(java.util.logging.Level.SEVERE, 
    null, ex); //NOI18N
     }
Main.java(2)

ตัวอย่ าง code ที่ แสดงในส่ วน output

System.out.println("Student Detail");
System.out.print(s.getStudentID());
System.out.print("t"+s.getStudentFirstName());
System.out.println("t"+s.getStudentLastName());
Output Java

More Related Content

Viewers also liked

Matematicas y lenguaje tercero
Matematicas y lenguaje terceroMatematicas y lenguaje tercero
Matematicas y lenguaje tercero
Elizabeth Martinez
 
Hq ivanilda-vitalino-gidalva-mªjosé
Hq ivanilda-vitalino-gidalva-mªjoséHq ivanilda-vitalino-gidalva-mªjosé
Hq ivanilda-vitalino-gidalva-mªjosé
emitecjvelho
 
Bases biológicas composición y función celular i bimestre ii parte
Bases biológicas composición y función celular i bimestre ii parteBases biológicas composición y función celular i bimestre ii parte
Bases biológicas composición y función celular i bimestre ii parte
Videoconferencias UTPL
 
Fases del rup 004
Fases del rup 004Fases del rup 004
Fases del rup 004
arnolzc
 
História das artes visuais contemporâneas
História das artes visuais contemporâneasHistória das artes visuais contemporâneas
História das artes visuais contemporâneas
Filipa Sousa
 
Fernando Pessoa poster
Fernando Pessoa   posterFernando Pessoa   poster
Fernando Pessoa poster
becresforte
 

Viewers also liked (17)

O Desenvolvimento Economico E InovaçõEs Do Direito Privado Brasileiro CapíT...
O Desenvolvimento Economico E InovaçõEs Do Direito Privado Brasileiro   CapíT...O Desenvolvimento Economico E InovaçõEs Do Direito Privado Brasileiro   CapíT...
O Desenvolvimento Economico E InovaçõEs Do Direito Privado Brasileiro CapíT...
 
Convocatória eleições
Convocatória eleiçõesConvocatória eleições
Convocatória eleições
 
Significados
SignificadosSignificados
Significados
 
We're not appy, not appy at all!
We're not appy, not appy at all!We're not appy, not appy at all!
We're not appy, not appy at all!
 
Giovanny torres montoya
Giovanny torres montoyaGiovanny torres montoya
Giovanny torres montoya
 
Matematicas y lenguaje tercero
Matematicas y lenguaje terceroMatematicas y lenguaje tercero
Matematicas y lenguaje tercero
 
Mensagem pibpn dia 30-11-2014 - somos desafiados a crescer juntos
Mensagem pibpn   dia 30-11-2014 - somos desafiados a crescer juntosMensagem pibpn   dia 30-11-2014 - somos desafiados a crescer juntos
Mensagem pibpn dia 30-11-2014 - somos desafiados a crescer juntos
 
Hq ivanilda-vitalino-gidalva-mªjosé
Hq ivanilda-vitalino-gidalva-mªjoséHq ivanilda-vitalino-gidalva-mªjosé
Hq ivanilda-vitalino-gidalva-mªjosé
 
Transcripcion
TranscripcionTranscripcion
Transcripcion
 
Mensagem pibpn dia 23-02-2014 - manhã.docx
Mensagem pibpn   dia 23-02-2014 - manhã.docxMensagem pibpn   dia 23-02-2014 - manhã.docx
Mensagem pibpn dia 23-02-2014 - manhã.docx
 
Bases biológicas composición y función celular i bimestre ii parte
Bases biológicas composición y función celular i bimestre ii parteBases biológicas composición y función celular i bimestre ii parte
Bases biológicas composición y función celular i bimestre ii parte
 
Fases del rup 004
Fases del rup 004Fases del rup 004
Fases del rup 004
 
História das artes visuais contemporâneas
História das artes visuais contemporâneasHistória das artes visuais contemporâneas
História das artes visuais contemporâneas
 
Fernando Pessoa poster
Fernando Pessoa   posterFernando Pessoa   poster
Fernando Pessoa poster
 
Sessão 2
Sessão 2Sessão 2
Sessão 2
 
Encuestas
EncuestasEncuestas
Encuestas
 
Romantic Literature
Romantic LiteratureRomantic Literature
Romantic Literature
 

Jaxb part 2

  • 2. XML Schema Definition(XSD) XML Schema เป็ นการกําหนดว่าโครงสร้ างของเอกสาร XML ชนิดข้ อมูลของ xsd แบ่งออกเป็ น 2 ประเภทใหญ่ๆ ‐ Simple type คือภายใน element จะมีข้อความอยูเ่ ท่านัน ้ (ไม่มี attribute) ‐ Complex type คือภายใน element จะมี element  ลูกอยู่ และมี attribute อยูด้วยก็ได้ ่
  • 3. Example XSD Simple type <xsd:element name="dateborn">  <xsd:simpleType>  <xsd:restriction base="xsd:date">  <xsd:pattern value="d{2}‐d{2}" />  </xsd:restriction> </xsd:simpleType>  </xsd:element>
  • 4. Example XSD Complex type <xs:complexType name="addRequest"> <xs:sequence> <xs:element name="detail" type="xs:string" minOccurs="0"/> <xs:element name="telNo" type="xs:string" minOccurs="0"/> <xs:element name="firstName" type="xs:string"/> <xs:element name="lastName" type="xs:string"/> <xs:element name="numberID" type="xs:string"/> </xs:sequence> </xs:complexType>
  • 5. Example XSD <xs:element name="Exception" nillable="true" type="tns:exceptionBean"/> <xs:element name="addRequest" type="tns:addRequest"/> <xs:element name="addRequestResponse" type="tns:addRequestResponse"/> <xs:element name="cancelRequestR" type="tns:cancelRequestR"/> <xs:element name="cancelRequestRResponse" type="tns:cancelRequestRResponse"/> <xs:element name="completeRequestR" type="tns:completeRequestR"/> <xs:element name="completeRequestRResponse" type="tns:completeRequestRResponse"/> <xs:element name="getRequestStudent" type="tns:getRequestStudent"/> <xs:element name="getRequestStudentResponse" type="tns:getRequestStudentResponse"/> <xs:element name="getSpecialize" type="tns:getSpecialize"/> <xs:element name="getSpecializeResponse" type="tns:getSpecializeResponse"/>
  • 6. Example XSD(2) คือ class ที่คอยทําหน้ าที่สร้ าง object  ให้ กบ class อื่นๆ เมื่อมีการ request  ั ตัวอย่าง code ใน ObjectFactory public Student createStudent() { return new Student(); }
  • 8. Main.java เป็ นส่วนที่ใส่ input ที่จะทําการเปลี่ยนให้ อยูในรูป XML  โดยจะต้ องทําการสร้ าง ่ ตัวแปรที่จะใช้ รับค่า input ดังนี ้ Student s[] = new Student[7]; for(int i=0;i<=6;i++){ s[i] = new ObjectFactory().createStudent(); }
  • 9. Example Main.java ตัวอย่ างการ input ข้ อมูลลงใน file XML s[1].setStudentID(String.valueOf("51050560")); s[1].setStudentFirstName(String.valueOf("เกศิริน ")); s[1].setStudentLastName(String.valueOf("คุณสืบพงษ์ พนธ์ ")); ั
  • 10. Example Main.java(2) try { javax.xml.bind.JAXBContext jaxbCtx =  javax.xml.bind.JAXBContext.newInstance(s[1].getClass().getPackage().getName()); javax.xml.bind.Marshaller marshaller = jaxbCtx.createMarshaller(); marshaller.setProperty(javax.xml.bind.Marshaller.JAXB_ENCODING, "UTF‐8"); //NOI18N marshaller.setProperty(javax.xml.bind.Marshaller.JAXB_FORMATTED_OUTPUT,  Boolean.TRUE); marshaller.marshal(s[1], System.out); } catch (javax.xml.bind.JAXBException ex) { // XXXTODO Handle exception java.util.logging.Logger.getLogger("global").log(java.util.logging.Level.SEVERE, null, ex);  //NOI18N }
  • 13. File XML <?xml version="1.0" encoding="UTF-8" standalone="yes" ?> <ns2:student xmlns:ns2="http://webservice.component/"> <Student_ID>51050560</Student_ID> <Student_FirstName>เกศิริน </ Student_FirstName> <Student_LastName>คุณสืบพงษ์ พนธ์ </ Student_LastName> ั </ns2:student>
  • 14. Main.java Student s = new ObjectFactory().createStudent(); try { javax.xml.bind.JAXBContext jaxbCtx =  javax.xml.bind.JAXBContext.newInstance(s.getClass().getPackage().getName()); javax.xml.bind.Unmarshaller unmarshaller = jaxbCtx.createUnmarshaller(); s = (Student) unmarshaller.unmarshal(new java.io.File("D://Student.XML"));  //NOI18N } catch (javax.xml.bind.JAXBException ex) { // XXXTODO Handle exception java.util.logging.Logger.getLogger("global").log(java.util.logging.Level.SEVERE,  null, ex); //NOI18N }
  • 15. Main.java(2) ตัวอย่ าง code ที่ แสดงในส่ วน output System.out.println("Student Detail"); System.out.print(s.getStudentID()); System.out.print("t"+s.getStudentFirstName()); System.out.println("t"+s.getStudentLastName());