Рубрики
Без рубрики

Как сгенерировать XSD из класса Java

Сгенерируйте XSD из класса Java. Класс Java для генерации xsd с использованием плагина JAXB-2 Maven, XMLType, Атрибут Xml, схема, схема преобразования, пример файла xsd

Автор оригинала: Pankaj Kumar.

В последних нескольких постах мы узнали о Java JAXB и о том, как создать класс java из XSD . Сегодня мы узнаем, как генерировать XSD из классов java.

Сгенерируйте XSD из класса Java

Мы будем использовать Плагин Maven JAXB-2 в проекте maven для генерации XSD из классов java.

  • Плагин JAXB2 Maven использует утилиту JAXB SchemaGenerator для генерации XSD из классов java.
  • Классы Java должны иметь аннотации JAXB, которые будут использоваться этим плагином.
  • Минимальная требуемая версия java-Java 5

Сначала создайте новый проект maven, вы можете указать любое имя, идентификатор группы и идентификатор, который вы хотите. Как только мы построим наш проект, он создаст классы XSD в каталоге target/generated-resources/schemagen .

После сборки структура нашего проекта будет выглядеть так, как показано на рисунке ниже.

Вот и финал pom.xml файл, который у нас есть:


	4.0.0
	jaxb-schemagen
	jaxb-schemagen
	0.0.1-SNAPSHOT
	
		
			javax.xml.bind
			jaxb-api
			2.1
		
	

	
		
			
				
					org.apache.maven.plugins
					maven-compiler-plugin
					2.5.1
				
			
		

		
			
				org.codehaus.mojo
				jaxb2-maven-plugin
				1.5
				
					
						schemagen
						
							schemagen
						
					
				

				
					
						
							https://www.example.org/employee
							empns
							employee.xsd
						
						
							https://www.example.org/address
							addrns
							address.xsd
						
					
					
						com/journaldev/bean/*
					
					true

				
			
		
	

Несколько вещей, на которые следует обратить внимание, – это jaxb зависимость, схема цель выполнения и схема преобразования конфигурация. Конфигурация transformSchema используется для указания сгенерированного имени файла XSD и префикса пространства имен, которые будут использоваться в XSD

Вот классы java, которые у нас есть, которые будут использоваться для создания XSD.

Вот классы java, которые у нас есть, которые будут использоваться для создания XSD.

package com.journaldev.bean;


import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlType;

@XmlType(namespace = "https://www.example.org/employee")
public class Employee {
    private String name;
    private int id;
    private String role;
    private Address address;


    public String getName() {
        return name;
    }


    public void setName(String name) {
        this.name = name;
    }


    @XmlAttribute
    public int getId() {
        return id;
    }


    public void setId(int id) {
        this.id = id;
    }


    public String getRole() {
        return role;
    }


    public void setRole(String role) {
        this.role = role;
    }


    public Address getAddress() {
        return address;
    }


    public void setAddress(Address address) {
        this.address = address;
    }
}

Обратите внимание на аннотацию XMLType с пространством имен, используемым для класса, и атрибут Xml для идентификатора поля. Этот класс создаст схему employee.xsd , как только мы построим проект.

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

Вот класс адресов с аннотациями jaxb.

Вот класс адресов с аннотациями jaxb.

package com.journaldev.bean;

import javax.xml.bind.annotation.XmlType;

@XmlType(namespace = "https://www.example.org/address")
public class Address {
    private String city;
    private int zip;
    private String addressLine1;
    private String addressLine2;
    public String getCity() {
        return city;
    }
    public void setCity(String city) {
        this.city = city;
    }
    public int getZip() {
        return zip;
    }
    public void setZip(int zip) {
        this.zip = zip;
    }
    public String getAddressLine1() {
        return addressLine1;
    }
    public void setAddressLine1(String addressLine1) {
        this.addressLine1 = addressLine1;
    }
    public String getAddressLine2() {
        return addressLine2;
    }
    public void setAddressLine2(String addressLine2) {
        this.addressLine2 = addressLine2;
    }
    
}

Этот класс будет генерировать address.xsd, потому что его имя совпадает в transformSchema в pom.xml файл.

Наша настройка проекта готова, просто создайте проект с помощью команды mvn clean install , и XSD-файлы будут сгенерированы. Для моего проекта сгенерированные XSD-файлы выглядят следующим образом.

Наша настройка проекта готова, просто создайте проект с помощью команды || mvn clean install||, и XSD-файлы будут сгенерированы. Для моего проекта сгенерированные XSD-файлы выглядят следующим образом.




  

  
    
      
      
      
    
    
  

Наша настройка проекта готова, просто создайте проект с помощью команды || mvn clean install||, и XSD-файлы будут сгенерированы. Для моего проекта сгенерированные XSD-файлы выглядят следующим образом.




  
    
      
      
      
      
    
  

Это все для генерации XSD из класса java. Это очень простой и отличный способ для java-класса для генерации XSD. Я надеюсь, что вы найдете это полезным и легким для понимания.