ΠΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠΈ
ΠΡΡΡ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΡ ΠΊΠ²Π°Π»ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ
ΠΡΡΡ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΡ ΠΊΠ²Π°Π»ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ
ΠΠΈΠ΄Π΅ΠΎΠ»Π΅ΠΊΡΠΈΡ
1 ΡΠ»Π°ΠΉΠ΄
WORK WITH XML-files in Java
ΠΠ»Ρ ΡΡΡΠ΄Π΅Π½ΡΠΎΠ²
ΡΡΠ°ΡΡΠΈΡ
ΠΊΡΡΡΠΎΠ² ΡΠ½ΠΈΠ²Π΅ΡΡΠΈΡΠ΅ΡΠΎΠ²
Π‘Ρ.ΠΏΡΠ΅ΠΏΠΎΠ΄Π°Π²Π°ΡΠ΅Π»Ρ ΠΡΠ΄Π½ΠΈΠΊ Π.Π.
2 ΡΠ»Π°ΠΉΠ΄
XML-eXtensible Markup Language(ΡΠ°ΡΡΠΈΡΡΠ΅ΠΌΡXΠΉ ΡΠ·ΡΠΊ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΊ)
3 ΡΠ»Π°ΠΉΠ΄
XML-ΡΠ°ΠΉΠ»Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
.
ΠΠ»Ρ ΡΡΠ΅Π½ΠΈΡ ΠΈ Π·Π°ΠΏΠΈΡΠΈ Π² ΡΠ°ΠΊΠΈΠ΅ ΡΠ°ΠΉΠ»Ρ Π² Java ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° JAXB.
ΠΠ»Ρ Π΅Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π½ΡΠΆΠ½ΠΎ Π΄ΠΎΠΏΠΈΡΠ°ΡΡ
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlRootElement;
4 ΡΠ»Π°ΠΉΠ΄
File: employee.xml
<?xmlΒ version="1.0"Β encoding="UTF-8"Β standalone="yes"?>Β Β
<employeeΒ id="1">Β Β
Β Β Β Β <name>VimalΒ Jaiswal</name>Β Β
Β Β Β Β <salary>50000.0</salary>Β Β
</employee>Β Β
5 ΡΠ»Π°ΠΉΠ΄
ΠΠ°ΠΊ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠΎΡ ΡΠ°ΠΉΠ»?
File: ObjectToXml.java
importΒ java.io.FileOutputStream;Β Β
Β Β
importΒ javax.xml.bind.JAXBContext;Β Β
importΒ javax.xml.bind.Marshaller;Β Β
Β Β
Β Β
publicΒ classΒ ObjectToXmlΒ {Β Β
publicΒ staticΒ voidΒ main(String[]Β args)Β throwsΒ Exception{Β Β
Β Β Β Β JAXBContextΒ contextObjΒ =Β JAXBContext.newInstance(Employee.class);Β Β
Β Β
Β Β Β Β MarshallerΒ marshallerObjΒ =Β contextObj.createMarshaller();Β Β
Β Β Β Β marshallerObj.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT,Β true);Β Β
Β Β
Β Β Β Β EmployeeΒ emp1=newΒ Employee(1,"VimalΒ Jaiswal",50000);Β Β
Β Β Β Β Β Β
Β Β Β Β marshallerObj.marshal(emp1,Β newΒ FileOutputStream("employee.xml"));Β Β
Β Β Β Β Β Β Β
}Β Β
}Β Β
6 ΡΠ»Π°ΠΉΠ΄
File: Employee.java
importΒ javax.xml.bind.annotation.XmlAttribute;Β Β
importΒ javax.xml.bind.annotation.XmlElement;Β Β
importΒ javax.xml.bind.annotation.XmlRootElement;Β Β
Β Β
@XmlRootElementΒ Β
publicΒ classΒ EmployeeΒ {Β Β
Β Β Β Β privateΒ intΒ id;Β Β
Β Β Β Β privateΒ StringΒ name;Β Β
Β Β Β Β privateΒ floatΒ salary;Β Β
Β Β
publicΒ Employee()Β {}Β Β
publicΒ Employee(intΒ id,Β StringΒ name,Β floatΒ salary)Β {Β Β
Β Β Β Β super();Β Β
Β Β Β Β this.idΒ =Β id;Β Β
Β Β Β Β this.nameΒ =Β name;Β Β
Β Β Β Β this.salaryΒ =Β salary;Β Β
}Β Β
@XmlAttributeΒ Β
publicΒ intΒ getId()Β {Β Β
Β Β Β Β returnΒ id;Β Β
}Β Β
publicΒ voidΒ setId(intΒ id)Β {Β Β
Β Β Β Β this.idΒ =Β id;Β Β
}Β Β
@XmlElementΒ Β
publicΒ StringΒ getName()Β {Β Β
Β Β Β Β returnΒ name;Β Β
}Β Β
publicΒ voidΒ setName(StringΒ name)Β {Β Β
Β Β Β Β this.nameΒ =Β name;Β Β
}Β Β
@XmlElementΒ Β
publicΒ floatΒ getSalary()Β {Β Β
Β Β Β Β returnΒ salary;Β Β
}Β Β
publicΒ voidΒ setSalary(floatΒ salary)Β {Β Β
Β Β Β Β this.salaryΒ =Β salary;Β Β
}Β Β
Β Β
Β Β
}Β
7 ΡΠ»Π°ΠΉΠ΄
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ Π΅ΡΠ΅ ΠΏΡΠΈΠΌΠ΅Ρ XML-ΡΠ°ΠΉΠ»Π°:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<horseList>
<horse>
<horse_number>1</horse_number>
<name_horse>That Darn Gray Cat</name_horse>
<odds>5</odds>
<did_win>lost</did_win>
</horse>
<horse>
<horse_number>2</horse_number>
<name_horse>Fort Utopia</name_horse>
<odds>10</odds>
<did_win>win</did_win>
</horse>
</horseList>
8 ΡΠ»Π°ΠΉΠ΄
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement( name ="horse" )
public class Horse {
public String horse_number;
public String name_horse;
public String odds;
public String did_win;
public void setHorse_number(String horse_number) {
this.horse_number = horse_number;
}
public void setName_horse(String name_horse) {
this.name_horse = name_horse;
}
public void setOdds(String odds) {
this.odds = odds;
}
public void setDid_win(String did_win) {
this.did_win = did_win;
}
public String getHorse_number() {
return horse_number;
}
public String getName_horse() {
return name_horse;
}
public String getOdds() {
return odds;
}
public String getDid_win() {
return did_win;
}
}
9 ΡΠ»Π°ΠΉΠ΄
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement( name ="horseList" )
public class HorseList {
@XmlElement( name = "horse", type =Horse.class )
private List<Horse> horseList =new ArrayList<Horse>();
public HorseList(){}
public HorseList(List<Horse> horseList){
this.horseList = horseList;
}
public List<Horse> getHorseList() {
return horseList;
}
public void setHorseList(List<Horse> horseList) {
this.horseList = horseList;
}
// Export
public static void marshal(List<Horse> ids, File selectedFile)
throws IOException, JAXBException {
JAXBContext context;
BufferedWriter writer = null;
writer = new BufferedWriter(new FileWriter(selectedFile));
context = JAXBContext.newInstance(HorseList.class);
Marshaller m = context.createMarshaller();
m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
m.marshal(new HorseList(ids), writer);
writer.close();
}
// Import
public static List<Horse> unmarshal(File importFile) throws JAXBException {
HorseList ids = new HorseList();
JAXBContext context = JAXBContext.newInstance(HorseList.class);
Unmarshaller um = context.createUnmarshaller();
ids = (HorseList) um.unmarshal(importFile);
return ids.getHorseList();
}
}
10 ΡΠ»Π°ΠΉΠ΄
Π£Π‘ΠΠΠ₯ΠΠ!
XML (Π°Π½Π³Π».Β eXtensible Markup LanguageΒ β ΡΠ°ΡΡΠΈΡΡΠ΅ΠΌΡΠΉ ΡΠ·ΡΠΊ ΡΠ°Π·ΠΌΠ΅ΡΠΊΠΈ; ΠΏΡΠΎΠΈΠ·Π½ΠΎΡΠΈΡΡΡ [ΡΠΊΡ-ΡΠΌ-ΡΠ»])Β β ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π½Π½ΡΠΉ ΠΠΎΠ½ΡΠΎΡΡΠΈΡΠΌΠΎΠΌ ΠΡΠ΅ΠΌΠΈΡΠ½ΠΎΠΉ ΠΏΠ°ΡΡΠΈΠ½Ρ (W3C) ΡΠ·ΡΠΊ ΡΠ°Π·ΠΌΠ΅ΡΠΊΠΈ.
Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β ΠΠ· wikipedii
XML ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π»ΡΡ ΠΊΠ°ΠΊ ΡΠ·ΡΠΊ Ρ ΠΏΡΠΎΡΡΡΠΌ ΡΠΎΡΠΌΠ°Π»ΡΠ½ΡΠΌ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠΎΠΌ, ΡΠ΄ΠΎΠ±Π½ΡΠΉ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΠΌΠΈ ΠΈ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΡΠ΄ΠΎΠ±Π½ΡΠΉ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ ΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ² ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠΎΠΌ, Ρ ΠΏΠΎΠ΄ΡΡΡΠΊΠΈΠ²Π°Π½ΠΈΠ΅ΠΌ Π½Π°ΡΠ΅Π»Π΅Π½Π½ΠΎΡΡΠΈ Π½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π² ΠΠ½ΡΠ΅ΡΠ½Π΅ΡΠ΅.
Π Π°Π·ΠΌΠ΅ΡΠΊΠ° Π²ΡΠ΅Π³Π΄Π° Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠΌ < ΠΈ Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Π΅ΡΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠΌ >.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
<?xml version="1.0"?> >Hello, world!>Β
Β
Β
6 175 943 ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Π° Π² Π±Π°Π·Π΅
ΠΠ°ΡΡΠΎΡΡΠΈΠΉ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π» ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ Dudnik Oxana Antonovna. ΠΠ½ΡΠΎΡΡΠΎΠΊ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΡΠΌ ΠΏΠΎΡΡΠ΅Π΄Π½ΠΈΠΊΠΎΠΌ ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠ°ΡΡ Π½Π° ΡΠ°ΠΉΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Ρ. ΠΡΡ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΡΡΡ Π·Π° ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Ρ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠ΅ΡΡ Π² Π½ΠΈΡ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ, Π° ΡΠ°ΠΊΠΆΠ΅ Π·Π° ΡΠΎΠ±Π»ΡΠ΄Π΅Π½ΠΈΠ΅ Π°Π²ΡΠΎΡΡΠΊΠΈΡ ΠΏΡΠ°Π² Π½Π΅ΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ, Π·Π°Π³ΡΡΠ·ΠΈΠ²ΡΠΈΠ΅ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π» Π½Π° ΡΠ°ΠΉΡ
ΠΡΠ»ΠΈ ΠΡ ΡΡΠΈΡΠ°Π΅ΡΠ΅, ΡΡΠΎ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π» Π½Π°ΡΡΡΠ°Π΅Ρ Π°Π²ΡΠΎΡΡΠΊΠΈΠ΅ ΠΏΡΠ°Π²Π° Π»ΠΈΠ±ΠΎ ΠΏΠΎ ΠΊΠ°ΠΊΠΈΠΌ-ΡΠΎ Π΄ΡΡΠ³ΠΈΠΌ ΠΏΡΠΈΡΠΈΠ½Π°ΠΌ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠ΄Π°Π»Π΅Π½ Ρ ΡΠ°ΠΉΡΠ°, ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΡΠ°Π²ΠΈΡΡ ΠΆΠ°Π»ΠΎΠ±Ρ Π½Π° ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π».
Π£Π΄Π°Π»ΠΈΡΡ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΠ°ΡΠ° ΡΠΊΠΈΠ΄ΠΊΠ° Π½Π° ΠΊΡΡΡΡ
40%Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΈΡΠΊΠ°ΠΌΠΈ Π² ΠΌΠ΅Π½Π΅Π΄ΠΆΠΌΠ΅Π½ΡΠ΅ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ
ΠΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ
ΠΠ½Π΅ΡΠ½ΠΈΠΉ Π°ΡΠ΄ΠΈΡ ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ
ΠΡΡΠ°Π²ΡΡΠ΅ ΡΠ²ΠΎΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
ΠΠ²ΡΠΎΡΠΈΠ·ΡΠΉΡΠ΅ΡΡ, ΡΡΠΎΠ±Ρ Π·Π°Π΄Π°Π²Π°ΡΡ Π²ΠΎΠΏΡΠΎΡΡ.