From 2c3c1d6bb748a0655a83fdf4cd26135042d898b9 Mon Sep 17 00:00:00 2001 From: Thomas Lenz Date: Fri, 19 Jul 2019 10:35:29 +0200 Subject: USP client integration switch to v2.0.7 --- generatesources.bat | 2 +- pom.xml | 16 +- src/main/java/at/gv/util/LoggingHandler.java | 41 +- .../at/gv/util/client/mis/usp_v2/USPClient.java | 171 +- .../util/client/mis/usp_v2/USPClientException.java | 14 +- .../mis/usp_v2/VDDSRoleGenerationStrategy.java | 83 + .../util/client/szr/IRoleGenerationStrategy.java | 15 + .../gv/util/client/szr/PVP2XHTTPHeaderHandler.java | 188 + src/main/java/at/gv/util/client/szr/SZRClient.java | 4 +- .../gv/util/client/szr/SZRHTTPHeaderHandler.java | 138 - .../at/gv/util/config/EgovUtilConfiguration.java | 3 + .../config/EgovUtilPropertiesConfiguration.java | 15 +- .../util/wsdl/mis/usp_v2/CreateMandateFault.java | 2 +- .../wsdl/mis/usp_v2/CreateMandateStateFault.java | 2 +- .../at/gv/util/wsdl/mis/usp_v2/ISyncService.java | 2 +- .../gv/util/wsdl/mis/usp_v2/ListMandatesFault.java | 2 +- .../mis/usp_v2/RequestModificationTokenFault.java | 2 +- .../usp_v2/SynchronisationServiceServiceagent.java | 2 +- .../wsdl/mis/usp_v2/TerminateMandateFault.java | 2 +- .../mis/usp_v2/TerminateMandateStateFault.java | 2 +- .../xsd/mis/usp_v2/eai/syncmsgs/FilterType.java | 30 +- .../usp_v2/eai/syncmsgs/ListMandatesRequest.java | 6 +- .../eai/syncmsgs/ListMandatesResponseType.java | 4 +- .../MandateAttributesSearchFilterType.java | 51 +- .../eai/syncmsgs/MandateIDSearchFilterType.java | 31 +- .../xsd/mis/usp_v2/eai/syncmsgs/ObjectFactory.java | 90 + .../mis/usp_v2/eai/syncmsgs/PaginationFilter.java | 31 +- .../mis/usp_v2/eai/syncmsgs/PaginationType.java | 43 + .../eai/syncmsgs/SearchCriteriaTestType.java | 62 + .../usp_v2/eai/syncmsgs/SearchCriteriaType.java | 97 + .../xsd/mis/usp_v2/mandates/PropertiesType.java | 2 +- .../usp_v2/mandates/SimpleMandateContentType.java | 12 +- .../persondata/CompactCorporateBodyType.java | 2 +- .../usp_v2/persondata/CompactPersonDataType.java | 18 +- .../persondata/CompactPhysicalPersonType.java | 2 +- .../mis/usp_v2/persondata/CorporateBodyType.java | 2 +- .../mis/usp_v2/persondata/IdentificationType.java | 2 +- .../mis/usp_v2/persondata/InternetAddressType.java | 2 +- .../xsd/mis/usp_v2/persondata/NationalityType.java | 12 +- .../xsd/mis/usp_v2/persondata/PersonDataType.java | 18 +- .../mis/usp_v2/persondata/PhysicalPersonType.java | 2 +- .../usp_v2/persondata/TelephoneAddressType.java | 2 +- .../usp_v2/persondata/TypedPostalAddressType.java | 2 +- .../xsd/mis/usp_v2/xmldsig/DigestMethodType.java | 2 +- .../util/xsd/mis/usp_v2/xmldsig/KeyInfoType.java | 20 +- .../util/xsd/mis/usp_v2/xmldsig/KeyValueType.java | 10 +- .../gv/util/xsd/mis/usp_v2/xmldsig/ObjectType.java | 2 +- .../util/xsd/mis/usp_v2/xmldsig/PGPDataType.java | 4 +- .../util/xsd/mis/usp_v2/xmldsig/SPKIDataType.java | 2 +- .../mis/usp_v2/xmldsig/SignatureMethodType.java | 2 +- .../mis/usp_v2/xmldsig/SignaturePropertyType.java | 2 +- .../util/xsd/mis/usp_v2/xmldsig/TransformType.java | 4 +- .../util/xsd/mis/usp_v2/xmldsig/X509DataType.java | 10 +- .../wsdl/custom-bindings/mis-usp_v2-wsdl.xml | 3 +- .../wsdl/mis/usp_v2/Synchronisation-1.wsdl | 5123 ++++++++++---------- .../wsdl/mis/usp_v2/Synchronisation-1_backup.wsdl | 2632 ++++++++++ .../resources/wsdl/mis/usp_v2/Synchronisation.wsdl | 2627 ++++++++++ src/test/java/at/gv/util/demo/Clienttests.java | 247 +- src/test/java/at/gv/util/demo/ZuseSSLTest.java | 136 + 59 files changed, 9063 insertions(+), 2992 deletions(-) create mode 100644 src/main/java/at/gv/util/client/mis/usp_v2/VDDSRoleGenerationStrategy.java create mode 100644 src/main/java/at/gv/util/client/szr/IRoleGenerationStrategy.java create mode 100644 src/main/java/at/gv/util/client/szr/PVP2XHTTPHeaderHandler.java delete mode 100644 src/main/java/at/gv/util/client/szr/SZRHTTPHeaderHandler.java create mode 100644 src/main/java/at/gv/util/xsd/mis/usp_v2/eai/syncmsgs/PaginationType.java create mode 100644 src/main/java/at/gv/util/xsd/mis/usp_v2/eai/syncmsgs/SearchCriteriaTestType.java create mode 100644 src/main/java/at/gv/util/xsd/mis/usp_v2/eai/syncmsgs/SearchCriteriaType.java create mode 100644 src/main/resources/wsdl/mis/usp_v2/Synchronisation-1_backup.wsdl create mode 100644 src/main/resources/wsdl/mis/usp_v2/Synchronisation.wsdl create mode 100644 src/test/java/at/gv/util/demo/ZuseSSLTest.java diff --git a/generatesources.bat b/generatesources.bat index df2785c..f2164ce 100644 --- a/generatesources.bat +++ b/generatesources.bat @@ -39,4 +39,4 @@ REM "%APACHE_CXF%\bin\wsdl2java.bat" -b ./src/main/resources/wsdl/custom-binding REM "%APACHE_CXF%\bin\wsdl2java.bat" -b ./src/main/resources/wsdl/custom-bindings/szr-wsdl.xml -b ./src/main/resources/wsdl/custom-bindings/szr-schemas.xml -b ./src/main/resources/wsdl/szr/szr_pvp.xsd -b ./src/main/resources/wsdl/szr/szr_pvp_sec.xsd -encoding utf-8 -d ./wsdlsources ./src/main/resources/wsdl/szr/SZR_v2.0.wsdl -"%APACHE_CXF%\bin\wsdl2java.bat" -b ./src/main/resources/wsdl/custom-bindings/mis-usp_v2-wsdl.xml -encoding utf-8 -d ./wsdlsources ./src/main/resources/wsdl/mis/usp_v2/Synchronisation-1.wsdl \ No newline at end of file +"%APACHE_CXF%\bin\wsdl2java.bat" -b xmlbeans -b ./src/main/resources/wsdl/custom-bindings/mis-usp_v2-wsdl.xml -encoding utf-8 -d ./wsdlsources ./src/main/resources/wsdl/mis/usp_v2/Synchronisation.wsdl \ No newline at end of file diff --git a/pom.xml b/pom.xml index d17153f..9c96b76 100644 --- a/pom.xml +++ b/pom.xml @@ -5,12 +5,12 @@ 4.0.0 at.gv.util egovutils - 2.0.7-snapshot + 2.0.7 zuseutil http://maven.apache.org UTF-8 - 3.2.1 + 3.3.2 @@ -32,8 +32,8 @@ org.apache.maven.plugins maven-compiler-plugin - 1.7 - 1.7 + 1.8 + 1.8 @@ -102,11 +102,11 @@ commons-beanutils 1.9.3 - + org.slf4j slf4j-api @@ -126,7 +126,7 @@ commons-codec commons-codec - 1.11 + 1.12 commons-lang @@ -143,7 +143,7 @@ org.apache.httpcomponents httpclient - 4.5.7 + 4.5.9 diff --git a/src/main/java/at/gv/util/LoggingHandler.java b/src/main/java/at/gv/util/LoggingHandler.java index f5c63c5..f4f2685 100644 --- a/src/main/java/at/gv/util/LoggingHandler.java +++ b/src/main/java/at/gv/util/LoggingHandler.java @@ -18,6 +18,11 @@ package at.gv.util; import java.io.ByteArrayOutputStream; import java.io.OutputStreamWriter; +import java.util.Arrays; +import java.util.Base64; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; import java.util.Set; import javax.xml.namespace.QName; @@ -26,6 +31,7 @@ import javax.xml.ws.handler.MessageContext; import javax.xml.ws.handler.soap.SOAPHandler; import javax.xml.ws.handler.soap.SOAPMessageContext; +import org.apache.cxf.message.Message; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -40,11 +46,12 @@ public class LoggingHandler implements SOAPHandler { Logger log = LoggerFactory.getLogger(LoggingHandler.class); + @Override public boolean handleMessage(SOAPMessageContext context) { - SOAPMessage msg = context.getMessage(); - boolean request = ((Boolean) context + final SOAPMessage msg = context.getMessage(); + final boolean request = ((Boolean) context .get(SOAPMessageContext.MESSAGE_OUTBOUND_PROPERTY)).booleanValue(); - ByteArrayOutputStream bos = new ByteArrayOutputStream(); + final ByteArrayOutputStream bos = new ByteArrayOutputStream(); try { if (request) { @@ -53,27 +60,43 @@ public class LoggingHandler implements SOAPHandler { msg.writeTo(bos); } - OutputStreamWriter writer = new OutputStreamWriter(bos); - String encoding = writer.getEncoding(); - - + final OutputStreamWriter writer = new OutputStreamWriter(bos); + writer.getEncoding(); - log.trace(bos.toString()); + //log.trace(bos.toString()); log.trace(new String(bos.toByteArray())); + log.trace("B64: " + Base64.getEncoder().encodeToString(bos.toByteArray())); + final Map headers = (Map) context.get(Message.PROTOCOL_HEADERS); + if (headers != null) { + for (final Entry el : headers.entrySet()) { + if (el.getValue() != null) + log.trace("Header: " + el.getKey() + " | Value: " + Arrays.toString(el.getValue().toArray())); + else + log.trace("Header: " + el.getKey() + " | Value: " + "'null'"); + + } + + + } else + log.trace("No HTTP headers"); + - } catch (Exception e) { + } catch (final Exception e) { log.trace(e.getMessage(), e); } return true; } + @Override public boolean handleFault(SOAPMessageContext context) { return handleMessage(context); } + @Override public void close(MessageContext context) { } + @Override public Set getHeaders() { return null; } diff --git a/src/main/java/at/gv/util/client/mis/usp_v2/USPClient.java b/src/main/java/at/gv/util/client/mis/usp_v2/USPClient.java index 4d23a1e..7bbdef9 100644 --- a/src/main/java/at/gv/util/client/mis/usp_v2/USPClient.java +++ b/src/main/java/at/gv/util/client/mis/usp_v2/USPClient.java @@ -1,7 +1,9 @@ package at.gv.util.client.mis.usp_v2; import java.net.URL; +import java.text.SimpleDateFormat; import java.util.ArrayList; +import java.util.Date; import java.util.List; import java.util.Map; @@ -23,7 +25,7 @@ import org.slf4j.LoggerFactory; import at.gv.util.LaxHostNameVerifier; import at.gv.util.LoggingHandler; import at.gv.util.MiscUtil; -import at.gv.util.client.szr.SZRHTTPHeaderHandler; +import at.gv.util.client.szr.PVP2XHTTPHeaderHandler; import at.gv.util.config.EgovUtilConfiguration; import at.gv.util.ex.EgovUtilException; import at.gv.util.wsdl.mis.usp_v2.ISyncService; @@ -32,18 +34,31 @@ import at.gv.util.wsdl.mis.usp_v2.SynchronisationServiceServiceagent; import at.gv.util.xsd.mis.usp_v2.eai.syncmsgs.ListMandatesRequest; import at.gv.util.xsd.mis.usp_v2.eai.syncmsgs.ListMandatesResponseType; import at.gv.util.xsd.mis.usp_v2.eai.syncmsgs.MandateAttributesSearchFilterType; +import at.gv.util.xsd.mis.usp_v2.eai.syncmsgs.MandateList; +import at.gv.util.xsd.mis.usp_v2.eai.syncmsgs.MandateListType; +import at.gv.util.xsd.mis.usp_v2.eai.syncmsgs.ObjectFactory; +import at.gv.util.xsd.mis.usp_v2.eai.syncmsgs.SearchCriteriaTestType; +import at.gv.util.xsd.mis.usp_v2.eai.syncmsgs.SearchCriteriaType; +import at.gv.util.xsd.mis.usp_v2.eai.syncmsgs.TimeRangeType; +import at.gv.util.xsd.mis.usp_v2.mandates.Mandate; +import at.gv.util.xsd.mis.usp_v2.persondata.IdentificationType; +import at.gv.util.xsd.mis.usp_v2.persondata.IdentificationType.Value; import at.gv.util.xsd.szr.pvp.PvpTokenType; public class USPClient { - @Resource - WebServiceContext wsContext; + public static final String USP_DATE_PATTERN = "yyyy-MM-dd"; + + + @Resource WebServiceContext wsContext; private EgovUtilConfiguration config = null; private Logger log = LoggerFactory.getLogger(USPClient.class); private boolean logEnabled = true; private ISyncService uspSuche = null; + private SimpleDateFormat formater; + public USPClient(EgovUtilConfiguration config, boolean logEnabled) throws EgovUtilException { MiscUtil.assertNotNull(config, "config"); this.config = config; @@ -51,65 +66,100 @@ public class USPClient { initialize(); } -// public GetMandatesResponse getMandates(String bpkType, String bpkValue, List mandateFilters) { -// -// // assemble request -// GetMandatesRequest request = new GetMandatesRequest(); -// String requestId = createUSPRequestId(); -// log.debug("USP request id: " + requestId); -// request.setRequestId(requestId); -// Date date = new Date(); -// try { -// request.setTimestamp(MiscUtil.getXMLGregorianCalendar(date)); -// } catch (DatatypeConfigurationException e) { -// log.warn("Error initializing USP client.", e); -// return null; -// } -// log.debug("USP time stamp: " + date.toString()); -// request.setApplicationId(config.getUSPApplicationId()); -// log.debug("USP application id: " + config.getUSPApplicationId()); -// -// // set identification -// IdentificationType idt = new IdentificationType(); -// idt.setType(bpkType); -// idt.setValue(bpkValue); -// request.setIdentification(idt); -// -// // set filters -// if (mandateFilters != null && mandateFilters.size() > 0) { -// MandateFilters mf = new MandateFilters(); -// mf.getMandateFilter().addAll(mandateFilters); -// request.setMandateFilters(mf); -// } -// -// return this.uspSuche.getMandatesOperation(request); -// -// -// } - - public void getMandates(String bpkType, String bpkValue, List mandateFilters) { - ListMandatesRequest parameters = new ListMandatesRequest(); - - MandateAttributesSearchFilterType searchFilterType = new MandateAttributesSearchFilterType(); - - Object searchFilter = null; - searchFilterType.setFilter(searchFilter ); - - + public List getMandates(String bpkType, String bpkValue, List mandateFilters) throws Exception { - //request USP try { - log.trace("Request pre-processing finished. Requesting USP ... "); - - ListMandatesResponseType results = this.uspSuche.listMandates(parameters ); + if (mandateFilters.size() > 1) + log.debug("More than one mandate-profile required. Request each profile seperatly"); + + List results = new ArrayList(); + for (String mandateFilter : mandateFilters) { + log.trace("Building USP VDDS request ... "); + ListMandatesRequest req = generateRequest(bpkType, bpkValue, mandateFilter); - log.trace("Receive response from USP. Starting response post-processing ... "); + log.trace("Request pre-processing finished. Requesting USP ... "); + ListMandatesResponseType resp = this.uspSuche.listMandates(req ); + + log.trace("Receive response from USP for filter:" + mandateFilter + " . Start post processing ... "); + postProcessUSPMandateResult(resp, results); + + } + return results; + } catch (ListMandatesFault e) { - // TODO Auto-generated catch block - e.printStackTrace(); + log.warn("Receive an error from USP. Msg: " + e.getMessage(), e); + throw e; + + } catch (Exception e) { + log.error("Catch an generic error during USP communication.", e); + throw e; + } + + } + + private void postProcessUSPMandateResult(ListMandatesResponseType resp, List results) throws USPClientException { + if (resp.getSearchResult() != null) { + if (resp.getSearchResult().getDeclaredType().isAssignableFrom(MandateList.class)) { + log.trace("Find 'MandateList' element in USP response"); + MandateList mandateList = (MandateList) resp.getSearchResult().getValue(); + + if (mandateList.getMandates() != null && mandateList.getMandates().getMandate() != null) { + log.debug("Find #" + mandateList.getMandates().getMandate().size() + " mandates in USP response"); + results.addAll(mandateList.getMandates().getMandate()); + + } else + log.info("Find 'null' element in USP response. Ignore full response"); + } else + log.warn("'SearchResult' element in USP response contains an unknown type: " + resp.getSearchResult().getName().toString()); + + } else { + log.debug("'SearchResult' element in USP response is 'null' Inspecting response on errors ..."); + if (resp.getResult() != null) { + String errorCode = resp.getResult().getErrorCode(); + String errorMsg = resp.getResult().getErrorMessage(); + if (MiscUtil.isNotEmpty(errorCode) || MiscUtil.isNotEmpty(errorMsg)) { + log.info("Receice an error from USP! Code: " + errorCode + " Msg: " + errorMsg); + throw new USPClientException(errorMsg, errorCode); + } + + } + } + + } + + private ListMandatesRequest generateRequest(String bpkType, String bpkValue, String mandateFilter) { + ObjectFactory objFactory = new ObjectFactory(); + + ListMandatesRequest parameters = new ListMandatesRequest(); + MandateAttributesSearchFilterType searchFilterType = new MandateAttributesSearchFilterType(); + SearchCriteriaTestType searchCriteriaTest = new SearchCriteriaTestType(); + SearchCriteriaType searchCriteria = new SearchCriteriaType(); + IdentificationType representative = new IdentificationType(); + Value IdValue = new Value(); + + //set bPK + IdValue.setValue(bpkValue); + representative.setValue(IdValue ); + representative.setType(bpkType); + searchCriteria.getActivationRangeOrMandateTypeOrMandatorID().add(objFactory.createSearchCriteriaTypeRepresentativeID(representative)); + + //set allowed time range + TimeRangeType fromTo = new TimeRangeType(); + fromTo.setFrom(formater.format(new Date())); + fromTo.setTo("9999-12-31"); + searchCriteria.getActivationRangeOrMandateTypeOrMandatorID().add(objFactory.createSearchCriteriaTypeValidFromTo(fromTo)); + + //set mandate filters + searchCriteria.getActivationRangeOrMandateTypeOrMandatorID().add(objFactory.createSearchCriteriaTypeMandateType(mandateFilter)); + + searchCriteriaTest.setSearchCriteria(searchCriteria); + searchFilterType.setFilter(searchCriteriaTest); + parameters.getSearchFilter().add(objFactory.createMandateAttributesSearchFilter(searchFilterType)); + + return parameters; } @SuppressWarnings({ "rawtypes", "unchecked" }) @@ -141,7 +191,13 @@ public class USPClient { // PV authentication log.trace("Adding WS-Security Header handler."); PvpTokenType pvpToken = config.getUSPPVPToken(); - SZRHTTPHeaderHandler szrSOAPHandler = new SZRHTTPHeaderHandler(); + + VDDSRoleGenerationStrategy roleStrategy = new VDDSRoleGenerationStrategy( + config.getConfigurationValue("egovutil.usp.role.dynamic.participant"), + config.getConfigurationValue("egovutil.usp.role.dynamic.secret")); + + + PVP2XHTTPHeaderHandler szrSOAPHandler = new PVP2XHTTPHeaderHandler(roleStrategy); szrSOAPHandler.configure(pvpToken); handlerList.add(szrSOAPHandler); @@ -183,6 +239,9 @@ public class USPClient { } http.setTlsClientParameters(tlsParams ); } + + formater = new SimpleDateFormat(USP_DATE_PATTERN); + } private String createUSPRequestId() { diff --git a/src/main/java/at/gv/util/client/mis/usp_v2/USPClientException.java b/src/main/java/at/gv/util/client/mis/usp_v2/USPClientException.java index 96ad965..4b2302b 100644 --- a/src/main/java/at/gv/util/client/mis/usp_v2/USPClientException.java +++ b/src/main/java/at/gv/util/client/mis/usp_v2/USPClientException.java @@ -4,29 +4,29 @@ public class USPClientException extends Exception { private static final long serialVersionUID = 5173056345209288701L; - private int code = -1; + private String code; - public USPClientException(int code) { + public USPClientException(String code) { super(); this.code = code; } - public USPClientException(String message, int code, Throwable cause) { + public USPClientException(String message, String code, Throwable cause) { super(message, cause); this.code = code; } - public USPClientException(String message, int code) { + public USPClientException(String message, String errorCode) { super(message); - this.code = code; + this.code = errorCode; } - public USPClientException(int code, Throwable cause) { + public USPClientException(String code, Throwable cause) { super(cause); this.code = code; } - public int getCode() { + public String getCode() { return this.code; } diff --git a/src/main/java/at/gv/util/client/mis/usp_v2/VDDSRoleGenerationStrategy.java b/src/main/java/at/gv/util/client/mis/usp_v2/VDDSRoleGenerationStrategy.java new file mode 100644 index 0000000..c5573d3 --- /dev/null +++ b/src/main/java/at/gv/util/client/mis/usp_v2/VDDSRoleGenerationStrategy.java @@ -0,0 +1,83 @@ +package at.gv.util.client.mis.usp_v2; + +import java.io.UnsupportedEncodingException; +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; +import java.text.SimpleDateFormat; +import java.util.Base64; +import java.util.Date; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import at.gv.util.MiscUtil; +import at.gv.util.client.szr.IRoleGenerationStrategy; +import at.gv.util.ex.EgovUtilException; + +public class VDDSRoleGenerationStrategy implements IRoleGenerationStrategy { + private static final Logger log = LoggerFactory.getLogger(VDDSRoleGenerationStrategy.class); + + public static final String ROLE_CONSTANT_PARTNERNAME = "partner-name="; + public static final String ROLE_CONSTANT_SECRET = "secret="; + public static final String ROLE_CONSTANT_CREATIONTS = "creation-ts="; + + public static final String TS_PATTERN = "yyyy-MM-dd'T'HH:mm:ss.SSSXXX"; + private static final SimpleDateFormat tsFormat = new SimpleDateFormat(TS_PATTERN); + + private String participant; + private String authData; + + public VDDSRoleGenerationStrategy(String participant, String authData) throws EgovUtilException { + if (MiscUtil.isEmpty(authData)) { + log.error("Secret to generate VDDS role is 'null or 'empty''"); + throw new EgovUtilException("Secret to generate VDDS role is 'null or 'empty'"); + + } + this.authData = authData; + + if (MiscUtil.isEmpty(participant)) { + log.error("Participant to generate VDDS role is 'null or 'empty''"); + throw new EgovUtilException("Secret to generate VDDS role is 'null or 'empty'"); + + } + this.participant = participant; + + log.trace("VDDSRoleGenerationStrategy uses participant: " + this.participant + " and secret: " + this.authData); + + } + + @Override + public String generateRoleString(String roleString) throws EgovUtilException { + + try { + String currentTS = tsFormat.format(new Date()); + log.trace("Generate VDDS role at: " + currentTS); + MessageDigest md = MessageDigest.getInstance("SHA-1"); + byte[] digistInput = (currentTS + authData).getBytes("UTF-8"); + log.trace("DigistInput: " + new String(digistInput, "UTF-8")); + byte[] digistOutput = md.digest(digistInput); + String secret = Base64.getEncoder().encodeToString(digistOutput); + + StringBuilder sBuilder = new StringBuilder(roleString); + sBuilder.append("("); + sBuilder.append(ROLE_CONSTANT_PARTNERNAME); + sBuilder.append(participant); + sBuilder.append(","); + sBuilder.append(ROLE_CONSTANT_SECRET); + sBuilder.append(secret); + sBuilder.append(","); + sBuilder.append(ROLE_CONSTANT_CREATIONTS); + sBuilder.append(currentTS); + sBuilder.append(")"); + + log.trace("Finale VDDS Role: " + sBuilder.toString()); + return sBuilder.toString(); + + } catch(NoSuchAlgorithmException | UnsupportedEncodingException e) { + log.error("VDDSRoleGeneration FAILED with error: " + e.getMessage(), e); + throw new EgovUtilException("VDDSRoleGeneration FAILED", e); + + } + } + +} diff --git a/src/main/java/at/gv/util/client/szr/IRoleGenerationStrategy.java b/src/main/java/at/gv/util/client/szr/IRoleGenerationStrategy.java new file mode 100644 index 0000000..d411f21 --- /dev/null +++ b/src/main/java/at/gv/util/client/szr/IRoleGenerationStrategy.java @@ -0,0 +1,15 @@ +package at.gv.util.client.szr; + +import at.gv.util.ex.EgovUtilException; + +public interface IRoleGenerationStrategy { + + /** + * Generates a request specific role string + * @param roleString Role from configuration + * + * @return Dynamic generated role + * @throws EgovUtilException + */ + public String generateRoleString(String roleString) throws EgovUtilException; +} diff --git a/src/main/java/at/gv/util/client/szr/PVP2XHTTPHeaderHandler.java b/src/main/java/at/gv/util/client/szr/PVP2XHTTPHeaderHandler.java new file mode 100644 index 0000000..f4fc11b --- /dev/null +++ b/src/main/java/at/gv/util/client/szr/PVP2XHTTPHeaderHandler.java @@ -0,0 +1,188 @@ +package at.gv.util.client.szr; + +import java.util.Collections; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import javax.xml.namespace.QName; +import javax.xml.ws.handler.MessageContext; +import javax.xml.ws.handler.soap.SOAPHandler; +import javax.xml.ws.handler.soap.SOAPMessageContext; + +import org.apache.commons.lang.StringUtils; +import org.apache.cxf.message.Message; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import at.gv.util.MiscUtil; +import at.gv.util.ex.EgovUtilException; +import at.gv.util.xsd.szr.pvp.Param; +import at.gv.util.xsd.szr.pvp.PvpTokenType; +import at.gv.util.xsd.szr.pvp.PvpTokenType.Accounting; +import at.gv.util.xsd.szr.pvp.PvpTokenType.Accounting.GvCostCenterId; +import at.gv.util.xsd.szr.pvp.Role; + +public class PVP2XHTTPHeaderHandler implements SOAPHandler { + + private PvpTokenType pvpTokenType = null; + + private Logger log = LoggerFactory.getLogger(PVP2XHTTPHeaderHandler.class); + + public static final String PVP_HEADER_COSTCENTERID_DEFAULT = ""; + public static final String PVP_HEADER_VALUE_DELIMITER = ","; + public static final String PVP_HEADER_ROLE_VALUE_DELIMITER = ";"; + + private IRoleGenerationStrategy roleStrategy = null; + + public PVP2XHTTPHeaderHandler() { + + } + + public PVP2XHTTPHeaderHandler(IRoleGenerationStrategy roleGenerationStrategy) { + log.info("PVP2XHTTPHeaderHandler uses RoleGenerationStrategy: " + roleGenerationStrategy.getClass().getName()); + this.roleStrategy = roleGenerationStrategy; + + } + + public void close(MessageContext arg0) { + } + + + public boolean handleFault(SOAPMessageContext arg0) { + return true; + } + + public void configure(PvpTokenType pvpToken) { + MiscUtil.assertNotNull(pvpToken, "pvpToken"); + this.pvpTokenType = pvpToken; + } + + + public boolean handleMessage(SOAPMessageContext smc) { + log.trace("Initializing SZR SOAP message handler."); + + boolean isOutMessage = ((Boolean) smc.get(SOAPMessageContext.MESSAGE_OUTBOUND_PROPERTY)).booleanValue(); + log.trace("Outbound message: " + isOutMessage); + if (pvpTokenType == null) { + throw new NullPointerException("Please configure first the PVP token."); + } + + if (!isOutMessage) { + return true; + } + Map headers = (Map) smc.get(Message.PROTOCOL_HEADERS); + //PVP 2.x header + //setHeader(headers, "X-PVP-VERSION", pvpTokenType.getVersion()); + setHeader(headers, "X-PVP-EGOVTOKEN-VERSION", pvpTokenType.getVersion()); + setHeader(headers, "X-PVP-USERID", pvpTokenType.getAuthenticate().getUserPrincipal().getUserId()); + setHeader(headers, "X-PVP-GID", pvpTokenType.getAuthenticate().getUserPrincipal().getGvGid()); + setHeader(headers, "X-PVP-PARTICIPANT-ID", pvpTokenType.getAuthenticate().getParticipantId()); + setHeader(headers, "X-PVP-OU-GV-OU-ID", pvpTokenType.getAuthenticate().getUserPrincipal().getGvOuId()); + setHeader(headers, "X-PVP-OU", pvpTokenType.getAuthenticate().getUserPrincipal().getOu()); + setHeader(headers, "X-PVP-FUNCTION", pvpTokenType.getAuthenticate().getUserPrincipal().getGvFunction()); + setHeader(headers, "X-PVP-SECCLASS", String.valueOf(pvpTokenType.getAuthenticate().getUserPrincipal().getGvSecClass().intValue())); + setHeader(headers, "X-PVP-PRINCIPAL-NAME", pvpTokenType.getAuthenticate().getUserPrincipal().getCn()); + setHeader(headers, "X-PVP-BINDING", "http"); + setHeader(headers, "X-PVP-OU-OKZ", "AT:OVS"); + + + //PVP 1.x header + //setHeader(headers, "X-VERSION", pvpTokenType.getVersion()); + setHeader(headers, "X-VERSION", "1.8"); + setHeader(headers, "X-AUTHENTICATE-UserID", pvpTokenType.getAuthenticate().getUserPrincipal().getUserId()); + setHeader(headers, "X-AUTHENTICATE-GVGID", pvpTokenType.getAuthenticate().getUserPrincipal().getGvGid()); + setHeader(headers, "X-AUTHENTICATE-PARTICIPANTID", pvpTokenType.getAuthenticate().getParticipantId()); + setHeader(headers, "X-AUTHENTICATE-GVOUID", pvpTokenType.getAuthenticate().getUserPrincipal().getGvOuId()); + setHeader(headers, "X-AUTHENTICATE-OU", pvpTokenType.getAuthenticate().getUserPrincipal().getOu()); + setHeader(headers, "X-AUTHENTICATE-GVFUNCTION", pvpTokenType.getAuthenticate().getUserPrincipal().getGvFunction()); + setHeader(headers, "X-AUTHENTICATE-gvSecClass", String.valueOf(pvpTokenType.getAuthenticate().getUserPrincipal().getGvSecClass().intValue())); + setHeader(headers, "X-AUTHENTICATE-cn",pvpTokenType.getAuthenticate().getUserPrincipal().getCn()); + + //set roles attribute + String roleString = null; + List roles = pvpTokenType.getAuthorize().getRole(); + if (roles != null && !roles.isEmpty()) { + for (Role role : roles) { + String roleElement = role.getValue(); + List roleParams = role.getParam(); + if (roleParams != null && !roleParams.isEmpty()) { + roleElement = roleElement + "("; + for (Param el : roleParams) { + roleElement = roleElement + el.getKey() + "=" + el.getValue() + PVP_HEADER_VALUE_DELIMITER; + + } + roleElement = roleElement.substring(0, roleElement.length()-1) + ")"; + } + + if (roleString == null) + roleString = roleElement; + else + roleString = roleString + PVP_HEADER_ROLE_VALUE_DELIMITER + roleElement; + } + } + + if (roleStrategy != null) { + log.trace("Generate dynamic role ... "); + try { + String dynRoleString = roleStrategy.generateRoleString(roleString); + setHeader(headers, "X-PVP-ROLES", dynRoleString); + setHeader(headers, "X-AUTHORIZE-ROLES", dynRoleString); + + } catch (EgovUtilException e) { + throw new RuntimeException("Can NOT generate dynamic VDDS role by using: " + roleStrategy.getClass().getName(), e); + + } + + } + + + + + + //set optional headers + String costCenterId = StringUtils.EMPTY; + String invoiceRecptId = StringUtils.EMPTY; + + Accounting accounting = pvpTokenType.getAccounting(); + if (accounting != null) { + invoiceRecptId = accounting.getInvoiceRecptId(); + if (accounting.getGvCostCenterId() != null && !accounting.getGvCostCenterId().isEmpty()) { + for (GvCostCenterId el : accounting.getGvCostCenterId()) { + String value = StringUtils.EMPTY; + if (el.isDefault()) + value = PVP_HEADER_COSTCENTERID_DEFAULT; + + value = value + el.getValue(); + + if (costCenterId.isEmpty()) + costCenterId = value; + else + costCenterId = PVP_HEADER_VALUE_DELIMITER + value; + + } + } + } + + setHeader(headers, "X-PVP-COST-CENTER-ID", costCenterId); + setHeader(headers, "X-PVP-INVOICE-RECPT-ID", invoiceRecptId); + + setHeader(headers, "X-ACCOUNTING-CostCenterId", costCenterId); + setHeader(headers, "X-ACCOUNTING-InvoiceRecptId", invoiceRecptId); + + return true; + + + } + + public Set getHeaders() { + return null; + } + private void setHeader(Map headers, String name, String value) { + if (MiscUtil.isEmpty(value)) + headers.put(name, Collections.singletonList(StringUtils.EMPTY)); + else + headers.put(name, Collections.singletonList(value)); + + } + +} diff --git a/src/main/java/at/gv/util/client/szr/SZRClient.java b/src/main/java/at/gv/util/client/szr/SZRClient.java index ad54d2f..67813bd 100644 --- a/src/main/java/at/gv/util/client/szr/SZRClient.java +++ b/src/main/java/at/gv/util/client/szr/SZRClient.java @@ -104,7 +104,7 @@ public class SZRClient { } - public String transformBPK(PersonInfoType personInfo, String inputBpk, String inputTarget, String target, String vkz) throws SZRException, EgovUtilException { + public FremdBPKType transformBPK(PersonInfoType personInfo, String inputBpk, String inputTarget, String target, String vkz) throws SZRException, EgovUtilException { MiscUtil.assertNotNull(personInfo, "personInfo"); MiscUtil.assertNotNull(target, "target"); String targetPrefix = "urn:publicid:gv.at:cdid+"; @@ -135,7 +135,7 @@ public class SZRClient { if (response == null) { return null; } - return response.get(0).getFremdBPK(); + return response.get(0); } @SuppressWarnings({ "rawtypes", "unchecked" }) diff --git a/src/main/java/at/gv/util/client/szr/SZRHTTPHeaderHandler.java b/src/main/java/at/gv/util/client/szr/SZRHTTPHeaderHandler.java deleted file mode 100644 index bde6b7b..0000000 --- a/src/main/java/at/gv/util/client/szr/SZRHTTPHeaderHandler.java +++ /dev/null @@ -1,138 +0,0 @@ -package at.gv.util.client.szr; - -import java.util.Collections; -import java.util.List; -import java.util.Map; -import java.util.Set; - -import javax.xml.namespace.QName; -import javax.xml.ws.handler.MessageContext; -import javax.xml.ws.handler.soap.SOAPHandler; -import javax.xml.ws.handler.soap.SOAPMessageContext; - -import org.apache.commons.lang.StringUtils; -import org.apache.cxf.message.Message; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import at.gv.util.MiscUtil; -import at.gv.util.xsd.szr.pvp.Param; -import at.gv.util.xsd.szr.pvp.PvpTokenType; -import at.gv.util.xsd.szr.pvp.PvpTokenType.Accounting; -import at.gv.util.xsd.szr.pvp.PvpTokenType.Accounting.GvCostCenterId; -import at.gv.util.xsd.szr.pvp.Role; - -public class SZRHTTPHeaderHandler implements SOAPHandler { - - private PvpTokenType pvpTokenType = null; - - private Logger log = LoggerFactory.getLogger(SZRHTTPHeaderHandler.class); - - public static final String PVP_HEADER_COSTCENTERID_DEFAULT = ""; - public static final String PVP_HEADER_VALUE_DELIMITER = ","; - public static final String PVP_HEADER_ROLE_VALUE_DELIMITER = ";"; - - public void close(MessageContext arg0) { - } - - - public boolean handleFault(SOAPMessageContext arg0) { - return true; - } - - public void configure(PvpTokenType pvpToken) { - MiscUtil.assertNotNull(pvpToken, "pvpToken"); - this.pvpTokenType = pvpToken; - } - - - public boolean handleMessage(SOAPMessageContext smc) { - log.trace("Initializing SZR SOAP message handler."); - - boolean isOutMessage = ((Boolean) smc.get(SOAPMessageContext.MESSAGE_OUTBOUND_PROPERTY)).booleanValue(); - log.trace("Outbound message: " + isOutMessage); - if (pvpTokenType == null) { - throw new NullPointerException("Please configure first the PVP token."); - } - - if (!isOutMessage) { - return true; - } - Map headers = (Map) smc.get(Message.PROTOCOL_HEADERS); - setHeader(headers, "X-VERSION", pvpTokenType.getVersion()); - setHeader(headers, "X-AUTHENTICATE-UserID", pvpTokenType.getAuthenticate().getUserPrincipal().getUserId()); - setHeader(headers, "X-AUTHENTICATE-GVGID", pvpTokenType.getAuthenticate().getUserPrincipal().getGvGid()); - setHeader(headers, "X-AUTHENTICATE-PARTICIPANTID", pvpTokenType.getAuthenticate().getParticipantId()); - setHeader(headers, "X-AUTHENTICATE-GVOUID", pvpTokenType.getAuthenticate().getUserPrincipal().getGvOuId()); - setHeader(headers, "X-AUTHENTICATE-OU", pvpTokenType.getAuthenticate().getUserPrincipal().getOu()); - setHeader(headers, "X-AUTHENTICATE-GVFUNCTION", pvpTokenType.getAuthenticate().getUserPrincipal().getGvFunction()); - setHeader(headers, "X-AUTHENTICATE-gvSecClass", String.valueOf(pvpTokenType.getAuthenticate().getUserPrincipal().getGvSecClass().intValue())); - setHeader(headers, "X-AUTHENTICATE-cn",pvpTokenType.getAuthenticate().getUserPrincipal().getCn()); - - //set roles attribute - String roleString = null; - List roles = pvpTokenType.getAuthorize().getRole(); - if (roles != null && !roles.isEmpty()) { - for (Role role : roles) { - String roleElement = role.getValue(); - List roleParams = role.getParam(); - if (roleParams != null && !roleParams.isEmpty()) { - roleElement = roleElement + "("; - for (Param el : roleParams) { - roleElement = roleElement + el.getKey() + "=" + el.getValue() + PVP_HEADER_VALUE_DELIMITER; - - } - roleElement = roleElement.substring(0, roleElement.length()-1) + ")"; - } - - if (roleString == null) - roleString = roleElement; - else - roleString = roleString + PVP_HEADER_ROLE_VALUE_DELIMITER + roleElement; - } - } - setHeader(headers, "X-AUTHORIZE-ROLES", roleString); - - //set optional headers - String costCenterId = null; - String invoiceRecptId = null; - - Accounting accounting = pvpTokenType.getAccounting(); - if (accounting != null) { - invoiceRecptId = accounting.getInvoiceRecptId(); - if (accounting.getGvCostCenterId() != null && !accounting.getGvCostCenterId().isEmpty()) { - for (GvCostCenterId el : accounting.getGvCostCenterId()) { - String value = StringUtils.EMPTY; - if (el.isDefault()) - value = PVP_HEADER_COSTCENTERID_DEFAULT; - - value = value + el.getValue(); - - if (costCenterId == null) - costCenterId = value; - else - costCenterId = PVP_HEADER_VALUE_DELIMITER + value; - - } - } - } - - setHeader(headers, "X-ACCOUNTING-CostCenterId", costCenterId); - setHeader(headers, "X-ACCOUNTING-InvoiceRecptId", invoiceRecptId); - - return true; - - - } - - public Set getHeaders() { - return null; - } - private void setHeader(Map headers, String name, String value) { - if (MiscUtil.isEmpty(value)) - headers.put(name, null); - else - headers.put(name, Collections.singletonList(value)); - - } - -} diff --git a/src/main/java/at/gv/util/config/EgovUtilConfiguration.java b/src/main/java/at/gv/util/config/EgovUtilConfiguration.java index 216e1f5..47b7b63 100644 --- a/src/main/java/at/gv/util/config/EgovUtilConfiguration.java +++ b/src/main/java/at/gv/util/config/EgovUtilConfiguration.java @@ -27,6 +27,9 @@ import at.gv.util.xsd.szr.pvp.PvpTokenType; */ public interface EgovUtilConfiguration { + String getConfigurationValue(String key); + String getConfigurationValue(String key, String defaultValue); + JaxWsSSLConfiguration getMOASPSSsslConfiguration(); JaxWsSSLConfiguration getMOAIDsslConfiguration(); JaxWsSSLConfiguration getMOAZSsslConfiguration(); diff --git a/src/main/java/at/gv/util/config/EgovUtilPropertiesConfiguration.java b/src/main/java/at/gv/util/config/EgovUtilPropertiesConfiguration.java index 66fa155..9693e0a 100644 --- a/src/main/java/at/gv/util/config/EgovUtilPropertiesConfiguration.java +++ b/src/main/java/at/gv/util/config/EgovUtilPropertiesConfiguration.java @@ -108,7 +108,20 @@ public class EgovUtilPropertiesConfiguration implements EgovUtilConfiguration { ersbsslConfiguration = new JaxWsSSLConfigurationPropertiesImpl(this.props, this.configDir, "egovutil.ersb"); } - public JaxWsSSLConfiguration getMOASPSSsslConfiguration() { + + @Override + public String getConfigurationValue(String key) { + return this.props.getProperty(key); + + } + + @Override + public String getConfigurationValue(String key, String defaultValue) { + return this.props.getProperty(key, defaultValue); + + } + + public JaxWsSSLConfiguration getMOASPSSsslConfiguration() { return moaSPSSsslConfiguration; } diff --git a/src/main/java/at/gv/util/wsdl/mis/usp_v2/CreateMandateFault.java b/src/main/java/at/gv/util/wsdl/mis/usp_v2/CreateMandateFault.java index 6109b1d..7903ab0 100644 --- a/src/main/java/at/gv/util/wsdl/mis/usp_v2/CreateMandateFault.java +++ b/src/main/java/at/gv/util/wsdl/mis/usp_v2/CreateMandateFault.java @@ -6,7 +6,7 @@ import javax.xml.ws.WebFault; /** * This class was generated by Apache CXF 3.1.10 - * 2018-09-12T08:57:26.619+02:00 + * 2019-04-10T12:00:27.818+02:00 * Generated source version: 3.1.10 */ diff --git a/src/main/java/at/gv/util/wsdl/mis/usp_v2/CreateMandateStateFault.java b/src/main/java/at/gv/util/wsdl/mis/usp_v2/CreateMandateStateFault.java index 7a03bec..4303e32 100644 --- a/src/main/java/at/gv/util/wsdl/mis/usp_v2/CreateMandateStateFault.java +++ b/src/main/java/at/gv/util/wsdl/mis/usp_v2/CreateMandateStateFault.java @@ -6,7 +6,7 @@ import javax.xml.ws.WebFault; /** * This class was generated by Apache CXF 3.1.10 - * 2018-09-12T08:57:26.581+02:00 + * 2019-04-10T12:00:27.780+02:00 * Generated source version: 3.1.10 */ diff --git a/src/main/java/at/gv/util/wsdl/mis/usp_v2/ISyncService.java b/src/main/java/at/gv/util/wsdl/mis/usp_v2/ISyncService.java index e64ecf7..4cba0d0 100644 --- a/src/main/java/at/gv/util/wsdl/mis/usp_v2/ISyncService.java +++ b/src/main/java/at/gv/util/wsdl/mis/usp_v2/ISyncService.java @@ -9,7 +9,7 @@ import javax.xml.bind.annotation.XmlSeeAlso; /** * This class was generated by Apache CXF 3.1.10 - * 2018-09-12T08:57:26.650+02:00 + * 2019-04-10T12:00:27.865+02:00 * Generated source version: 3.1.10 * */ diff --git a/src/main/java/at/gv/util/wsdl/mis/usp_v2/ListMandatesFault.java b/src/main/java/at/gv/util/wsdl/mis/usp_v2/ListMandatesFault.java index 7766724..a85dbd7 100644 --- a/src/main/java/at/gv/util/wsdl/mis/usp_v2/ListMandatesFault.java +++ b/src/main/java/at/gv/util/wsdl/mis/usp_v2/ListMandatesFault.java @@ -6,7 +6,7 @@ import javax.xml.ws.WebFault; /** * This class was generated by Apache CXF 3.1.10 - * 2018-09-12T08:57:26.619+02:00 + * 2019-04-10T12:00:27.833+02:00 * Generated source version: 3.1.10 */ diff --git a/src/main/java/at/gv/util/wsdl/mis/usp_v2/RequestModificationTokenFault.java b/src/main/java/at/gv/util/wsdl/mis/usp_v2/RequestModificationTokenFault.java index 5f7c6c5..6a03600 100644 --- a/src/main/java/at/gv/util/wsdl/mis/usp_v2/RequestModificationTokenFault.java +++ b/src/main/java/at/gv/util/wsdl/mis/usp_v2/RequestModificationTokenFault.java @@ -6,7 +6,7 @@ import javax.xml.ws.WebFault; /** * This class was generated by Apache CXF 3.1.10 - * 2018-09-12T08:57:26.635+02:00 + * 2019-04-10T12:00:27.849+02:00 * Generated source version: 3.1.10 */ diff --git a/src/main/java/at/gv/util/wsdl/mis/usp_v2/SynchronisationServiceServiceagent.java b/src/main/java/at/gv/util/wsdl/mis/usp_v2/SynchronisationServiceServiceagent.java index 90fb789..d15a744 100644 --- a/src/main/java/at/gv/util/wsdl/mis/usp_v2/SynchronisationServiceServiceagent.java +++ b/src/main/java/at/gv/util/wsdl/mis/usp_v2/SynchronisationServiceServiceagent.java @@ -10,7 +10,7 @@ import javax.xml.ws.Service; /** * This class was generated by Apache CXF 3.1.10 - * 2018-09-12T08:57:26.666+02:00 + * 2019-04-10T12:00:27.898+02:00 * Generated source version: 3.1.10 * */ diff --git a/src/main/java/at/gv/util/wsdl/mis/usp_v2/TerminateMandateFault.java b/src/main/java/at/gv/util/wsdl/mis/usp_v2/TerminateMandateFault.java index f0c0e0e..7a02adc 100644 --- a/src/main/java/at/gv/util/wsdl/mis/usp_v2/TerminateMandateFault.java +++ b/src/main/java/at/gv/util/wsdl/mis/usp_v2/TerminateMandateFault.java @@ -6,7 +6,7 @@ import javax.xml.ws.WebFault; /** * This class was generated by Apache CXF 3.1.10 - * 2018-09-12T08:57:26.635+02:00 + * 2019-04-10T12:00:27.865+02:00 * Generated source version: 3.1.10 */ diff --git a/src/main/java/at/gv/util/wsdl/mis/usp_v2/TerminateMandateStateFault.java b/src/main/java/at/gv/util/wsdl/mis/usp_v2/TerminateMandateStateFault.java index 937b1ba..db29f6d 100644 --- a/src/main/java/at/gv/util/wsdl/mis/usp_v2/TerminateMandateStateFault.java +++ b/src/main/java/at/gv/util/wsdl/mis/usp_v2/TerminateMandateStateFault.java @@ -6,7 +6,7 @@ import javax.xml.ws.WebFault; /** * This class was generated by Apache CXF 3.1.10 - * 2018-09-12T08:57:26.635+02:00 + * 2019-04-10T12:00:27.865+02:00 * Generated source version: 3.1.10 */ diff --git a/src/main/java/at/gv/util/xsd/mis/usp_v2/eai/syncmsgs/FilterType.java b/src/main/java/at/gv/util/xsd/mis/usp_v2/eai/syncmsgs/FilterType.java index 97c6fce..3e045a5 100644 --- a/src/main/java/at/gv/util/xsd/mis/usp_v2/eai/syncmsgs/FilterType.java +++ b/src/main/java/at/gv/util/xsd/mis/usp_v2/eai/syncmsgs/FilterType.java @@ -3,7 +3,9 @@ package at.gv.util.xsd.mis.usp_v2.eai.syncmsgs; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAnyElement; import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlMixed; import javax.xml.bind.annotation.XmlSeeAlso; import javax.xml.bind.annotation.XmlType; @@ -28,9 +30,6 @@ import javax.xml.bind.annotation.XmlType; * */ @XmlAccessorType(XmlAccessType.FIELD) -@XmlType(name = "FilterType", propOrder = { - "filter" -}) @XmlSeeAlso({ MandateAttributesSearchFilterType.class, MandateIDSearchFilterType.class, @@ -39,31 +38,8 @@ import javax.xml.bind.annotation.XmlType; }) public class FilterType { - @XmlElement(name = "Filter", required = true) - protected Object filter; - /** - * Ruft den Wert der filter-Eigenschaft ab. - * - * @return - * possible object is - * {@link Object } - * - */ - public Object getFilter() { - return filter; - } - /** - * Legt den Wert der filter-Eigenschaft fest. - * - * @param value - * allowed object is - * {@link Object } - * - */ - public void setFilter(Object value) { - this.filter = value; - } + } diff --git a/src/main/java/at/gv/util/xsd/mis/usp_v2/eai/syncmsgs/ListMandatesRequest.java b/src/main/java/at/gv/util/xsd/mis/usp_v2/eai/syncmsgs/ListMandatesRequest.java index 50374a1..94c65c0 100644 --- a/src/main/java/at/gv/util/xsd/mis/usp_v2/eai/syncmsgs/ListMandatesRequest.java +++ b/src/main/java/at/gv/util/xsd/mis/usp_v2/eai/syncmsgs/ListMandatesRequest.java @@ -69,9 +69,9 @@ public class ListMandatesRequest { * *

