Mam problem ze zrozumieniem poniższej schemy faktury i przemapowaniem na klasy:
http://crd.gov.pl/wzor/2021/11/29/11089/schemat.xsd
Do generowania klas używam: jaxb2-maven-plugin Tworzenie klas ruszyło dopiero po włączeniu przełącznika: -XautoNameResolution, ponieważ powtarzają się nazwy, chociażby: TAdres. Niestety w ten sposób powstają klasy TAdres, TAdres1, TAdres2, które odpowiadają, ale mają inne nazwy niż opis w dokumentacji:
-
Informacje opisujące adres
-
Dane określające adres
-
Dane określające adres - bez elementu Poczta w adresie polskim
Użyłem też generatora zaszytego w Java8:
xjc -d generated http://crd.gov.pl/wzor/2021/11/29/11089/schemat.xsd
W ten sposób wygenerowały się klasy TAdres i TAdres1. Powstał też pakiet "wzor", w którym znalazła się klasa TAdres przedstawiajaca "Informacje opisujące adres". poglądowa lista katalogów i plików:
**CRD/**
**WZÓR/**
*Faktura.java
TAdres.java
TAdresPolski.java
TAdresZagraniczny.java
TGTU.java
TKluczWartosc.java
TKodFormularza.java
TKodWaluty.java
TKodyKrajowUE.java
TNaglowek.java
TOznaczenieProcedury.java
TOznaczenieProceduryZ.java
TPodmiot.java
TPodmiot1.java
TRachunekBankowy.java
TRodzajFaktury.java*
**XML/**
*TAdres.java
TAdres1.java
TAdresPolski.java
TAdresPolski1.java
TAdresZagraniczny.java
TIdentyfikatorOsobyFizycznej.java
TIdentyfikatorOsobyFizycznej1.java
TIdentyfikatorOsobyFizycznej2.java
TIdentyfikatorOsobyFizycznejPelny.java
TIdentyfikatorOsobyFizycznejZagranicznej.java
TIdentyfikatorOsobyNiefizycznej.java
TIdentyfikatorOsobyNiefizycznej1.java
TIdentyfikatorOsobyNiefizycznejPelny.java
TIdentyfikatorOsobyNiefizycznejZagranicznej.java
TKodKraju.java
TOsobaFizyczna.java
TOsobaFizyczna1.java
TOsobaFizyczna2.java
TOsobaFizyczna3.java
TOsobaFizyczna4.java
TOsobaFizyczna5.java
TOsobaFizycznaPelna.java
TOsobaFizycznaPelna1.java
TOsobaNiefizyczna.java
TOsobaNiefizyczna1.java
TOsobaNiefizyczna2.java
TOsobaNiefizycznaPelna.java
TOsobaNiefizycznaPelna1.java
TPodmiotDowolny.java
TPodmiotDowolny1.java
TPodmiotDowolny2.java
TPodmiotDowolnyBezAdresu.java
TPodmiotDowolnyBezAdresu1.java
TPodmiotDowolnyBezAdresu2.java
TPodmiotDowolnyBezAdresu3.java
TPodmiotDowolnyPelny.java
TPodmiotDowolnyPelny1.java*
Jak to rozumieć? Które klasy powinny być wykorzystywane?
Zgłupiałem
Edycja 2022/06/28 15:38:
Myślę, że komuś się to przyda.
Najprościej do generowania użyć poniższego wywołania, oczywiście najpierw należy utworzyć katalog, do którego polecą generowane klasy:
C:\Program Files\Java\jdk1.8.0_202\bin>xjc -encoding UTF-8 -d generated http://crd.gov.pl/wzor/2021/11/29/11089/schemat.xsd
Lub:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>jaxb2-maven-plugin</artifactId>
<version>2.5.0</version>
<executions>
<execution>
<id>xjc</id>
<goals>
<goal>xjc</goal>
</goals>
</execution>
</executions>
<configuration>
<xjbSources>
<xjbSource>src/main/xsd/bindings.xjb</xjbSource>
</xjbSources>
<sources>
<source>src/main/xsd/schemat.xsd</source>
</sources>
</configuration>
</plugin>
i binding:
<?xml version="1.0" encoding="UTF-8"?>
<jxb:bindings xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
version="2.0">
<jxb:bindings scd="x-schema::tns" xmlns:tns="http://crd.gov.pl/wzor/2021/11/29/11089/">
<jxb:schemaBindings>
<jxb:package name="pl.gov.mf.ksef.invoice.wzor2"/>
</jxb:schemaBindings>
</jxb:bindings>
<jxb:bindings scd="x-schema::tns" xmlns:tns="http://crd.gov.pl/xml/schematy/dziedzinowe/mf/2021/06/09/eD/DefinicjeTypy/">
<jxb:schemaBindings>
<jxb:package name="pl.gov.mf.ksef.invoice.xml2"/>
</jxb:schemaBindings>
</jxb:bindings>
</jxb:bindings>