Extensible Markup Language

XML документ се състои от елементи, като всеки елемент има начален етикет, съдържание и етикет за край. XML документа трябва да има точно един главен елемент (т.е. един етикет, който обгражда останалите тагове). XML прави разлика между малки и главни букви.

XML файлът трябва да е добре оформен. Това означава, че той трябва да се отговаря на следните условия:

  • XML документ винаги започва с prolog, който описва XML файла.

XML документ винаги започва с който описва XML файла. Този пролог може да бъде минимален, например:

<?xml version="1.0"?>

Но може да съдържа и друга информация, например кодирането

<?xml version="1.0"?><?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
  • Всеки маркер за отваряне има затварящ етикет.

Елемент, който не затваря никое съдържание, е познат като “празен таг”, например. <flag/>

  • Всички тагове са напълно вложени.

Сравнително лесно е да се обработи XML документ в сравнение с двоичен или неструктуриран формат. Това се дължи на следните характеристики:

  • XML е обикновен текст;
  • XML представлява данни, без да се определя как трябва да се показват данните;
  • XML може да се трансформира в други формати чрез XSL;
  • XML може лесно да се обработва чрез стандартни анализатори;
  • XML файловете са йерархични.

XML форматът е относително многословен, т.е. ако данните са представени като XML, размерът на тези данни е относително голям в сравнение с други формати. В Интернет JSON или двоични формати често се използват за замяна на XML, ако данните са важни.

1.3. XML елементи

Java Class XML Data Type
java.lang.String xs:string
java.math.BigInteger xs:integer
java.math.BigDecimal xs:decimal
java.util.Calendar xs:dateTime
java.util.Date xs:dateTime
javax.xml.namespace.QName xs:QName
java.net.URI xs:string
javax.xml.datatype.XMLGregorianCalendar xs:anySimpleType
javax.xml.datatype.Duration xs:duration
java.lang.Object xs:anyType
java.awt.Image xs:base64Binary
javax.activation.DataHandler xs:base64Binary
javax.xml.transform.Source xs:base64Binary
java.util.UUID xs:string
  1. XML елементи се валидират с XSD схема.

Схемата съдържа описание на синтаксиса на XML файла. Имената на елементите, техните дъщерни елементи типовете данни, който могат да бъдат стойности на елементите.

Примерна схема за валидиране на XML файл с обект person

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
    <xs:element name="person">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="name"/>
                <xs:element ref="age"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="name" type="xs:string"/>
    <xs:element name="age" type="xs:integer"/>
</xs:schema>

2.1. Генериране на схема в resources

  • Създавате XML входен файл
  • Избирате меню Tools -> XML Actions -> Generate XSD Schema from XML file
  • Резултатния файл поставяте в директория resources