* Objects of the following type(s) are allowed in the list - * {@link JAXBElement }{@code <}{@link MandateAttributesSearchFilterType }{@code >} * {@link JAXBElement }{@code <}{@link PaginationFilter }{@code >} * {@link JAXBElement }{@code <}{@link FilterType }{@code >} + * {@link JAXBElement }{@code <}{@link MandateAttributesSearchFilterType }{@code >} * {@link JAXBElement }{@code <}{@link MandateIDSearchFilterType }{@code >} * * @@ -89,8 +89,8 @@ public class ListMandatesRequest { * @return * possible object is * {@link JAXBElement }{@code <}{@link ProcessTypeOutputFilter }{@code >} - * {@link JAXBElement }{@code <}{@link OutputFilterType }{@code >} * {@link JAXBElement }{@code <}{@link ListReferencedMandatesOutputFilter }{@code >} + * {@link JAXBElement }{@code <}{@link OutputFilterType }{@code >} * */ public JAXBElement getOutputFilter() { @@ -103,8 +103,8 @@ public class ListMandatesRequest { * @param value * allowed object is * {@link JAXBElement }{@code <}{@link ProcessTypeOutputFilter }{@code >} - * {@link JAXBElement }{@code <}{@link OutputFilterType }{@code >} * {@link JAXBElement }{@code <}{@link ListReferencedMandatesOutputFilter }{@code >} + * {@link JAXBElement }{@code <}{@link OutputFilterType }{@code >} * */ public void setOutputFilter(JAXBElement value) { diff --git a/src/main/java/at/gv/util/xsd/mis/usp_v2/eai/syncmsgs/ListMandatesResponseType.java b/src/main/java/at/gv/util/xsd/mis/usp_v2/eai/syncmsgs/ListMandatesResponseType.java index f47312e..1875dd4 100644 --- a/src/main/java/at/gv/util/xsd/mis/usp_v2/eai/syncmsgs/ListMandatesResponseType.java +++ b/src/main/java/at/gv/util/xsd/mis/usp_v2/eai/syncmsgs/ListMandatesResponseType.java @@ -87,8 +87,8 @@ public class ListMandatesResponseType { * @return * possible object is * {@link JAXBElement }{@code <}{@link MandateList }{@code >} - * {@link JAXBElement }{@code <}{@link ReferencedMandatesResult }{@code >} * {@link JAXBElement }{@code <}{@link Object }{@code >} + * {@link JAXBElement }{@code <}{@link ReferencedMandatesResult }{@code >} * */ public JAXBElement getSearchResult() { @@ -101,8 +101,8 @@ public class ListMandatesResponseType { * @param value * allowed object is * {@link JAXBElement }{@code <}{@link MandateList }{@code >} - * {@link JAXBElement }{@code <}{@link ReferencedMandatesResult }{@code >} * {@link JAXBElement }{@code <}{@link Object }{@code >} + * {@link JAXBElement }{@code <}{@link ReferencedMandatesResult }{@code >} * */ public void setSearchResult(JAXBElement value) { diff --git a/src/main/java/at/gv/util/xsd/mis/usp_v2/eai/syncmsgs/MandateAttributesSearchFilterType.java b/src/main/java/at/gv/util/xsd/mis/usp_v2/eai/syncmsgs/MandateAttributesSearchFilterType.java index b451c28..1f49372 100644 --- a/src/main/java/at/gv/util/xsd/mis/usp_v2/eai/syncmsgs/MandateAttributesSearchFilterType.java +++ b/src/main/java/at/gv/util/xsd/mis/usp_v2/eai/syncmsgs/MandateAttributesSearchFilterType.java @@ -3,6 +3,7 @@ package at.gv.util.xsd.mis.usp_v2.eai.syncmsgs; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlType; @@ -21,25 +22,7 @@ import javax.xml.bind.annotation.XmlType; * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> - * <element name="SearchCriteria"> - * <complexType> - * <complexContent> - * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> - * <sequence maxOccurs="7"> - * <choice> - * <element name="ActivationRange" type="{http://eai.brz.gv.at/services/vdds/sync-msgs}TimeRangeType"/> - * <element name="MandateType" type="{http://reference.e-government.gv.at/namespace/mandates/20040701#}TextualDescriptionType"/> - * <element name="MandatorID" type="{http://reference.e-government.gv.at/namespace/persondata/20020228#}IdentificationType"/> - * <element name="RepresentativeID" type="{http://reference.e-government.gv.at/namespace/persondata/20020228#}IdentificationType"/> - * <element name="TerminationRange" type="{http://eai.brz.gv.at/services/vdds/sync-msgs}TimeRangeType"/> - * <element name="ValidFromTo" type="{http://eai.brz.gv.at/services/vdds/sync-msgs}TimeRangeType"/> - * <element ref="{http://reference.e-government.gv.at/namespace/mandates/20040701#}Properties"/> - * </choice> - * </sequence> - * </restriction> - * </complexContent> - * </complexType> - * </element> + * <element ref="{http://eai.brz.gv.at/services/vdds/sync-msgs}SearchCriteria"/> * </sequence> * </restriction> * </complexContent> @@ -54,10 +37,38 @@ import javax.xml.bind.annotation.XmlType; * */ @XmlAccessorType(XmlAccessType.FIELD) -@XmlType(name = "MandateAttributesSearchFilterType") +@XmlType(name = "MandateAttributesSearchFilterType", propOrder = { + "filter" + }) public class MandateAttributesSearchFilterType extends FilterType { + @XmlElement(name = "Filter", required = true) + protected SearchCriteriaTestType filter; + + /** + * Ruft den Wert der filter-Eigenschaft ab. + * + * @return + * possible object is + * {@link Object } + * + */ + public SearchCriteriaTestType getFilter() { + return (SearchCriteriaTestType) filter; + } + + /** + * Legt den Wert der filter-Eigenschaft fest. + * + * @param value + * allowed object is + * {@link Object } + * + */ + public void setFilter(SearchCriteriaTestType value) { + this.filter = value; + } } diff --git a/src/main/java/at/gv/util/xsd/mis/usp_v2/eai/syncmsgs/MandateIDSearchFilterType.java b/src/main/java/at/gv/util/xsd/mis/usp_v2/eai/syncmsgs/MandateIDSearchFilterType.java index 58a6b32..1d8ff63 100644 --- a/src/main/java/at/gv/util/xsd/mis/usp_v2/eai/syncmsgs/MandateIDSearchFilterType.java +++ b/src/main/java/at/gv/util/xsd/mis/usp_v2/eai/syncmsgs/MandateIDSearchFilterType.java @@ -3,6 +3,7 @@ package at.gv.util.xsd.mis.usp_v2.eai.syncmsgs; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlType; @@ -46,10 +47,38 @@ import javax.xml.bind.annotation.XmlType; * */ @XmlAccessorType(XmlAccessType.FIELD) -@XmlType(name = "MandateIDSearchFilterType") +@XmlType(name = "MandateIDSearchFilterType", propOrder = { + "filter" + }) public class MandateIDSearchFilterType extends FilterType { + @XmlElement(name = "Filter", required = true) + protected SearchCriteriaTestType filter; + + /** + * Ruft den Wert der filter-Eigenschaft ab. + * + * @return + * possible object is + * {@link Object } + * + */ + public SearchCriteriaTestType getFilter() { + return (SearchCriteriaTestType) filter; + } + + /** + * Legt den Wert der filter-Eigenschaft fest. + * + * @param value + * allowed object is + * {@link Object } + * + */ + public void setFilter(SearchCriteriaTestType value) { + this.filter = value; + } } diff --git a/src/main/java/at/gv/util/xsd/mis/usp_v2/eai/syncmsgs/ObjectFactory.java b/src/main/java/at/gv/util/xsd/mis/usp_v2/eai/syncmsgs/ObjectFactory.java index a015968..38ca081 100644 --- a/src/main/java/at/gv/util/xsd/mis/usp_v2/eai/syncmsgs/ObjectFactory.java +++ b/src/main/java/at/gv/util/xsd/mis/usp_v2/eai/syncmsgs/ObjectFactory.java @@ -4,8 +4,11 @@ package at.gv.util.xsd.mis.usp_v2.eai.syncmsgs; import javax.xml.bind.JAXBElement; import javax.xml.bind.annotation.XmlElementDecl; import javax.xml.bind.annotation.XmlRegistry; +import javax.xml.bind.annotation.adapters.CollapsedStringAdapter; +import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; import javax.xml.namespace.QName; import at.gv.util.xsd.mis.usp_v2.eai.common.ReferableResultType; +import at.gv.util.xsd.mis.usp_v2.persondata.IdentificationType; /** @@ -25,6 +28,7 @@ import at.gv.util.xsd.mis.usp_v2.eai.common.ReferableResultType; @XmlRegistry public class ObjectFactory { + private final static QName _SearchCriteria_QNAME = new QName("http://eai.brz.gv.at/services/vdds/sync-msgs", "SearchCriteria"); private final static QName _CreateMandateAck_QNAME = new QName("http://eai.brz.gv.at/services/vdds/sync-msgs", "CreateMandateAck"); private final static QName _Result_QNAME = new QName("http://eai.brz.gv.at/services/vdds/sync-msgs", "Result"); private final static QName _CreateMandateRequest_QNAME = new QName("http://eai.brz.gv.at/services/vdds/sync-msgs", "CreateMandateRequest"); @@ -41,6 +45,12 @@ public class ObjectFactory { private final static QName _ReferencedMandatesResult_QNAME = new QName("http://eai.brz.gv.at/services/vdds/sync-msgs", "ReferencedMandatesResult"); private final static QName _TerminateMandateAck_QNAME = new QName("http://eai.brz.gv.at/services/vdds/sync-msgs", "TerminateMandateAck"); private final static QName _TerminateMandateRequest_QNAME = new QName("http://eai.brz.gv.at/services/vdds/sync-msgs", "TerminateMandateRequest"); + private final static QName _SearchCriteriaTypeActivationRange_QNAME = new QName("http://eai.brz.gv.at/services/vdds/sync-msgs", "ActivationRange"); + private final static QName _SearchCriteriaTypeMandateType_QNAME = new QName("http://eai.brz.gv.at/services/vdds/sync-msgs", "MandateType"); + private final static QName _SearchCriteriaTypeMandatorID_QNAME = new QName("http://eai.brz.gv.at/services/vdds/sync-msgs", "MandatorID"); + private final static QName _SearchCriteriaTypeRepresentativeID_QNAME = new QName("http://eai.brz.gv.at/services/vdds/sync-msgs", "RepresentativeID"); + private final static QName _SearchCriteriaTypeTerminationRange_QNAME = new QName("http://eai.brz.gv.at/services/vdds/sync-msgs", "TerminationRange"); + private final static QName _SearchCriteriaTypeValidFromTo_QNAME = new QName("http://eai.brz.gv.at/services/vdds/sync-msgs", "ValidFromTo"); /** * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: at.gv.util.xsd.mis.usp_v2.eai.syncmsgs @@ -65,6 +75,14 @@ public class ObjectFactory { return new SimplePath(); } + /** + * Create an instance of {@link SearchCriteriaType } + * + */ + public SearchCriteriaType createSearchCriteriaType() { + return new SearchCriteriaType(); + } + /** * Create an instance of {@link CreateMandateAsyncResponse } * @@ -201,6 +219,14 @@ public class ObjectFactory { return new TextProperties.Property(); } + /** + * Create an instance of {@link SearchCriteriaTestType } + * + */ + public SearchCriteriaTestType createSearchCriteriaTestType() { + return new SearchCriteriaTestType(); + } + /** * Create an instance of {@link MandateListType } * @@ -233,6 +259,15 @@ public class ObjectFactory { return new SimplePath.PathTo(); } + /** + * Create an instance of {@link JAXBElement }{@code <}{@link SearchCriteriaType }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://eai.brz.gv.at/services/vdds/sync-msgs", name = "SearchCriteria") + public JAXBElement createSearchCriteria(SearchCriteriaType value) { + return new JAXBElement(_SearchCriteria_QNAME, SearchCriteriaType.class, null, value); + } + /** * Create an instance of {@link JAXBElement }{@code <}{@link ReferableResultType }{@code >}} * @@ -377,4 +412,59 @@ public class ObjectFactory { return new JAXBElement(_TerminateMandateRequest_QNAME, MandateRequestType.class, null, value); } + /** + * Create an instance of {@link JAXBElement }{@code <}{@link TimeRangeType }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://eai.brz.gv.at/services/vdds/sync-msgs", name = "ActivationRange", scope = SearchCriteriaType.class) + public JAXBElement createSearchCriteriaTypeActivationRange(TimeRangeType value) { + return new JAXBElement(_SearchCriteriaTypeActivationRange_QNAME, TimeRangeType.class, SearchCriteriaType.class, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://eai.brz.gv.at/services/vdds/sync-msgs", name = "MandateType", scope = SearchCriteriaType.class) + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + public JAXBElement createSearchCriteriaTypeMandateType(String value) { + return new JAXBElement(_SearchCriteriaTypeMandateType_QNAME, String.class, SearchCriteriaType.class, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link IdentificationType }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://eai.brz.gv.at/services/vdds/sync-msgs", name = "MandatorID", scope = SearchCriteriaType.class) + public JAXBElement createSearchCriteriaTypeMandatorID(IdentificationType value) { + return new JAXBElement(_SearchCriteriaTypeMandatorID_QNAME, IdentificationType.class, SearchCriteriaType.class, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link IdentificationType }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://eai.brz.gv.at/services/vdds/sync-msgs", name = "RepresentativeID", scope = SearchCriteriaType.class) + public JAXBElement createSearchCriteriaTypeRepresentativeID(IdentificationType value) { + return new JAXBElement(_SearchCriteriaTypeRepresentativeID_QNAME, IdentificationType.class, SearchCriteriaType.class, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link TimeRangeType }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://eai.brz.gv.at/services/vdds/sync-msgs", name = "TerminationRange", scope = SearchCriteriaType.class) + public JAXBElement createSearchCriteriaTypeTerminationRange(TimeRangeType value) { + return new JAXBElement(_SearchCriteriaTypeTerminationRange_QNAME, TimeRangeType.class, SearchCriteriaType.class, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link TimeRangeType }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://eai.brz.gv.at/services/vdds/sync-msgs", name = "ValidFromTo", scope = SearchCriteriaType.class) + public JAXBElement createSearchCriteriaTypeValidFromTo(TimeRangeType value) { + return new JAXBElement(_SearchCriteriaTypeValidFromTo_QNAME, TimeRangeType.class, SearchCriteriaType.class, value); + } + } diff --git a/src/main/java/at/gv/util/xsd/mis/usp_v2/eai/syncmsgs/PaginationFilter.java b/src/main/java/at/gv/util/xsd/mis/usp_v2/eai/syncmsgs/PaginationFilter.java index 43db3b3..e17102d 100644 --- a/src/main/java/at/gv/util/xsd/mis/usp_v2/eai/syncmsgs/PaginationFilter.java +++ b/src/main/java/at/gv/util/xsd/mis/usp_v2/eai/syncmsgs/PaginationFilter.java @@ -3,6 +3,7 @@ package at.gv.util.xsd.mis.usp_v2.eai.syncmsgs; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlType; @@ -36,10 +37,38 @@ import javax.xml.bind.annotation.XmlType; * */ @XmlAccessorType(XmlAccessType.FIELD) -@XmlType(name = "") +@XmlType(name = "PaginationFilterType", propOrder = { + "filter" + }) public class PaginationFilter extends FilterType { + @XmlElement(name = "Filter", required = true) + protected PaginationType filter; + + /** + * Ruft den Wert der filter-Eigenschaft ab. + * + * @return + * possible object is + * {@link Object } + * + */ + public PaginationType getFilter() { + return (PaginationType) filter; + } + + /** + * Legt den Wert der filter-Eigenschaft fest. + * + * @param value + * allowed object is + * {@link Object } + * + */ + public void setFilter(PaginationType value) { + this.filter = value; + } } diff --git a/src/main/java/at/gv/util/xsd/mis/usp_v2/eai/syncmsgs/PaginationType.java b/src/main/java/at/gv/util/xsd/mis/usp_v2/eai/syncmsgs/PaginationType.java new file mode 100644 index 0000000..21d6da8 --- /dev/null +++ b/src/main/java/at/gv/util/xsd/mis/usp_v2/eai/syncmsgs/PaginationType.java @@ -0,0 +1,43 @@ + +package at.gv.util.xsd.mis.usp_v2.eai.syncmsgs; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; + + +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "PaginationType", propOrder = { + "pagination" +}) +public class PaginationType { + + @XmlElement(name = "Pagination", required = true) + protected Pagination pagination; + + /** + * Ruft den Wert der searchCriteria-Eigenschaft ab. + * + * @return + * possible object is + * {@link Pagination } + * + */ + public Pagination getPagination() { + return pagination; + } + + /** + * Legt den Wert der searchCriteria-Eigenschaft fest. + * + * @param value + * allowed object is + * {@link Pagination } + * + */ + public void setPagination(Pagination value) { + this.pagination = value; + } + +} diff --git a/src/main/java/at/gv/util/xsd/mis/usp_v2/eai/syncmsgs/SearchCriteriaTestType.java b/src/main/java/at/gv/util/xsd/mis/usp_v2/eai/syncmsgs/SearchCriteriaTestType.java new file mode 100644 index 0000000..53fa3aa --- /dev/null +++ b/src/main/java/at/gv/util/xsd/mis/usp_v2/eai/syncmsgs/SearchCriteriaTestType.java @@ -0,0 +1,62 @@ + +package at.gv.util.xsd.mis.usp_v2.eai.syncmsgs; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Java-Klasse für SearchCriteriaTestType complex type. + * + *

Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist. + * + *

+ * <complexType name="SearchCriteriaTestType">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element ref="{http://eai.brz.gv.at/services/vdds/sync-msgs}SearchCriteria"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "SearchCriteriaType", propOrder = { + "searchCriteria" +}) +public class SearchCriteriaTestType { + + @XmlElement(name = "SearchCriteria", required = true) + protected SearchCriteriaType searchCriteria; + + /** + * Ruft den Wert der searchCriteria-Eigenschaft ab. + * + * @return + * possible object is + * {@link SearchCriteriaType } + * + */ + public SearchCriteriaType getSearchCriteria() { + return searchCriteria; + } + + /** + * Legt den Wert der searchCriteria-Eigenschaft fest. + * + * @param value + * allowed object is + * {@link SearchCriteriaType } + * + */ + public void setSearchCriteria(SearchCriteriaType value) { + this.searchCriteria = value; + } + +} diff --git a/src/main/java/at/gv/util/xsd/mis/usp_v2/eai/syncmsgs/SearchCriteriaType.java b/src/main/java/at/gv/util/xsd/mis/usp_v2/eai/syncmsgs/SearchCriteriaType.java new file mode 100644 index 0000000..c09be79 --- /dev/null +++ b/src/main/java/at/gv/util/xsd/mis/usp_v2/eai/syncmsgs/SearchCriteriaType.java @@ -0,0 +1,97 @@ + +package at.gv.util.xsd.mis.usp_v2.eai.syncmsgs; + +import java.util.ArrayList; +import java.util.List; +import javax.xml.bind.JAXBElement; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlElementRef; +import javax.xml.bind.annotation.XmlElementRefs; +import javax.xml.bind.annotation.XmlMixed; +import javax.xml.bind.annotation.XmlType; +import at.gv.util.xsd.mis.usp_v2.mandates.PropertiesType; +import at.gv.util.xsd.mis.usp_v2.persondata.IdentificationType; + + +/** + *

Java-Klasse für SearchCriteriaType complex type. + * + *

Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist. + * + *

+ * <complexType name="SearchCriteriaType">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence maxOccurs="7">
+ *         <choice>
+ *           <element name="ActivationRange" type="{http://eai.brz.gv.at/services/vdds/sync-msgs}TimeRangeType"/>
+ *           <element name="MandateType" type="{http://reference.e-government.gv.at/namespace/mandates/20040701#}TextualDescriptionType"/>
+ *           <element name="MandatorID" type="{http://reference.e-government.gv.at/namespace/persondata/20020228#}IdentificationType"/>
+ *           <element name="RepresentativeID" type="{http://reference.e-government.gv.at/namespace/persondata/20020228#}IdentificationType"/>
+ *           <element name="TerminationRange" type="{http://eai.brz.gv.at/services/vdds/sync-msgs}TimeRangeType"/>
+ *           <element name="ValidFromTo" type="{http://eai.brz.gv.at/services/vdds/sync-msgs}TimeRangeType"/>
+ *           <element ref="{http://reference.e-government.gv.at/namespace/mandates/20040701#}Properties"/>
+ *         </choice>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "SearchCriteriaTestType", propOrder = { + "activationRangeOrMandateTypeOrMandatorID" +}) +public class SearchCriteriaType { + + @XmlElementRefs({ + @XmlElementRef(name = "ValidFromTo", namespace = "http://eai.brz.gv.at/services/vdds/sync-msgs", type = JAXBElement.class, required = false), + @XmlElementRef(name = "MandatorID", namespace = "http://eai.brz.gv.at/services/vdds/sync-msgs", type = JAXBElement.class, required = false), + @XmlElementRef(name = "ActivationRange", namespace = "http://eai.brz.gv.at/services/vdds/sync-msgs", type = JAXBElement.class, required = false), + @XmlElementRef(name = "RepresentativeID", namespace = "http://eai.brz.gv.at/services/vdds/sync-msgs", type = JAXBElement.class, required = false), + @XmlElementRef(name = "TerminationRange", namespace = "http://eai.brz.gv.at/services/vdds/sync-msgs", type = JAXBElement.class, required = false), + @XmlElementRef(name = "MandateType", namespace = "http://eai.brz.gv.at/services/vdds/sync-msgs", type = JAXBElement.class, required = false), + @XmlElementRef(name = "Properties", namespace = "http://reference.e-government.gv.at/namespace/mandates/20040701#", type = JAXBElement.class, required = false) + }) + protected List> activationRangeOrMandateTypeOrMandatorID; + + /** + * Gets the value of the activationRangeOrMandateTypeOrMandatorID property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the activationRangeOrMandateTypeOrMandatorID property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getActivationRangeOrMandateTypeOrMandatorID().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link JAXBElement }{@code <}{@link TimeRangeType }{@code >} + * {@link JAXBElement }{@code <}{@link IdentificationType }{@code >} + * {@link JAXBElement }{@code <}{@link TimeRangeType }{@code >} + * {@link JAXBElement }{@code <}{@link IdentificationType }{@code >} + * {@link JAXBElement }{@code <}{@link TimeRangeType }{@code >} + * {@link JAXBElement }{@code <}{@link String }{@code >} + * {@link JAXBElement }{@code <}{@link PropertiesType }{@code >} + * + * + */ + public List> getActivationRangeOrMandateTypeOrMandatorID() { + if (activationRangeOrMandateTypeOrMandatorID == null) { + activationRangeOrMandateTypeOrMandatorID = new ArrayList>(); + } + return this.activationRangeOrMandateTypeOrMandatorID; + } + +} diff --git a/src/main/java/at/gv/util/xsd/mis/usp_v2/mandates/PropertiesType.java b/src/main/java/at/gv/util/xsd/mis/usp_v2/mandates/PropertiesType.java index 9b666d0..b2a921c 100644 --- a/src/main/java/at/gv/util/xsd/mis/usp_v2/mandates/PropertiesType.java +++ b/src/main/java/at/gv/util/xsd/mis/usp_v2/mandates/PropertiesType.java @@ -117,8 +117,8 @@ public class PropertiesType { * *

* Objects of the following type(s) are allowed in the list - * {@link Object } * {@link Element } + * {@link Object } * * */ diff --git a/src/main/java/at/gv/util/xsd/mis/usp_v2/mandates/SimpleMandateContentType.java b/src/main/java/at/gv/util/xsd/mis/usp_v2/mandates/SimpleMandateContentType.java index 8214f3c..31e425d 100644 --- a/src/main/java/at/gv/util/xsd/mis/usp_v2/mandates/SimpleMandateContentType.java +++ b/src/main/java/at/gv/util/xsd/mis/usp_v2/mandates/SimpleMandateContentType.java @@ -76,8 +76,8 @@ import at.gv.util.xsd.mis.usp_v2.persondata.PhysicalPersonType; public class SimpleMandateContentType { @XmlElementRefs({ - @XmlElementRef(name = "ParameterisedDescription", namespace = "http://reference.e-government.gv.at/namespace/mandates/20040701#", type = JAXBElement.class, required = false), - @XmlElementRef(name = "TextualDescription", namespace = "http://reference.e-government.gv.at/namespace/mandates/20040701#", type = JAXBElement.class, required = false) + @XmlElementRef(name = "TextualDescription", namespace = "http://reference.e-government.gv.at/namespace/mandates/20040701#", type = JAXBElement.class, required = false), + @XmlElementRef(name = "ParameterisedDescription", namespace = "http://reference.e-government.gv.at/namespace/mandates/20040701#", type = JAXBElement.class, required = false) }) protected List> parameterisedDescriptionOrTextualDescription; @XmlElement(name = "References") @@ -113,8 +113,8 @@ public class SimpleMandateContentType { * *

* Objects of the following type(s) are allowed in the list - * {@link JAXBElement }{@code <}{@link ParameterisedDescriptionType }{@code >} * {@link JAXBElement }{@code <}{@link String }{@code >} + * {@link JAXBElement }{@code <}{@link ParameterisedDescriptionType }{@code >} * * */ @@ -305,8 +305,8 @@ public class SimpleMandateContentType { @XmlElementRefs({ @XmlElementRef(name = "AnyConstraints", namespace = "http://reference.e-government.gv.at/namespace/mandates/20040701#", type = JAXBElement.class, required = false), - @XmlElementRef(name = "PhysicalPerson", namespace = "http://reference.e-government.gv.at/namespace/persondata/20020228#", type = JAXBElement.class, required = false), - @XmlElementRef(name = "CorporateBody", namespace = "http://reference.e-government.gv.at/namespace/persondata/20020228#", type = JAXBElement.class, required = false) + @XmlElementRef(name = "CorporateBody", namespace = "http://reference.e-government.gv.at/namespace/persondata/20020228#", type = JAXBElement.class, required = false), + @XmlElementRef(name = "PhysicalPerson", namespace = "http://reference.e-government.gv.at/namespace/persondata/20020228#", type = JAXBElement.class, required = false) }) protected List> anyConstraintsOrCorporateBodyOrPhysicalPerson; @@ -328,8 +328,8 @@ public class SimpleMandateContentType { * *

* Objects of the following type(s) are allowed in the list - * {@link JAXBElement }{@code <}{@link PhysicalPersonType }{@code >} * {@link JAXBElement }{@code <}{@link CorporateBodyType }{@code >} + * {@link JAXBElement }{@code <}{@link PhysicalPersonType }{@code >} * {@link JAXBElement }{@code <}{@link String }{@code >} * * diff --git a/src/main/java/at/gv/util/xsd/mis/usp_v2/persondata/CompactCorporateBodyType.java b/src/main/java/at/gv/util/xsd/mis/usp_v2/persondata/CompactCorporateBodyType.java index 91d4790..65e255c 100644 --- a/src/main/java/at/gv/util/xsd/mis/usp_v2/persondata/CompactCorporateBodyType.java +++ b/src/main/java/at/gv/util/xsd/mis/usp_v2/persondata/CompactCorporateBodyType.java @@ -188,8 +188,8 @@ public class CompactCorporateBodyType * *

* Objects of the following type(s) are allowed in the list - * {@link Object } * {@link Element } + * {@link Object } * * */ diff --git a/src/main/java/at/gv/util/xsd/mis/usp_v2/persondata/CompactPersonDataType.java b/src/main/java/at/gv/util/xsd/mis/usp_v2/persondata/CompactPersonDataType.java index 788e738..2667836 100644 --- a/src/main/java/at/gv/util/xsd/mis/usp_v2/persondata/CompactPersonDataType.java +++ b/src/main/java/at/gv/util/xsd/mis/usp_v2/persondata/CompactPersonDataType.java @@ -75,11 +75,11 @@ public class CompactPersonDataType * * @return * possible object is - * {@link JAXBElement }{@code <}{@link PhysicalPersonType }{@code >} - * {@link JAXBElement }{@code <}{@link CompactCorporateBodyType }{@code >} * {@link JAXBElement }{@code <}{@link CompactPhysicalPersonType }{@code >} * {@link JAXBElement }{@code <}{@link AbstractPersonType }{@code >} * {@link JAXBElement }{@code <}{@link CorporateBodyType }{@code >} + * {@link JAXBElement }{@code <}{@link PhysicalPersonType }{@code >} + * {@link JAXBElement }{@code <}{@link CompactCorporateBodyType }{@code >} * */ public JAXBElement getPerson() { @@ -91,11 +91,11 @@ public class CompactPersonDataType * * @param value * allowed object is - * {@link JAXBElement }{@code <}{@link PhysicalPersonType }{@code >} - * {@link JAXBElement }{@code <}{@link CompactCorporateBodyType }{@code >} * {@link JAXBElement }{@code <}{@link CompactPhysicalPersonType }{@code >} * {@link JAXBElement }{@code <}{@link AbstractPersonType }{@code >} * {@link JAXBElement }{@code <}{@link CorporateBodyType }{@code >} + * {@link JAXBElement }{@code <}{@link PhysicalPersonType }{@code >} + * {@link JAXBElement }{@code <}{@link CompactCorporateBodyType }{@code >} * */ public void setPerson(JAXBElement value) { @@ -120,12 +120,12 @@ public class CompactPersonDataType * *

* Objects of the following type(s) are allowed in the list - * {@link JAXBElement }{@code <}{@link AbstractAddressType }{@code >} - * {@link JAXBElement }{@code <}{@link CompactPostalAddressType }{@code >} + * {@link JAXBElement }{@code <}{@link TypedPostalAddressType }{@code >} * {@link JAXBElement }{@code <}{@link PostalAddressType }{@code >} - * {@link JAXBElement }{@code <}{@link TelephoneAddressType }{@code >} * {@link JAXBElement }{@code <}{@link InternetAddressType }{@code >} - * {@link JAXBElement }{@code <}{@link TypedPostalAddressType }{@code >} + * {@link JAXBElement }{@code <}{@link CompactPostalAddressType }{@code >} + * {@link JAXBElement }{@code <}{@link TelephoneAddressType }{@code >} + * {@link JAXBElement }{@code <}{@link AbstractAddressType }{@code >} * * */ @@ -237,8 +237,8 @@ public class CompactPersonDataType * *

* Objects of the following type(s) are allowed in the list - * {@link Object } * {@link Element } + * {@link Object } * {@link String } * * diff --git a/src/main/java/at/gv/util/xsd/mis/usp_v2/persondata/CompactPhysicalPersonType.java b/src/main/java/at/gv/util/xsd/mis/usp_v2/persondata/CompactPhysicalPersonType.java index 23fa08a..a12e6d2 100644 --- a/src/main/java/at/gv/util/xsd/mis/usp_v2/persondata/CompactPhysicalPersonType.java +++ b/src/main/java/at/gv/util/xsd/mis/usp_v2/persondata/CompactPhysicalPersonType.java @@ -243,8 +243,8 @@ public class CompactPhysicalPersonType * *

* Objects of the following type(s) are allowed in the list - * {@link Object } * {@link Element } + * {@link Object } * * */ diff --git a/src/main/java/at/gv/util/xsd/mis/usp_v2/persondata/CorporateBodyType.java b/src/main/java/at/gv/util/xsd/mis/usp_v2/persondata/CorporateBodyType.java index 3c0b8a0..47219b0 100644 --- a/src/main/java/at/gv/util/xsd/mis/usp_v2/persondata/CorporateBodyType.java +++ b/src/main/java/at/gv/util/xsd/mis/usp_v2/persondata/CorporateBodyType.java @@ -256,8 +256,8 @@ public class CorporateBodyType * *

* Objects of the following type(s) are allowed in the list - * {@link Object } * {@link Element } + * {@link Object } * * */ diff --git a/src/main/java/at/gv/util/xsd/mis/usp_v2/persondata/IdentificationType.java b/src/main/java/at/gv/util/xsd/mis/usp_v2/persondata/IdentificationType.java index a485e83..5b2fe7b 100644 --- a/src/main/java/at/gv/util/xsd/mis/usp_v2/persondata/IdentificationType.java +++ b/src/main/java/at/gv/util/xsd/mis/usp_v2/persondata/IdentificationType.java @@ -172,8 +172,8 @@ public class IdentificationType { * *

* Objects of the following type(s) are allowed in the list - * {@link Object } * {@link Element } + * {@link Object } * * */ diff --git a/src/main/java/at/gv/util/xsd/mis/usp_v2/persondata/InternetAddressType.java b/src/main/java/at/gv/util/xsd/mis/usp_v2/persondata/InternetAddressType.java index 94662ff..ec46194 100644 --- a/src/main/java/at/gv/util/xsd/mis/usp_v2/persondata/InternetAddressType.java +++ b/src/main/java/at/gv/util/xsd/mis/usp_v2/persondata/InternetAddressType.java @@ -121,8 +121,8 @@ public class InternetAddressType * *

* Objects of the following type(s) are allowed in the list - * {@link Object } * {@link Element } + * {@link Object } * * */ diff --git a/src/main/java/at/gv/util/xsd/mis/usp_v2/persondata/NationalityType.java b/src/main/java/at/gv/util/xsd/mis/usp_v2/persondata/NationalityType.java index 0a5e13e..383ca3d 100644 --- a/src/main/java/at/gv/util/xsd/mis/usp_v2/persondata/NationalityType.java +++ b/src/main/java/at/gv/util/xsd/mis/usp_v2/persondata/NationalityType.java @@ -52,10 +52,10 @@ import org.w3c.dom.Element; public class NationalityType { @XmlElementRefs({ - @XmlElementRef(name = "CountryNameFR", namespace = "http://reference.e-government.gv.at/namespace/persondata/20020228#", type = JAXBElement.class), @XmlElementRef(name = "ISOCode3", namespace = "http://reference.e-government.gv.at/namespace/persondata/20020228#", type = JAXBElement.class), - @XmlElementRef(name = "CountryNameEN", namespace = "http://reference.e-government.gv.at/namespace/persondata/20020228#", type = JAXBElement.class), - @XmlElementRef(name = "CountryNameDE", namespace = "http://reference.e-government.gv.at/namespace/persondata/20020228#", type = JAXBElement.class) + @XmlElementRef(name = "CountryNameDE", namespace = "http://reference.e-government.gv.at/namespace/persondata/20020228#", type = JAXBElement.class), + @XmlElementRef(name = "CountryNameFR", namespace = "http://reference.e-government.gv.at/namespace/persondata/20020228#", type = JAXBElement.class), + @XmlElementRef(name = "CountryNameEN", namespace = "http://reference.e-government.gv.at/namespace/persondata/20020228#", type = JAXBElement.class) }) @XmlMixed @XmlAnyElement(lax = true) @@ -79,13 +79,13 @@ public class NationalityType { * *

* Objects of the following type(s) are allowed in the list - * {@link Element } * {@link JAXBElement }{@code <}{@link String }{@code >} + * {@link Object } + * {@link String } + * {@link Element } * {@link JAXBElement }{@code <}{@link String }{@code >} * {@link JAXBElement }{@code <}{@link String }{@code >} * {@link JAXBElement }{@code <}{@link String }{@code >} - * {@link Object } - * {@link String } * * */ diff --git a/src/main/java/at/gv/util/xsd/mis/usp_v2/persondata/PersonDataType.java b/src/main/java/at/gv/util/xsd/mis/usp_v2/persondata/PersonDataType.java index 1c81b4d..f160a2f 100644 --- a/src/main/java/at/gv/util/xsd/mis/usp_v2/persondata/PersonDataType.java +++ b/src/main/java/at/gv/util/xsd/mis/usp_v2/persondata/PersonDataType.java @@ -75,11 +75,11 @@ public class PersonDataType * * @return * possible object is - * {@link JAXBElement }{@code <}{@link PhysicalPersonType }{@code >} - * {@link JAXBElement }{@code <}{@link CompactCorporateBodyType }{@code >} * {@link JAXBElement }{@code <}{@link CompactPhysicalPersonType }{@code >} * {@link JAXBElement }{@code <}{@link AbstractPersonType }{@code >} * {@link JAXBElement }{@code <}{@link CorporateBodyType }{@code >} + * {@link JAXBElement }{@code <}{@link PhysicalPersonType }{@code >} + * {@link JAXBElement }{@code <}{@link CompactCorporateBodyType }{@code >} * */ public JAXBElement getPerson() { @@ -91,11 +91,11 @@ public class PersonDataType * * @param value * allowed object is - * {@link JAXBElement }{@code <}{@link PhysicalPersonType }{@code >} - * {@link JAXBElement }{@code <}{@link CompactCorporateBodyType }{@code >} * {@link JAXBElement }{@code <}{@link CompactPhysicalPersonType }{@code >} * {@link JAXBElement }{@code <}{@link AbstractPersonType }{@code >} * {@link JAXBElement }{@code <}{@link CorporateBodyType }{@code >} + * {@link JAXBElement }{@code <}{@link PhysicalPersonType }{@code >} + * {@link JAXBElement }{@code <}{@link CompactCorporateBodyType }{@code >} * */ public void setPerson(JAXBElement value) { @@ -120,12 +120,12 @@ public class PersonDataType * *

* Objects of the following type(s) are allowed in the list - * {@link JAXBElement }{@code <}{@link AbstractAddressType }{@code >} - * {@link JAXBElement }{@code <}{@link CompactPostalAddressType }{@code >} + * {@link JAXBElement }{@code <}{@link TypedPostalAddressType }{@code >} * {@link JAXBElement }{@code <}{@link PostalAddressType }{@code >} - * {@link JAXBElement }{@code <}{@link TelephoneAddressType }{@code >} * {@link JAXBElement }{@code <}{@link InternetAddressType }{@code >} - * {@link JAXBElement }{@code <}{@link TypedPostalAddressType }{@code >} + * {@link JAXBElement }{@code <}{@link CompactPostalAddressType }{@code >} + * {@link JAXBElement }{@code <}{@link TelephoneAddressType }{@code >} + * {@link JAXBElement }{@code <}{@link AbstractAddressType }{@code >} * * */ @@ -237,8 +237,8 @@ public class PersonDataType * *

* Objects of the following type(s) are allowed in the list - * {@link Object } * {@link Element } + * {@link Object } * {@link String } * * diff --git a/src/main/java/at/gv/util/xsd/mis/usp_v2/persondata/PhysicalPersonType.java b/src/main/java/at/gv/util/xsd/mis/usp_v2/persondata/PhysicalPersonType.java index e199dfb..64a83a5 100644 --- a/src/main/java/at/gv/util/xsd/mis/usp_v2/persondata/PhysicalPersonType.java +++ b/src/main/java/at/gv/util/xsd/mis/usp_v2/persondata/PhysicalPersonType.java @@ -488,8 +488,8 @@ public class PhysicalPersonType * *

* Objects of the following type(s) are allowed in the list - * {@link Object } * {@link Element } + * {@link Object } * * */ diff --git a/src/main/java/at/gv/util/xsd/mis/usp_v2/persondata/TelephoneAddressType.java b/src/main/java/at/gv/util/xsd/mis/usp_v2/persondata/TelephoneAddressType.java index 42eed66..61e3d75 100644 --- a/src/main/java/at/gv/util/xsd/mis/usp_v2/persondata/TelephoneAddressType.java +++ b/src/main/java/at/gv/util/xsd/mis/usp_v2/persondata/TelephoneAddressType.java @@ -125,8 +125,8 @@ public class TelephoneAddressType * *

* Objects of the following type(s) are allowed in the list - * {@link Object } * {@link Element } + * {@link Object } * * */ diff --git a/src/main/java/at/gv/util/xsd/mis/usp_v2/persondata/TypedPostalAddressType.java b/src/main/java/at/gv/util/xsd/mis/usp_v2/persondata/TypedPostalAddressType.java index 75b2c09..3f7a659 100644 --- a/src/main/java/at/gv/util/xsd/mis/usp_v2/persondata/TypedPostalAddressType.java +++ b/src/main/java/at/gv/util/xsd/mis/usp_v2/persondata/TypedPostalAddressType.java @@ -120,8 +120,8 @@ public class TypedPostalAddressType * *

* Objects of the following type(s) are allowed in the list - * {@link Object } * {@link Element } + * {@link Object } * * */ diff --git a/src/main/java/at/gv/util/xsd/mis/usp_v2/xmldsig/DigestMethodType.java b/src/main/java/at/gv/util/xsd/mis/usp_v2/xmldsig/DigestMethodType.java index 0274215..4136a2d 100644 --- a/src/main/java/at/gv/util/xsd/mis/usp_v2/xmldsig/DigestMethodType.java +++ b/src/main/java/at/gv/util/xsd/mis/usp_v2/xmldsig/DigestMethodType.java @@ -64,8 +64,8 @@ public class DigestMethodType { * *

* Objects of the following type(s) are allowed in the list - * {@link Object } * {@link Element } + * {@link Object } * {@link String } * * diff --git a/src/main/java/at/gv/util/xsd/mis/usp_v2/xmldsig/KeyInfoType.java b/src/main/java/at/gv/util/xsd/mis/usp_v2/xmldsig/KeyInfoType.java index 8a5bec4..b32a783 100644 --- a/src/main/java/at/gv/util/xsd/mis/usp_v2/xmldsig/KeyInfoType.java +++ b/src/main/java/at/gv/util/xsd/mis/usp_v2/xmldsig/KeyInfoType.java @@ -53,13 +53,13 @@ import org.w3c.dom.Element; public class KeyInfoType { @XmlElementRefs({ - @XmlElementRef(name = "SPKIData", namespace = "http://www.w3.org/2000/09/xmldsig#", type = JAXBElement.class, required = false), - @XmlElementRef(name = "PGPData", namespace = "http://www.w3.org/2000/09/xmldsig#", type = JAXBElement.class, required = false), + @XmlElementRef(name = "MgmtData", namespace = "http://www.w3.org/2000/09/xmldsig#", type = JAXBElement.class, required = false), @XmlElementRef(name = "RetrievalMethod", namespace = "http://www.w3.org/2000/09/xmldsig#", type = JAXBElement.class, required = false), @XmlElementRef(name = "X509Data", namespace = "http://www.w3.org/2000/09/xmldsig#", type = JAXBElement.class, required = false), - @XmlElementRef(name = "MgmtData", namespace = "http://www.w3.org/2000/09/xmldsig#", type = JAXBElement.class, required = false), + @XmlElementRef(name = "SPKIData", namespace = "http://www.w3.org/2000/09/xmldsig#", type = JAXBElement.class, required = false), + @XmlElementRef(name = "KeyValue", namespace = "http://www.w3.org/2000/09/xmldsig#", type = JAXBElement.class, required = false), @XmlElementRef(name = "KeyName", namespace = "http://www.w3.org/2000/09/xmldsig#", type = JAXBElement.class, required = false), - @XmlElementRef(name = "KeyValue", namespace = "http://www.w3.org/2000/09/xmldsig#", type = JAXBElement.class, required = false) + @XmlElementRef(name = "PGPData", namespace = "http://www.w3.org/2000/09/xmldsig#", type = JAXBElement.class, required = false) }) @XmlMixed @XmlAnyElement(lax = true) @@ -88,16 +88,16 @@ public class KeyInfoType { * *

* Objects of the following type(s) are allowed in the list - * {@link JAXBElement }{@code <}{@link SPKIDataType }{@code >} + * {@link Object } + * {@link JAXBElement }{@code <}{@link String }{@code >} + * {@link String } * {@link Element } - * {@link JAXBElement }{@code <}{@link PGPDataType }{@code >} * {@link JAXBElement }{@code <}{@link RetrievalMethodType }{@code >} * {@link JAXBElement }{@code <}{@link X509DataType }{@code >} - * {@link JAXBElement }{@code <}{@link String }{@code >} - * {@link Object } - * {@link JAXBElement }{@code <}{@link String }{@code >} + * {@link JAXBElement }{@code <}{@link SPKIDataType }{@code >} * {@link JAXBElement }{@code <}{@link KeyValueType }{@code >} - * {@link String } + * {@link JAXBElement }{@code <}{@link String }{@code >} + * {@link JAXBElement }{@code <}{@link PGPDataType }{@code >} * * */ diff --git a/src/main/java/at/gv/util/xsd/mis/usp_v2/xmldsig/KeyValueType.java b/src/main/java/at/gv/util/xsd/mis/usp_v2/xmldsig/KeyValueType.java index ff873e0..e89715e 100644 --- a/src/main/java/at/gv/util/xsd/mis/usp_v2/xmldsig/KeyValueType.java +++ b/src/main/java/at/gv/util/xsd/mis/usp_v2/xmldsig/KeyValueType.java @@ -42,8 +42,8 @@ import org.w3c.dom.Element; public class KeyValueType { @XmlElementRefs({ - @XmlElementRef(name = "DSAKeyValue", namespace = "http://www.w3.org/2000/09/xmldsig#", type = JAXBElement.class, required = false), - @XmlElementRef(name = "RSAKeyValue", namespace = "http://www.w3.org/2000/09/xmldsig#", type = JAXBElement.class, required = false) + @XmlElementRef(name = "RSAKeyValue", namespace = "http://www.w3.org/2000/09/xmldsig#", type = JAXBElement.class, required = false), + @XmlElementRef(name = "DSAKeyValue", namespace = "http://www.w3.org/2000/09/xmldsig#", type = JAXBElement.class, required = false) }) @XmlMixed @XmlAnyElement(lax = true) @@ -67,11 +67,11 @@ public class KeyValueType { * *

* Objects of the following type(s) are allowed in the list - * {@link JAXBElement }{@code <}{@link DSAKeyValueType }{@code >} - * {@link Element } - * {@link JAXBElement }{@code <}{@link RSAKeyValueType }{@code >} * {@link Object } * {@link String } + * {@link Element } + * {@link JAXBElement }{@code <}{@link RSAKeyValueType }{@code >} + * {@link JAXBElement }{@code <}{@link DSAKeyValueType }{@code >} * * */ diff --git a/src/main/java/at/gv/util/xsd/mis/usp_v2/xmldsig/ObjectType.java b/src/main/java/at/gv/util/xsd/mis/usp_v2/xmldsig/ObjectType.java index d1d716d..5c1ebf8 100644 --- a/src/main/java/at/gv/util/xsd/mis/usp_v2/xmldsig/ObjectType.java +++ b/src/main/java/at/gv/util/xsd/mis/usp_v2/xmldsig/ObjectType.java @@ -76,8 +76,8 @@ public class ObjectType { * *

* Objects of the following type(s) are allowed in the list - * {@link Object } * {@link Element } + * {@link Object } * {@link String } * * diff --git a/src/main/java/at/gv/util/xsd/mis/usp_v2/xmldsig/PGPDataType.java b/src/main/java/at/gv/util/xsd/mis/usp_v2/xmldsig/PGPDataType.java index 9b1c1b8..6d2b209 100644 --- a/src/main/java/at/gv/util/xsd/mis/usp_v2/xmldsig/PGPDataType.java +++ b/src/main/java/at/gv/util/xsd/mis/usp_v2/xmldsig/PGPDataType.java @@ -82,9 +82,9 @@ public class PGPDataType { *

* Objects of the following type(s) are allowed in the list * {@link JAXBElement }{@code <}{@link byte[]}{@code >} - * {@link Element } - * {@link Object } * {@link JAXBElement }{@code <}{@link byte[]}{@code >} + * {@link Object } + * {@link Element } * * */ diff --git a/src/main/java/at/gv/util/xsd/mis/usp_v2/xmldsig/SPKIDataType.java b/src/main/java/at/gv/util/xsd/mis/usp_v2/xmldsig/SPKIDataType.java index c0a6931..5cd9d4e 100644 --- a/src/main/java/at/gv/util/xsd/mis/usp_v2/xmldsig/SPKIDataType.java +++ b/src/main/java/at/gv/util/xsd/mis/usp_v2/xmldsig/SPKIDataType.java @@ -60,9 +60,9 @@ public class SPKIDataType { * *

* Objects of the following type(s) are allowed in the list + * {@link Element } * {@link JAXBElement }{@code <}{@link byte[]}{@code >} * {@link Object } - * {@link Element } * * */ diff --git a/src/main/java/at/gv/util/xsd/mis/usp_v2/xmldsig/SignatureMethodType.java b/src/main/java/at/gv/util/xsd/mis/usp_v2/xmldsig/SignatureMethodType.java index 12cb706..92cd0d8 100644 --- a/src/main/java/at/gv/util/xsd/mis/usp_v2/xmldsig/SignatureMethodType.java +++ b/src/main/java/at/gv/util/xsd/mis/usp_v2/xmldsig/SignatureMethodType.java @@ -68,8 +68,8 @@ public class SignatureMethodType { * *

* Objects of the following type(s) are allowed in the list - * {@link Object } * {@link JAXBElement }{@code <}{@link BigInteger }{@code >} + * {@link Object } * {@link String } * * diff --git a/src/main/java/at/gv/util/xsd/mis/usp_v2/xmldsig/SignaturePropertyType.java b/src/main/java/at/gv/util/xsd/mis/usp_v2/xmldsig/SignaturePropertyType.java index e6b1f69..078ff11 100644 --- a/src/main/java/at/gv/util/xsd/mis/usp_v2/xmldsig/SignaturePropertyType.java +++ b/src/main/java/at/gv/util/xsd/mis/usp_v2/xmldsig/SignaturePropertyType.java @@ -73,8 +73,8 @@ public class SignaturePropertyType { * *

* Objects of the following type(s) are allowed in the list - * {@link Object } * {@link Element } + * {@link Object } * {@link String } * * diff --git a/src/main/java/at/gv/util/xsd/mis/usp_v2/xmldsig/TransformType.java b/src/main/java/at/gv/util/xsd/mis/usp_v2/xmldsig/TransformType.java index e98f7ec..a17e181 100644 --- a/src/main/java/at/gv/util/xsd/mis/usp_v2/xmldsig/TransformType.java +++ b/src/main/java/at/gv/util/xsd/mis/usp_v2/xmldsig/TransformType.java @@ -68,10 +68,10 @@ public class TransformType { * *

* Objects of the following type(s) are allowed in the list - * {@link Element } - * {@link JAXBElement }{@code <}{@link String }{@code >} * {@link Object } + * {@link JAXBElement }{@code <}{@link String }{@code >} * {@link String } + * {@link Element } * * */ diff --git a/src/main/java/at/gv/util/xsd/mis/usp_v2/xmldsig/X509DataType.java b/src/main/java/at/gv/util/xsd/mis/usp_v2/xmldsig/X509DataType.java index b40cf7d..f32cae5 100644 --- a/src/main/java/at/gv/util/xsd/mis/usp_v2/xmldsig/X509DataType.java +++ b/src/main/java/at/gv/util/xsd/mis/usp_v2/xmldsig/X509DataType.java @@ -46,11 +46,11 @@ import org.w3c.dom.Element; public class X509DataType { @XmlElementRefs({ - @XmlElementRef(name = "X509IssuerSerial", namespace = "http://www.w3.org/2000/09/xmldsig#", type = JAXBElement.class, required = false), @XmlElementRef(name = "X509SubjectName", namespace = "http://www.w3.org/2000/09/xmldsig#", type = JAXBElement.class, required = false), - @XmlElementRef(name = "X509CRL", namespace = "http://www.w3.org/2000/09/xmldsig#", type = JAXBElement.class, required = false), @XmlElementRef(name = "X509Certificate", namespace = "http://www.w3.org/2000/09/xmldsig#", type = JAXBElement.class, required = false), - @XmlElementRef(name = "X509SKI", namespace = "http://www.w3.org/2000/09/xmldsig#", type = JAXBElement.class, required = false) + @XmlElementRef(name = "X509SKI", namespace = "http://www.w3.org/2000/09/xmldsig#", type = JAXBElement.class, required = false), + @XmlElementRef(name = "X509CRL", namespace = "http://www.w3.org/2000/09/xmldsig#", type = JAXBElement.class, required = false), + @XmlElementRef(name = "X509IssuerSerial", namespace = "http://www.w3.org/2000/09/xmldsig#", type = JAXBElement.class, required = false) }) @XmlAnyElement(lax = true) protected List x509CRLOrX509CertificateOrX509IssuerSerial; @@ -73,13 +73,13 @@ public class X509DataType { * *

* Objects of the following type(s) are allowed in the list - * {@link JAXBElement }{@code <}{@link X509IssuerSerialType }{@code >} + * {@link Object } * {@link Element } * {@link JAXBElement }{@code <}{@link String }{@code >} * {@link JAXBElement }{@code <}{@link byte[]}{@code >} * {@link JAXBElement }{@code <}{@link byte[]}{@code >} * {@link JAXBElement }{@code <}{@link byte[]}{@code >} - * {@link Object } + * {@link JAXBElement }{@code <}{@link X509IssuerSerialType }{@code >} * * */ diff --git a/src/main/resources/wsdl/custom-bindings/mis-usp_v2-wsdl.xml b/src/main/resources/wsdl/custom-bindings/mis-usp_v2-wsdl.xml index 93c9e7f..184d689 100644 --- a/src/main/resources/wsdl/custom-bindings/mis-usp_v2-wsdl.xml +++ b/src/main/resources/wsdl/custom-bindings/mis-usp_v2-wsdl.xml @@ -2,7 +2,8 @@ + xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" + xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"> diff --git a/src/main/resources/wsdl/mis/usp_v2/Synchronisation-1.wsdl b/src/main/resources/wsdl/mis/usp_v2/Synchronisation-1.wsdl index 8142d4a..9dc5848 100644 --- a/src/main/resources/wsdl/mis/usp_v2/Synchronisation-1.wsdl +++ b/src/main/resources/wsdl/mis/usp_v2/Synchronisation-1.wsdl @@ -1,2627 +1,2632 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - simple type for dates (union), which may omit day + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + simple type for dates (union), which may omit day and/or month - - - - - - complex type for a parameterised description + + + + + + complex type for a parameterised description - - - - - element contains parameterised text and the + + + + + element contains parameterised text and the definition of the annotation - - - - - element contains the definition of parameters used + + + + + element contains the definition of parameters used - - - - - - - complex type for describing a parameterised text + + + + + + + complex type for describing a parameterised text - - - - - element represent a parameter to be replaced in the + + + + + element represent a parameter to be replaced in the parameterised text - - - - - - - complex type for describing arbitrary properties of + + + + + + + complex type for describing arbitrary properties of mandates - - - - - additional usp specific property for an electronic mandate - - - - - - any additional properties - - - - - - - complex type for describing the mandate using some + + + + + additional usp specific property for an electronic mandate + + + + + + any additional properties + + + + + + + complex type for describing the mandate using some textual descriptions - - - - - - element contains a parameterised description of a + + + + + + element contains a parameterised description of a mandate's content - - - - - element contians parameterised text + + + + + element contians parameterised text - - - - - - - - - the ID of the Mandate which is referenced by + + + + + + + + + the ID of the Mandate which is referenced by the TextualDescription-Element - - - - - - - - - - - - - group of constraints applicable for a mandate + + + + + + + + + + + + + group of constraints applicable for a mandate content - - - - - - - - simple type for textual descriptions of mandates, + + + + + + + + simple type for textual descriptions of mandates, constraints,.. - - - - - - - - arbitrary annotation containing a short description + + + + + + + + arbitrary annotation containing a short description of the mandate - - - - - - - - - - - element contains arbitrary restrictions + + + + + + + + + + + element contains arbitrary restrictions - - - - - personal data defining the intermediary + + + + + personal data defining the intermediary - - - - - the place and the date of issuing the mandate + + + + + the place and the date of issuing the mandate - - - - - - - - - - - - electronic mandate - - - - - - arbitrary annotation containing a short description + + + + + + + + + + + + electronic mandate + + + + + + arbitrary annotation containing a short description of the mandate - - - - - location to retrieve current status information + + + + + location to retrieve current status information - - - - - personal data defining the representative + + + + + personal data defining the representative - - - - - personal data defining the mandator + + + + + personal data defining the mandator - - - - - personal data defining the intermediary + + + + + personal data defining the intermediary - - - - - the place and the date of issuing the mandate + + + + + the place and the date of issuing the mandate - - - - - element contains arbitrary properties of a mandate + + + + + element contains arbitrary properties of a mandate - - - - - - element contains the content of a mandate + + + + + + element contains the content of a mandate - - - - - - - - - - - - personal data defining the mandator + + + + + + + + + + + + personal data defining the mandator - - - - - - element of corporate body type, derived from Person - - - - - element of physical person type, dreived from Person (abstract) - - - - - - - - element contains the definition of parameters used + + + + + + element of corporate body type, derived from Person + + + + + element of physical person type, dreived from Person (abstract) + + + + + + + + element contains the definition of parameters used - - - - - - element defines a parameter - - - - - - - - element contains a parameterised description of a + + + + + + element defines a parameter + + + + + + + + element contains a parameterised description of a mandate's content - - - - - element contains parameterised text and the + + + + + element contains parameterised text and the definition of the annotation - - - - - element represent a parameter to be replaced in the + + + + + element represent a parameter to be replaced in the parameterised text - - - - - - - - element contains arbitrary properties of a mandate + + + + + + + + element contains arbitrary properties of a mandate - - - - - personal data defining the representative + + + + + personal data defining the representative - - - - - - element of corporate body type, derived from Person - - - - - element of physical person type, dreived from Person (abstract) - - - - - - - - element defines a parameter - - - - - - - - - - - - element contains the content of a mandate + + + + + + element of corporate body type, derived from Person + + + + + element of physical person type, dreived from Person (abstract) + + + + + + + + element defines a parameter + + + + + + + + + + + + element contains the content of a mandate - - - - - location to retrieve current status information + + + + + location to retrieve current status information - - - - - element contians parameterised text + + + + + element contians parameterised text - - - - - element describes beginning of the validity period + + + + + element describes beginning of the validity period - - - - - element describes endpoint of the validity period + + + + + element describes endpoint of the validity period - - - - - group of constraints applicable for a mandate + + + + + group of constraints applicable for a mandate content - - - - - - - - element describes beginning of the validity period + + + + + + + + element describes beginning of the validity period - - - - - element describes endpoint of the validity period + + + + + element describes endpoint of the validity period - - - - - - - - - - - element contains arbitrary restrictions + + + + + + + + + + + element contains arbitrary restrictions - - - - - element of corporate body type, derived from Person - - - - - element of physical person type, dreived from Person (abstract) - - - - - - - - - - - - - - - - element contains arbitrary restrictions + + + + + element of corporate body type, derived from Person + + + + + element of physical person type, dreived from Person (abstract) + + + + + + + + + + + + + + + + element contains arbitrary restrictions - - - - - - - - - This version of person deploys only global elements. All types derived from abstract types have been replaced by substitution groups - - - - main structure of address data - - - - - unique identification entities - - - - - - - - - main structure of person data - - - - - possibility to include common austrian primary keys in human readable way, english translation not available - - - - - unique identification entities - - - - - - - - - known + any other alternative name types - - - - - - compare BankverbindungTyp - - - - - Account holder, compare Inhaber - - - - - compare BankName - - - - - - compare InternationaleBankverbindung - - - - - - compare IBAN - - - - - comapre BIC - - - - - - - - compare NationaleBankverbindung - - - - - - compare Kontonummer - - - - - compare BLZ - - - - - - - - - - - juridical person, organisation, compare NichtNatuerlichePersonTyp - - - - - - - URI pointing to a predefined Class of CorporateBodies, compare Typ - - - - - name of corporate body (whole name), compare VollerName - - - - - type of company (eg AG, OHG, ...), URI pointing to predefined LegalForm, compare Rechtsform - - - - - part of an organisation, see also X.500 ou (eg departement, section, branch, ...) , compare Organisation - - - - - any additional properties - - - - - - - - - signed person datastructure. The first Identification elements (from the base type) denote the record as such (e.g. database key for this record) - not to be mistaken for identifiers of the person or of an address (they have their own Identification elements). - - - - - - - element of person type, essential abstract, subsitute PhysicalPerson or CorporateBody instead or use with xsi:type="..." - - - - - element of address type, essentially abstract. Use InternetAddress, TelephoneAddress, PostalAddress, TypedPostalAddress instead, or use Address with xsi:type Attribute - - - - - one or more electronic signatures applied on fields above - - - - - container for your Information needs. Contained Elements must reside in a different Namespace - - - - - - any additional properties - - - - - - - - - - - - container for parts of a name, comapre PersonenNameTyp - - - - - Every given name should be contained inside a GivenName Tag. If that is not possible due to dabase contraints, ... putting several given names inside one GivenName Element is acceptable - - - - - Every family name should be contained inside a FamilyName Tag. If that is not possible due to dabase contraints, ... putting several family names inside one FamilyName Element is acceptable - - - - - - - - - - - - - - - - - - - - - Inlcudes all Information that is not exactly a name: academic or aristocratic titles, ... the new position attribute can contain a suffx or prefix value - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - physical person, compare NatuerlichePersonTyp - - - - - - - data related to the person's name - - - - - status of a person in the cycle of life, compare Familienstand - - - - - gender, comapre Geschlecht - - - - - date of birth, compare Geburtsdatum - - - - - place of birth, compare Geburtsort - - - - - nationality of Person, compare Staatsangehoerigkeit. attention! New Fomrat is complex, string value accepted for compatibility only - - - - - any additional properties - - - - - - - - - compare PostAdresseTyp - - - - - - - Code for the country, use ISO or internatinal Postalstandard, compare Staatscode - - - - - - - - - - Name of the country, use ISO Name, or international Postal Standard, compare Staatsname - - - - - ZIP, compare Postleitzahl - - - - - compare Gemeinde - - - - - - - - if streetname not available use name of Ortschaft - - - - - - - - - - - - - - - - - - - - - - - - - juridical person, organisation, compare NichtNatuerlichePersonTyp - - - - - - - URI pointing to a predefined Class of CorporateBodies, compare Typ - - - - - name of corporate body (whole name), compare VollerName - - - - - alternative names of corporate body (abbreviations, short name, synonyms, ...), comapre AlternativName - - - - - type of company (eg AG, OHG, ...), URI pointing to predefined LegalForm, compare Rechtsform - - - - - part of an organisation, see also X.500 ou (eg departement, section, branch, ...) , compare Organisation - - - - - National or international bank connection, compare Bankverbindung - - - - - any additional properties - - - - - - - - - simple type for dates (union), which may omit day and/or month - - - - - - simple type for dates (union), which may omit day and/or month - - - - - - known types of alternative names - - - - - - - - - - - - known relations (family + functional) - - - - - - - - - - - - - - - - zmr use only - - - - - - - - - - - - - - - - unique identifier - - - - - actual value of the identifier. - - - - - - - - - - - - type of value (eg 'ZMR', 'SV-Nummer', 'Martrikelnummer', database identification, ...) - - - - - authority, which is reponsible for generation of the identifier (eg university in case of 'MatrikelNummer') - - - - - any additional properties - - - - - - - - - e.g. e-mail, webiste, compare InternetAdresseTyp - - - - - - - certificate for secure communication - - - - - URI: email-Address, Web, FTP, LDAP, ..., comapre Adress - - - - - any additional properties - - - - - - - - - simple type for marital status of a person - - - - - - - - - - - like TelephoneAddresseType but with additional smsEnabled attribute - - - - - - - - - - comapre, StaatsangehoerigkeitTyp - - - - - - - - - - - - - - - - - - signed person datastructure. The first Identification elements (from the base type) denote the record as such (e.g. database key for this record) - not to be mistaken for identifiers of the person or of an address (they have their own Identification elements). - - - - - - - element of person type, essential abstract, subsitute PhysicalPerson or CorporateBody instead or use with xsi:type="..." - - - - - element of address type, essentially abstract. Use InternetAddress, TelephoneAddress, PostalAddress, TypedPostalAddress instead, or use Address with xsi:type Attribute - - - - - one or more electronic signatures applied on fields above - - - - - container for your Information needs. Contained Elements must reside in a different Namespace - - - - - - any additional properties - - - - - - - - - - - - container for parts of a name, comapre PersonenNameTyp - - - - - Complete Name (including Affixes) of the Person, especially useful for names from different cultural environments - - - - - - - - - - - - - - - - - - - - - Every given name should be contained inside a GivenName Tag. If that is not possible due to dabase contraints, ... putting several given names inside one GivenName Element is acceptable - - - - - A Person in possesion of more than one GivenName frequently preferrs the use of a Name other than the first GivenName - - - - - MiddleNames are not commonly found in central Europe. The field is mainly for compatibility reasons - - - - - Every family name should be contained inside a FamilyName Tag. If that is not possible due to dabase contraints, ... putting several family names inside one FamilyName Element is acceptable - - - - - - - - - - - - - - - - - - - - - Inlcudes all Information that is not exactly a name: academic or aristocratic titles, ... the new position attribute can contain a suffx or prefix value - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - physical person, compare NatuerlichePersonTyp - - - - - - - data related to the person's name - - - - - Former name, Artist name, changes of Given name ..., compare AlternativName - - - - - status of a person in the cycle of life, compare Familienstand - - - - - gender, comapre Geschlecht - - - - - date of birth, compare Geburtsdatum - - - - - place of birth, compare Geburtsort - - - - - state of birth, comapre Geburtsbundesland - - - - - country of birth, compare Geburtsland - - - - - date of death, compare Sterbedatum - - - - - nationality of Person, compare Staatsangehoerigkeit. attention! New Fomrat is complex, string value accepted for compatibility only - - - - - confession (religion) of Person - xs:token? gibt es wirklich keine Staaten mit Leerzeichen im Namen? - - - - - occupation, compare Beruf - - - - - relatives (parents, ...), compare Verwandter - - - - - National or international bank connection, compare Bankverbindung - - - - - any additional properties - - - - - - - - - compare PostAdresseTyp - - - - - - - Code for the country, use ISO or internatinal Postalstandard, compare Staatscode - - - - - - - - - - Name of the country, use ISO Name, or international Postal Standard, compare Staatsname - - - - - ZIP, compare Postleitzahl - - - - - compare Region - - - - - compare Bundesland - - - - - compare Gemeinde - - - - - compare Gemeindekennzahl - - - - - ZMR use, compare Ortschaft - - - - - ZMR use, comapre OrtschaftZweisprachig - - - - - - - - - - - - - - zmr use only - - - - - zmr use only - - - - - - Addressregister database keys used to identify Addresses - - - - - - - - - - - - - - - If Addressis used outside of PersonData a recipient can be specified - - - - - - - - rather OrganizationUnit e.G Sales Departement - - - - - e.g. Smith Ltd - - - - - - - - - - - - - - - - - - - - - - known + any other relation - - - - - - simple type for sex (gender) of person - - - - - - - - - - formated number or set of telephone number parts - - - - - Complete number, ready formated - e.g. +43 1 5131345 4664 compare FormatierteNummer - - - - - set of telephone number parts - - - - - - - phone numbers, conmpare TelephoneAdresseTyp - - - - - - - type of phononumber - category (eg 'Festnetz', 'Mobile', 'fax', ...) - - - - - phonenumber - - - - - any additional properties - - - - - - - - - postal address with type information, compare TypisiertePostAdresseTyp - - - - - - - type of address - category (eg 'Wohnsitz', 'Zentrale', ...) - - - - - Postal or ZMR Address, compare PostAdresse - - - - - any additional properties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - pattern type for enlargement of type definitions. Contents as follows + + + + + + + + + This version of person deploys only global elements. All types derived from abstract types have been replaced by substitution groups + + + + main structure of address data + + + + + unique identification entities + + + + + + + + + main structure of person data + + + + + possibility to include common austrian primary keys in human readable way, english translation not available + + + + + unique identification entities + + + + + + + + + known + any other alternative name types + + + + + + compare BankverbindungTyp + + + + + Account holder, compare Inhaber + + + + + compare BankName + + + + + + compare InternationaleBankverbindung + + + + + + compare IBAN + + + + + comapre BIC + + + + + + + + compare NationaleBankverbindung + + + + + + compare Kontonummer + + + + + compare BLZ + + + + + + + + + + + juridical person, organisation, compare NichtNatuerlichePersonTyp + + + + + + + URI pointing to a predefined Class of CorporateBodies, compare Typ + + + + + name of corporate body (whole name), compare VollerName + + + + + type of company (eg AG, OHG, ...), URI pointing to predefined LegalForm, compare Rechtsform + + + + + part of an organisation, see also X.500 ou (eg departement, section, branch, ...) , compare Organisation + + + + + any additional properties + + + + + + + + + signed person datastructure. The first Identification elements (from the base type) denote the record as such (e.g. database key for this record) - not to be mistaken for identifiers of the person or of an address (they have their own Identification elements). + + + + + + + element of person type, essential abstract, subsitute PhysicalPerson or CorporateBody instead or use with xsi:type="..." + + + + + element of address type, essentially abstract. Use InternetAddress, TelephoneAddress, PostalAddress, TypedPostalAddress instead, or use Address with xsi:type Attribute + + + + + one or more electronic signatures applied on fields above + + + + + container for your Information needs. Contained Elements must reside in a different Namespace + + + + + + any additional properties + + + + + + + + + + + + container for parts of a name, comapre PersonenNameTyp + + + + + Every given name should be contained inside a GivenName Tag. If that is not possible due to dabase contraints, ... putting several given names inside one GivenName Element is acceptable + + + + + Every family name should be contained inside a FamilyName Tag. If that is not possible due to dabase contraints, ... putting several family names inside one FamilyName Element is acceptable + + + + + + + + + + + + + + + + + + + + + Inlcudes all Information that is not exactly a name: academic or aristocratic titles, ... the new position attribute can contain a suffx or prefix value + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + physical person, compare NatuerlichePersonTyp + + + + + + + data related to the person's name + + + + + status of a person in the cycle of life, compare Familienstand + + + + + gender, comapre Geschlecht + + + + + date of birth, compare Geburtsdatum + + + + + place of birth, compare Geburtsort + + + + + nationality of Person, compare Staatsangehoerigkeit. attention! New Fomrat is complex, string value accepted for compatibility only + + + + + any additional properties + + + + + + + + + compare PostAdresseTyp + + + + + + + Code for the country, use ISO or internatinal Postalstandard, compare Staatscode + + + + + + + + + + Name of the country, use ISO Name, or international Postal Standard, compare Staatsname + + + + + ZIP, compare Postleitzahl + + + + + compare Gemeinde + + + + + + + + if streetname not available use name of Ortschaft + + + + + + + + + + + + + + + + + + + + + + + + + juridical person, organisation, compare NichtNatuerlichePersonTyp + + + + + + + URI pointing to a predefined Class of CorporateBodies, compare Typ + + + + + name of corporate body (whole name), compare VollerName + + + + + alternative names of corporate body (abbreviations, short name, synonyms, ...), comapre AlternativName + + + + + type of company (eg AG, OHG, ...), URI pointing to predefined LegalForm, compare Rechtsform + + + + + part of an organisation, see also X.500 ou (eg departement, section, branch, ...) , compare Organisation + + + + + National or international bank connection, compare Bankverbindung + + + + + any additional properties + + + + + + + + + simple type for dates (union), which may omit day and/or month + + + + + + simple type for dates (union), which may omit day and/or month + + + + + + known types of alternative names + + + + + + + + + + + + known relations (family + functional) + + + + + + + + + + + + + + + + zmr use only + + + + + + + + + + + + + + + + unique identifier + + + + + actual value of the identifier. + + + + + + + + + + + + type of value (eg 'ZMR', 'SV-Nummer', 'Martrikelnummer', database identification, ...) + + + + + authority, which is reponsible for generation of the identifier (eg university in case of 'MatrikelNummer') + + + + + any additional properties + + + + + + + + + e.g. e-mail, webiste, compare InternetAdresseTyp + + + + + + + certificate for secure communication + + + + + URI: email-Address, Web, FTP, LDAP, ..., comapre Adress + + + + + any additional properties + + + + + + + + + simple type for marital status of a person + + + + + + + + + + + like TelephoneAddresseType but with additional smsEnabled attribute + + + + + + + + + + comapre, StaatsangehoerigkeitTyp + + + + + + + + + + + + + + + + + + signed person datastructure. The first Identification elements (from the base type) denote the record as such (e.g. database key for this record) - not to be mistaken for identifiers of the person or of an address (they have their own Identification elements). + + + + + + + element of person type, essential abstract, subsitute PhysicalPerson or CorporateBody instead or use with xsi:type="..." + + + + + element of address type, essentially abstract. Use InternetAddress, TelephoneAddress, PostalAddress, TypedPostalAddress instead, or use Address with xsi:type Attribute + + + + + one or more electronic signatures applied on fields above + + + + + container for your Information needs. Contained Elements must reside in a different Namespace + + + + + + any additional properties + + + + + + + + + + + + container for parts of a name, comapre PersonenNameTyp + + + + + Complete Name (including Affixes) of the Person, especially useful for names from different cultural environments + + + + + + + + + + + + + + + + + + + + + Every given name should be contained inside a GivenName Tag. If that is not possible due to dabase contraints, ... putting several given names inside one GivenName Element is acceptable + + + + + A Person in possesion of more than one GivenName frequently preferrs the use of a Name other than the first GivenName + + + + + MiddleNames are not commonly found in central Europe. The field is mainly for compatibility reasons + + + + + Every family name should be contained inside a FamilyName Tag. If that is not possible due to dabase contraints, ... putting several family names inside one FamilyName Element is acceptable + + + + + + + + + + + + + + + + + + + + + Inlcudes all Information that is not exactly a name: academic or aristocratic titles, ... the new position attribute can contain a suffx or prefix value + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + physical person, compare NatuerlichePersonTyp + + + + + + + data related to the person's name + + + + + Former name, Artist name, changes of Given name ..., compare AlternativName + + + + + status of a person in the cycle of life, compare Familienstand + + + + + gender, comapre Geschlecht + + + + + date of birth, compare Geburtsdatum + + + + + place of birth, compare Geburtsort + + + + + state of birth, comapre Geburtsbundesland + + + + + country of birth, compare Geburtsland + + + + + date of death, compare Sterbedatum + + + + + nationality of Person, compare Staatsangehoerigkeit. attention! New Fomrat is complex, string value accepted for compatibility only + + + + + confession (religion) of Person - xs:token? gibt es wirklich keine Staaten mit Leerzeichen im Namen? + + + + + occupation, compare Beruf + + + + + relatives (parents, ...), compare Verwandter + + + + + National or international bank connection, compare Bankverbindung + + + + + any additional properties + + + + + + + + + compare PostAdresseTyp + + + + + + + Code for the country, use ISO or internatinal Postalstandard, compare Staatscode + + + + + + + + + + Name of the country, use ISO Name, or international Postal Standard, compare Staatsname + + + + + ZIP, compare Postleitzahl + + + + + compare Region + + + + + compare Bundesland + + + + + compare Gemeinde + + + + + compare Gemeindekennzahl + + + + + ZMR use, compare Ortschaft + + + + + ZMR use, comapre OrtschaftZweisprachig + + + + + + + + + + + + + + zmr use only + + + + + zmr use only + + + + + + Addressregister database keys used to identify Addresses + + + + + + + + + + + + + + + If Addressis used outside of PersonData a recipient can be specified + + + + + + + + rather OrganizationUnit e.G Sales Departement + + + + + e.g. Smith Ltd + + + + + + + + + + + + + + + + + + + + + + known + any other relation + + + + + + simple type for sex (gender) of person + + + + + + + + + + formated number or set of telephone number parts + + + + + Complete number, ready formated - e.g. +43 1 5131345 4664 compare FormatierteNummer + + + + + set of telephone number parts + + + + + + + phone numbers, conmpare TelephoneAdresseTyp + + + + + + + type of phononumber - category (eg 'Festnetz', 'Mobile', 'fax', ...) + + + + + phonenumber + + + + + any additional properties + + + + + + + + + postal address with type information, compare TypisiertePostAdresseTyp + + + + + + + type of address - category (eg 'Wohnsitz', 'Zentrale', ...) + + + + + Postal or ZMR Address, compare PostAdresse + + + + + any additional properties + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + pattern type for enlargement of type definitions. Contents as follows x:sometext or 12345 or _ or other symbols - - - - - - - - dummy abstract Peson Data element needed for bi-lingual schema (substitution groups) - - - - - possibility to include common austrian primary keys in human readable way, english translation not available - - - - - element of address type, essentially abstract. Use InternetAddress, TelephoneAddress, PostalAddress, TypedPostalAddress instead, or use Address with xsi:type Attribute - - - - - Former name, Artist name, changes of Given name ..., compare AlternativName - - - - - - - - - - - - compare Vorwahl - - - - - National or international bank connection, compare Bankverbindung - - - - - element of corporate body type, derived from Person - - - - - data related to the person's name - - - - - element of signed person datastructure type - - - - - - - element of corporate body type, derived from Person - - - - - element of physical person type, dreived from Person (abstract) - - - - - - - Postal or ZMR Address, compare PostAdresse - - - - - InternetAdress such as e-mail or website, compare InternetAdresse - - - - - Typed TelephoneAddress, compare TelefonAdresse - - - - - - - - - element of physical person type, dreived from Person (abstract) - - - - - Postal or ZMR Address, compare PostAdresse - - - - - confession (religion) of Person - xs:token? gibt es wirklich keine Staaten mit Leerzeichen im Namen? - - - - - element of corporate body type, derived from Person - - - - - country of birth, compare Geburtsland - - - - - date of birth, compare Geburtsdatum - - - - - date of death, compare Sterbedatum - - - - - Ergänzungsregister für nicht-natürliche Personen (CorporateBody) - - - - - compare Klappe - - - - - - - Complete number, ready formated - e.g. +43 1 5131345 4664 compare FormatierteNummer - - - - - compare InternationalerLaendercode - - - - - InternetAdress such as e-mail or website, compare InternetAdresse - - - - - status of a person in the cycle of life, compare Familienstand - - - - - - - data related to the person's name - - - - - compare NationalNummer - - - - - nationality of Person, compare Staatsangehoerigkeit. attention! New Fomrat is complex, string value accepted for compatibility only - - - - - occupation, compare Beruf - - - - - - element of person type, essential abstract, subsitute PhysicalPerson or CorporateBody instead or use with xsi:type="..." - - - - - element of signed person datastructure type - - - - - element of physical person type, dreived from Person (abstract) - - - - - place of birth, compare Geburtsort - - - - - Postal or ZMR Address, compare PostAdresse - - - - - gender, comapre Geschlecht - - - - - - - state of birth, comapre Geburtsbundesland - - - - - - compare Anschlussnummer - - - - - teletyper or telephone for the hearing impaired - - - - - - Typed TelephoneAddress, compare TelefonAdresse - - - - - Typed Postal or ZMR Address, compare TypisiertePostAdresse - - - - - - - relatives (parents, ...), compare Verwandter - - - - - - type of the relationship, compare Verwandschftsgrad - - - - - element of physical person type, dreived from Person (abstract) - - - - - - - - set of telephone number parts - - - - - compare InternationalerLaendercode - - - - - compare NationalNummer - - - - - compare Vorwahl - - - - - compare Anschlussnummer - - - - - compare Klappe - - - - - - - - - - additional usp specific property for an electronic mandate - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + dummy abstract Peson Data element needed for bi-lingual schema (substitution groups) + + + + + possibility to include common austrian primary keys in human readable way, english translation not available + + + + + element of address type, essentially abstract. Use InternetAddress, TelephoneAddress, PostalAddress, TypedPostalAddress instead, or use Address with xsi:type Attribute + + + + + Former name, Artist name, changes of Given name ..., compare AlternativName + + + + + + + + + + + + compare Vorwahl + + + + + National or international bank connection, compare Bankverbindung + + + + + element of corporate body type, derived from Person + + + + + data related to the person's name + + + + + element of signed person datastructure type + + + + + + + element of corporate body type, derived from Person + + + + + element of physical person type, dreived from Person (abstract) + + + + + + + Postal or ZMR Address, compare PostAdresse + + + + + InternetAdress such as e-mail or website, compare InternetAdresse + + + + + Typed TelephoneAddress, compare TelefonAdresse + + + + + + + + + element of physical person type, dreived from Person (abstract) + + + + + Postal or ZMR Address, compare PostAdresse + + + + + confession (religion) of Person - xs:token? gibt es wirklich keine Staaten mit Leerzeichen im Namen? + + + + + element of corporate body type, derived from Person + + + + + country of birth, compare Geburtsland + + + + + date of birth, compare Geburtsdatum + + + + + date of death, compare Sterbedatum + + + + + Ergänzungsregister für nicht-natürliche Personen (CorporateBody) + + + + + compare Klappe + + + + + + + Complete number, ready formated - e.g. +43 1 5131345 4664 compare FormatierteNummer + + + + + compare InternationalerLaendercode + + + + + InternetAdress such as e-mail or website, compare InternetAdresse + + + + + status of a person in the cycle of life, compare Familienstand + + + + + + + data related to the person's name + + + + + compare NationalNummer + + + + + nationality of Person, compare Staatsangehoerigkeit. attention! New Fomrat is complex, string value accepted for compatibility only + + + + + occupation, compare Beruf + + + + + + element of person type, essential abstract, subsitute PhysicalPerson or CorporateBody instead or use with xsi:type="..." + + + + + element of signed person datastructure type + + + + + element of physical person type, dreived from Person (abstract) + + + + + place of birth, compare Geburtsort + + + + + Postal or ZMR Address, compare PostAdresse + + + + + gender, comapre Geschlecht + + + + + + + state of birth, comapre Geburtsbundesland + + + + + + compare Anschlussnummer + + + + + teletyper or telephone for the hearing impaired + + + + + + Typed TelephoneAddress, compare TelefonAdresse + + + + + Typed Postal or ZMR Address, compare TypisiertePostAdresse + + + + + + + relatives (parents, ...), compare Verwandter + + + + + + type of the relationship, compare Verwandschftsgrad + + + + + element of physical person type, dreived from Person (abstract) + + + + + + + + set of telephone number parts + + + + + compare InternationalerLaendercode + + + + + compare NationalNummer + + + + + compare Vorwahl + + + + + compare Anschlussnummer + + + + + compare Klappe + + + + + + + + + + additional usp specific property for an electronic mandate + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + this is the general purpose response element used to acknowledge several events - - - - - - - - - - - - - - - - - - - - - - - - - - - element contains arbitrary properties of a mandate + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + element contains arbitrary properties of a mandate + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + electronic mandate + + + + + + + + + + electronic mandate + + + + + + + + + + + + + + + + + + + + + + + + + + personal data defining the mandator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - electronic mandate - - - - - - - - - - electronic mandate - - - - - - - - - - - - - - - - - - - - - - - - - - personal data defining the mandator + + + + + personal data defining the representative - - - - - personal data defining the representative - - - - - - - - - electronic mandate - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + electronic mandate + + + + + + + + + + + + + + + + + + + + + + + + + + + + + this is the general purpose response element used to acknowledge several events - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - personal data defining the mandator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + personal data defining the mandator - - - - - personal data defining the representative + + + + + personal data defining the representative - - - - - element contains arbitrary properties of a mandate + + + + + element contains arbitrary properties of a mandate - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + this is the general purpose response element used to acknowledge several events - - - - - - - - - - - - + + + + + + + + + + + + this is the general purpose response element used to acknowledge several events - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/wsdl/mis/usp_v2/Synchronisation-1_backup.wsdl b/src/main/resources/wsdl/mis/usp_v2/Synchronisation-1_backup.wsdl new file mode 100644 index 0000000..9dc5848 --- /dev/null +++ b/src/main/resources/wsdl/mis/usp_v2/Synchronisation-1_backup.wsdl @@ -0,0 +1,2632 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + simple type for dates (union), which may omit day + and/or month + + + + + + complex type for a parameterised description + + + + + + element contains parameterised text and the + definition of the annotation + + + + + element contains the definition of parameters used + + + + + + + + complex type for describing a parameterised text + + + + + + element represent a parameter to be replaced in the + parameterised text + + + + + + + complex type for describing arbitrary properties of + mandates + + + + + additional usp specific property for an electronic mandate + + + + + + any additional properties + + + + + + + complex type for describing the mandate using some + textual descriptions + + + + + + element contains a parameterised description of a + mandate's + content + + + + + + element contians parameterised text + + + + + + + + + + the ID of the Mandate which is referenced by + the TextualDescription-Element + + + + + + + + + + + + + group of constraints applicable for a mandate + content + + + + + + + + simple type for textual descriptions of mandates, + constraints,.. + + + + + + + + arbitrary annotation containing a short description + of the mandate + + + + + + + + + + + element contains arbitrary restrictions + + + + + + personal data defining the intermediary + + + + + + the place and the date of issuing the mandate + + + + + + + + + + + + + electronic mandate + + + + + + arbitrary annotation containing a short description + of the mandate + + + + + location to retrieve current status information + + + + + + personal data defining the representative + + + + + + personal data defining the mandator + + + + + + personal data defining the intermediary + + + + + + the place and the date of issuing the mandate + + + + + + element contains arbitrary properties of a mandate + + + + + + + element contains the content of a mandate + + + + + + + + + + + + + personal data defining the mandator + + + + + + + element of corporate body type, derived from Person + + + + + element of physical person type, dreived from Person (abstract) + + + + + + + + element contains the definition of parameters used + + + + + + + element defines a parameter + + + + + + + + element contains a parameterised description of a + mandate's + content + + + + + + element contains parameterised text and the + definition of the annotation + + + + + element represent a parameter to be replaced in the + parameterised text + + + + + + + + element contains arbitrary properties of a mandate + + + + + + personal data defining the representative + + + + + + + element of corporate body type, derived from Person + + + + + element of physical person type, dreived from Person (abstract) + + + + + + + + element defines a parameter + + + + + + + + + + + + element contains the content of a mandate + + + + + + location to retrieve current status information + + + + + + element contians parameterised text + + + + + + element describes beginning of the validity period + + + + + + element describes endpoint of the validity period + + + + + + group of constraints applicable for a mandate + content + + + + + + + + element describes beginning of the validity period + + + + + + element describes endpoint of the validity period + + + + + + + + + + + + element contains arbitrary restrictions + + + + + + element of corporate body type, derived from Person + + + + + element of physical person type, dreived from Person (abstract) + + + + + + + + + + + + + + + + element contains arbitrary restrictions + + + + + + + + + + This version of person deploys only global elements. All types derived from abstract types have been replaced by substitution groups + + + + main structure of address data + + + + + unique identification entities + + + + + + + + + main structure of person data + + + + + possibility to include common austrian primary keys in human readable way, english translation not available + + + + + unique identification entities + + + + + + + + + known + any other alternative name types + + + + + + compare BankverbindungTyp + + + + + Account holder, compare Inhaber + + + + + compare BankName + + + + + + compare InternationaleBankverbindung + + + + + + compare IBAN + + + + + comapre BIC + + + + + + + + compare NationaleBankverbindung + + + + + + compare Kontonummer + + + + + compare BLZ + + + + + + + + + + + juridical person, organisation, compare NichtNatuerlichePersonTyp + + + + + + + URI pointing to a predefined Class of CorporateBodies, compare Typ + + + + + name of corporate body (whole name), compare VollerName + + + + + type of company (eg AG, OHG, ...), URI pointing to predefined LegalForm, compare Rechtsform + + + + + part of an organisation, see also X.500 ou (eg departement, section, branch, ...) , compare Organisation + + + + + any additional properties + + + + + + + + + signed person datastructure. The first Identification elements (from the base type) denote the record as such (e.g. database key for this record) - not to be mistaken for identifiers of the person or of an address (they have their own Identification elements). + + + + + + + element of person type, essential abstract, subsitute PhysicalPerson or CorporateBody instead or use with xsi:type="..." + + + + + element of address type, essentially abstract. Use InternetAddress, TelephoneAddress, PostalAddress, TypedPostalAddress instead, or use Address with xsi:type Attribute + + + + + one or more electronic signatures applied on fields above + + + + + container for your Information needs. Contained Elements must reside in a different Namespace + + + + + + any additional properties + + + + + + + + + + + + container for parts of a name, comapre PersonenNameTyp + + + + + Every given name should be contained inside a GivenName Tag. If that is not possible due to dabase contraints, ... putting several given names inside one GivenName Element is acceptable + + + + + Every family name should be contained inside a FamilyName Tag. If that is not possible due to dabase contraints, ... putting several family names inside one FamilyName Element is acceptable + + + + + + + + + + + + + + + + + + + + + Inlcudes all Information that is not exactly a name: academic or aristocratic titles, ... the new position attribute can contain a suffx or prefix value + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + physical person, compare NatuerlichePersonTyp + + + + + + + data related to the person's name + + + + + status of a person in the cycle of life, compare Familienstand + + + + + gender, comapre Geschlecht + + + + + date of birth, compare Geburtsdatum + + + + + place of birth, compare Geburtsort + + + + + nationality of Person, compare Staatsangehoerigkeit. attention! New Fomrat is complex, string value accepted for compatibility only + + + + + any additional properties + + + + + + + + + compare PostAdresseTyp + + + + + + + Code for the country, use ISO or internatinal Postalstandard, compare Staatscode + + + + + + + + + + Name of the country, use ISO Name, or international Postal Standard, compare Staatsname + + + + + ZIP, compare Postleitzahl + + + + + compare Gemeinde + + + + + + + + if streetname not available use name of Ortschaft + + + + + + + + + + + + + + + + + + + + + + + + + juridical person, organisation, compare NichtNatuerlichePersonTyp + + + + + + + URI pointing to a predefined Class of CorporateBodies, compare Typ + + + + + name of corporate body (whole name), compare VollerName + + + + + alternative names of corporate body (abbreviations, short name, synonyms, ...), comapre AlternativName + + + + + type of company (eg AG, OHG, ...), URI pointing to predefined LegalForm, compare Rechtsform + + + + + part of an organisation, see also X.500 ou (eg departement, section, branch, ...) , compare Organisation + + + + + National or international bank connection, compare Bankverbindung + + + + + any additional properties + + + + + + + + + simple type for dates (union), which may omit day and/or month + + + + + + simple type for dates (union), which may omit day and/or month + + + + + + known types of alternative names + + + + + + + + + + + + known relations (family + functional) + + + + + + + + + + + + + + + + zmr use only + + + + + + + + + + + + + + + + unique identifier + + + + + actual value of the identifier. + + + + + + + + + + + + type of value (eg 'ZMR', 'SV-Nummer', 'Martrikelnummer', database identification, ...) + + + + + authority, which is reponsible for generation of the identifier (eg university in case of 'MatrikelNummer') + + + + + any additional properties + + + + + + + + + e.g. e-mail, webiste, compare InternetAdresseTyp + + + + + + + certificate for secure communication + + + + + URI: email-Address, Web, FTP, LDAP, ..., comapre Adress + + + + + any additional properties + + + + + + + + + simple type for marital status of a person + + + + + + + + + + + like TelephoneAddresseType but with additional smsEnabled attribute + + + + + + + + + + comapre, StaatsangehoerigkeitTyp + + + + + + + + + + + + + + + + + + signed person datastructure. The first Identification elements (from the base type) denote the record as such (e.g. database key for this record) - not to be mistaken for identifiers of the person or of an address (they have their own Identification elements). + + + + + + + element of person type, essential abstract, subsitute PhysicalPerson or CorporateBody instead or use with xsi:type="..." + + + + + element of address type, essentially abstract. Use InternetAddress, TelephoneAddress, PostalAddress, TypedPostalAddress instead, or use Address with xsi:type Attribute + + + + + one or more electronic signatures applied on fields above + + + + + container for your Information needs. Contained Elements must reside in a different Namespace + + + + + + any additional properties + + + + + + + + + + + + container for parts of a name, comapre PersonenNameTyp + + + + + Complete Name (including Affixes) of the Person, especially useful for names from different cultural environments + + + + + + + + + + + + + + + + + + + + + Every given name should be contained inside a GivenName Tag. If that is not possible due to dabase contraints, ... putting several given names inside one GivenName Element is acceptable + + + + + A Person in possesion of more than one GivenName frequently preferrs the use of a Name other than the first GivenName + + + + + MiddleNames are not commonly found in central Europe. The field is mainly for compatibility reasons + + + + + Every family name should be contained inside a FamilyName Tag. If that is not possible due to dabase contraints, ... putting several family names inside one FamilyName Element is acceptable + + + + + + + + + + + + + + + + + + + + + Inlcudes all Information that is not exactly a name: academic or aristocratic titles, ... the new position attribute can contain a suffx or prefix value + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + physical person, compare NatuerlichePersonTyp + + + + + + + data related to the person's name + + + + + Former name, Artist name, changes of Given name ..., compare AlternativName + + + + + status of a person in the cycle of life, compare Familienstand + + + + + gender, comapre Geschlecht + + + + + date of birth, compare Geburtsdatum + + + + + place of birth, compare Geburtsort + + + + + state of birth, comapre Geburtsbundesland + + + + + country of birth, compare Geburtsland + + + + + date of death, compare Sterbedatum + + + + + nationality of Person, compare Staatsangehoerigkeit. attention! New Fomrat is complex, string value accepted for compatibility only + + + + + confession (religion) of Person - xs:token? gibt es wirklich keine Staaten mit Leerzeichen im Namen? + + + + + occupation, compare Beruf + + + + + relatives (parents, ...), compare Verwandter + + + + + National or international bank connection, compare Bankverbindung + + + + + any additional properties + + + + + + + + + compare PostAdresseTyp + + + + + + + Code for the country, use ISO or internatinal Postalstandard, compare Staatscode + + + + + + + + + + Name of the country, use ISO Name, or international Postal Standard, compare Staatsname + + + + + ZIP, compare Postleitzahl + + + + + compare Region + + + + + compare Bundesland + + + + + compare Gemeinde + + + + + compare Gemeindekennzahl + + + + + ZMR use, compare Ortschaft + + + + + ZMR use, comapre OrtschaftZweisprachig + + + + + + + + + + + + + + zmr use only + + + + + zmr use only + + + + + + Addressregister database keys used to identify Addresses + + + + + + + + + + + + + + + If Addressis used outside of PersonData a recipient can be specified + + + + + + + + rather OrganizationUnit e.G Sales Departement + + + + + e.g. Smith Ltd + + + + + + + + + + + + + + + + + + + + + + known + any other relation + + + + + + simple type for sex (gender) of person + + + + + + + + + + formated number or set of telephone number parts + + + + + Complete number, ready formated - e.g. +43 1 5131345 4664 compare FormatierteNummer + + + + + set of telephone number parts + + + + + + + phone numbers, conmpare TelephoneAdresseTyp + + + + + + + type of phononumber - category (eg 'Festnetz', 'Mobile', 'fax', ...) + + + + + phonenumber + + + + + any additional properties + + + + + + + + + postal address with type information, compare TypisiertePostAdresseTyp + + + + + + + type of address - category (eg 'Wohnsitz', 'Zentrale', ...) + + + + + Postal or ZMR Address, compare PostAdresse + + + + + any additional properties + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + pattern type for enlargement of type definitions. Contents as follows +x:sometext or 12345 or _ or other symbols + + + + + + + + + dummy abstract Peson Data element needed for bi-lingual schema (substitution groups) + + + + + possibility to include common austrian primary keys in human readable way, english translation not available + + + + + element of address type, essentially abstract. Use InternetAddress, TelephoneAddress, PostalAddress, TypedPostalAddress instead, or use Address with xsi:type Attribute + + + + + Former name, Artist name, changes of Given name ..., compare AlternativName + + + + + + + + + + + + compare Vorwahl + + + + + National or international bank connection, compare Bankverbindung + + + + + element of corporate body type, derived from Person + + + + + data related to the person's name + + + + + element of signed person datastructure type + + + + + + + element of corporate body type, derived from Person + + + + + element of physical person type, dreived from Person (abstract) + + + + + + + Postal or ZMR Address, compare PostAdresse + + + + + InternetAdress such as e-mail or website, compare InternetAdresse + + + + + Typed TelephoneAddress, compare TelefonAdresse + + + + + + + + + element of physical person type, dreived from Person (abstract) + + + + + Postal or ZMR Address, compare PostAdresse + + + + + confession (religion) of Person - xs:token? gibt es wirklich keine Staaten mit Leerzeichen im Namen? + + + + + element of corporate body type, derived from Person + + + + + country of birth, compare Geburtsland + + + + + date of birth, compare Geburtsdatum + + + + + date of death, compare Sterbedatum + + + + + Ergänzungsregister für nicht-natürliche Personen (CorporateBody) + + + + + compare Klappe + + + + + + + Complete number, ready formated - e.g. +43 1 5131345 4664 compare FormatierteNummer + + + + + compare InternationalerLaendercode + + + + + InternetAdress such as e-mail or website, compare InternetAdresse + + + + + status of a person in the cycle of life, compare Familienstand + + + + + + + data related to the person's name + + + + + compare NationalNummer + + + + + nationality of Person, compare Staatsangehoerigkeit. attention! New Fomrat is complex, string value accepted for compatibility only + + + + + occupation, compare Beruf + + + + + + element of person type, essential abstract, subsitute PhysicalPerson or CorporateBody instead or use with xsi:type="..." + + + + + element of signed person datastructure type + + + + + element of physical person type, dreived from Person (abstract) + + + + + place of birth, compare Geburtsort + + + + + Postal or ZMR Address, compare PostAdresse + + + + + gender, comapre Geschlecht + + + + + + + state of birth, comapre Geburtsbundesland + + + + + + compare Anschlussnummer + + + + + teletyper or telephone for the hearing impaired + + + + + + Typed TelephoneAddress, compare TelefonAdresse + + + + + Typed Postal or ZMR Address, compare TypisiertePostAdresse + + + + + + + relatives (parents, ...), compare Verwandter + + + + + + type of the relationship, compare Verwandschftsgrad + + + + + element of physical person type, dreived from Person (abstract) + + + + + + + + set of telephone number parts + + + + + compare InternationalerLaendercode + + + + + compare NationalNummer + + + + + compare Vorwahl + + + + + compare Anschlussnummer + + + + + compare Klappe + + + + + + + + + + additional usp specific property for an electronic mandate + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + this is the general purpose response element used + to acknowledge several events + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + element contains arbitrary properties of a mandate + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + electronic mandate + + + + + + + + + + electronic mandate + + + + + + + + + + + + + + + + + + + + + + + + + + personal data defining the mandator + + + + + + personal data defining the representative + + + + + + + + + electronic mandate + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + this is the general purpose response element used + to acknowledge several events + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + personal data defining the mandator + + + + + + personal data defining the representative + + + + + + element contains arbitrary properties of a mandate + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + this is the general purpose response element used + to acknowledge several events + + + + + + + + + + + + + + this is the general purpose response element used + to acknowledge several events + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/wsdl/mis/usp_v2/Synchronisation.wsdl b/src/main/resources/wsdl/mis/usp_v2/Synchronisation.wsdl new file mode 100644 index 0000000..8142d4a --- /dev/null +++ b/src/main/resources/wsdl/mis/usp_v2/Synchronisation.wsdl @@ -0,0 +1,2627 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + simple type for dates (union), which may omit day + and/or month + + + + + + complex type for a parameterised description + + + + + + element contains parameterised text and the + definition of the annotation + + + + + element contains the definition of parameters used + + + + + + + + complex type for describing a parameterised text + + + + + + element represent a parameter to be replaced in the + parameterised text + + + + + + + complex type for describing arbitrary properties of + mandates + + + + + additional usp specific property for an electronic mandate + + + + + + any additional properties + + + + + + + complex type for describing the mandate using some + textual descriptions + + + + + + element contains a parameterised description of a + mandate's + content + + + + + + element contians parameterised text + + + + + + + + + + the ID of the Mandate which is referenced by + the TextualDescription-Element + + + + + + + + + + + + + group of constraints applicable for a mandate + content + + + + + + + + simple type for textual descriptions of mandates, + constraints,.. + + + + + + + + arbitrary annotation containing a short description + of the mandate + + + + + + + + + + + element contains arbitrary restrictions + + + + + + personal data defining the intermediary + + + + + + the place and the date of issuing the mandate + + + + + + + + + + + + + electronic mandate + + + + + + arbitrary annotation containing a short description + of the mandate + + + + + location to retrieve current status information + + + + + + personal data defining the representative + + + + + + personal data defining the mandator + + + + + + personal data defining the intermediary + + + + + + the place and the date of issuing the mandate + + + + + + element contains arbitrary properties of a mandate + + + + + + + element contains the content of a mandate + + + + + + + + + + + + + personal data defining the mandator + + + + + + + element of corporate body type, derived from Person + + + + + element of physical person type, dreived from Person (abstract) + + + + + + + + element contains the definition of parameters used + + + + + + + element defines a parameter + + + + + + + + element contains a parameterised description of a + mandate's + content + + + + + + element contains parameterised text and the + definition of the annotation + + + + + element represent a parameter to be replaced in the + parameterised text + + + + + + + + element contains arbitrary properties of a mandate + + + + + + personal data defining the representative + + + + + + + element of corporate body type, derived from Person + + + + + element of physical person type, dreived from Person (abstract) + + + + + + + + element defines a parameter + + + + + + + + + + + + element contains the content of a mandate + + + + + + location to retrieve current status information + + + + + + element contians parameterised text + + + + + + element describes beginning of the validity period + + + + + + element describes endpoint of the validity period + + + + + + group of constraints applicable for a mandate + content + + + + + + + + element describes beginning of the validity period + + + + + + element describes endpoint of the validity period + + + + + + + + + + + + element contains arbitrary restrictions + + + + + + element of corporate body type, derived from Person + + + + + element of physical person type, dreived from Person (abstract) + + + + + + + + + + + + + + + + element contains arbitrary restrictions + + + + + + + + + + This version of person deploys only global elements. All types derived from abstract types have been replaced by substitution groups + + + + main structure of address data + + + + + unique identification entities + + + + + + + + + main structure of person data + + + + + possibility to include common austrian primary keys in human readable way, english translation not available + + + + + unique identification entities + + + + + + + + + known + any other alternative name types + + + + + + compare BankverbindungTyp + + + + + Account holder, compare Inhaber + + + + + compare BankName + + + + + + compare InternationaleBankverbindung + + + + + + compare IBAN + + + + + comapre BIC + + + + + + + + compare NationaleBankverbindung + + + + + + compare Kontonummer + + + + + compare BLZ + + + + + + + + + + + juridical person, organisation, compare NichtNatuerlichePersonTyp + + + + + + + URI pointing to a predefined Class of CorporateBodies, compare Typ + + + + + name of corporate body (whole name), compare VollerName + + + + + type of company (eg AG, OHG, ...), URI pointing to predefined LegalForm, compare Rechtsform + + + + + part of an organisation, see also X.500 ou (eg departement, section, branch, ...) , compare Organisation + + + + + any additional properties + + + + + + + + + signed person datastructure. The first Identification elements (from the base type) denote the record as such (e.g. database key for this record) - not to be mistaken for identifiers of the person or of an address (they have their own Identification elements). + + + + + + + element of person type, essential abstract, subsitute PhysicalPerson or CorporateBody instead or use with xsi:type="..." + + + + + element of address type, essentially abstract. Use InternetAddress, TelephoneAddress, PostalAddress, TypedPostalAddress instead, or use Address with xsi:type Attribute + + + + + one or more electronic signatures applied on fields above + + + + + container for your Information needs. Contained Elements must reside in a different Namespace + + + + + + any additional properties + + + + + + + + + + + + container for parts of a name, comapre PersonenNameTyp + + + + + Every given name should be contained inside a GivenName Tag. If that is not possible due to dabase contraints, ... putting several given names inside one GivenName Element is acceptable + + + + + Every family name should be contained inside a FamilyName Tag. If that is not possible due to dabase contraints, ... putting several family names inside one FamilyName Element is acceptable + + + + + + + + + + + + + + + + + + + + + Inlcudes all Information that is not exactly a name: academic or aristocratic titles, ... the new position attribute can contain a suffx or prefix value + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + physical person, compare NatuerlichePersonTyp + + + + + + + data related to the person's name + + + + + status of a person in the cycle of life, compare Familienstand + + + + + gender, comapre Geschlecht + + + + + date of birth, compare Geburtsdatum + + + + + place of birth, compare Geburtsort + + + + + nationality of Person, compare Staatsangehoerigkeit. attention! New Fomrat is complex, string value accepted for compatibility only + + + + + any additional properties + + + + + + + + + compare PostAdresseTyp + + + + + + + Code for the country, use ISO or internatinal Postalstandard, compare Staatscode + + + + + + + + + + Name of the country, use ISO Name, or international Postal Standard, compare Staatsname + + + + + ZIP, compare Postleitzahl + + + + + compare Gemeinde + + + + + + + + if streetname not available use name of Ortschaft + + + + + + + + + + + + + + + + + + + + + + + + + juridical person, organisation, compare NichtNatuerlichePersonTyp + + + + + + + URI pointing to a predefined Class of CorporateBodies, compare Typ + + + + + name of corporate body (whole name), compare VollerName + + + + + alternative names of corporate body (abbreviations, short name, synonyms, ...), comapre AlternativName + + + + + type of company (eg AG, OHG, ...), URI pointing to predefined LegalForm, compare Rechtsform + + + + + part of an organisation, see also X.500 ou (eg departement, section, branch, ...) , compare Organisation + + + + + National or international bank connection, compare Bankverbindung + + + + + any additional properties + + + + + + + + + simple type for dates (union), which may omit day and/or month + + + + + + simple type for dates (union), which may omit day and/or month + + + + + + known types of alternative names + + + + + + + + + + + + known relations (family + functional) + + + + + + + + + + + + + + + + zmr use only + + + + + + + + + + + + + + + + unique identifier + + + + + actual value of the identifier. + + + + + + + + + + + + type of value (eg 'ZMR', 'SV-Nummer', 'Martrikelnummer', database identification, ...) + + + + + authority, which is reponsible for generation of the identifier (eg university in case of 'MatrikelNummer') + + + + + any additional properties + + + + + + + + + e.g. e-mail, webiste, compare InternetAdresseTyp + + + + + + + certificate for secure communication + + + + + URI: email-Address, Web, FTP, LDAP, ..., comapre Adress + + + + + any additional properties + + + + + + + + + simple type for marital status of a person + + + + + + + + + + + like TelephoneAddresseType but with additional smsEnabled attribute + + + + + + + + + + comapre, StaatsangehoerigkeitTyp + + + + + + + + + + + + + + + + + + signed person datastructure. The first Identification elements (from the base type) denote the record as such (e.g. database key for this record) - not to be mistaken for identifiers of the person or of an address (they have their own Identification elements). + + + + + + + element of person type, essential abstract, subsitute PhysicalPerson or CorporateBody instead or use with xsi:type="..." + + + + + element of address type, essentially abstract. Use InternetAddress, TelephoneAddress, PostalAddress, TypedPostalAddress instead, or use Address with xsi:type Attribute + + + + + one or more electronic signatures applied on fields above + + + + + container for your Information needs. Contained Elements must reside in a different Namespace + + + + + + any additional properties + + + + + + + + + + + + container for parts of a name, comapre PersonenNameTyp + + + + + Complete Name (including Affixes) of the Person, especially useful for names from different cultural environments + + + + + + + + + + + + + + + + + + + + + Every given name should be contained inside a GivenName Tag. If that is not possible due to dabase contraints, ... putting several given names inside one GivenName Element is acceptable + + + + + A Person in possesion of more than one GivenName frequently preferrs the use of a Name other than the first GivenName + + + + + MiddleNames are not commonly found in central Europe. The field is mainly for compatibility reasons + + + + + Every family name should be contained inside a FamilyName Tag. If that is not possible due to dabase contraints, ... putting several family names inside one FamilyName Element is acceptable + + + + + + + + + + + + + + + + + + + + + Inlcudes all Information that is not exactly a name: academic or aristocratic titles, ... the new position attribute can contain a suffx or prefix value + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + physical person, compare NatuerlichePersonTyp + + + + + + + data related to the person's name + + + + + Former name, Artist name, changes of Given name ..., compare AlternativName + + + + + status of a person in the cycle of life, compare Familienstand + + + + + gender, comapre Geschlecht + + + + + date of birth, compare Geburtsdatum + + + + + place of birth, compare Geburtsort + + + + + state of birth, comapre Geburtsbundesland + + + + + country of birth, compare Geburtsland + + + + + date of death, compare Sterbedatum + + + + + nationality of Person, compare Staatsangehoerigkeit. attention! New Fomrat is complex, string value accepted for compatibility only + + + + + confession (religion) of Person - xs:token? gibt es wirklich keine Staaten mit Leerzeichen im Namen? + + + + + occupation, compare Beruf + + + + + relatives (parents, ...), compare Verwandter + + + + + National or international bank connection, compare Bankverbindung + + + + + any additional properties + + + + + + + + + compare PostAdresseTyp + + + + + + + Code for the country, use ISO or internatinal Postalstandard, compare Staatscode + + + + + + + + + + Name of the country, use ISO Name, or international Postal Standard, compare Staatsname + + + + + ZIP, compare Postleitzahl + + + + + compare Region + + + + + compare Bundesland + + + + + compare Gemeinde + + + + + compare Gemeindekennzahl + + + + + ZMR use, compare Ortschaft + + + + + ZMR use, comapre OrtschaftZweisprachig + + + + + + + + + + + + + + zmr use only + + + + + zmr use only + + + + + + Addressregister database keys used to identify Addresses + + + + + + + + + + + + + + + If Addressis used outside of PersonData a recipient can be specified + + + + + + + + rather OrganizationUnit e.G Sales Departement + + + + + e.g. Smith Ltd + + + + + + + + + + + + + + + + + + + + + + known + any other relation + + + + + + simple type for sex (gender) of person + + + + + + + + + + formated number or set of telephone number parts + + + + + Complete number, ready formated - e.g. +43 1 5131345 4664 compare FormatierteNummer + + + + + set of telephone number parts + + + + + + + phone numbers, conmpare TelephoneAdresseTyp + + + + + + + type of phononumber - category (eg 'Festnetz', 'Mobile', 'fax', ...) + + + + + phonenumber + + + + + any additional properties + + + + + + + + + postal address with type information, compare TypisiertePostAdresseTyp + + + + + + + type of address - category (eg 'Wohnsitz', 'Zentrale', ...) + + + + + Postal or ZMR Address, compare PostAdresse + + + + + any additional properties + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + pattern type for enlargement of type definitions. Contents as follows +x:sometext or 12345 or _ or other symbols + + + + + + + + + dummy abstract Peson Data element needed for bi-lingual schema (substitution groups) + + + + + possibility to include common austrian primary keys in human readable way, english translation not available + + + + + element of address type, essentially abstract. Use InternetAddress, TelephoneAddress, PostalAddress, TypedPostalAddress instead, or use Address with xsi:type Attribute + + + + + Former name, Artist name, changes of Given name ..., compare AlternativName + + + + + + + + + + + + compare Vorwahl + + + + + National or international bank connection, compare Bankverbindung + + + + + element of corporate body type, derived from Person + + + + + data related to the person's name + + + + + element of signed person datastructure type + + + + + + + element of corporate body type, derived from Person + + + + + element of physical person type, dreived from Person (abstract) + + + + + + + Postal or ZMR Address, compare PostAdresse + + + + + InternetAdress such as e-mail or website, compare InternetAdresse + + + + + Typed TelephoneAddress, compare TelefonAdresse + + + + + + + + + element of physical person type, dreived from Person (abstract) + + + + + Postal or ZMR Address, compare PostAdresse + + + + + confession (religion) of Person - xs:token? gibt es wirklich keine Staaten mit Leerzeichen im Namen? + + + + + element of corporate body type, derived from Person + + + + + country of birth, compare Geburtsland + + + + + date of birth, compare Geburtsdatum + + + + + date of death, compare Sterbedatum + + + + + Ergänzungsregister für nicht-natürliche Personen (CorporateBody) + + + + + compare Klappe + + + + + + + Complete number, ready formated - e.g. +43 1 5131345 4664 compare FormatierteNummer + + + + + compare InternationalerLaendercode + + + + + InternetAdress such as e-mail or website, compare InternetAdresse + + + + + status of a person in the cycle of life, compare Familienstand + + + + + + + data related to the person's name + + + + + compare NationalNummer + + + + + nationality of Person, compare Staatsangehoerigkeit. attention! New Fomrat is complex, string value accepted for compatibility only + + + + + occupation, compare Beruf + + + + + + element of person type, essential abstract, subsitute PhysicalPerson or CorporateBody instead or use with xsi:type="..." + + + + + element of signed person datastructure type + + + + + element of physical person type, dreived from Person (abstract) + + + + + place of birth, compare Geburtsort + + + + + Postal or ZMR Address, compare PostAdresse + + + + + gender, comapre Geschlecht + + + + + + + state of birth, comapre Geburtsbundesland + + + + + + compare Anschlussnummer + + + + + teletyper or telephone for the hearing impaired + + + + + + Typed TelephoneAddress, compare TelefonAdresse + + + + + Typed Postal or ZMR Address, compare TypisiertePostAdresse + + + + + + + relatives (parents, ...), compare Verwandter + + + + + + type of the relationship, compare Verwandschftsgrad + + + + + element of physical person type, dreived from Person (abstract) + + + + + + + + set of telephone number parts + + + + + compare InternationalerLaendercode + + + + + compare NationalNummer + + + + + compare Vorwahl + + + + + compare Anschlussnummer + + + + + compare Klappe + + + + + + + + + + additional usp specific property for an electronic mandate + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + this is the general purpose response element used + to acknowledge several events + + + + + + + + + + + + + + + + + + + + + + + + + + + + element contains arbitrary properties of a mandate + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + electronic mandate + + + + + + + + + + electronic mandate + + + + + + + + + + + + + + + + + + + + + + + + + + personal data defining the mandator + + + + + + personal data defining the representative + + + + + + + + + electronic mandate + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + this is the general purpose response element used + to acknowledge several events + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + personal data defining the mandator + + + + + + personal data defining the representative + + + + + + element contains arbitrary properties of a mandate + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + this is the general purpose response element used + to acknowledge several events + + + + + + + + + + + + + + this is the general purpose response element used + to acknowledge several events + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/test/java/at/gv/util/demo/Clienttests.java b/src/test/java/at/gv/util/demo/Clienttests.java index 7cf0fe0..c439d2d 100644 --- a/src/test/java/at/gv/util/demo/Clienttests.java +++ b/src/test/java/at/gv/util/demo/Clienttests.java @@ -30,6 +30,7 @@ import java.util.HashSet; import java.util.List; import java.util.Properties; import java.util.TimeZone; +import java.util.regex.Pattern; import javax.xml.bind.JAXBElement; import javax.xml.namespace.QName; @@ -42,6 +43,7 @@ import org.w3c.dom.Element; import at.gv.util.BpkUtil; import at.gv.util.DOMUtils; import at.gv.util.MiscUtil; +import at.gv.util.client.mis.usp_v2.USPClient; import at.gv.util.client.szr.SZRClient; import at.gv.util.client.ur_V5.URClient; import at.gv.util.client.ur_V5.URClient.URSearchResult; @@ -50,6 +52,7 @@ import at.gv.util.config.EgovUtilPropertiesConfiguration; import at.gv.util.data.BPK; import at.gv.util.ex.EgovUtilException; import at.gv.util.wsdl.szr.SZRException; +import at.gv.util.xsd.szr.FremdBPKType; import at.gv.util.xsd.szr.GetIdentityLink; import at.gv.util.xsd.szr.IdentityLinkType; import at.gv.util.xsd.szr.PersonInfoType; @@ -93,10 +96,14 @@ public class Clienttests { public static final String DOCUMENT_TYPE = "ELEKTR_DOKUMENT"; public static final String ERnB_ISSUEDATE = "2014-01-01"; public static final String ERnB_ISSUINGAUTHORITY = "SZR-Gateway"; + + public final static Pattern URN_PATTERN = Pattern.compile( + "^urn:[a-z0-9][a-z0-9-]{0,31}:([a-z0-9()+,\\-.:=@;$_!*']|%[0-9a-f]{2})+$", + Pattern.CASE_INSENSITIVE); @SuppressWarnings("unused") public static void main(String[] args) throws IOException { - + String propertiesFileLocation = System.getProperty("mis.configuration"); if (propertiesFileLocation == null) { @@ -138,21 +145,29 @@ public class Clienttests { // id.setValue("U/wThc0XOTZp9Tvsxrh8DhGTXsU="); // person.setIdentification(id); - personName.setFamilyName("Lenz"); - personName.setGivenName("Thomas"); - person.setDateOfBirth("1982-09-06"); - - personName.setFamilyName("ALLMBlasznig ELGATest"); - personName.setGivenName("Reinfried"); - person.setDateOfBirth("1943-06-26"); - - personName.setFamilyName("Buxbaum"); - personName.setGivenName("Georg"); - person.setDateOfBirth("1964-10-09"); - - personName.setFamilyName("Eder"); - personName.setGivenName("Michaela"); - person.setDateOfBirth("1971-04-25"); +// personName.setFamilyName("Lenz"); +// personName.setGivenName("Thomas"); +// person.setDateOfBirth("1982-09-06"); + +// personName.setFamilyName("XXXTüzekçi"); +// personName.setGivenName("XXXŐzgür"); +// person.setDateOfBirth("1973-06-04"); + +// personName.setFamilyName("Tauber"); +// personName.setGivenName("Arne"); +// person.setDateOfBirth("1979-08-21"); +// +// personName.setFamilyName("ALLMBlasznig ELGATest"); +// personName.setGivenName("Reinfried"); +// person.setDateOfBirth("1943-06-26"); +// +// personName.setFamilyName("Buxbaum"); +// personName.setGivenName("Georg"); +// person.setDateOfBirth("1964-10-09"); +// +// personName.setFamilyName("Eder"); +// personName.setGivenName("Michaela"); +// person.setDateOfBirth("1971-04-25"); // id.setType(SSPIN_PREFIX + "ZP"); // id.setValue("T2wnifoq7CJDyhhWod7+YiZilLA="); // person.setIdentification(id); @@ -179,6 +194,10 @@ public class Clienttests { // personName.setGivenName("Franz"); // person.setDateOfBirth("1973-04-18"); +// personName.setFamilyName("Drabina"); +// personName.setGivenName("Sonja"); +// person.setDateOfBirth("1969-09-23"); + // personName.setFamilyName("Pointner"); // personName.setGivenName("Johann"); //// person.setDateOfBirth("1954-07-07"); @@ -189,72 +208,126 @@ public class Clienttests { // address.setPostalCode("4030"); - //String bpks = szrClient.getBPK(personInfo, SSPIN_PREFIX + "ZP", "BBA-STA"); +// String bpks = szrClient.getBPK(personInfo, SSPIN_PREFIX + "ZP-MH", "BKA"); // String bpks = szrClient.getBPK(personInfo, SSPIN_PREFIX + "ZU", "BBA-STA"); // // //InputStream is = Clienttests.class.getResourceAsStream("/clearing_geburtstage_mit_UTC_versatz_20180214.csv"); - InputStream is = Clienttests.class.getResourceAsStream("/clearing_geburtstage_mit_UTC_versatz_20180305.csv"); - String data = IOUtils.toString(is); - for (String line : data.split("\\n")) { - try { - String[] el = line.split(","); - - personName.setFamilyName(el[4]); - personName.setGivenName(el[3]); - - String date = el[5].substring(1, el[5].length()-1); - Date test = MiscUtil.parseDate(date, "yyyy-MM-dd", TimeZone.getTimeZone("UTC")); - Date tomorrow = new Date(test.getTime() + (1000 * 60 * 60 * 24)); - person.setDateOfBirth(MiscUtil.formatDate(tomorrow, "yyyy-MM-dd")); - - - String baseID = szrClient.getStammzahl(personInfo ); - System.out.println("OK!!! " + person.getName().getGivenName() + " " + person.getName().getFamilyName()); - - - } catch ( Exception e) { - e.printStackTrace(); - } - - - } +// InputStream is = Clienttests.class.getResourceAsStream("/clearing_geburtstage_mit_UTC_versatz_20180305.csv"); +// String data = IOUtils.toString(is); +// for (String line : data.split("\\n")) { +// try { +// String[] el = line.split(","); +// +// personName.setFamilyName(el[4]); +// personName.setGivenName(el[3]); +// +// String date = el[5].substring(1, el[5].length()-1); +// Date test = MiscUtil.parseDate(date, "yyyy-MM-dd", TimeZone.getTimeZone("UTC")); +// Date tomorrow = new Date(test.getTime() + (1000 * 60 * 60 * 24)); +// person.setDateOfBirth(MiscUtil.formatDate(tomorrow, "yyyy-MM-dd")); +// +// +// String baseID = szrClient.getStammzahl(personInfo ); +// System.out.println("OK!!! " + person.getName().getGivenName() + " " + person.getName().getFamilyName()); +// +// +// } catch ( Exception e) { +// e.printStackTrace(); +// } +// +// +// } + + + + +// personName.setFamilyName("Hembach"); +// personName.setGivenName("Alfred"); +// person.setDateOfBirth("1975-03-02"); +// +// personName.setFamilyName("Atzlinger"); +// personName.setGivenName("Manfred"); +// person.setDateOfBirth("1964-01-29"); +// +// personName.setFamilyName("Doppler"); +// personName.setGivenName("Dominik"); +// person.setDateOfBirth("1998-04-14"); + ///Datenschutzbehörde +// personName.setFamilyName("Wollrab"); +// personName.setGivenName("Michael"); +// person.setDateOfBirth("1981-04-27"); - personName.setFamilyName("Hembach"); - personName.setGivenName("Alfred"); - person.setDateOfBirth("1975-03-02"); +// personName.setFamilyName("Sollinger"); +// personName.setGivenName("Moritz"); +// //person.setDateOfBirth("1997-08-09"); +// IdentificationType eid = new IdentificationType(); +// eid.setType("urn:publicid:gv.at:cdid+ZP"); +// eid.setValue("gd4u4WNDjV3xBYMcuBmj2vwhH88="); +// person.setIdentification(eid ); +// +// personName.setFamilyName("Ruzizka"); +// personName.setGivenName("Nina Christina"); +// person.setDateOfBirth("1982-08-27"); - personName.setFamilyName("Atzlinger"); - personName.setGivenName("Manfred"); - person.setDateOfBirth("1964-01-29"); +// personName.setFamilyName("El Fohail"); +// personName.setGivenName("Samraa"); +// person.setDateOfBirth("1975-01-13"); - personName.setFamilyName("Doppler"); - personName.setGivenName("Dominik"); - person.setDateOfBirth("1998-04-14"); +// personName.setFamilyName("Allwgeppert Elgatest"); +// personName.setGivenName("Amèlîè"); +// person.setDateOfBirth("1943-07-03"); + + personName.setFamilyName("Mustermann"); + personName.setGivenName("Max"); + person.setDateOfBirth("1940-01-01"); String baseID = szrClient.getStammzahl(personInfo ); -// + BPK zpBpk = BpkUtil.createBPK(baseID, "ZP"); +// BPK zpBpk = BpkUtil.createBPK(baseID, "ZP-MH"); +// System.out.print(zpBpk); + // // personInfo.getPerson().setDateOfBirth(null); // String test = szrClient.getBPK(personInfo, "BF", "BBA-STA"); // String encryptedbPK = szrClient.transformBPK(personInfo, zpBpk.getBpk(), SSPIN_PREFIX + "ZP", SSPIN_PREFIX + "WT-UR", "BBA-STA"); + FremdBPKType encryptedbPK = szrClient.transformBPK(personInfo, zpBpk.getBpk(), SSPIN_PREFIX + "ZP", SSPIN_PREFIX + "WT-UR", "BMF"); +// String encryptedbPK = szrClient.transformBPK(personInfo, zpBpk.getBpk(), SSPIN_PREFIX + "ZP", SSPIN_PREFIX + "ZU", "ZUSETNVZ"); + + + + /* + *USP V2 Client tests + * + */ + USPClient uspClient = new USPClient(egovUtilConfiguration, true); + +// uspClient.getMandates( +// encryptedbPK.getBereichsKennung(), +// encryptedbPK.getFremdBPK(), +// Arrays.asList("MPK_Postvollmacht")); + +// uspClient.getMandates( +// "urn:publicid:gv.at:ecdid+BMF+WT-UR", +// "CfAUGvuKyy8q9ZGLKI1WloY3ihkQ3vJis40grN9M6Eud+YU9EDXWkqdsVnznIpHaCc1cCUMA5+YorDhIZyvabxvty8Rwiq3PBHVMVc4/+jjkx2qkqOodM3gOQHG1TsPbSRl7tysCukGpdgK7NJFdh0mTlsYUwLatSsi+Qv0lTYU=", +// Arrays.asList("MPK_Postvollmacht")); // GetIdentityLink idlReq = createGetIdentityLink(); //// -////// String baseIDResp = szrClient.getStammzahl(personInfo); +/// String baseIDResp = szrClient.getStammzahl(personInfo); ////// // IdentityLinkType idlResp = szrClient.getIdentityLink( // idlReq.getPersonInfo(), // idlReq.getKeyValue(), -// false); +// true); // Element idl = (Element)idlResp.getAssertion(); // System.out.println(DOMUtils.serializeNode(idl)); @@ -264,6 +337,7 @@ public class Clienttests { // List urResult = urClient.searchByRegisterNumber("9110008265019", "ERJ", 10); + List urResult = urClient.searchByRegisterNumber("9110008265019", "ERK", 10); // urResult = urClient.searchByName("Bundesministerium*", null, 10); @@ -277,7 +351,7 @@ public class Clienttests { } } - private static GetIdentityLink createGetIdentityLink() throws CertificateException, IOException{ + private static GetIdentityLink createGetIdentityLink() throws CertificateException, IOException, InvalidKeyException{ // set parameter GetIdentityLink getIdentityLink = new GetIdentityLink(); @@ -302,47 +376,53 @@ public class Clienttests { // String birthday = "1954-07-07"; // String birthday = "1928-04-10"; - personName.setFamilyName("Kern"); - personName.setGivenName("Thomas"); - String birthday = null; - address.setMunicipality("Obdach"); - address.setPostalCode("8742"); +// personName.setFamilyName("Lenz"); +// personName.setGivenName("Thomas"); +// String birthday = null; +// birthday = "1982-09-06"; +// address.setMunicipality("Obdach"); +// address.setPostalCode("8742"); - + + personName.setFamilyName("Farbenfroh"); + personName.setGivenName("Jonatan"); + String birthday = null; + birthday = "1978-08-25"; - //String birthday = "1998-12-06"; + if (birthday != null) physicalPerson.setDateOfBirth(birthday); physicalPerson.setName(personName); - if (address != null) - personInfo.setRegularDomicile(address); +// if (address != null) +// personInfo.setRegularDomicile(address); + personInfo.setPerson(physicalPerson); // add Traveldocument -// TravelDocumentType trvlDoc = new TravelDocumentType(); + TravelDocumentType trvlDoc = new TravelDocumentType(); // // // parse STORK-eID to his components // //ERnB allows only eIDs with a maximum length of 54 signs -// trvlDoc.setDocumentNumber("33333333"); -// trvlDoc.setIssuingCountry("SI"); -// trvlDoc.setDocumentType(DOCUMENT_TYPE); + trvlDoc.setDocumentNumber("12345678abcde"); + trvlDoc.setIssuingCountry("SI"); + trvlDoc.setDocumentType(DOCUMENT_TYPE); // // //set default values from SZR because certificate for mandator natural person is not // //available in case of authentication with electronic mandates. // trvlDoc.setIssueDate(ERnB_ISSUEDATE); // trvlDoc.setIssuingAuthority(ERnB_ISSUINGAUTHORITY); // -// JAXBElement jaxbtrvlDoc = personInfo.getTravelDocument(); -// -// if (jaxbtrvlDoc == null) -// jaxbtrvlDoc = new JAXBElement(new QName("urn:SZRServices", "TravelDocument"), TravelDocumentType.class, trvlDoc); -// else -// jaxbtrvlDoc.setValue(trvlDoc); + JAXBElement jaxbtrvlDoc = personInfo.getTravelDocument(); - //personInfo.setTravelDocument(jaxbtrvlDoc); + if (jaxbtrvlDoc == null) + jaxbtrvlDoc = new JAXBElement(new QName("urn:SZRServices", "TravelDocument"), TravelDocumentType.class, trvlDoc); + else + jaxbtrvlDoc.setValue(trvlDoc); + + personInfo.setTravelDocument(jaxbtrvlDoc); // Personendaten setzen getIdentityLink.setPersonInfo(personInfo); @@ -355,17 +435,24 @@ public class Clienttests { keyvalueList = new ArrayList(); - InputStream importCertStream = new FileInputStream("F:/local_work/zertifikate/mocca_testcards/BRZ_testcards/test_identities/Achim XXXZastrow/secure.crt"); - X509Certificate importCert = new X509Certificate(importCertStream ); - pb = importCert.getPublicKey(); +// InputStream importCertStream = new FileInputStream("F:/local_work/zertifikate/mocca_testcards/BRZ_testcards/test_identities/Achim XXXZastrow/secure.crt"); +// X509Certificate importCert = new X509Certificate(importCertStream ); +// pb = importCert.getPublicKey(); - //pb = new iaik.security.rsa.RSAPublicKey(DEFAULT_PUBL_KEY); + pb = new iaik.security.rsa.RSAPublicKey(DEFAULT_PUBL_KEY); List keys = getKeyValueTypes(pb); keyvalueList.addAll(keys); +// KeyValueType testvalue = new KeyValueType(); +// RSAKeyValueType rsaKeyValue = new RSAKeyValueType(); +// rsaKeyValue.setExponent("Forever"); +// rsaKeyValue.setModulus("Kandi");; +// testvalue.setRSAKeyValue(rsaKeyValue ); +// keyvalueList.add(testvalue); + // set Insert ERnP flag - getIdentityLink.setInsertERnP(false); + getIdentityLink.setInsertERnP(true); // Constants.DATA_LOGGER.debug("Person wird im SZR und ERnP gesucht bzw. gegebenenfalls im ERnP eingetragen: " // + natPerson.getFamilyName() + " " + natPerson.getGivenName() + " " + natPerson.getBirthday() diff --git a/src/test/java/at/gv/util/demo/ZuseSSLTest.java b/src/test/java/at/gv/util/demo/ZuseSSLTest.java new file mode 100644 index 0000000..359cb4e --- /dev/null +++ b/src/test/java/at/gv/util/demo/ZuseSSLTest.java @@ -0,0 +1,136 @@ +package at.gv.util.demo; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.net.Socket; +import java.security.Key; +import java.security.KeyManagementException; +import java.security.KeyStore; +import java.security.KeyStoreException; +import java.security.NoSuchAlgorithmException; +import java.security.Provider; +import java.security.UnrecoverableKeyException; +import java.security.cert.CertificateException; +import java.util.Base64; +import java.util.Collections; +import java.util.Map; + +import org.apache.commons.lang.StringUtils; +import org.apache.http.HttpResponse; +import org.apache.http.client.methods.HttpGet; +import org.apache.http.client.methods.HttpPost; +import org.apache.http.conn.ssl.NoopHostnameVerifier; +import org.apache.http.entity.StringEntity; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClients; +import org.apache.http.ssl.PrivateKeyDetails; +import org.apache.http.ssl.PrivateKeyStrategy; +import org.apache.http.ssl.SSLContextBuilder; +import org.apache.http.util.EntityUtils; +import org.apache.log4j.lf5.util.StreamUtils; + +import at.gv.util.xsd.szr.pvp.sec.Security; + +public class ZuseSSLTest { + + public static void main(String[] args) { + String keyStoreFile = "F:/Projekte/configs/mis/egiz.gv.at-816-2018-06-07.jks"; + char[] keyStorePassword = "OSgmSn!".toCharArray(); + char[] keyPassword = "nichts".toCharArray(); + + //String serviceURL = "https://pamgate2.portal.at/at.gv.usp.vdds-ws-q/Synchronisation?wsdl"; + String serviceURL = "https://pamgate2.portal.at/at.gv.usp.vdds-ws-q/Synchronisation"; + //serviceURL = "https://eid.egiz.gv.at/sslclientcertdemo/"; + + //String payLoadB64 = "PHNvYXA6RW52ZWxvcGUgeG1sbnM6c29hcD0iaHR0cDovL3NjaGVtYXMueG1sc29hcC5vcmcvc29hcC9lbnZlbG9wZS8iPg0KCTxzb2FwOkJvZHk+DQoJCTxuczM6TGlzdE1hbmRhdGVzUmVxdWVzdCB4bWxuczpuczM9Imh0dHA6Ly9lYWkuYnJ6Lmd2LmF0L3NlcnZpY2VzL3ZkZHMvc3luYy1tc2dzIiB4bWxucz0iaHR0cDovL2VhaS5icnouZ3YuYXQvc2VydmljZXMvdmRkcy90b2tlbiIgeG1sbnM6bnMyPSJodHRwOi8vZWFpLmJyei5ndi5hdC9zZXJ2aWNlcy92ZGRzL2NvbW1vbiIgeG1sbnM6bnM0PSJodHRwOi8vcmVmZXJlbmNlLmUtZ292ZXJubWVudC5ndi5hdC9uYW1lc3BhY2UvbWFuZGF0ZXMvMjAwNDA3MDEjIiB4bWxuczpuczU9Imh0dHA6Ly9yZWZlcmVuY2UuZS1nb3Zlcm5tZW50Lmd2LmF0L25hbWVzcGFjZS9wZXJzb25kYXRhLzIwMDIwMjI4IyIgeG1sbnM6bnM2PSJodHRwOi8vd3d3LnVzcC5ndi5hdC9uYW1lc3BhY2UvbWFuZGF0ZXMvMjAxNjAzMDEjIiB4bWxuczpuczc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyMiIHhtbG5zOm5zOD0iaHR0cDovL2VhaS5icnouZ3YuYXQvc2VydmljZXMvdmRkcy9zeW5jaHJvbmlzYXRpb24iPg0KCQkJPG5zMzpNYW5kYXRlQXR0cmlidXRlc1NlYXJjaEZpbHRlcj4NCgkJCQk8bnMzOkZpbHRlciB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4c2k6dHlwZT0ibnMzOlNlYXJjaENyaXRlcmlhVGVzdFR5cGUiPg0KCQkJCQk8bnMzOlNlYXJjaENyaXRlcmlhPg0KCQkJCQkJPG5zMzpSZXByZXNlbnRhdGl2ZUlEPg0KCQkJCQkJCTxuczU6VmFsdWU+Z2Q0dTRXTkRqVjN4QllNY3VCbWoydndoSDg4PTwvbnM1OlZhbHVlPg0KCQkJCQkJCTxuczU6VHlwZT51cm46cHVibGljaWQ6Z3YuYXQ6Y2RpZCtaUDwvbnM1OlR5cGU+DQoJCQkJCQk8L25zMzpSZXByZXNlbnRhdGl2ZUlEPg0KCQkJCQk8L25zMzpTZWFyY2hDcml0ZXJpYT4NCgkJCQk8L25zMzpGaWx0ZXI+DQoJCQk8L25zMzpNYW5kYXRlQXR0cmlidXRlc1NlYXJjaEZpbHRlcj4NCgkJPC9uczM6TGlzdE1hbmRhdGVzUmVxdWVzdD4NCgk8L3NvYXA6Qm9keT4NCjwvc29hcDpFbnZlbG9wZT4="; + String payLoadB64 = "PHNvYXA6RW52ZWxvcGUgeG1sbnM6c29hcD0iaHR0cDovL3NjaGVtYXMueG1sc29hcC5vcmcvc29hcC9lbnZlbG9wZS8iPg0KCTxzb2FwOkJvZHk+DQoJCTxuczM6TGlzdE1hbmRhdGVzUmVxdWVzdCB4bWxuczpuczM9Imh0dHA6Ly9lYWkuYnJ6Lmd2LmF0L3NlcnZpY2VzL3ZkZHMvc3luYy1tc2dzIiB4bWxucz0iaHR0cDovL2VhaS5icnouZ3YuYXQvc2VydmljZXMvdmRkcy90b2tlbiIgeG1sbnM6bnMyPSJodHRwOi8vZWFpLmJyei5ndi5hdC9zZXJ2aWNlcy92ZGRzL2NvbW1vbiIgeG1sbnM6bnM0PSJodHRwOi8vcmVmZXJlbmNlLmUtZ292ZXJubWVudC5ndi5hdC9uYW1lc3BhY2UvbWFuZGF0ZXMvMjAwNDA3MDEjIiB4bWxuczpuczU9Imh0dHA6Ly9yZWZlcmVuY2UuZS1nb3Zlcm5tZW50Lmd2LmF0L25hbWVzcGFjZS9wZXJzb25kYXRhLzIwMDIwMjI4IyIgeG1sbnM6bnM2PSJodHRwOi8vd3d3LnVzcC5ndi5hdC9uYW1lc3BhY2UvbWFuZGF0ZXMvMjAxNjAzMDEjIiB4bWxuczpuczc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyMiIHhtbG5zOm5zOD0iaHR0cDovL2VhaS5icnouZ3YuYXQvc2VydmljZXMvdmRkcy9zeW5jaHJvbmlzYXRpb24iPg0KCQkJPG5zMzpNYW5kYXRlQXR0cmlidXRlc1NlYXJjaEZpbHRlcj4NCgkJCQk8bnMzOkZpbHRlcj4NCgkJCQkJPG5zMzpTZWFyY2hDcml0ZXJpYT4NCgkJCQkJCTxuczM6UmVwcmVzZW50YXRpdmVJRD4NCgkJCQkJCQk8bnM1OlZhbHVlPmdkNHU0V05EalYzeEJZTWN1Qm1qMnZ3aEg4OD08L25zNTpWYWx1ZT4NCgkJCQkJCQk8bnM1OlR5cGU+dXJuOnB1YmxpY2lkOmd2LmF0OmNkaWQrWlA8L25zNTpUeXBlPg0KCQkJCQkJPC9uczM6UmVwcmVzZW50YXRpdmVJRD4NCgkJCQkJPC9uczM6U2VhcmNoQ3JpdGVyaWE+DQoJCQkJPC9uczM6RmlsdGVyPg0KCQkJPC9uczM6TWFuZGF0ZUF0dHJpYnV0ZXNTZWFyY2hGaWx0ZXI+DQoJCTwvbnMzOkxpc3RNYW5kYXRlc1JlcXVlc3Q+DQoJPC9zb2FwOkJvZHk+DQo8L3NvYXA6RW52ZWxvcGU+"; + try { + + SSLContextBuilder sslContext = new SSLContextBuilder(); + KeyStore keyStore = KeyStore.getInstance("JKS", "SUN"); + keyStore.load(new FileInputStream(new File(keyStoreFile)), keyStorePassword); + + + + PrivateKeyStrategy aliasStrategy = new PrivateKeyStrategy() { + @Override + public String chooseAlias(Map aliases, Socket socket) { + if (aliases != null && !aliases.isEmpty()) + return aliases.keySet().iterator().next(); + + return null; + } + + }; + + sslContext.loadKeyMaterial(keyStore, keyPassword, aliasStrategy); + sslContext.loadTrustMaterial(null, (certificate, authType) -> true); + + CloseableHttpClient client = HttpClients.custom() + .setSSLContext(sslContext.build()) + .setSSLHostnameVerifier(new NoopHostnameVerifier()) + .build(); + + HttpPost httpGet = new HttpPost(serviceURL); + //HttpGet httpGet = new HttpGet(serviceURL); + //httpGet.setHeader("Accept", "application/xml"); + + httpGet.setHeader("SOAPAction", "ListMandates"); + httpGet.setHeader("Accept", "*/*"); + + + //PVP 1.x header + httpGet.setHeader("X-VERSION", "1.8"); + httpGet.setHeader("X-AUTHENTICATE-UserID", "egiz@egiz.gv.at"); + httpGet.setHeader("X-AUTHENTICATE-GVGID", "gvGid"); + httpGet.setHeader("X-AUTHENTICATE-PARTICIPANTID", "AT:B:111"); + httpGet.setHeader("X-AUTHENTICATE-GVOUID", "EGIZ"); + httpGet.setHeader("X-AUTHENTICATE-OU", "EGIZ"); + httpGet.setHeader("X-AUTHENTICATE-GVFUNCTION", "gvFunctio"); + httpGet.setHeader("X-AUTHORIZE-ROLES", "VDDS-USP-VDDS-PARTNER"); + httpGet.setHeader("X-AUTHENTICATE-gvSecClass", "2"); + httpGet.setHeader("X-AUTHENTICATE-cn","E-Government Innovationszentrum"); + httpGet.setHeader("X-ACCOUNTING-CostCenterId", null); + httpGet.setHeader("X-ACCOUNTING-InvoiceRecptId", null); + + + //PVP 2.x header + httpGet.setHeader("X-PVP-EGOVTOKEN-VERSION", "2.1.2"); + httpGet.setHeader("X-PVP-USERID", "egiz@egiz.gv.at"); + httpGet.setHeader("X-PVP-GID", "gvGid"); + httpGet.setHeader("X-PVP-PARTICIPANT-ID", "AT:B:111"); + httpGet.setHeader("X-PVP-OU-GV-OU-ID", "EGIZ"); + httpGet.setHeader("X-PVP-OU", "EGIZ"); + httpGet.setHeader("X-PVP-FUNCTION", "gvFunctio"); + httpGet.setHeader("X-PVP-ROLES", "VDDS-USP-VDDS-PARTNER"); + httpGet.setHeader("X-PVP-SECCLASS", "2"); + httpGet.setHeader("X-PVP-PRINCIPAL-NAME","E-Government Innovationszentrum"); + httpGet.setHeader("X-PVP-COST-CENTER-ID", null); + httpGet.setHeader("X-PVP-INVOICE-RECPT-ID", null); + httpGet.setHeader("X-PVP-BINDING", "http"); + + StringEntity se = new StringEntity(new String(Base64.getDecoder().decode(payLoadB64), "UTF-8")); + httpGet.setEntity(se); + System.out.println("Request: " + EntityUtils.toString(httpGet.getEntity())); + + HttpResponse response = client.execute(httpGet); + + System.out.println("HTTP StatusCode: " + response.getStatusLine().getStatusCode()); + + if (response.getEntity().getContent() != null ) + System.out.println("Body: " + org.apache.commons.codec.binary.StringUtils.newStringUtf8(StreamUtils.getBytes(response.getEntity().getContent()))); + + + System.out.println("Test finished"); + + } catch (Exception e) { + e.printStackTrace(); + + } + + + } + +} -- cgit v1.2.3