Xsd generator from java

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

В последних нескольких постах мы узнали о 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

Читайте также:  Php как вывести group by

Вот классы 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. Я надеюсь, что вы найдете это полезным и легким для понимания.

Источник

How to generate XSD from Java Class

How to generate XSD from Java Class

While we believe that this content benefits our community, we have not yet thoroughly reviewed it. If you have any suggestions for improvements, please let us know by clicking the “report an issue“ button at the bottom of the tutorial.

In last few posts, we learned about Java JAXB and how to generate java class from XSD. Today we will learn how to generate XSD from java classes.

Generate XSD from Java Class

generate xsd from java, xsd generator, java class to xsd

We will use JAXB-2 Maven Plugin in a maven project to generate XSD from java classes.

  • JAXB2 Maven Plugin uses JAXB SchemaGenerator utility to generate XSD from java classes.
  • Java classes should have JAXB annotations to be used by this plugin.
  • Minimum java version required is Java 5

generate xsd from java class example

First create a new maven project, you can give any name, group id and artifact id you want. Once we will build our project, it will generate XSD classes in target/generated-resources/schemagen directory. After build, our project structure will look like below image. Here is the final pom.xml file we have:

 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      

Few things to notice are jaxb dependency, schemagen execution goal and transformSchema configuration. transformSchema configuration is used to specify the XSD file name generated and namespace prefix to be used in the XSD file. Here are the java classes we have that will be used to generate XSD. Employee.java

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; >> 

Notice the XmlType annotation with namespace used for the class and XmlAttribute for the field id. This class will generate employee.xsd schema once we build the project. As you can see that it has a field Address that is another custom class, so we need to annotate this class also for successful schema generation. Here is the address class with jaxb annotations. Address.java

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; >> 

This class will generate address.xsd because it’s name is matched in transformSchema in pom.xml file. Our project setup is ready, just build the project using command mvn clean install and the XSD files will be generated. For my project, generated XSD files are as below. employee.xsd

That’s all for generating XSD from java class. It’s very simple and great way for java class to XSD generation. I hope you will find it useful and easy to understand.

Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.

Источник

Saved searches

Use saved searches to filter your results more quickly

You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.

Java cli tool for generating XSD from an XML

License

wiztools/xsd-gen

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Sign In Required

Please sign in to use Codespaces.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching Xcode

If nothing happens, download Xcode and try again.

Launching Visual Studio Code

Your codespace will open once ready.

There was a problem preparing your codespace, please try again.

Latest commit

Git stats

Files

Failed to load latest commit information.

README.md

Command-line tool written in Java for generating XSD from an XML. Can also be used as a library within your application.

Mac users can install via homebrew:

brew tap wiztools/repo brew install xsd-gen 

Once installed, xsd-gen is available in PATH .

$ java -jar xsd-gen-fat-VERSION.jar /path/to/xml.xml > /path/to/my.xsd 

To view additional command-line options:

$ java -jar xsd-gen-fat-VERSION.jar -h 

Latest versions of the library are available in the jitpack repository.

import org.wiztools.xsdgen.XsdGen; import java.io.File; import java.io.FileOutputStream; . XsdGen gen = new XsdGen(); gen.parse(new File("in.xml")); File out = new File("out.xsd"); gen.write(new FileOutputStream(out));

About

Java cli tool for generating XSD from an XML

Источник

How to generate xml schema xsd from java class using jaxb in eclipse

Let us discuss how to generate or create xml schema xsd from java class using jaxb in eclipse with below example.

Steps:

jaxb1

1. Create a new JAXB project. File -> New -> Other -> JAXB -> JAXB Project.

jaxb2

2. Enter the project name and click on Finish button.

jaxb11

3. Download JAXB Jar and JAXB-XJC jar files and include in class path.

jaxb3

4. Create package which will contain xsd file.

jaxb4

5. Create package which will contain java classes.

jaxb12

6. Create a java class. Here we are using the java classes generated from previous example.

jaxb13

7. Right click on your package -> New -> Other -> JAXB -> Schema from JAXB Classes and click on Next.

jaxb14

8. Specify file name and location for new xsd file and click on Next.

jaxb15

9. Select java classes from which schema have to generated and click on Finish.

On Console:

loading. com.w3spoint.javaclass.Address com.w3spoint.javaclass.ObjectFactory com.w3spoint.javaclass.Student generating schema. Schema D:\TestWorkspace\JAXBXSDTest2\src\com\w3spoint\xsd\test1.xsd generated

loading. com.w3spoint.javaclass.Address com.w3spoint.javaclass.ObjectFactory com.w3spoint.javaclass.Student generating schema. Schema D:\TestWorkspace\JAXBXSDTest2\src\com\w3spoint\xsd\test1.xsd generated

Источник

Оцените статью