АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

ERROR - 14 : 41 - cvc-attribute.3: The value 'mit' of attribute 'login' on element 'student' is not valid with respect to its type, 'login'

Если допустить синтаксическую ошибку в XML-документе, например, удалить закрывающую скобку в элементе telephone, будет выведено сообщение о фатальной ошибке:

FATAL - 7: 26 - Element type "telephone2456474" must be followed by either attribute specifications, ">" or "/>".

В Java разработаны серьезные способы взаимодействия с XML. Начиная
с версии Java 6, эти механизмы включены в JDK.

Следующий пример на основе внутреннего класса создает структуру документа XML и сохраняет в ней объект.

/* пример # 15: создание XML-документа на основе объекта: DemoJSR.java */

package chapt16;

import java.io.*;

import javax.xml.bind.*;

import javax.xml.bind.annotation.*;

 

public class DemoJSR {

public static void main(String[] args) {

try {

JAXBContext context =

JAXBContext. newInstance (Student. class);

Marshaller m = context.createMarshaller();

Student s = new Student(1, "Bender"); //объект

m.marshal(s, new FileOutputStream("stud.xml"));

} catch (FileNotFoundException e) {

System. out. println("XMl-файл не найден");

e.printStackTrace();

} catch (JAXBException e) {

System. out. println("JAXB-исключения");

e.printStackTrace();

}

}

@XmlRootElement

private static class Student { //внутренний класс

private int id;

private String name;

 

public Student() {

}

public Student(int id, String name) {

this. id = id;

this. name = name;

}

public int getID() {

return id;

}

public String getName() {

return name;

}

public void setID(int id) {

this. id = id;

}

public void setName(String name) {

this. name = name;

}

}

}

В результате компиляции и запуска программы будет создан XML-документ:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <student>

<ID>1</ID>

<name>Bender</name>

</student>

Возможно обратное создание на основе XML-схемы классов на языке Java:

/* пример # 16: описание классов University, Course и перечисления Faculty в XSD-схеме: student.xsd*/

<schema xmlns="http://www.w3c.org/2001/XMLSchema"

xmlns:Revealed="http://www.university.net"

targetNamespace="http://www.university.net">

<element name="University">

<complexType>

<sequence>

<element name="faculty" type="Revealed:Faculty"/>

<element name="course" type="Revealed:Course"/>

</sequence>

</complexType>

</element>

<complexType name="Course">

<sequence>

<element name="login" type="string"/>

<element name="name" type="string"/>

<element name="telephone" type="string"/>

</sequence>

</complexType>

<simpleType name="Faculty">

<restriction base="string">

<enumeration value="FPMI"></enumeration>

<enumeration value="MMF"></enumeration>

<enumeration value="Geo"></enumeration>

</restriction>

</simpleType>

</schema>

Запуск выполняется с помощью командной строки:


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.005 сек.)