Skip to content

Minisiia/XmlXsdPowerTool

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

XmlXsdPowerTool

Create an XML file and its corresponding XSD schema.

6. Web-services 1. Software setup, web services, XML

Задание 5

Создать XML файл согласно заданииям выбрать один из вариантов на выбор:

  1. Создать файл XML и соответствующую ему схему XSD.

  2. При разработке XSD использовать простые и комплексные типы, перечисления, шаблоны и предельные значения.

  3. Сгенерировать класс, соответствующий данному описанию.

  4. Создать приложение для разбора XML-документа и инициализации коллекции объектов информацией из XML-файла. Для разбора использовать SAX, DOM и StAX парсеры. Для сортировки объектов использовать интерфейс Comparator.

  5. Произвести проверку XML-документа с привлечением XSD.

  6. Определить метод, производящий преобразование разработанного XML документа в документ, указанный в каждом задании.

6. Электроинструменты

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

— Model — название модели;

— Handy — одно- или двуручное;

— Origin — страна производства;

— TC (должно быть несколько) — технические характеристики:

энергопотребление (низкое, среднее, высокое),

производительность (в единицах в час),

возможность автономного функционирования и т. д.;

— Material — материал изготовления.

Корневой элемент назвать PowerTools или Power.

С помощью XSL преобразовать XML-файл в формат XML, при выводе корневым элементом сделать страну производства.

Заметки

Типы данных в XSD
Stax parser
XmlJavaTypeAdapter
XSL и XSLT
Преобразование XML документов

Типы данных в XSD

В XSD можно использовать несколько типов данных, таких как простые и комплексные типы, перечисления, шаблоны и предельные значения.

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

Комплексные типы - это типы данных, которые имеют сложную структуру и могут содержать несколько элементов. Комплексные типы могут содержать другие элементы и атрибуты, их можно использовать для определения сложных структур данных, например, для описания объектов или записей в базе данных.

Перечисления - это специальные типы данных, которые могут содержать ограниченный список значений. В XSD можно определить перечисления для ограничения значений элементов в XML-документе.

<xs:element name="power_consumption">
 <xs:simpleType>
   <xs:restriction base="xs:string">
      <xs:enumeration value="Low"/>
      <xs:enumeration value="Medium"/>
      <xs:enumeration value="High"/>
   </xs:restriction>
  </xs:simpleType>
 </xs:element>

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

<xs:element name="autonomous_operation">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:pattern value="(Yes|No)"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

Предельные значения - это ограничения, которые могут быть установлены для простых типов данных, таких как целочисленный или действительный типы. Предельные значения могут ограничивать диапазон допустимых значений элементов в XML-документе. Например, можно определить, что элемент XML должен быть целым числом в диапазоне от 0 до 100. Если значение элемента не соответствует этому ограничению, то XML-документ будет недействительным.

<xs:element name="productivity" type="xs:positiveInteger">
  <xs:minInclusive value="1"/>
  <xs:maxInclusive value="10000"/>
</xs:element>

Stax parser

XmlEventReader и XmlSteamReader являются двумя различными способами чтения XML-документов в Java.

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

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

В общем, XmlEventReader лучше использовать для чтения больших XML-документов, где нужна более тонкая настройка доступа к содержимому документа, а XmlSteamReader лучше использовать для чтения маленьких XML-документов, где скорость чтения более важна, чем гибкость доступа.

XmlJavaTypeAdapter

@XmlJavaTypeAdapter - это аннотация, используемая в JAXB для указания адаптера типа, который должен использоваться для сериализации или десериализации конкретного поля класса. Эта аннотация позволяет настраивать способ сериализации и десериализации данных в XML.

Адаптер типа - это класс, который предоставляет механизм преобразования объектов из одного типа в другой, которые могут быть сериализованы или десериализованы JAXB. Адаптеры типа могут использоваться, например, для преобразования строк в числа, или для преобразования объектов с помощью сложной логики, которая не может быть автоматически реализована JAXB.

@XmlJavaTypeAdapter может быть применена к любому полю, методу чтения/записи (getter/setter), перечислению или классу, чтобы указать адаптер типа, который должен использоваться для сериализации и десериализации этого поля.

Адаптер типа должен реализовывать интерфейс javax.xml.bind.annotation.adapters.XmlAdapter. Этот интерфейс имеет два метода: marshal() и unmarshal(), которые позволяют преобразовывать объекты из типа, используемого в приложении, в тип, который может быть сериализован или десериализован JAXB, и обратно.

    @XmlElement(name = "handy")
    @XmlJavaTypeAdapter(HandyAdapter.class)

XSL и XSLT

XSL (Extensible Stylesheet Language) - это язык, используемый для описания стилей, которые применяются к документам XML. XSLT (XSL Transformations) - это язык программирования, который используется для преобразования документов XML в другие форматы, такие как HTML, XHTML, XML или текстовые файлы.

Таким образом, **XSL является языком для создания стилей, а XSLT - языком для трансформации XML-документов.

XSL включает в себя три части: XSLT, XPath и XSL Formatting Objects (XSL-FO). XSLT определяет, как преобразовывать XML-документ в другой формат, XPath - язык для выбора элементов в XML-документе, а XSL-FO - язык для форматирования документов.

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

Таким образом, XSL и XSLT являются связанными, но отличными языками. XSL используется для создания стилей, которые могут быть применены к XML-документам, в то время как XSLT используется для преобразования XML-документов в другие форматы.

Преобразование XML документов

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

  1. HTML: XSLT может использоваться для преобразования XML-документа в HTML-страницу, которая может быть отображена в веб-браузере.

  2. Текстовые файлы: XML-документ может быть преобразован в текстовый формат, такой как CSV или TSV, чтобы его можно было использовать в других программах.

  3. PDF: XSLT может использоваться для преобразования XML-документа в формат PDF, который может быть открыт и просмотрен в любой программе для чтения PDF.

  4. XML: XSLT может использоваться для преобразования XML-документа в другой XML-документ, который может быть использован для обмена данными между различными приложениями.

  5. Изображения: XSLT может использоваться для создания изображений из XML-документа, например, SVG-изображений.

About

Create an XML file and its corresponding XSD schema.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published