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

Tame Your Blood Sugar Forever Slideshare
Tame Your Blood Sugar Forever   SlideshareTame Your Blood Sugar Forever   Slideshare
Tame Your Blood Sugar Forever Slideshare
andyhsieh5
 
Sociology In Our World Today
Sociology In Our World TodaySociology In Our World Today
Sociology In Our World Today
morgans2
 
Antibioterapiaenlosprocesosmsfrecuentesenatencin 100128070800-phpapp02
Antibioterapiaenlosprocesosmsfrecuentesenatencin 100128070800-phpapp02Antibioterapiaenlosprocesosmsfrecuentesenatencin 100128070800-phpapp02
Antibioterapiaenlosprocesosmsfrecuentesenatencin 100128070800-phpapp02
zenaida nieres
 
CAS 2012. Agile en equipos mixtos: Diseño y Desarrollo. Amainando tempestades
CAS 2012. Agile en equipos mixtos: Diseño y Desarrollo. Amainando tempestadesCAS 2012. Agile en equipos mixtos: Diseño y Desarrollo. Amainando tempestades
CAS 2012. Agile en equipos mixtos: Diseño y Desarrollo. Amainando tempestades
Antonio de la Torre Fernández
 
Soc 02 Morgan Spencer.Ppt
Soc 02 Morgan Spencer.PptSoc 02 Morgan Spencer.Ppt
Soc 02 Morgan Spencer.Ppt
morgans2
 

Viewers also liked (17)

Dilemma 8
Dilemma 8Dilemma 8
Dilemma 8
 
Odyssey part1
Odyssey part1Odyssey part1
Odyssey part1
 
Tame Your Blood Sugar Forever Slideshare
Tame Your Blood Sugar Forever   SlideshareTame Your Blood Sugar Forever   Slideshare
Tame Your Blood Sugar Forever Slideshare
 
Dark Alleys Part2
Dark Alleys Part2Dark Alleys Part2
Dark Alleys Part2
 
Mythology Chapter Ten
Mythology Chapter TenMythology Chapter Ten
Mythology Chapter Ten
 
Magicworld Test
Magicworld TestMagicworld Test
Magicworld Test
 
Treinamento gedoc
Treinamento gedocTreinamento gedoc
Treinamento gedoc
 
Fr an cisco de la hoz
Fr an cisco de la hozFr an cisco de la hoz
Fr an cisco de la hoz
 
Sociology In Our World Today
Sociology In Our World TodaySociology In Our World Today
Sociology In Our World Today
 
Armonía
ArmoníaArmonía
Armonía
 
El cómic en chilehoy!
El cómic en chilehoy!El cómic en chilehoy!
El cómic en chilehoy!
 
Antibioterapiaenlosprocesosmsfrecuentesenatencin 100128070800-phpapp02
Antibioterapiaenlosprocesosmsfrecuentesenatencin 100128070800-phpapp02Antibioterapiaenlosprocesosmsfrecuentesenatencin 100128070800-phpapp02
Antibioterapiaenlosprocesosmsfrecuentesenatencin 100128070800-phpapp02
 
CAS 2012. Agile en equipos mixtos: Diseño y Desarrollo. Amainando tempestades
CAS 2012. Agile en equipos mixtos: Diseño y Desarrollo. Amainando tempestadesCAS 2012. Agile en equipos mixtos: Diseño y Desarrollo. Amainando tempestades
CAS 2012. Agile en equipos mixtos: Diseño y Desarrollo. Amainando tempestades
 
Body language[1]
Body language[1]Body language[1]
Body language[1]
 
2010 | Rencontre Informative – Université De Sherbrooke
2010 | Rencontre Informative – Université De Sherbrooke 2010 | Rencontre Informative – Université De Sherbrooke
2010 | Rencontre Informative – Université De Sherbrooke
 
Soc 02 Morgan Spencer.Ppt
Soc 02 Morgan Spencer.PptSoc 02 Morgan Spencer.Ppt
Soc 02 Morgan Spencer.Ppt
 
Magicworld Test
Magicworld  TestMagicworld  Test
Magicworld Test
 

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());