Перейти к содержимому
шпаргалка.
Esc
навигацияоткрыть⌘Jпредпросмотр
На этой странице

Основы XML

Все темы Java Developer

Что такое XML?

XML (eXtensible Markup Language) — это язык разметки, предназначенный для хранения и передачи данных в формате, который легко читается как человеком, так и машиной.

Основные моменты:

  • Структурированность: Данные организованы в виде элементов с тегами.

  • Расширяемость: Пользователи могут создавать свои собственные теги для описания данных.

  • Универсальность: Используется для обмена данными между различными системами и приложениями.

Пример:

<person>
    <name>John Doe</name>
    <age>30</age>
    <email>john.doe@example.com</email>
</person>

XML широко применяется для конфигурационных файлов, веб-сервисов, обмена данными между различными системами и многих других целей.


Что такое DTD?

DTD (Document Type Definition) — это набор правил, определяющих структуру, элементы и атрибуты XML-документа. DTD используется для проверки правильности и согласованности XML-документов.

Основные моменты:

  • Определение структуры: Задает, какие элементы и атрибуты могут присутствовать в документе и в каком порядке.

  • Валидация: Позволяет проверить, соответствует ли XML-документ заданной структуре.

Пример:

DTD:

<!ELEMENT person (name, age, email)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT age (#PCDATA)>
<!ELEMENT email (#PCDATA)>

XML-документ:

<!DOCTYPE person SYSTEM "person.dtd">
<person>
  <name>John Doe</name>
  <age>30</age>
  <email>john.doe@example.com</email>
</person>

DTD помогает гарантировать, что XML-документы соответствуют ожидаемой структуре и содержат все необходимые элементы.


Чем well-formed XML отличается от valid XML?

Well-formed XML и valid XML имеют различия в степени проверки их структуры и содержания:

Well-formed XML:

  • Определение: Документ, который соответствует базовым правилам синтаксиса XML.

  • Требования:
    • Единый корневой элемент.

    • Правильное вложение и закрытие тегов.

    • Атрибуты заключены в кавычки.

    • Корректные специальные символы.

  • Пример:
    <note>
        <to>Alice</to>
        <from>Bob</from>
        <message>Hello!</message>
    </note>

Valid XML:

  • Определение: Документ, который не только well-formed, но и соответствует определению структуры, заданной DTD или XML Schema.

  • Требования:
    • Должен быть well-formed.

    • Должен соответствовать правилам и ограничениям, заданным в DTD или XML Schema.

  • Пример:
    <!DOCTYPE note SYSTEM "note.dtd">
    <note>
        <to>Alice</to>
        <from>Bob</from>
        <message>Hello!</message>
    </note>
    <!ELEMENT note (to, from, message)>
    <!ELEMENT to (#PCDATA)>
    <!ELEMENT from (#PCDATA)>
    <!ELEMENT message (#PCDATA)>

Что такое «пространство имен» в XML?

«Пространство имен» в XML используется для уникальной идентификации элементов и атрибутов в XML-документе. Оно помогает избежать конфликтов имен, особенно когда разные XML-документы объединяются. Пространства имен определяются с помощью URI (Uniform Resource Identifier) и присваиваются элементам и атрибутам с использованием префиксов.

Пример:
<root xmlns:h="http://www.w3.org/TR/html4/" xmlns:f="http://www.w3schools.com/furniture">
  <h:table>
    <h:tr>
      <h:td>Apples</h:td>
      <h:td>Bananas</h:td>
    </h:tr>
  </h:table>

  <f:table>
    <f:name>African Coffee Table</f:name>
    <f:width>80</f:width>
    <f:length>120</f:length>
  </f:table>
</root>

Здесь h и f - префиксы пространств имен, которые различают элементы table и tr в разных контекстах.


Какие типы существуют в XSD?

В XSD (XML Schema Definition) существуют два основных типа данных: простые типы (simple types) и составные типы (complex types).

Простые типы (Simple Types)

Простые типы данных представляют собой атомарные значения и не содержат элементов или атрибутов.

  1. Предопределенные типы:
    • string
    • boolean
    • decimal
    • integer
    • date
    • time
    • и другие

  2. Производные типы: Создаются на основе предопределенных типов с использованием ограничений (restrictions).

    • Пример:

      <xs:simpleType name="AgeType">
          <xs:restriction base="xs:integer">
              <xs:minInclusive value="0"/>
              <xs:maxInclusive value="120"/>
          </xs:restriction>
      </xs:simpleType>

Составные типы (Complex Types)

Составные типы данных могут содержать элементы и атрибуты.

  1. Complex Type with Elements:
    • Пример:

      <xs:complexType name="PersonType">
          <xs:sequence>
              <xs:element name="name" type="xs:string"/>
              <xs:element name="age" type="xs:integer"/>
          </xs:sequence>
      </xs:complexType>
  2. Complex Type with Attributes:
    • Пример:

      <xs:complexType name="PersonType">
          <xs:sequence>
              <xs:element name="name" type="xs:string"/>
          </xs:sequence>
          <xs:attribute name="id" type="xs:integer" use="required"/>
      </xs:complexType>

Эти типы данных позволяют гибко описывать структуру и содержание XML-документов.


Что такое JAXP?

JAXP (Java API for XML Processing) — это интерфейс программирования приложений (API) на языке Java для обработки XML-документов. Он предоставляет стандартные методы для парсинга, генерации, трансформации и проверки XML-документов. Основные компоненты JAXP включают:

  1. Парсинг: Поддерживает SAX (Simple API for XML) и DOM (Document Object Model) для чтения и обработки XML-документов.

  2. Трансформация: Использует XSLT (Extensible Stylesheet Language Transformations) для преобразования XML -документов в различные форматы.

  3. Валидация: Позволяет проверять XML -документы на соответствие заданным схемам (например, XSD).

JAXP обеспечивает гибкость и независимость от конкретных реализаций, позволяя разработчикам использовать различные XML -парсеры и процессоры трансформации.

Эта страница была полезной?