-
Notifications
You must be signed in to change notification settings - Fork 16
Usage IS24 XML
The class org.openestate.io.is24_xml.Is24XmlUtils
provides a static
createDocument()
function to read XML data in IS24-XML format from a
java.io.File
, java.io.InputStream
, java.lang.String
or
org.w3c.dom.Document
into a org.openestate.io.is24_xml.Is24XmlDocument
.
import java.io.File;
import javax.xml.bind.JAXBElement;
import org.apache.commons.lang3.StringUtils;
import org.openestate.io.is24_xml.Is24XmlDocument;
import org.openestate.io.is24_xml.Is24XmlUtils;
import org.openestate.io.is24_xml.xml.ImmobilieBaseTyp;
import org.openestate.io.is24_xml.xml.ImmobilienTransferTyp;
import org.openestate.io.is24_xml.xml.VirtuelleImmobilieBaseTyp;
public static void main( String[] args )
{
if (args.length<1)
{
System.err.println( "No file was specified!" );
System.exit( 1 );
}
// read file into a Is24XmlDocument
Is24XmlDocument doc = Is24XmlUtils.createDocument( new File( args[0] ) );
// convert Is24XmlDocument into a Java object
ImmobilienTransferTyp transfer = doc.toObject();
// now we can access the XML content through ordinary Java objects
if (transfer.getAnbieter()!=null)
{
// process objects
for (JAXBElement<? extends ImmobilieBaseTyp> i : transfer.getAnbieter().getImmobilie())
{
ImmobilieBaseTyp obj = i.getValue();
// get object nr
String objectNr = (!StringUtils.isBlank( obj.getAnbieterObjektID() ))?
obj.getAnbieterObjektID().trim(): "???";
// get object title
String objectTitle = (!StringUtils.isBlank( obj.getUeberschrift()))?
obj.getUeberschrift().trim(): "???";
// print object informations to console
System.out.println( "> found object '" + objectNr + "' "
+ "with title '" + objectTitle + "'" );
}
// process virtual objects
for (JAXBElement<? extends VirtuelleImmobilieBaseTyp> i : transfer.getAnbieter().getVirtuelleImmobilie())
{
VirtuelleImmobilieBaseTyp obj = i.getValue();
// get object nr
String objectNr = (!StringUtils.isBlank( obj.getAnbieterObjektID() ))?
obj.getAnbieterObjektID().trim(): "???";
// get object title
String objectTitle = (!StringUtils.isBlank( obj.getUeberschrift()))?
obj.getUeberschrift().trim(): "???";
// print object informations to console
System.out.println( "> found virtual object '" + objectNr + "' "
+ "with title '" + objectTitle + "'" );
}
}
}
See a full example at Is24XmlReadingExample.java
.
The class org.openestate.io.is24_xml.xml.ImmobilienTransferTyp
is equivalent
to a <IS24ImmobilienTransfer>
root element in a IS24-XML document. For
example the following code creates a IS24-XML document programmatically:
import java.net.MalformedURLException;
import java.net.URL;
import org.apache.commons.lang3.RandomStringUtils;
import org.apache.commons.lang3.RandomUtils;
import org.apache.commons.lang3.StringUtils;
import org.openestate.io.is24_xml.Is24XmlDocument;
import org.openestate.io.is24_xml.Is24XmlUtils;
import org.openestate.io.is24_xml.xml.AktionsTyp;
import org.openestate.io.is24_xml.xml.AusstattungsqualitaetsTyp;
import org.openestate.io.is24_xml.xml.BauphaseTyp;
import org.openestate.io.is24_xml.xml.EnergieausweistypTyp;
import org.openestate.io.is24_xml.xml.GenehmigungTyp;
import org.openestate.io.is24_xml.xml.HausKategorienTyp;
import org.openestate.io.is24_xml.xml.HausKauf;
import org.openestate.io.is24_xml.xml.HausMiete;
import org.openestate.io.is24_xml.xml.HeizungsartTyp;
import org.openestate.io.is24_xml.xml.ISOLaenderCodeTyp;
import org.openestate.io.is24_xml.xml.ImmobilieBaseTyp;
import org.openestate.io.is24_xml.xml.ImmobilienTransferTyp;
import org.openestate.io.is24_xml.xml.ImmobilienTransferTyp.Anbieter;
import org.openestate.io.is24_xml.xml.ObjektZustandTyp;
import org.openestate.io.is24_xml.xml.StatusTyp;
import org.openestate.io.is24_xml.xml.StellplatzKategorieTyp;
import org.openestate.io.is24_xml.xml.WaehrungTyp;
public static void main( String[] args )
{
// create a ImmobilienTransferTyp object with some example data
// this object corresponds to the <IS24ImmobilienTransfer> root element in XML
ImmobilienTransferTyp transfer = Is24XmlUtils.getFactory().createImmobilienTransferTyp();
transfer.setEmailBeiFehler( "[email protected]" );
transfer.setErstellerSoftware( "OpenEstate-IO" );
transfer.setErstellerSoftwareVersion( "1.2" );
transfer.setAnbieter( createAnbieter() );
// now make something useful with the object
}
protected static Anbieter createAnbieter()
{
// create an example agency
Anbieter anbieter = Is24XmlUtils.getFactory().createImmobilienTransferTypAnbieter();
anbieter.setScoutKundenID( "123456" );
// add some real estates to the agency
anbieter.getImmobilie().add( createImmobilieHausKauf() );
anbieter.getImmobilie().add( createImmobilieHausKauf() );
anbieter.getImmobilie().add( createImmobilieHausMiete() );
anbieter.getImmobilie().add( createImmobilieHausMiete() );
return anbieter;
}
protected static HausKauf createImmobilieHausKauf()
{
// create an example real estate
HausKauf.Type obj = Is24XmlUtils.getFactory().createHausKaufType();
initImmobilie( obj );
obj.setAlsFerienwohnungGeeignet( RandomUtils.nextInt( 0, 2 )==1 );
obj.setAnzahlBadezimmer( RandomUtils.nextLong( 1, 5 ) );
obj.setAnzahlGaragenStellplaetze( RandomUtils.nextLong( 0, 3 ) );
obj.setAnzahlSchlafzimmer( RandomUtils.nextLong( 1, 5 ) );
obj.setAusstattungsqualitaet( AusstattungsqualitaetsTyp.LUXUS );
obj.setBarrierefrei( RandomUtils.nextInt( 0, 2 )==1 );
obj.setBaujahr( RandomUtils.nextLong( 1900, 2010 ) );
obj.setBauphase( BauphaseTyp.HAUS_FERTIG_GESTELLT );
obj.setDenkmalschutzobjekt( RandomUtils.nextInt( 0, 2 )==1 );
obj.setEtagenzahl( RandomUtils.nextLong( 1, 10 ) );
obj.setFreiAb( "notes about availability" );
obj.setGaesteWC( RandomUtils.nextInt( 0, 2 )==1);
obj.setGrundstuecksFlaeche( RandomUtils.nextDouble( 100, 1500 ) );
obj.setHausKategorie( HausKategorienTyp.MEHRFAMILIENHAUS );
obj.setHeizungsart( HeizungsartTyp.ETAGENHEIZUNG );
obj.setJahrLetzteModernisierung( RandomUtils.nextLong( 1980, 2000 ) );
obj.setKeller( RandomUtils.nextInt( 0, 2 )==1 );
obj.setMitEinliegerwohnung( RandomUtils.nextInt( 0, 2 )==1 );
obj.setNutzflaeche( RandomUtils.nextDouble( 100, 1000 ) );
obj.setObjektzustand( ObjektZustandTyp.NEUWERTIG );
obj.setParkplatz( StellplatzKategorieTyp.TIEFGARAGE );
obj.setRollstuhlgerecht( RandomUtils.nextInt( 0, 2 )==1 );
obj.setVermietet( RandomUtils.nextInt( 0, 2 )==1 );
obj.setWohnflaeche( RandomUtils.nextDouble( 50, 500 ) );
obj.setZimmer( RandomUtils.nextDouble( 1, 10 ) );
obj.setBefeuerungsArt( Is24XmlUtils.getFactory().createBefeuerungsArtTyp() );
obj.getBefeuerungsArt().setOel( Is24XmlUtils.getFactory().createBefeuerungsArtTypOel( Boolean.TRUE ) );
obj.getBefeuerungsArt().setGas( Is24XmlUtils.getFactory().createBefeuerungsArtTypGas( Boolean.TRUE ) );
obj.setEnergieausweis( Is24XmlUtils.getFactory().createEnergieausweisTyp() );
obj.getEnergieausweis().setEnergieausweistyp( EnergieausweistypTyp.ENERGIEVERBRAUCHSKENNWERT );
obj.getEnergieausweis().setEnergieverbrauchskennwert( RandomUtils.nextDouble( 50, 500 ) );
obj.getEnergieausweis().setWarmwasserEnthalten( RandomUtils.nextInt( 0, 2 )==1 );
obj.setKaufpreise( Is24XmlUtils.getFactory().createVermarktungWohnKaufTyp() );
obj.getKaufpreise().setKaufpreis( RandomUtils.nextDouble( 100000, 9999999 ) );
obj.getKaufpreise().setMieteinnahmenProMonat( RandomUtils.nextDouble( 5000, 50000 ) );
obj.getKaufpreise().setStellplatzKaufpreis( RandomUtils.nextDouble( 1000, 10000 ) );
obj.getKaufpreise().setWohngeld( RandomUtils.nextDouble( 500, 5000 ) );
return Is24XmlUtils.getFactory().createHausKauf( obj );
}
protected static HausMiete createImmobilieHausMiete()
{
// create an example real estate
HausMiete.Type obj = Is24XmlUtils.getFactory().createHausMieteType();
initImmobilie( obj );
obj.setAnzahlBadezimmer( RandomUtils.nextLong( 1, 5 ) );
obj.setAnzahlGaragenStellplaetze( RandomUtils.nextLong( 0, 3 ) );
obj.setAnzahlSchlafzimmer( RandomUtils.nextLong( 1, 5 ) );
obj.setAusstattungsqualitaet( AusstattungsqualitaetsTyp.GEHOBEN );
obj.setBarrierefrei( RandomUtils.nextInt( 0, 2 )==1 );
obj.setBaujahr( RandomUtils.nextLong( 1900, 2010 ) );
obj.setBetreutesWohnen( RandomUtils.nextInt( 0, 2 )==1 );
obj.setEinbaukueche( RandomUtils.nextInt( 0, 2 )==1);
obj.setEtagenzahl( RandomUtils.nextLong( 1, 10 ) );
obj.setFreiAb( "notes about availability" );
obj.setGaesteWC( RandomUtils.nextInt( 0, 2 )==1);
obj.setGrundstuecksFlaeche( RandomUtils.nextDouble( 100, 1500 ) );
obj.setHausKategorie( HausKategorienTyp.EINFAMILIENHAUS );
obj.setHaustiere( GenehmigungTyp.NACH_VEREINBARUNG );
obj.setHeizungsart( HeizungsartTyp.ZENTRALHEIZUNG );
obj.setJahrLetzteModernisierung( RandomUtils.nextLong( 1980, 2000 ) );
obj.setKeller( RandomUtils.nextInt( 0, 2 )==1 );
obj.setNutzflaeche( RandomUtils.nextDouble( 150, 500 ) );
obj.setObjektzustand( ObjektZustandTyp.GEPFLEGT );
obj.setParkplatz( StellplatzKategorieTyp.CARPORT );
obj.setRollstuhlgerecht( RandomUtils.nextInt( 0, 2 )==1 );
obj.setWohnflaeche( RandomUtils.nextDouble( 50, 300 ) );
obj.setZimmer( RandomUtils.nextDouble( 1, 5 ) );
obj.setBefeuerungsArt( Is24XmlUtils.getFactory().createBefeuerungsArtTyp() );
obj.getBefeuerungsArt().setErdwaerme( Is24XmlUtils.getFactory().createBefeuerungsArtTypErdwaerme( Boolean.TRUE ) );
obj.getBefeuerungsArt().setPelletheizung( Is24XmlUtils.getFactory().createBefeuerungsArtTypPelletheizung( Boolean.TRUE ) );
obj.setEnergieausweis( Is24XmlUtils.getFactory().createEnergieausweisTyp() );
obj.getEnergieausweis().setEnergieausweistyp( EnergieausweistypTyp.ENERGIEVERBRAUCHSKENNWERT );
obj.getEnergieausweis().setEnergieverbrauchskennwert( RandomUtils.nextDouble( 50, 500 ) );
obj.getEnergieausweis().setWarmwasserEnthalten( RandomUtils.nextInt( 0, 2 )==1 );
obj.setMietpreise( Is24XmlUtils.getFactory().createVermarktungWohnMieteTyp() );
obj.getMietpreise().setHeizkosten( RandomUtils.nextDouble( 100, 500 ) );
obj.getMietpreise().setHeizkostenInWarmmieteEnthalten( RandomUtils.nextInt( 0, 2 )==1 );
obj.getMietpreise().setKaltmiete( RandomUtils.nextDouble( 150, 1500 ) );
obj.getMietpreise().setKaution( "notes about deposit" );
obj.getMietpreise().setNebenkosten( RandomUtils.nextDouble( 50, 500 ) );
obj.getMietpreise().setStellplatzMiete( RandomUtils.nextDouble( 50, 500 ) );
obj.getMietpreise().setWarmmiete( RandomUtils.nextDouble( 250, 2500 ) );
return Is24XmlUtils.getFactory().createHausMiete( obj );
}
protected static void initImmobilie( ImmobilieBaseTyp immobilie )
{
immobilie.setAdressdruck( RandomUtils.nextInt( 0, 2 )==1 );
immobilie.setAktiveGruppen( "active groups" );
immobilie.setAnbieterObjektID( "123" );
immobilie.setAusstattung( "notes about features" );
immobilie.setGruppierungsID( RandomUtils.nextLong( 1, 9999 ) );
immobilie.setImportmodus( AktionsTyp.AKTUALISIEREN );
immobilie.setLage( "notes about location" );
immobilie.setObjektbeschreibung( "notes about the property" );
immobilie.setProvision( "commission" );
immobilie.setProvisionshinweis( "notes about commission" );
immobilie.setProvisionspflichtig( RandomUtils.nextInt( 0, 2 )==1 );
immobilie.setScoutObjektID( 456L );
immobilie.setSonstigeAngaben( "further notes" );
immobilie.setStatusHP( StatusTyp.AKTIV );
immobilie.setStatusIS24( StatusTyp.AKTIV );
immobilie.setStatusVBM( StatusTyp.INAKTIV );
immobilie.setUeberschrift( "title of the property" );
immobilie.setWaehrung( WaehrungTyp.EUR );
immobilie.setAdresse( Is24XmlUtils.getFactory().createImmobilienAdresseTyp() );
immobilie.getAdresse().setHausnummer( "1" );
immobilie.getAdresse().setInternationaleRegion( "Berlin" );
immobilie.getAdresse().setLaenderkennzeichen( ISOLaenderCodeTyp.DEU );
immobilie.getAdresse().setOrt( "Berlin" );
immobilie.getAdresse().setPostleitzahl( "12345" );
immobilie.getAdresse().setStrasse( "name of the street" );
immobilie.setApiSuchfelder( Is24XmlUtils.getFactory().createImmobilieBaseTypApiSuchfelder( Is24XmlUtils.getFactory().createApiSuchfelderTyp() ) );
immobilie.getApiSuchfelder().getValue().setApiSuchfeld1( Is24XmlUtils.getFactory().createApiSuchfelderTypApiSuchfeld1( "value1" ) );
immobilie.getApiSuchfelder().getValue().setApiSuchfeld2( Is24XmlUtils.getFactory().createApiSuchfelderTypApiSuchfeld2( "value2" ) );
immobilie.getApiSuchfelder().getValue().setApiSuchfeld3( Is24XmlUtils.getFactory().createApiSuchfelderTypApiSuchfeld3( "value3" ) );
immobilie.setKontaktperson( Is24XmlUtils.getFactory().createKontaktAdresseTyp() );
immobilie.getKontaktperson().setAnrede( "addressing" );
immobilie.getKontaktperson().setEMail( "[email protected]" );
immobilie.getKontaktperson().setHausnummer( "1" );
immobilie.getKontaktperson().setLaenderkennzeichen( ISOLaenderCodeTyp.DEU );
immobilie.getKontaktperson().setMobiltelefon( "030/123456" );
immobilie.getKontaktperson().setNachname( "Mustermann" );
immobilie.getKontaktperson().setOrt( "Berlin" );
immobilie.getKontaktperson().setPostleitzahl( "13125" );
immobilie.getKontaktperson().setStrasse( "name of the street" );
immobilie.getKontaktperson().setTelefax( "030/123457" );
immobilie.getKontaktperson().setTelefon( "030/123458" );
immobilie.getKontaktperson().setVorname( "Max" );
try
{
immobilie.getKontaktperson().setHomepage( new URL( "http://mywebsite.com" ) );
}
catch (MalformedURLException ex)
{}
immobilie.setManuelleGeoCodierung( Is24XmlUtils.getFactory().createManuellGeoCodingTyp() );
immobilie.getManuelleGeoCodierung().setTermsRegion( "name of region" );
immobilie.getManuelleGeoCodierung().setTermsStadt( "name of city" );
immobilie.getManuelleGeoCodierung().setTermsStadtTeil( "name of district" );
}
See a full example at Is24XmlWritingExample.java
.
After a org.openestate.io.is24_xml.xml.ImmobilienTransferTyp
object was
created, it can be converted into a org.openestate.io.is24_xml.Is24XmlDocument
with the static newDocument()
function.
The class org.openestate.io.is24_xml.Is24XmlDocument
provides a toXml()
function, that finally writes the contents of the ImmobilienTransferTyp
object
as XML into a java.io.File
, java.io.OutputStream
or java.io.Writer
.
import java.io.File;
import org.openestate.io.is24_xml.Is24XmlDocument;
import org.openestate.io.is24_xml.xml.ImmobilienTransferTyp;
protected static void write( ImmobilienTransferTyp transfer, File file )
{
try
{
Is24XmlDocument doc = Is24XmlDocument.newDocument( transfer );
doc.toXml( file );
}
catch (Exception ex)
{
System.err.println( "Can't write document into a file!" );
System.err.println( "> " + ex.getLocalizedMessage(), ex );
System.exit( 1 );
}
}
See a full example at Is24XmlWritingExample.java
.