aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--common/pom.xml12
-rw-r--r--id/ConfigWebTool/pom.xml4
-rw-r--r--id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/auth/pvp2/MetaDataVerificationFilter.java3
-rw-r--r--id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/config/ConfigurationProvider.java8
-rw-r--r--id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/oa/OAAuthenticationData.java48
-rw-r--r--id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/helper/FormDataHelper.java6
-rw-r--r--id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/BasicOAAction.java25
-rw-r--r--id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/EditGeneralConfigAction.java3
-rw-r--r--id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/ListOAsAction.java2
-rw-r--r--id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/validation/oa/OAAuthenticationDataValidation.java6
-rw-r--r--id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/validation/oa/OAPVP2ConfigValidation.java21
-rw-r--r--id/server/auth/src/main/webapp/common/MOA.css617
-rw-r--r--id/server/auth/src/main/webapp/common/logo_digAT.pngbin0 -> 22964 bytes
-rw-r--r--id/server/auth/src/main/webapp/common/main.css253
-rw-r--r--id/server/auth/src/main/webapp/index.html193
-rw-r--r--id/server/data/deploy/conf/moa-id/moa-id.properties7
-rw-r--r--id/server/data/deploy/conf/moa-id/stork/StorkSamlEngine_VIDP.xml1
-rw-r--r--id/server/data/deploy/conf/moa-id/stork/StorkSamlEngine_incoming.xml6
-rw-r--r--id/server/data/deploy/conf/moa-id/stork/StorkSamlEngine_incoming_attr.xml6
-rw-r--r--id/server/data/deploy/conf/moa-id/stork/StorkSamlEngine_outgoing.xml4
-rw-r--r--id/server/data/deploy/conf/moa-spss/certstore/toBeAdded/a-sign-Premium-Test-Sig-02.20141124-20241118.SerNo3969edc1.cerbin0 -> 1029 bytes
-rw-r--r--id/server/data/deploy/conf/moa-spss/certstore/toBeAdded/a-sign-Premium-enc-02.20140701-20240701.SerNo144dfd.cerbin0 -> 1159 bytes
-rw-r--r--id/server/data/deploy/conf/moa-spss/certstore/toBeAdded/a-sign-Test-Qual-01.20141117-20241111.SerNo16120f.cer23
-rw-r--r--id/server/data/deploy/conf/moa-spss/certstore/toBeAdded/a-sign-corporate-light-02.20140905-20240905.SerNo153B49.cerbin0 -> 1167 bytes
-rw-r--r--id/server/data/deploy/conf/moa-spss/certstore/toBeAdded/a-sign-premium-sig-02.20140701-20240701.SerNo144e10.cerbin0 -> 1159 bytes
-rw-r--r--id/server/data/deploy/conf/moa-spss/certstore/toBeAdded/a-sign-premium-sig-03.20140701-20240701.SerNo144e13.cerbin0 -> 1159 bytes
-rw-r--r--id/server/data/deploy/conf/moa-spss/trustProfiles/MOAIDBuergerkarteAuthentisierungsDatenMitTestkarten/a-sign-Premium-Test-Sig-02.20141124-20141118.SerNo3969edc1.cerbin0 -> 1029 bytes
-rw-r--r--id/server/data/deploy/conf/moa-spss/trustProfiles/MOAIDBuergerkarteAuthentisierungsDatenMitTestkarten/a-sign-Premium-Test-Sig-02.20141124-20241118.SerNo3969edc1.cerbin0 -> 1029 bytes
-rw-r--r--id/server/data/deploy/conf/moa-spss/trustProfiles/MOAIDBuergerkarteAuthentisierungsDatenMitTestkarten/a-sign-Test-Qual-01.20141117-20241111.SerNo16120f.cer23
-rw-r--r--id/server/data/deploy/conf/moa-spss/trustProfiles/MOAIDBuergerkartePersonenbindungMitTestkarten/a-sign-corporate-light-02.20140905-20240905.SerNo153B49.cerbin0 -> 1167 bytes
-rw-r--r--id/server/data/deploy/conf/moa-spss/trustProfiles/MOAIDBuergerkartePersonenbindungOhneTestkarten/a-sign-corporate-light-02.20140905-20240905.SerNo153B49.cerbin0 -> 1167 bytes
-rw-r--r--id/server/doc/handbook/additional/additional.html261
-rw-r--r--id/server/doc/handbook/application/application.html74
-rw-r--r--id/server/doc/handbook/common/LogoBKA.pngbin8062 -> 0 bytes
-rw-r--r--id/server/doc/handbook/common/MOA.css611
-rw-r--r--id/server/doc/handbook/common/logo_digAT.pngbin0 -> 22964 bytes
-rw-r--r--id/server/doc/handbook/config/config.html803
-rw-r--r--id/server/doc/handbook/index.html29
-rw-r--r--id/server/doc/handbook/install/install.html94
-rw-r--r--id/server/doc/handbook/interfederation/interfederation.html136
-rw-r--r--id/server/doc/handbook/intro/intro.html94
-rw-r--r--id/server/doc/handbook/protocol/protocol.html330
-rw-r--r--id/server/idserverlib/.gitignore1
-rw-r--r--id/server/idserverlib/pom.xml2
-rw-r--r--id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/AuthenticationServer.java3
-rw-r--r--id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/AuthenticationDataBuilder.java87
-rw-r--r--id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/parser/IdentityLinkAssertionParser.java6
-rw-r--r--id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/parser/StartAuthentificationParameterParser.java11
-rw-r--r--id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/GenerateIFrameTemplateServlet.java19
-rw-r--r--id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/PEPSConnectorServlet.java233
-rw-r--r--id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/stork/STORKResponseProcessor.java2
-rw-r--r--id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/validator/parep/client/szrgw/SZRGWClient.java3
-rw-r--r--id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/auth/AuthConfigurationProvider.java49
-rw-r--r--id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/data/AuthenticationData.java28
-rw-r--r--id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/data/AuthenticationRoleFactory.java35
-rw-r--r--id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/data/IAuthData.java7
-rw-r--r--id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/moduls/AuthenticationManager.java67
-rw-r--r--id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/SingleLogOutAction.java10
-rw-r--r--id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/SingleLogOutBuilder.java21
-rw-r--r--id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/MandateProfRepDescAttributeBuilder.java40
-rw-r--r--id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/exceptions/SchemaValidationException.java52
-rw-r--r--id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/metadata/MOAMetadataProvider.java4
-rw-r--r--id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/utils/AssertionAttributeExtractor.java14
-rw-r--r--id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/verification/SAMLVerificationEngine.java86
-rw-r--r--id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/verification/metadata/InterfederatedIDPPublicServiceFilter.java1
-rw-r--r--id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/verification/metadata/SchemaValidationFilter.java110
-rw-r--r--id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/saml1/GetArtifactAction.java4
-rw-r--r--id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/saml1/SAML1AuthenticationServer.java11
-rw-r--r--id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/saml1/SAML1Protocol.java11
-rw-r--r--id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/AttributeCollector.java33
-rw-r--r--id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/ConsentEvaluator.java2
-rw-r--r--id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/CorporateBodyMandateContainer.java1
-rw-r--r--id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/MOAAttributeProvider.java22
-rw-r--r--id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/MandateContainer.java2
-rw-r--r--id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/MandateRetrievalRequest.java87
-rw-r--r--id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/STORKPVPUtilits.java2
-rw-r--r--id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/attributeproviders/EHvdAttributeProviderPlugin.java15
-rw-r--r--id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/attributeproviders/EHvdAttribute_deprecatedProviderPlugin.java20
-rw-r--r--id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/attributeproviders/PVPAuthenticationProvider.java55
-rw-r--r--id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/attributeproviders/SignedDocAttributeRequestProvider.java72
-rw-r--r--id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/IdentityLinkReSigner.java10
-rw-r--r--id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/PVPtoSTORKMapper.java31
-rw-r--r--id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/client/mis/simple/MISMandate.java8
-rw-r--r--id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/client/mis/simple/MISSimpleClient.java4
-rw-r--r--id/server/idserverlib/src/main/resources/resources/properties/pvp-stork_mapping.properties28
-rw-r--r--id/server/idserverlib/src/main/resources/resources/xmldata/fakeIdL_IdL_template.xml51
-rw-r--r--id/server/idserverlib/src/test/java/test/tlenz/simpletest.java22
-rw-r--r--id/server/moa-id-commons/pom.xml14
-rw-r--r--id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/db/ConfigurationDBRead.java2
-rw-r--r--id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/utils/HttpClientWithProxySupport.java61
-rw-r--r--id/server/moa-id-commons/src/main/java/org/apache/commons/httpclient/MOAHttpClient.java11
-rw-r--r--id/server/stork2-commons/pom.xml1
-rw-r--r--id/server/stork2-commons/src/main/config/embedded/pepsUtil.properties14
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/auth/commons/Linker.java5
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/auth/commons/PEPSErrors.java9
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/auth/commons/PEPSParameters.java14
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/auth/commons/STORKAttrQueryResponse.java4
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/auth/commons/STORKAuthnResponse.java4
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/IsHCPType.java145
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/MandateContentType.java233
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/AdditionalInformationType.java99
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/AddressType.java281
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/AttachedFileDataType.java125
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/AttachedFileURLType.java127
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/AttachedImageDataType.java125
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/AttachedImageURLType.java127
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/AttachedType.java190
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/AttachmentsType.java78
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/CertificationOfTheSupplementType.java128
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/ContactInformationType.java172
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/CountryType.java1420
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/CourseStructureDiagramType.java99
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/CourseUnitLanguageOfInstructionType.java98
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/CourseUnitLanguagesOfInstructionType.java78
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/CourseUnitStudentPerformanceType.java99
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/CourseUnitType.java1131
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/CourseUnitTypeType.java68
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/CourseUnitWorkPlacementType.java157
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/CourseUnitWorkPlacementsType.java78
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/CoursesAttendedInOtherInstitutionInMobilityProgramsType.java76
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/CoursesGroupType.java190
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/CoursesGroupsType.java162
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/CoursesUnitsType.java78
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/DiplomaSupplementType.java411
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/ECTSGradingScaleType.java90
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/EHEAFrameworkType.java76
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/ExtensionContentType.java111
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/FamilyNameType.java78
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/GenderType.java68
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/GivenNameType.java78
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/GradingSchemeAndGradeDistributionGuidanceType.java99
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/ImageMimeType.java92
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/InformationIdentifyingTheHolderOfTheQualificationType.java420
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/InformationIdentifyingTheQualificationType.java211
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/InformationOnTheContentsAndResultsGainedType.java245
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/InformationOnTheFunctionOfTheQualificationType.java161
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/InformationOnTheLevelOfTheQualificationType.java391
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/InstitutionType.java454
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/LanguageType.java836
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/LanguagesOfInstructionAndExaminationType.java169
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/LocalGradeType.java247
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/MimeType.java108
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/MobilityProgrammeCourseUnitType.java278
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/MobilityProgrammeCoursesUnitsType.java78
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/MobilityProgrammeType.java359
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/ModeOfDeliveryType.java68
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/ModeOfStudyType.java92
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/MultilingualDiplomaSupplementType.java112
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/NameAndStatusOfAwardingInstitutionType.java140
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/NameAndStatusOfInstitutionAdministeringStudiesType.java140
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/ObjectFactory.java656
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/OfficialCertifyingType.java155
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/OfficialStampType.java99
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/OfficialsCertifyingType.java78
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/ProgrammeDetailsType.java99
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/ProgrammeRequirementsType.java99
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/QualificationType.java154
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/RichTextTagType.java201
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/SourceGradeType.java76
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/TitleConferredType.java71
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/package-info.java9
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_1_0/assertion/AcTitleType.java (renamed from id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/AcTitleType.java)178
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_1_0/assertion/AttributeStatusType.java (renamed from id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/AttributeStatusType.java)122
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_1_0/assertion/CanonicalAddressType.java (renamed from id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/CanonicalAddressType.java)528
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_1_0/assertion/CurrentStudiesType.java198
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_1_0/assertion/DiplomaSupplementType.java207
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_1_0/assertion/Habilitation.java (renamed from id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/Habilitation.java)178
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_1_0/assertion/HabilitationType.java (renamed from id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/HabilitationType.java)178
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_1_0/assertion/HasAccountInBankType.java (renamed from id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/HasAccountInBankType.java)178
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_1_0/assertion/HasDegreeType.java (renamed from id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/HasDegreeType.java)348
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_1_0/assertion/IsAcademicStaffType.java (renamed from id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/IsAcademicStaffType.java)289
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_1_0/assertion/IsAdminStaffType.java (renamed from id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/IsAdminStaffType.java)178
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_1_0/assertion/IsCourseCoordinatorType.java (renamed from id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/IsCourseCoordinatorType.java)178
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_1_0/assertion/IsHealthCareProfessionalDeprecatedType.java (renamed from id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/IsHealthCareProfessionalDeprecatedType.java)4
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_1_0/assertion/IsHealthCareProfessionalType.java (renamed from id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/IsHealthCareProfessionalType.java)4
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_1_0/assertion/IsStudentType.java (renamed from id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/IsStudentType.java)289
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_1_0/assertion/IsTeacherOfType.java (renamed from id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/IsTeacherOfType.java)290
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_1_0/assertion/MandateContentType.java309
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_1_0/assertion/MandateType.java (renamed from id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/MandateType.java)287
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_1_0/assertion/ObjectFactory.java (renamed from id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/ObjectFactory.java)966
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_1_0/assertion/OriginalMandateType.java92
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_1_0/assertion/RepresentationPersonType.java (renamed from id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/RepresentationPersonType.java)578
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_1_0/assertion/RequestedAttributeType.java (renamed from id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/RequestedAttributeType.java)424
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_1_0/assertion/TimeRestrictionType.java101
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_1_0/assertion/TransactionLimitRestrictionType.java98
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_1_0/assertion/package-info.java (renamed from id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/package-info.java)18
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/AdditionalInformationType.java97
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/AddressType.java188
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/AttachedFileDataType.java123
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/AttachedFileURLType.java125
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/AttachedImageDataType.java123
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/AttachedImageURLType.java125
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/AttachedType.java188
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/AttachmentsType.java76
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/CertificationOfTheSupplementType.java126
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/ContactInformationType.java170
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/CountryTextCodeType.java94
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/CountryType.java435
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/CourseStructureDiagramType.java97
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/CourseUnitLanguageOfInstructionType.java94
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/CourseUnitLanguagesOfInstructionType.java76
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/CourseUnitStudentPerformanceType.java97
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/CourseUnitType.java1181
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/CourseUnitTypeType.java58
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/CourseUnitWorkPlacementType.java155
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/CourseUnitWorkPlacementsType.java76
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/CoursesAttendedInOtherInstitutionInMobilityProgramsType.java76
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/CoursesGroupType.java188
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/CoursesGroupsType.java160
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/CoursesUnitsType.java76
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/ECTSGradingScaleType.java55
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/EHEAFrameworkType.java61
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/ExtensionContentType.java109
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/FamilyNameType.java76
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/GenderType.java58
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/GeneralDiplomaType.java409
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/GivenNameType.java76
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/GradingSchemeAndGradeDistributionGuidanceType.java97
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/ImageMimeType.java67
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/InformationIdentifyingTheHolderOfTheQualificationType.java327
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/InformationIdentifyingTheQualificationType.java209
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/InformationOnTheContentsAndResultsGainedType.java243
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/InformationOnTheFunctionOfTheQualificationType.java159
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/InformationOnTheLevelOfTheQualificationType.java389
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/InstitutionType.java361
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/LanguageType.java346
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/LanguagesOfInstructionAndExaminationType.java227
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/LocalGradeType.java243
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/MimeType.java73
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/MobilityProgrammeCourseUnitType.java274
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/MobilityProgrammeCoursesUnitsType.java76
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/MobilityProgrammeType.java266
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/ModeOfDeliveryType.java61
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/ModeOfStudyType.java67
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/MultilingualGeneralDiplomaType.java110
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/NameAndStatusOfAwardingInstitutionType.java142
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/NameAndStatusOfInstitutionAdministeringStudiesType.java142
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/ObjectFactory.java632
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/OfficialCertifyingType.java157
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/OfficialStampType.java101
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/OfficialsCertifyingType.java76
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/ProgrammeDetailsType.java97
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/ProgrammeRequirementsType.java97
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/QualificationType.java152
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/RichTextTagType.java197
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/SourceGradeType.java61
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/TitleConferredType.java69
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/package-info.java9
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/org/w3/_2000/_09/xmldsig/CanonicalizationMethodType.java109
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/org/w3/_2000/_09/xmldsig/DSAKeyValueType.java227
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/org/w3/_2000/_09/xmldsig/DigestMethodType.java111
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/org/w3/_2000/_09/xmldsig/KeyInfoType.java142
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/org/w3/_2000/_09/xmldsig/KeyValueType.java92
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/org/w3/_2000/_09/xmldsig/ManifestType.java111
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/org/w3/_2000/_09/xmldsig/ObjectFactory.java559
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/org/w3/_2000/_09/xmldsig/ObjectType.java171
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/org/w3/_2000/_09/xmldsig/PGPDataType.java105
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/org/w3/_2000/_09/xmldsig/RSAKeyValueType.java93
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/org/w3/_2000/_09/xmldsig/ReferenceType.java214
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/org/w3/_2000/_09/xmldsig/RetrievalMethodType.java127
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/org/w3/_2000/_09/xmldsig/SPKIDataType.java83
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/org/w3/_2000/_09/xmldsig/SignatureMethodType.java115
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/org/w3/_2000/_09/xmldsig/SignaturePropertiesType.java111
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/org/w3/_2000/_09/xmldsig/SignaturePropertyType.java144
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/org/w3/_2000/_09/xmldsig/SignatureType.java195
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/org/w3/_2000/_09/xmldsig/SignatureValueType.java99
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/org/w3/_2000/_09/xmldsig/SignedInfoType.java167
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/org/w3/_2000/_09/xmldsig/TransformType.java116
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/org/w3/_2000/_09/xmldsig/TransformsType.java76
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/org/w3/_2000/_09/xmldsig/X509DataType.java100
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/org/w3/_2000/_09/xmldsig/X509IssuerSerialType.java98
-rw-r--r--id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/org/w3/_2000/_09/xmldsig/package-info.java9
-rw-r--r--id/server/stork2-commons/src/main/resources/StorkcomplexAttributes.xsd338
-rw-r--r--id/server/stork2-commons/src/main/resources/schema/StorkcomplexAttributes.xsd396
-rw-r--r--id/server/stork2-commons/src/main/resources/schema/crue-academic-language-diplomasupplement-schema-1_1.xsd3778
-rw-r--r--id/server/stork2-commons/src/main/resources/schema/diploma.xsd1687
-rw-r--r--id/server/stork2-commons/src/main/resources/schema/xmldsig-core-schema.xsd309
-rw-r--r--id/server/stork2-commons/src/test/java/eu/stork/peps/tests/ComplexAttributesMarshalling.java246
-rw-r--r--id/server/stork2-saml-engine/pom.xml6
-rw-r--r--id/server/stork2-saml-engine/src/main/java/eu/stork/peps/auth/engine/core/impl/SignSW.java18
-rw-r--r--pom.xml9
-rw-r--r--repository/xalan-bin-dist/xml-apis/2.11.0/xml-apis-2.11.0.pom2
-rw-r--r--spss/handbook/conf/moa-spss/certstore/toBeAdded/a-sign-Premium-Test-Sig-02.20141124-20241118.SerNo3969edc1.cerbin0 -> 1029 bytes
-rw-r--r--spss/handbook/conf/moa-spss/certstore/toBeAdded/a-sign-Premium-enc-02.20140701-20240701.SerNo144dfd.cerbin0 -> 1159 bytes
-rw-r--r--spss/handbook/conf/moa-spss/certstore/toBeAdded/a-sign-Test-Qual-01.20141117-20241111.SerNo16120f.cer23
-rw-r--r--spss/handbook/conf/moa-spss/certstore/toBeAdded/a-sign-corporate-light-02.20140905-20240905.SerNo153B49.cerbin0 -> 1167 bytes
-rw-r--r--spss/handbook/conf/moa-spss/certstore/toBeAdded/a-sign-premium-sig-02.20140701-20240701.SerNo144e10.cerbin0 -> 1159 bytes
-rw-r--r--spss/handbook/conf/moa-spss/certstore/toBeAdded/a-sign-premium-sig-03.20140701-20240701.SerNo144e13.cerbin0 -> 1159 bytes
-rw-r--r--spss/handbook/conf/moa-spss/certstore/toBeAdded/atrust_OCSP_Responder_03-1.crtbin0 -> 1185 bytes
-rw-r--r--spss/handbook/conf/moa-spss/trustProfiles/certifiedSignature+Test/A-Trust-Test-Qual-02.20141124-20141118.SerNo3969edbf.cerbin0 -> 996 bytes
-rw-r--r--spss/handbook/conf/moa-spss/trustProfiles/certifiedSignature+Test/a-sign-Test-Qual-01.20141117-20241111.SerNo16120f.cer23
-rw-r--r--spss/handbook/conf/moa-spss/trustProfiles/identityLink+Test/a-sign-corporate-light-02.20140905-20240905.SrN153B49.crtbin0 -> 1167 bytes
-rw-r--r--spss/handbook/conf/moa-spss/trustProfiles/identityLink/a-sign-corporate-light-02.20140905-20240905.SrN153B49.crtbin0 -> 1167 bytes
-rw-r--r--spss/handbook/conf/moa-spss/trustProfiles/officialSignature/a-sign-Premium-enc-02.20140701-20240701.SerNo144dfd.cerbin0 -> 1159 bytes
-rw-r--r--spss/handbook/conf/moa-spss/trustProfiles/officialSignature/a-sign-corporate-light-02.20140905-20240905.SrN153B49.crtbin0 -> 1167 bytes
-rw-r--r--spss/handbook/conf/moa-spss/trustProfiles/officialSignature/a-sign-premium-sig-02.20140701-20240701.SerNo144e10.cerbin0 -> 1159 bytes
-rw-r--r--spss/handbook/conf/moa-spss/trustProfiles/officialSignature/a-sign-premium-sig-03.20140701-20240701.SerNo144e13.cerbin0 -> 1159 bytes
-rw-r--r--spss/handbook/conf/moa-spss/trustProfiles/secureSignature+Test/a-sign-Premium-Test-Sig-02.20141124-20141118.SerNo3969edc1.cerbin0 -> 1029 bytes
-rw-r--r--spss/handbook/conf/moa-spss/trustProfiles/secureSignature+Test/a-sign-Test-Qual-01.20141117-20241111.SerNo16120f.cer23
-rw-r--r--spss/server/serverws/pom.xml4
300 files changed, 39458 insertions, 5670 deletions
diff --git a/common/pom.xml b/common/pom.xml
index bde3339d6..e702c5e66 100644
--- a/common/pom.xml
+++ b/common/pom.xml
@@ -67,12 +67,12 @@
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
- <version>2.4</version>
+ <version>2.7</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
- <version>1.7.7</version>
+ <version>1.7.10</version>
</dependency>
<!-- <dependency>
<groupId>org.slf4j</groupId>
@@ -82,12 +82,12 @@
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
- <version>1.7.7</version>
+ <version>1.7.10</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
- <version>1.7.7</version>
+ <version>1.7.10</version>
</dependency>
<!-- <dependency>
<groupId>org.slf4j</groupId>
@@ -101,12 +101,12 @@
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
- <version>1.7.7</version>
+ <version>1.7.10</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jul-to-slf4j</artifactId>
- <version>1.7.7</version>
+ <version>1.7.10</version>
</dependency>
</dependencies>
diff --git a/id/ConfigWebTool/pom.xml b/id/ConfigWebTool/pom.xml
index b7e4f5969..1ddcf4dc1 100644
--- a/id/ConfigWebTool/pom.xml
+++ b/id/ConfigWebTool/pom.xml
@@ -150,12 +150,12 @@
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-core</artifactId>
- <version>2.3.16.3</version>
+ <version>2.3.20</version>
</dependency>
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-json-plugin</artifactId>
- <version>2.3.16.3</version>
+ <version>2.3.20</version>
</dependency>
<dependency>
diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/auth/pvp2/MetaDataVerificationFilter.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/auth/pvp2/MetaDataVerificationFilter.java
index 332adaa80..7bf2cf93f 100644
--- a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/auth/pvp2/MetaDataVerificationFilter.java
+++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/auth/pvp2/MetaDataVerificationFilter.java
@@ -46,7 +46,6 @@ public class MetaDataVerificationFilter implements MetadataFilter {
public void doFilter(XMLObject metadata) throws FilterException {
if (metadata instanceof EntitiesDescriptor) {
EntitiesDescriptor entitiesDescriptor = (EntitiesDescriptor) metadata;
-
if(entitiesDescriptor.getSignature() == null) {
throw new FilterException("Root element of metadata file has to be signed", null);
}
@@ -57,7 +56,7 @@ public class MetaDataVerificationFilter implements MetadataFilter {
throw new FilterException("Invalid Metadata file Root element is no EntitiesDescriptor", null);
}
- } if (metadata instanceof EntityDescriptor) {
+ } if (metadata instanceof EntityDescriptor) {
try {
EntityDescriptor entity = (EntityDescriptor) metadata;
if (entity.getSignature() != null)
diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/config/ConfigurationProvider.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/config/ConfigurationProvider.java
index 957479b29..e6000319e 100644
--- a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/config/ConfigurationProvider.java
+++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/config/ConfigurationProvider.java
@@ -437,23 +437,23 @@ public class ConfigurationProvider {
return parseVersionFromManifest();
}
- public String getCertStoreDirectory() throws CertificateException {
+ public String getCertStoreDirectory() throws ConfigurationException {
String dir = props.getProperty("general.ssl.certstore");
if (MiscUtil.isNotEmpty(dir))
return FileUtils.makeAbsoluteURL(dir, configRootDir);
else
- throw new CertificateException("No SSLCertStore configured use default JAVA TrustStore.");
+ throw new ConfigurationException("No SSLCertStore configured use default JAVA TrustStore.");
}
- public String getTrustStoreDirectory() throws CertificateException {
+ public String getTrustStoreDirectory() throws ConfigurationException {
String dir = props.getProperty("general.ssl.truststore");
if (MiscUtil.isNotEmpty(dir))
return FileUtils.makeAbsoluteURL(dir, configRootDir);
else
- throw new CertificateException("No SSLTrustStore configured use default JAVA TrustStore.");
+ throw new ConfigurationException("No SSLTrustStore configured use default JAVA TrustStore.");
}
diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/oa/OAAuthenticationData.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/oa/OAAuthenticationData.java
index 0e65b7dca..a9c914f74 100644
--- a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/oa/OAAuthenticationData.java
+++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/oa/OAAuthenticationData.java
@@ -30,6 +30,7 @@ import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import at.gv.egovernment.moa.id.commons.db.ConfigurationDBRead;
+import at.gv.egovernment.moa.id.commons.db.ConfigurationDBUtils;
import at.gv.egovernment.moa.id.commons.db.dao.config.AuthComponentOA;
import at.gv.egovernment.moa.id.commons.db.dao.config.BKUURLS;
import at.gv.egovernment.moa.id.commons.db.dao.config.DefaultBKUs;
@@ -40,6 +41,7 @@ import at.gv.egovernment.moa.id.commons.db.dao.config.OnlineApplication;
import at.gv.egovernment.moa.id.commons.db.dao.config.TemplateType;
import at.gv.egovernment.moa.id.commons.db.dao.config.TemplatesType;
import at.gv.egovernment.moa.id.commons.db.dao.config.TestCredentials;
+import at.gv.egovernment.moa.id.commons.db.dao.config.TestCredentialsCredentialOIDItem;
import at.gv.egovernment.moa.id.commons.db.dao.config.TransformsInfoType;
import at.gv.egovernment.moa.id.configuration.Constants;
import at.gv.egovernment.moa.id.configuration.auth.AuthenticatedUser;
@@ -207,8 +209,9 @@ public class OAAuthenticationData implements IOnlineApplicationData {
}
if (oaauth.getTestCredentials() != null) {
- enableTestCredentials = oaauth.getTestCredentials().isEnableTestCredentials();
- testCredentialOIDs = oaauth.getTestCredentials().getCredentialOID();
+ enableTestCredentials = oaauth.getTestCredentials().isEnableTestCredentials();
+ testCredentialOIDs = new ArrayList<String>();
+ testCredentialOIDs.addAll(oaauth.getTestCredentials().getCredentialOID());
}
@@ -315,12 +318,20 @@ public class OAAuthenticationData implements IOnlineApplicationData {
if (enableTestCredentials) {
TestCredentials testing = authoa.getTestCredentials();
- if (testing == null)
- testing = new TestCredentials();
-
- testing.setEnableTestCredentials(enableTestCredentials);
+ if (testing != null)
+ ConfigurationDBUtils.delete(testing);
+
+ testing = new TestCredentials();
+ authoa.setTestCredentials(testing);
+ testing.setEnableTestCredentials(enableTestCredentials);
testing.setCredentialOID(testCredentialOIDs);
+ } else {
+ TestCredentials testing = authoa.getTestCredentials();
+ if (testing != null) {
+ testing.setEnableTestCredentials(false);
+ }
+
}
return null;
@@ -576,12 +587,14 @@ public class OAAuthenticationData implements IOnlineApplicationData {
*/
public String getTestCredentialOIDs() {
String value = null;
- for (String el : testCredentialOIDs) {
- if (value == null)
- value = el;
- else
- value += "," + el;
+ if (testCredentialOIDs != null) {
+ for (String el : testCredentialOIDs) {
+ if (value == null)
+ value = el;
+ else
+ value += "," + el;
+ }
}
return value;
@@ -595,12 +608,13 @@ public class OAAuthenticationData implements IOnlineApplicationData {
* @param testCredentialOIDs the testCredentialOIDs to set
*/
public void setTestCredentialOIDs(String testCredentialOIDs) {
- String[] oidList = testCredentialOIDs.split(",");
+ if (MiscUtil.isNotEmpty(testCredentialOIDs)) {
+ String[] oidList = testCredentialOIDs.split(",");
- this.testCredentialOIDs = new ArrayList<String>();
- for (int i=0; i<oidList.length; i++)
- this.testCredentialOIDs.add(oidList[i].trim());
+ this.testCredentialOIDs = new ArrayList<String>();
+ for (int i=0; i<oidList.length; i++)
+ this.testCredentialOIDs.add(oidList[i].trim());
+ }
}
-
-
+
}
diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/helper/FormDataHelper.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/helper/FormDataHelper.java
index 150483dd8..e5ee5ac09 100644
--- a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/helper/FormDataHelper.java
+++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/helper/FormDataHelper.java
@@ -60,10 +60,12 @@ public class FormDataHelper {
for (OnlineApplication dboa : dbOAs) {
- if ( !((dboa.isIsInterfederationIDP() != null && dboa.isIsInterfederationIDP()) ||
+ if ( !((dboa.isIsInterfederationIDP() != null && dboa.isIsInterfederationIDP()) ||
+ (dboa.isIsInterfederationGateway() != null && dboa.isIsInterfederationGateway()) ||
(dboa.getAuthComponentOA().getOASTORK() != null
&& dboa.getAuthComponentOA().getOASTORK().isVidpEnabled() != null
- && dboa.getAuthComponentOA().getOASTORK().isVidpEnabled()))) {
+ && dboa.getAuthComponentOA().getOASTORK().isVidpEnabled()) ||
+ (dboa.isIsInterfederationGateway() != null && dboa.isIsInterfederationGateway() ))) {
formOAs.add(addOAFormListElement(dboa, ServiceType.OA));
}
}
diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/BasicOAAction.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/BasicOAAction.java
index 5a9787069..26d97484b 100644
--- a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/BasicOAAction.java
+++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/BasicOAAction.java
@@ -291,8 +291,17 @@ public class BasicOAAction extends BasicAction {
} else {
- if (oaid == -1) {
- onlineapplication = ConfigurationDBRead.getOnlineApplication(oaidentifier);
+ if (oaid == -1) {
+ List<OnlineApplication> oaList = ConfigurationDBRead.getAllOnlineApplications();
+ for (OnlineApplication el : oaList) {
+ if (el.getPublicURLPrefix().startsWith(oaidentifier) )
+ onlineapplication = el;
+
+ }
+ if (onlineapplication == null) {
+ onlineapplication = ConfigurationDBRead.getOnlineApplication(oaidentifier);
+
+ }
setNewOA(true);
if (onlineapplication != null) {
log.info("The OAIdentifier is not unique");
@@ -306,7 +315,17 @@ public class BasicOAAction extends BasicAction {
onlineapplication = ConfigurationDBRead.getOnlineApplication(oaid);
if (!oaidentifier.equals(onlineapplication.getPublicURLPrefix())) {
- if (ConfigurationDBRead.getOnlineApplication(oaidentifier) != null) {
+ OnlineApplication dbOA = null;
+ List<OnlineApplication> oaList = ConfigurationDBRead.getAllOnlineApplications();
+ for (OnlineApplication el : oaList) {
+ if (el.getPublicURLPrefix().startsWith(oaidentifier) )
+ dbOA = el;
+
+ }
+ if (dbOA == null)
+ dbOA = ConfigurationDBRead.getOnlineApplication(oaidentifier);
+
+ if ( (dbOA != null && !dbOA.getHjid().equals(oaid))) {
log.info("The OAIdentifier is not unique");
throw new BasicOAActionException(
LanguageHelper.getErrorString("validation.general.oaidentifier.notunique", request),
diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/EditGeneralConfigAction.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/EditGeneralConfigAction.java
index 31c29aef0..4236c0d13 100644
--- a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/EditGeneralConfigAction.java
+++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/EditGeneralConfigAction.java
@@ -241,6 +241,9 @@ public class EditGeneralConfigAction extends BasicAction {
}
MOAIDConfiguration dbconfig = ConfigurationDBRead.getMOAIDConfiguration();
+ if (dbconfig == null)
+ dbconfig = new MOAIDConfiguration();
+
AuthComponentGeneral dbauth = dbconfig.getAuthComponentGeneral();
if (dbauth == null) {
diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/ListOAsAction.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/ListOAsAction.java
index 7f7f083c9..335dbc91e 100644
--- a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/ListOAsAction.java
+++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/ListOAsAction.java
@@ -133,7 +133,7 @@ public class ListOAsAction extends BasicAction {
} else {
if (ValidationHelper.containsPotentialCSSCharacter(friendlyname, false)) {
log.warn("SearchOA textfield contains potential XSS characters");
- addActionError(LanguageHelper.getErrorString("validation.general.oafriendlyname",
+ addActionError(LanguageHelper.getErrorString("validation.general.oafriendlyname.valid",
new Object[] {ValidationHelper.getPotentialCSSCharacter(false)}, request));
return Constants.STRUTS_SUCCESS;
}
diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/validation/oa/OAAuthenticationDataValidation.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/validation/oa/OAAuthenticationDataValidation.java
index fd40bd447..fd4226c5b 100644
--- a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/validation/oa/OAAuthenticationDataValidation.java
+++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/validation/oa/OAAuthenticationDataValidation.java
@@ -147,12 +147,14 @@ public class OAAuthenticationDataValidation {
}
}
- if (form.isEnableTestCredentials()) {
+ if (form.isEnableTestCredentials()
+ && form.getTestCredialOIDList() != null && !form.getTestCredialOIDList().isEmpty()) {
for (String el : form.getTestCredialOIDList()) {
- if (!el.startsWith(MOAIDAuthConstants.TESTCREDENTIALROOTOID))
+ if (!el.startsWith(MOAIDAuthConstants.TESTCREDENTIALROOTOID)) {
log.warn("Test credential OID does not start with test credential root OID");
errors.add(LanguageHelper.getErrorString("validation.general.testcredentials.oid.valid",
new Object[] {el}, request ));
+ }
}
diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/validation/oa/OAPVP2ConfigValidation.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/validation/oa/OAPVP2ConfigValidation.java
index 40e243d0b..8e1dd6e64 100644
--- a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/validation/oa/OAPVP2ConfigValidation.java
+++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/validation/oa/OAPVP2ConfigValidation.java
@@ -36,8 +36,10 @@ import javax.servlet.http.HttpServletRequest;
import org.apache.commons.httpclient.MOAHttpClient;
import org.apache.log4j.Logger;
import org.opensaml.Configuration;
+import org.opensaml.common.xml.SAMLSchemaBuilder;
import org.opensaml.saml2.metadata.provider.HTTPMetadataProvider;
import org.opensaml.saml2.metadata.provider.MetadataFilter;
+import org.opensaml.saml2.metadata.provider.MetadataFilterChain;
import org.opensaml.saml2.metadata.provider.MetadataProviderException;
import org.opensaml.xml.io.Marshaller;
import org.opensaml.xml.io.MarshallerFactory;
@@ -58,6 +60,7 @@ import at.gv.egovernment.moa.id.configuration.config.ConfigurationProvider;
import at.gv.egovernment.moa.id.configuration.data.oa.OAPVP2Config;
import at.gv.egovernment.moa.id.configuration.exception.ConfigurationException;
import at.gv.egovernment.moa.id.configuration.helper.LanguageHelper;
+import at.gv.egovernment.moa.id.protocols.pvp2x.verification.metadata.SchemaValidationFilter;
import at.gv.egovernment.moa.util.MiscUtil;
public class OAPVP2ConfigValidation {
@@ -126,17 +129,29 @@ public class OAPVP2ConfigValidation {
} catch (ConfigurationException e) {
log.info("No MOA specific SSL-TrustStore configured. Use default Java TrustStore.", e);
- }
+ }
+
+ List<MetadataFilter> filterList = new ArrayList<MetadataFilter>();
+ filterList.add(new MetaDataVerificationFilter(credential));
+ filterList.add(new SchemaValidationFilter());
+ MetadataFilterChain filter = new MetadataFilterChain();
+ filter.setFilters(filterList);
httpProvider =
new HTTPMetadataProvider(timer, httpClient, form.getMetaDataURL());
httpProvider.setParserPool(new BasicParserPool());
httpProvider.setRequireValidMetadata(true);
- httpProvider.setMetadataFilter(new MetaDataVerificationFilter(credential));
+ httpProvider.setMetadataFilter(filter);
httpProvider.setMinRefreshDelay(1000*60*15); //15 minutes
httpProvider.setMaxRefreshDelay(1000*60*60*24); //24 hours
+
+ httpProvider.setRequireValidMetadata(true);
+
httpProvider.initialize();
+
+
+
if (httpProvider.getMetadata() == null) {
log.info("Metadata could be received but validation FAILED.");
errors.add(LanguageHelper.getErrorString("validation.pvp2.metadata.validation", request));
@@ -157,6 +172,8 @@ public class OAPVP2ConfigValidation {
} catch (MetadataProviderException e) {
+
+ //TODO: check exception handling
if (e.getCause() != null && e.getCause().getCause() instanceof SSLHandshakeException) {
log.info("SSL Server certificate not trusted.", e);
errors.add(LanguageHelper.getErrorString("validation.pvp2.metadata.ssl", request));
diff --git a/id/server/auth/src/main/webapp/common/MOA.css b/id/server/auth/src/main/webapp/common/MOA.css
deleted file mode 100644
index b7a2b9280..000000000
--- a/id/server/auth/src/main/webapp/common/MOA.css
+++ /dev/null
@@ -1,617 +0,0 @@
-body
-{
- font-family: "Times New Roman", Times, serif;
- font-size: medium;
- font-weight: normal;
- margin-left: 2.5em;
- margin-right: 2.5em;
- background-color: white;
- text: #000000;
- link: #990000;
- vlink: #666666;
- alink: #cc9966;
-}
-
-
-
-p
-{
- margin-top: 0pt;
- margin-bottom: 0.5em;
- text-align: justify
-}
-
-pre
-{
- font-family: "Courier New", monospace;
- font-size: 90%;
- background-color: #cccccc;
- color: #000000;
- margin-left:1.5%;
- margin-right:1.5%;
- margin-top: 1em;
- margin-bottom: 1em;
- border: #008000 none;
-}
-
-hr
-{
- color: #000080;
- background-color: #000080;
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-table.fixedWidth
-{
- width: 97%;
- margin-left:1.5%;
- margin-right:1.5%;
- margin-top: 1em;
- margin-bottom: 1em;
-}
-
-
-table.varWidth
-{
- margin-left:1.5%;
- margin-top: 1em;
- margin-bottom: 1em;
-}
-
-th
-{
- text-align: left;
-}
-
-h1
-{
- color: #000000;
- text-align: left;
- font-size: 167%;
- font-family: Arial, Helvetica, sans-serif;
- font-weight: normal;
- background-color:#999;
-}
-
-h2
-{
- color: #000000;
- font-size: 150%;
- font-family: Arial, Helvetica, sans-serif;
- font-weight: normal;
- background-color:#999;
-}
-
-h3
-{
- color: #000000;
- font-size: 133%;
- font-family: Arial, Helvetica, sans-serif;
- font-weight: normal;
- background-color:#999;
-}
-
-h4
-{
- color: #000000;
- font-size: 116%;
- font-family: Arial, Helvetica, sans-serif;
- font-weight: normal;
- background-color:#999;
-}
-
-h5
-{
- color: #000000;
- font-size: 100%;
- font-family: Arial, Helvetica, sans-serif;
- font-weight: normal;
- background-color:#999;
-}
-
-h6
-{
- color: #000000;
- font-size: 83%;
- font-family: Arial, Helvetica, sans-serif;
- font-weight: normal;
- background-color:#999;
-}
-
-code
-{
- font-family: "Courier New", Courier, monospace;
- font-size: 90%;
- color: #000000
-}
-
-dd
-{
- margin-top: 0.8em;
- margin-bottom: 0.8em;
- text-align: justify
-
-}
-
-dt
-{
- margin-top: 0.8em;
- font-family: Arial, Helvetica, sans-serif;
- color: #000080
-}
-
-ol
-{
- margin-top: 0.5em;
- margin-bottom: 0.5em
-}
-
-ol.alpha
-{
- list-style-type: lower-alpha
-}
-
-li
-{
- margin-top: 0.25em;
- margin-bottom: 0.25em;
- text-align: justify
-}
-
-a:hover
-{
- color: #990000
-}
-
-
-.title
-{
- text-align: left;
- font-size: 200%;
- color: #000000;
- font-family: Arial, Helvetica, sans-serif;
- margin-top: 0.4em;
- margin-bottom: 0.4em;
- background-color:#999;
-}
-
-.subtitle
-{
- text-align: left;
- font-size: 133%;
- color: #000000;
- font-family: Arial, Helvetica, sans-serif;
- margin-top: 0.4em;
- margin-bottom: 0.4em
-}
-
-.glossaryTerm
-{
- font-style: italic;
- color: #006699
-}
-
-.example
-{
- font-family: "Courier New", monospace;
- background-color: #CCFFFF;
- color: #000000;
- margin: 0pt 0pt;
- border: #008000 none
-}
-
-.schema
-{
- font-family: "Courier New", monospace;
- background-color: #FFFFCC;
- color: #000000;
- margin: 0pt 0pt;
- border: #008000 none
-}
-
-.documentinfo
-{
- font-family: Arial, Helvetica, sans-serif;
- font-size: 100%;
-}
-
-.ol-contents
-{
- font-size: 100%;
- margin-top: 0.0em;
- margin-bottom: 0.0em;
-}
-
-.li-contents
-{
- font-size: 100%;
- margin-top: 0.0em;
- margin-bottom: 0.0em;
-}
-
-.logoTitle
-{
- text-align: center;
- font-size: 200%;
- color: #000080;
- font-family: Arial, Helvetica, sans-serif;
-}
-
-.logoTable
-{
- margin-bottom: 0px;
- margin-left: 0px
-}
-
-.superscript
-{
- vertical-align: super;
- font-size: 66%;
-}
-
-.term
-{
- font-style: italic;
-}
-
-.comment
-{
- color: #000000;
- background: #ffff00;
- font-style: italic
-}
-
-.addedErrata12
-{
- color: #FF0000;
- background-color: #FFEEEE;
- text-decoration: underline
-}
-
-.deletedErrata12
-{
- color: #999999;
- background-color: #EEEEEE;
- text-decoration: line-through
-}
-
-.added12
-{
- color: #FF0000;
- text-decoration: underline
-; background-color: #F8F0FF
-}
-
-.deleted12
-{
- color: #999999;
- text-decoration: line-through
-; background-color: #f8f0ff
-}
-
-.rfc2119Keyword
-{
- font-variant: small-caps;
- font-style: normal;
-}
-
-.remark { font-style: italic}
-
-li.faq
-{
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-
-.faq-question
-{
- color: #000080;
- font-size: 100%;
- font-family: Arial, Helvetica, sans-serif;
- font-weight: normal;
- margin-bottom: 0.4em;
-}
-
-
-/*body
-{
- font-family: "Times New Roman", Times, serif;
- font-size: medium;
- font-weight: normal;
- margin-left: 2.5em;
- margin-right: 2.5em;
-}
-
-p
-{
- margin-top: 0pt;
- margin-bottom: 0.5em;
- text-align: justify
-}
-
-pre
-{
- font-family: "Courier New", monospace;
- font-size: 90%;
- background-color: #cccccc;
- color: #000000;
- margin-left:1.5%;
- margin-right:1.5%;
- margin-top: 1em;
- margin-bottom: 1em;
- border: #008000 none;
-}
-
-hr
-{
- color: #000080;
- background-color: #000080;
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-table.fixedWidth
-{
- width: 97%;
- margin-left:1.5%;
- margin-right:1.5%;
- margin-top: 1em;
- margin-bottom: 1em;
-}
-
-
-table.varWidth
-{
- margin-left:1.5%;
- margin-top: 1em;
- margin-bottom: 1em;
-}
-
-th
-{
- text-align: left;
-}
-
-h1
-{
- color: #000080;
- text-align: left;
- font-size: 167%;
- font-family: Arial, Helvetica, sans-serif;
- font-weight: normal
-}
-
-h2
-{
- color: #000080;
- font-size: 150%;
- font-family: Arial, Helvetica, sans-serif;
- font-weight: normal
-}
-
-h3
-{
- color: #000080;
- font-size: 133%;
- font-family: Arial, Helvetica, sans-serif;
- font-weight: normal
-}
-
-h4
-{
- color: #000080;
- font-size: 116%;
- font-family: Arial, Helvetica, sans-serif;
- font-weight: normal
-}
-
-h5
-{
- color: #000080;
- font-size: 100%;
- font-family: Arial, Helvetica, sans-serif;
- font-weight: normal
-}
-
-h6
-{
- color: #000080;
- font-size: 83%;
- font-family: Arial, Helvetica, sans-serif;
- font-weight: normal
-}
-
-code
-{
- font-family: "Courier New", Courier, monospace;
- font-size: 90%;
- color: #000000
-}
-
-dd
-{
- margin-top: 0.8em;
- margin-bottom: 0.8em;
- text-align: justify
-
-}
-
-dt
-{
- margin-top: 0.8em;
- font-family: Arial, Helvetica, sans-serif;
- color: #000080
-}
-
-ol
-{
- margin-top: 0.5em;
- margin-bottom: 0.5em
-}
-
-ol.alpha
-{
- list-style-type: lower-alpha
-}
-
-li
-{
- margin-top: 0.25em;
- margin-bottom: 0.25em;
- text-align: justify
-}
-
-a:hover
-{
- color: #990000
-}
-
-
-.title
-{
- text-align: left;
- font-size: 167%;
- color: #000080;
- font-family: Arial, Helvetica, sans-serif;
- margin-top: 0.4em;
- margin-bottom: 0.4em
-}
-
-.subtitle
-{
- text-align: left;
- font-size: 133%;
- color: #000080;
- font-family: Arial, Helvetica, sans-serif;
- margin-top: 0.4em;
- margin-bottom: 0.4em
-}
-
-.glossaryTerm
-{
- font-style: italic;
- color: #006699
-}
-
-.example
-{
- font-family: "Courier New", monospace;
- background-color: #CCFFFF;
- color: #000000;
- margin: 0pt 0pt;
- border: #008000 none
-}
-
-.schema
-{
- font-family: "Courier New", monospace;
- background-color: #FFFFCC;
- color: #000000;
- margin: 0pt 0pt;
- border: #008000 none
-}
-
-.documentinfo
-{
- font-family: Arial, Helvetica, sans-serif;
- font-size: 100%;
-}
-
-.ol-contents
-{
- font-size: 100%;
- margin-top: 0.0em;
- margin-bottom: 0.0em;
-}
-
-.li-contents
-{
- font-size: 100%;
- margin-top: 0.0em;
- margin-bottom: 0.0em;
-}
-
-.logoTitle
-{
- text-align: center;
- font-size: 133%;
- color: #000080;
- font-family: Arial, Helvetica, sans-serif;
-}
-
-.logoTable
-{
- margin-bottom: 0px;
- margin-left: 0px
-}
-
-.superscript
-{
- vertical-align: super;
- font-size: 66%;
-}
-
-.term
-{
- font-style: italic;
-}
-
-.comment
-{
- color: #000000;
- background: #ffff00;
- font-style: italic
-}
-
-.addedErrata12
-{
- color: #FF0000;
- background-color: #FFEEEE;
- text-decoration: underline
-}
-
-.deletedErrata12
-{
- color: #999999;
- background-color: #EEEEEE;
- text-decoration: line-through
-}
-
-.added12
-{
- color: #FF0000;
- text-decoration: underline
-; background-color: #F8F0FF
-}
-
-.deleted12
-{
- color: #999999;
- text-decoration: line-through
-; background-color: #f8f0ff
-}
-
-.rfc2119Keyword
-{
- font-variant: small-caps;
- font-style: normal;
-}
-
-.remark { font-style: italic}
-
-li.faq
-{
- margin-top: 1.5em;
- margin-bottom: 1.5em;
-}
-
-.faq-question
-{
- color: #000080;
- font-size: 100%;
- font-family: Arial, Helvetica, sans-serif;
- font-weight: normal;
- margin-bottom: 0.4em;
-}
-*/ \ No newline at end of file
diff --git a/id/server/auth/src/main/webapp/common/logo_digAT.png b/id/server/auth/src/main/webapp/common/logo_digAT.png
new file mode 100644
index 000000000..4f36681e2
--- /dev/null
+++ b/id/server/auth/src/main/webapp/common/logo_digAT.png
Binary files differ
diff --git a/id/server/auth/src/main/webapp/common/main.css b/id/server/auth/src/main/webapp/common/main.css
new file mode 100644
index 000000000..6bd964346
--- /dev/null
+++ b/id/server/auth/src/main/webapp/common/main.css
@@ -0,0 +1,253 @@
+html {
+ font-family: "Roboto", sans-serif;
+ color: #000;
+ font-weight:300;
+}
+
+.container {
+ margin: auto;
+ max-width: 1000px;
+ padding-left: 20px;
+ padding-right: 20px;
+}
+
+body {
+ margin: 0;
+ padding: 0;
+ letter-spacing: 0.05em;
+}
+
+h1
+{
+font-family: "Roboto", sans-serif;
+}
+
+#headline {
+ /*background: linear-gradient(center top , #FAFAFA, #F5F5F5) repeat scroll 0% 0% transparent;*/
+ background: linear-gradient(#FAFAFA, #F5F5F5);
+ border-bottom: 1px solid #EEE;
+}
+
+#headline br {
+ clear: both;
+}
+
+#headline h1 {
+ color: #404040;
+ padding-right: 1em;
+ padding-top: 0.3em;
+ margin-bottom: 0;
+ float: right;
+ font-size: 220%;
+ font-weight: 400;
+ }
+#headline img {
+ width: 300px;
+ padding-left: 0;
+ padding-top: 35px;
+ padding-bottom:20px;
+ }
+
+#description {
+ text-align: justify;
+}
+
+#maincontent {
+ height: 13em;
+}
+
+#demologin p {
+ padding-left: 10px;
+ padding-right: 10px;
+ text-align: justify;
+ font-size: 100%;
+ color: #000;
+ padding-top:20px;
+
+}
+
+#demologin a{
+
+}
+
+.button {
+ border-radius: 5px;
+ /*background-color: rgb(41,127,184); */
+ background-color: #E10319;
+ text-decoration: none;
+ text-transform: uppercase;
+ padding: 10px 80px 10px 80px;
+ letter-spacing: 1.5px;
+ text-shadow: 0px 1px 0px rgba(0, 0, 0, 0.3);
+ color: WHITE;
+ box-shadow: 0px 2px 2px rgba(0, 0, 0, 0.3);
+ margin-left: 10px;
+}
+
+.button:hover {
+ box-shadow: 0px 2px 2px rgba(0, 0, 0, 0.8);
+ text-shadow: 0px 1px 0px rgba(0, 0, 0, 0.9);
+}
+
+#singlelogout {
+ clear: both;
+ width: 100%;
+ box-sizing: border-box;
+
+}
+a{
+ text-decoration: none;
+ font-size:100%;
+ color: #666;
+}
+a:hover{
+ text-decoration: none;
+ font-size:100%;
+ color: #E10319;
+}
+
+/*****************************/
+@media ( max-width :599px) {
+ #headline {
+ /*background: linear-gradient(center top , #FAFAFA, #F5F5F5) repeat scroll 0% 0% transparent;*/
+ background: linear-gradient(#FAFAFA, #F5F5F5);
+ border-bottom: 1px solid #EEE;
+ }
+
+ #headline img {
+ width: 150px;
+ padding-left: 0;
+ padding-top: 0.5em;
+ padding-bottom:0.5em;
+ }
+ #headline br {
+ clear: both;
+ }
+ #headline h1 {font-family: "Roboto", sans-serif;
+ color: #404040;
+ padding: 0;
+ margin-bottom: 0;
+ margin-top: 0;
+ text-align: center;
+ }
+ nav {
+ display: block;
+ width: 100%;
+ text-align: center;
+ box-sizing: border-box;
+ color: WHITE;
+ margin: 0px 0px 0px 0px;
+ overflow: hidden;
+
+ }
+ nav ul {
+ margin: 0;
+ padding: 0;
+ }
+ nav ul li {
+ list-style-type: none;
+ padding-top: 2px;
+ padding-bottom: 2px;
+ }
+ nav>ul>li>a {
+ color: #666;
+ display: block;
+ text-decoration: none;
+ }
+ nav>ul>li:hover {
+ color: #404040;
+ }
+ nav>ul>li:hover>a {
+ color: #404040;
+ }
+ nav>ul>li:active>a {
+ color: #404040;
+ }
+ #demologin {
+ width: 100%;
+ box-sizing: border-box;
+ border: 1px solid;
+ border-radius: 1px;
+ border-color: #818286;
+ background: #F5F5F5;
+ height: 182px;
+ width: 242px;
+ margin-top: 18px;
+ padding-left:0;
+ }
+}
+/*****************************/
+@media ( min-width :600px) {
+ #headline {
+ /*background: linear-gradient(center top , #FAFAFA, #F5F5F5) repeat scroll 0% 0% transparent;*/
+ background: linear-gradient(#FAFAFA, #F5F5F5);
+ border-bottom: 1px solid #EEE;
+
+ }
+ #headline br {
+ clear: both;
+ }
+
+ #headline h1 {
+ color: #404040;
+ padding-right: 1em;
+ padding-top: 0.15em;
+ margin-bottom: 0;
+ float: right;
+ }
+ #headline img {
+ width: 300px;
+ padding-left: 0;
+ padding-top: 35px;
+ padding-bottom:20px;
+ }
+ nav {
+ display: block;
+ float: left;
+ width: 30%;
+ box-sizing: border-box;
+ background-color: #fff;
+ color: #888;
+ margin: 8px 0px 8px 0px;
+ overflow: hidden;
+ }
+ nav ul {
+ margin: 0;
+ padding: 0;
+ }
+ nav ul li {
+ list-style-type: none;
+ padding-top: 15px;
+ }
+ nav>ul>li>a {
+ color: #666;
+ display: block;
+ text-decoration: none;
+ }
+ nav>ul>li:hover {
+ color: #E10319;
+ }
+ nav>ul>li:hover>a {
+ color: #E10319;
+ }
+ nav>ul>li:active>a {
+ color: #E10319;
+ }
+ #demologin {
+ float: right;
+ width: 50%;
+ box-sizing: border-box;
+ border: 1px solid;
+ border-radius: 1px;
+ border-color: #818286;
+ background: #F5F5F5;
+ height: 282px;
+ width: 342px;
+ margin-right: 150px;
+ margin-top: 18px;
+ padding-left:0;
+ }
+ #demologin a:hover{
+ color:white;
+ }
+} \ No newline at end of file
diff --git a/id/server/auth/src/main/webapp/index.html b/id/server/auth/src/main/webapp/index.html
index 391195def..381d8d82d 100644
--- a/id/server/auth/src/main/webapp/index.html
+++ b/id/server/auth/src/main/webapp/index.html
@@ -1,102 +1,91 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
- <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" >
- <title>MOA-ID 2.1.x</title>
- <link rel="stylesheet" href="./common/MOA.css" type="text/css">
-</head>
-<body link="#990000">
- <table class="logoTable" width="100%" border="0" cellspacing="0" cellpadding="10">
- <tr>
- <td align="center" class="logoTitle" width="267"><img src="./common/LogoBKA.png" alt="Logo BKA" width="267" height="37" align="left"></td>
- <td align="center" class="logoTitle">&nbsp;</td>
- <td align="center" class="logoTitle" width="123"><img src="./common/LogoEGIZ.png" alt="Logo EGIZ" width="230" height="81" align="right"></td>
- </tr>
- </table>
- <hr/>
- <p class="title">MOA-ID 2.1.2</p>
-<hr/>
- <h1>Inhalt</h1>
- <ol>
- <li><a href="#allgemeines">Allgemeines</a>
- <ol>
- <li><a href="#allgemeines_service">Externe Services</a></li>
- </ol>
- </li>
- <li><a href="#ss">MOA-ID-Auth </a>
- <ol>
- <li><a href="#ablauf">Ablauf einer Anmeldung</a></li>
- </ol>
- </li>
- <li><a href="#sp">MOA-ID-Configuration</a></li>
- </ol>
-<hr/>
- <h1><a name="allgemeines"></a>1 Allgemeines</h1>
- <p> Das Module MOA-ID-Auth kann von Anwendungen zur Identifizierung und Authentifizierung im Rahmen eines Anmeldeprozesses an einer Online-Applikation verwendet werden. Die Konfiguration des Modules MOA-ID-Auth erfolgt mit Hilfe des Zusatzmodules MOA-ID-Configuration welches eine web-basierte Konfigurationsschnittstelle zur Verf&uuml;gung stellt.</p>
- <p>Das nachfolgende Blockdiagramm zeigt Struktur von MOA-ID und gibt eine kurze Beschreibung der einzelnen Komponenten.</p>
- <p><img src="Blockdiagramm.png" alt="Architektur MOA-ID" width="1000" height="678"></p>
- <p>&nbsp;</p>
-<p>MOA-ID besteht aus folgenden Kernkomponenten:</p>
- <ol>
- <li><u>CORE LOGIC</u>: Diese Komponente ist die zentrale Logik zur Steuerung der einzelnen Prozesse innerhalb MOA-ID 2.x.</li>
- <li><u>Protocol Adapter</u>: Stellt die in MOA-ID 2.x unterst&uuml;tzten Authentifizierungsprotokolle f&uuml;r die Anbindung von Service Providern zur Verf&uuml;gung.</li>
- <li><u>Auth Sources</u>: Stellt die von MOA-ID 2.x unterst&uuml;tzten Identifikationsmechanismen und Single Sign-On Management Funktionen zur Verf&uuml;gung. Dies sind die &ouml;sterreichische B&uuml;rgerkarte oder Handy-Signatur, die Anmeldung ausl&auml;ndischer Personen mit Hilfe des STORK Protokoll oder mittels Single Sign-On von einem weiteren vertrauensw&uuml;rdigen Identity Provider (Interfederation). Dieses Modul beinhaltet somit alle jene Funktionen welche f&uuml;r den Authentifizierungs- oder Abmeldeprocess erforderlich sind. </li>
- <li><u>Template Generator</u>: Der Template Generator erzeugt f&uuml;r Service Provider die entsprechenden Login-Masken f&uuml;r die Integration in die eigene Web-Applikation.</li>
- <li><u>SSO Module</u>: Das Single Sign-On (SSO) Modul verwaltet die zus&auml;tzlichen Operationen die sich aus der Umsetzung von SSO ergeben. Dies umfasst im Besonderen das SSO Session-Management.</li>
- <li><u>Statistic Module</u>: Dieses Modul dient zur Generierung von anonymisierten Statistikdaten aus den Anmeldeinformationen. </li>
- <li><u>Monitoring &amp; Testing Module</u>: Dieses Modul implementiert Methoden mit deren Hilfe einzelne funktionale Bereiche aus MOA-ID-Auth getestet werden k&ouml;nnen. Somit dient dieses Modul als Schnittstellte zu einem externen Monitoring-Service.</li>
- <li><u>Configuration</u><u> Modul</u>: Dieses Modul stellt die Schnittstelle zur MOA-ID-Auth Konfiguration dar welche in einer Datenbank abgelegt wird. </li>
- <li><u>Konfigurationstool</u>: Oberfl&auml;che, mit deren Hilfe MOA-ID konfiguriert werden kann. Dies umfasst sowohl allgemeine Konfigurationsteile als auch die Konfiguration der einzelnen bei MOA-ID-Auth registrierten Online-Applikationen. Service Provider k&ouml;nnen sich am Konfigurationstool mittels B&uuml;rgerkarte oder Handy-Signatur anmelden und ihre Online-Applikationen verwalten.</li>
- </ol>
- <h2><a name="allgemeines_service" id="allgemeines_service"></a>1.1 Externe Services</h2>
-<p>F&uuml;r die Anmeldung in Vertretung und die Anmeldung ausl&auml;ndischer Personen werden zus&auml;tzliche externe Services verwendet.</p>
- <h3><a name="allgemeines_service_ovs" id="allgemeines_service2"></a>1.1.1 Online-Vollmachten</h3>
-<p>Ab der MOA-ID Release 1.5.0 werden Online-Vollmachten (f&uuml;r Anwendungen aus dem &ouml;ffentlichen Bereich) unterst&uuml;tzt. Hierzu werden diese Vollmachten &uuml;ber eine Online-Vollmachten-Service ausgew&auml;hlt. Der Zugang zu diesem Online-Vollmachten Service ist &uuml;ber eine Client-Server Authentifizierung abgesichert. Als Client-Zertifikate werden Zertifikate der Firmen A-Trust bzw. A-CERT, die mit der Verwaltungs- oder Dienstleistereigenschaft versehen sind, akzeptiert. </p>
- <h3><a name="allgemeines_service_szrgw" id="allgemeines_service3"></a>1.1.2 Ausl&auml;ndische B&uuml;rger</h3>
- <p> Ab der MOA-ID Release 1.4.7 ist es m&ouml;glich, dass sich auch ausl&auml;ndische B&uuml;rger mittels MOA-ID einloggen k&ouml;nnen. Hierzu wird eine Verbindung zu einem sogenannten Stammzahlenregister-Gateway aufgebaut, dass basierend auf den Zertifikatsdaten des ausl&auml;ndischen B&uuml;rgers eine Eintragung im Erg&auml;nzungsregister f&uuml;r nat&uuml;rliche Personen gem&auml;&szlig; E-Government Gesetz &sect;6(5) vornimmt. Somit ist es m&ouml;glich, dass eine Personenbindung ausgestellt werden kann, die in weitere Folge an MOA-ID weitergeleitet wird. Der Zugang zu diesem Stammzahlenregister-Gateway ist &uuml;ber eine Client-Server Authentifizierung abgesichert. Als Client-Zertifikate werden Zertifikate der Firmen A-Trust bzw. A-CERT, die mit der Verwaltungs- oder Dienstleistereigenschaft versehen sind, akzeptiert. </p>
-<h1><a name="moaidauth" id="moaidauth"></a>2 MOA-ID-Auth</h1>
-<p>Das Modul MOA-ID-Auth dient der Identifizierung und Authentifizierung im Rahmen eines Anmeldevorgangs an einer Online-Applikation. Die Identifizierung und Authentifizierung erfolgt mit B&uuml;rgerkartem, Handy-Signatur oder f&uuml;r aus&auml;ndische Personen mittels STORK.</p>
-<p>Die Funktionalit&auml;t und der Aufbau der Schnittstellen des Modules MOA-ID-Auth in Richtung Online-Applikation wird im Kapitel Protokolle beschriebe.
-<p>F&uuml;r den Betrieb von MOA-ID-Auth ist der Einsatz von MOA-Signaturpr&uuml;fung (MOA-SP) erforderlich.</p>
-<h2><a name="ablauf" id="ablauf"></a> 2.1 Ablauf einer Anmeldung</h2>
-<p>Die nachfolgende Grafik beschreibt den Ablauf eines Abmeldevorgangs an einer Online-Applikation mit Hilfe von MOA-ID-Auth unter Verwendung der B&uuml;rgerkarte oder der Handy-Signatur.</p>
-<p><img src="anmeldeablauf.png" width="947" height="881" alt="Sequenzdiagramm eines Anmeldevorgangs mit MOA-ID-Auth"></p>
-<p>&nbsp;</p>
-<ol>
- <li>Der Benutzer verbindet sich zu einem Web-Portal (Service Provider) &uuml;ber das die Online-Applikation erreichtbar ist. Nach der Bet&auml;tigung eines Login-Buttons wird der Anmeldevorgang ausgel&ouml;st.</li>
- <li>Der Benutzer wird zur Identifizierung und Authentifizierung an MOA-ID-Auth weitergeleitet. </li>
- <li>MOA-ID-Auth validiert die Authentifizierungsanfrage des Service Providers</li>
- <li>MOA-ID-Auth bietet dem Benutzer eine Auswahl von verf&uuml;gbaren Authentifizierungsmethoden (B&uuml;rgerkarte, Handy-Signatur, STORK) an.</li>
- <li>Der Benutzer w&auml;hlt die gew&uuml;nschte Authentifizierungsmethode und sendet diese an MOA-ID-Auth.</li>
- <li>MOA-ID-AUTH erzeugt eine HTML-Seite mit einem &lt;InfoboxReadRequest&gt; zum Auslesen der Personenbindung. Diese HTML-Seite wird an den Browser geschickt.</li>
- <li>Der Browser schickt den &lt;InfoboxReadRequest&gt; an die ausgew&auml;hlte Bürgerkartenumgebung unter Verwendung des Security-Layer. Die Bürgerkartenumgebung liest die Personenbindung von der B&uuml;rgerkarte und sendet diese an MOA-ID-AUTH. MOA-ID-Auth prüft die Signatur der Personenbindung durch einen Aufruf von MOA-SP.</li>
- <li>MOA-ID-AUTH erstellt den AUTH-Block. Der AUTH-Block enth&auml;lt Vor- und Nachname aus der Personenbindung, URL von MOA-ID-AUTH, URL und Gesch&auml;ftsbereich der Online-Applikation oder im Falle einer SSO Anmeldung die URL und den Gesch&auml;ftsbereich der MOA-ID-Auth Instanz, die aktuelle Zeit, das aktuelle Datum und einen Zufallswert f&uuml;r diesen Anmeldevorgang. Anschlie&szlig;end wird eine XML Antwortseite, die das Kommando zum Signieren (&lt;CreateXMLSignatureRequest&gt;) des generierten AUTH-Blocks enth&auml;lt, an die ausgew&auml;hlte Bürgerkartenumgebung, unter Verwendung des Security-Layers, gesendet.</li>
- <li>Der Request wird von der Bürgerkartenumgebung verarbeitet. Die signierten Daten werden an MOA-ID-AUTH zur&uuml;ckgesendet.</li>
- <li>MOA-ID-Auth &uuml;berpr&uuml;ft den signierten AUTH-Block und generiert Information f&uuml;r weitere Anmeldungen mittels Single Sign-On.</li>
- <li>MOA-ID-Auth generiert die Anmeldedaten (Assertion) welche folgende Information enthalten:
- <ul>
- <li>die bereichsspezifischen Personenkennzeichen (bPK / wbPK)</li>
- <li>Vorname, Nachname und Geburtsdatum (optional)</li>
- <li>den signierten AUTH-Block (optional)</li>
- <li>die Personenbindung (optional)</li>
- <li>das Zertifikat mit dem die Signatur erzeugt wurde (optional)</li>
- <li>informationen zum Vertreten im Falle einer Anmeldung in Vertretung (optional)</li>
- <li>die elektronische Vollmacht im Falle einer Anmeldung in Vertretung (optional)</li>
- <li>informationen aus dem STORK Protokoll im Falle einer Anmeldung mittels STORK (optional)</li>
- </ul>
- </li>
- <li> MOA-ID-Auth sendet die Anmeldedaten an den Service-Provider und setzt im Browser des Benutzers ein SSO Session-Tokken welches f&uuml;r weitere Anmeldevorg&auml;nge verwendet werden kann.</li>
- <li>Die Anmeldedaten werden vom Service-Provider verarbeitet und der Benutzer wird vom Service-Provider an die Online-Applikation weitergeleitet. </li>
-</ol>
-<h1><a name="config" id="config"></a>3 MOA-ID-Configuration </h1>
-<p>Das Modul MOA-ID-Configuration stellt eine web-basierte Benutzerschnittstelle zur Konfiguration des Moduls MOA-ID-Auth zur Verf&uuml;gung, wobei sich die Konfiguration in zwei Teilbereiche unterteilt ist. Eine detailierte Aufstellung der einzelnen Konfigurationspunkte befindet sich im Kapitel <a href="../config/config.html">Konfiguration</a>.</p>
-<ol>
- <li>Allgemeine Konfiguration<br>
- In diesem Bereich sind alle Basiseinstellungen der MOA-ID-Auth Instanz hinterlegt. Beispiele hierf&uuml;r sind Single Sign-On, unterst&uuml;tze Authentifizierungsprotokolle, Informationen zu MOA-ID-Auth, URLs zu externen Services, ... Eine &Auml;nderung der Basiseinstellung erfordert besondere Benutzerrechte am Konfigurationstool.</li>
- <li>Online-Applikationen<br>
- In diesem Abschnitt erfolgt die Konfiguration der einzelnen bei MOA-ID-Auth registrierten Service-Provider. Hierbei handelt es sich um authentifizierungsprotkollspezifische Einstellungen, Bereich des Service-Providers (&ouml;ffentlich / Privatwirtschaftlich), Konfiguration der BKU Auswahl, .... Wobei sich die Konfigurationsm&ouml;glichkeiten je nachdem welche Benutzerrechten vergeben sind, unterscheiden k&ouml;nnen.</li>
-</ol>
-<p>Zus&auml;tzlich unterst&uuml;tzt das Module MOA-ID-Configuration auch eine einfache Bentzerverwaltung mit Rechtevergabe mit deren Hilfe die Verwaltung von Online-Applikatioen an den jeweiligen Service-Provider ausgelagert werden kann. Die Anmeldung am Konfigurationstool erfolgt mittels B&uuml;rgerkarte, Handy-Signature oder STORK, wobei optional auch eine Anmeldung mittels Benutzername und Passwort zur Verf&uuml;gung steht.</p>
-<p>&nbsp;</p>
-</body>
-</html>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+ <head>
+ <meta http-equiv="content-type" content="text/html; charset=utf8" >
+ <title>MOA-ID 2.1.x</title>
+ <link rel="stylesheet" href="./common/main.css" type="text/css">
+ <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
+ <link href='https://fonts.googleapis.com/css?family=Roboto:300,400' rel='stylesheet' type='text/css'>
+ <script language="JavaScript" type="text/javascript">
+
+ function PVP2LoginIframe(url) {
+ var el = document.getElementById("demologin");
+ var iframe = document.createElement("iframe");
+ iframe.setAttribute("src", url);
+ iframe.setAttribute("width", "240");
+ iframe.setAttribute("height", "180");
+ iframe.setAttribute("frameborder", "0");
+ iframe.setAttribute("scrolling", "no");
+ iframe.setAttribute("title", "Login");
+ //iframe.setAttribute("scrolling", "yes");
+
+ iframe.setAttribute("name", "iframelogin");
+ iframe.setAttribute("id", "iframelogin");
+
+
+ iframe.setAttribute("onload","iframeLoaded()");
+
+ var divdemologin = document.getElementById("demologin");
+ divdemologin.innerHTML="";
+
+ el.appendChild(iframe, el);
+ }
+
+ function iframeLoaded(){
+ //console.log(document.title);
+ var ifr=document.getElementById("iframelogin");
+
+ //only works on same origin
+
+ /*
+ var iframedoc=(ifr.contentWindow||ifr.contentDocument);
+
+ //var iframedoc=ifr.contentDocument||iframe.contentWindow.document;
+ console.log(iframedoc.title);
+ if(iframedoc.title=="Demo Applikation"){
+ ifr.setAttribute("width",480);
+ ifr.setAttribute("height",240);
+
+ var demologin=document.getElementById("demologin");
+ demologin.style.marginRight="250px";
+ }
+ */
+ }
+
+ </script>
+ </head>
+ <body>
+ <div id="headline">
+ <div class="container">
+ <a href="http://www.digitales.oesterreich.gv.at/"><img src="./common/logo_digAT.png"/></a>
+ <a href="../index.html"><h1>MOA-ID-AUTH </h1></a>
+ <br/>
+ </div>
+ </div>
+ <div id="description" class="container">
+ <p>Bei MOA-ID-AUTH handelt es sich um ein Modul für die Identifizierung und Authentifizierung bei Onlineapplikationen unter Verwendung der Bürgerkarte.
+ Hier kann sowohl die Smartcard-Variante (e-Card) als auch die Handysignatur verwendet werden.
+ Die Konfiguration des Modules MOA-ID-Auth erfolgt mit Hilfe des Zusatzmodules MOA-ID-Configuration welches eine web-basierte Konfigurationsschnittstelle zur Verfügung stellt.</p>
+ </div>
+ <div id="maincontent" class="container">
+ <nav>
+ <ul>
+ <!--li><a href="_index.html">Allgemein</a></li-->
+ <!--li><a href="http://joinup.ec.europa.eu/site/moa-idspss/">Dokumentation</a></li-->
+ <li><a href="http://joinup.ec.europa.eu/site/moa-idspss/moa-id-2.0.0/doc/handbook">Dokumentation</a></li>
+ <!--Link zu den Demo-Clients-->
+ <li><a href=#>Demo Clients</a></li>
+ <!--Link zum Konfigtool-->
+ <li><a href="https://localhost:8443/moa-id-configuration">Konfiguration GUI</a></li>
+
+ </ul>
+ </nav>
+ <div id="demologin" class="container">
+ <br/>
+ <a href="#" id="loginButton" class="button" onclick="PVP2LoginIframe('https://menja.iaik.tugraz.at:8443/moa-id-oa/servlet/pvp2login')">Login</a>
+ <p id="loginText">Über den Login-Button können Sie sich anschließend bei Ihrer Online-Applikation mit der Bürgerkarte oder der Handysignatur anmelden. Dazu müssen Sie allerdings zuvor die Applikation gemäß <a href="http://joinup.ec.europa.eu/site/moa-idspss/moa-id-2.0.0/doc/handbook/application/application.html#DemoApp_pvp21">Beschreibung</a> konfigurieren.</p>
+ </div>
+ </div>
+
+ </body>
+</html> \ No newline at end of file
diff --git a/id/server/data/deploy/conf/moa-id/moa-id.properties b/id/server/data/deploy/conf/moa-id/moa-id.properties
index 9d1e931e9..c330758c8 100644
--- a/id/server/data/deploy/conf/moa-id/moa-id.properties
+++ b/id/server/data/deploy/conf/moa-id/moa-id.properties
@@ -13,6 +13,7 @@
##For Testing
configuration.validation.certificate.QC.ignore=false
protocols.pvp2.assertion.encryption.active=false
+protocols.pvp2.schemavalidation=true
##General MOA-ID 2.0 operations
#MOA-ID 2.0 session information encryption key (PassPhrase)
@@ -43,6 +44,12 @@ service.foreignidentities.acceptedServerCertificates=
service.foreignidentities.clientKeyStore=keys/....
service.foreignidentities.clientKeyStorePassword=
+##STORK 2
+stork.fakeIdL.active=false
+stork.fakeIdL.countries=
+stork.fakeIdL.keygroup=
+stork.documentservice.url=
+
##Protocol configuration##
#PVP2
diff --git a/id/server/data/deploy/conf/moa-id/stork/StorkSamlEngine_VIDP.xml b/id/server/data/deploy/conf/moa-id/stork/StorkSamlEngine_VIDP.xml
index ee4c636ce..b45b69054 100644
--- a/id/server/data/deploy/conf/moa-id/stork/StorkSamlEngine_VIDP.xml
+++ b/id/server/data/deploy/conf/moa-id/stork/StorkSamlEngine_VIDP.xml
@@ -119,5 +119,6 @@
<!-- ISA 1.18 attributes-->
<entry key="ECApplicationRole">http://www.stork.gov.eu/1.1/ECApplicationRole</entry>
+ <entry key="MSOrganization">http://www.stork.gov.eu/1.1/MSOrganization</entry>
</properties>
diff --git a/id/server/data/deploy/conf/moa-id/stork/StorkSamlEngine_incoming.xml b/id/server/data/deploy/conf/moa-id/stork/StorkSamlEngine_incoming.xml
index 83e69ac23..3370978b3 100644
--- a/id/server/data/deploy/conf/moa-id/stork/StorkSamlEngine_incoming.xml
+++ b/id/server/data/deploy/conf/moa-id/stork/StorkSamlEngine_incoming.xml
@@ -90,5 +90,9 @@
<entry key="mandateContent">http://www.stork.gov.eu/1.0/mandateContent</entry>
<entry key="representative">http://www.stork.gov.eu/1.0/representative</entry>
<entry key="represented">http://www.stork.gov.eu/1.0/represented</entry>
-
+
+ <!-- ISA 1.18 attributes-->
+ <entry key="ECApplicationRole">http://www.stork.gov.eu/1.1/ECApplicationRole</entry>
+ <entry key="MSOrganization">http://www.stork.gov.eu/1.1/MSOrganization</entry>
+
</properties>
diff --git a/id/server/data/deploy/conf/moa-id/stork/StorkSamlEngine_incoming_attr.xml b/id/server/data/deploy/conf/moa-id/stork/StorkSamlEngine_incoming_attr.xml
index 83e69ac23..33437c110 100644
--- a/id/server/data/deploy/conf/moa-id/stork/StorkSamlEngine_incoming_attr.xml
+++ b/id/server/data/deploy/conf/moa-id/stork/StorkSamlEngine_incoming_attr.xml
@@ -90,5 +90,9 @@
<entry key="mandateContent">http://www.stork.gov.eu/1.0/mandateContent</entry>
<entry key="representative">http://www.stork.gov.eu/1.0/representative</entry>
<entry key="represented">http://www.stork.gov.eu/1.0/represented</entry>
-
+
+ <!-- ISA 1.18 attributes-->
+ <entry key="ECApplicationRole">http://www.stork.gov.eu/1.1/ECApplicationRole</entry>
+ <entry key="MSOrganization">http://www.stork.gov.eu/1.1/MSOrganization</entry>
+
</properties>
diff --git a/id/server/data/deploy/conf/moa-id/stork/StorkSamlEngine_outgoing.xml b/id/server/data/deploy/conf/moa-id/stork/StorkSamlEngine_outgoing.xml
index b095b9e7e..2b0c05b88 100644
--- a/id/server/data/deploy/conf/moa-id/stork/StorkSamlEngine_outgoing.xml
+++ b/id/server/data/deploy/conf/moa-id/stork/StorkSamlEngine_outgoing.xml
@@ -91,4 +91,8 @@
<entry key="representative">http://www.stork.gov.eu/1.0/representative</entry>
<entry key="represented">http://www.stork.gov.eu/1.0/represented</entry>
+ <!-- ISA 1.18 attributes-->
+ <entry key="ECApplicationRole">http://www.stork.gov.eu/1.1/ECApplicationRole</entry>
+ <entry key="MSOrganization">http://www.stork.gov.eu/1.1/MSOrganization</entry>
+
</properties> \ No newline at end of file
diff --git a/id/server/data/deploy/conf/moa-spss/certstore/toBeAdded/a-sign-Premium-Test-Sig-02.20141124-20241118.SerNo3969edc1.cer b/id/server/data/deploy/conf/moa-spss/certstore/toBeAdded/a-sign-Premium-Test-Sig-02.20141124-20241118.SerNo3969edc1.cer
new file mode 100644
index 000000000..1bb449441
--- /dev/null
+++ b/id/server/data/deploy/conf/moa-spss/certstore/toBeAdded/a-sign-Premium-Test-Sig-02.20141124-20241118.SerNo3969edc1.cer
Binary files differ
diff --git a/id/server/data/deploy/conf/moa-spss/certstore/toBeAdded/a-sign-Premium-enc-02.20140701-20240701.SerNo144dfd.cer b/id/server/data/deploy/conf/moa-spss/certstore/toBeAdded/a-sign-Premium-enc-02.20140701-20240701.SerNo144dfd.cer
new file mode 100644
index 000000000..6c0c042b4
--- /dev/null
+++ b/id/server/data/deploy/conf/moa-spss/certstore/toBeAdded/a-sign-Premium-enc-02.20140701-20240701.SerNo144dfd.cer
Binary files differ
diff --git a/id/server/data/deploy/conf/moa-spss/certstore/toBeAdded/a-sign-Test-Qual-01.20141117-20241111.SerNo16120f.cer b/id/server/data/deploy/conf/moa-spss/certstore/toBeAdded/a-sign-Test-Qual-01.20141117-20241111.SerNo16120f.cer
new file mode 100644
index 000000000..60bc9a557
--- /dev/null
+++ b/id/server/data/deploy/conf/moa-spss/certstore/toBeAdded/a-sign-Test-Qual-01.20141117-20241111.SerNo16120f.cer
@@ -0,0 +1,23 @@
+-----BEGIN CERTIFICATE-----
+MIID2zCCAsOgAwIBAgIDFhIPMA0GCSqGSIb3DQEBBQUAMIGTMQswCQYDVQQGEwJB
+VDFIMEYGA1UECgw/QS1UcnVzdCBHZXMuIGYuIFNpY2hlcmhlaXRzc3lzdGVtZSBp
+bSBlbGVrdHIuIERhdGVudmVya2VociBHbWJIMRwwGgYDVQQLDBNhLXNpZ24tVEVT
+VC1RdWFsLTAxMRwwGgYDVQQDDBNhLXNpZ24tVEVTVC1RdWFsLTAxMB4XDTE0MTEx
+NzA3NDAzNloXDTI0MTExMTA2NDAzNlowgZMxCzAJBgNVBAYTAkFUMUgwRgYDVQQK
+DD9BLVRydXN0IEdlcy4gZi4gU2ljaGVyaGVpdHNzeXN0ZW1lIGltIGVsZWt0ci4g
+RGF0ZW52ZXJrZWhyIEdtYkgxHDAaBgNVBAsME2Etc2lnbi1URVNULVF1YWwtMDEx
+HDAaBgNVBAMME2Etc2lnbi1URVNULVF1YWwtMDEwggEiMA0GCSqGSIb3DQEBAQUA
+A4IBDwAwggEKAoIBAQD4TRgyXzhxJ2AkndX0RPY771f64dsJrReEeuShLRK5io0B
+kJWc4t7wuD1B98cJ0MUPlMmOJ2Ckc/vuLhQUyY3qEUmhMhixCUIcdHQ5yH3H0yMV
+HxyJxAG83fE8M25kpKA4TzzMW8KPd2S63wbpPElyEy7vrllrLxvdQRSDpMZMvRg8
+fvoDGAehxsnKKwlXZuMq1aSBzfMz3cMBDKxvqzDIz7yC1iWNkdiwog3a5a5PbViK
+shhZ0h+bx9WFDpiN6ooPQgcGhjD+NqIDoiOr7CUFHp+HiC6xIsEFJaBHTf3dRZ61
+0r1FDABx0Yj8+wlXSQLYq/1nR/QMwsvH0Cz1qYTPAgMBAAGjNjA0MA8GA1UdEwEB
+/wQFMAMBAf8wEQYDVR0OBAoECE8h1CulBqTdMA4GA1UdDwEB/wQEAwIBBjANBgkq
+hkiG9w0BAQUFAAOCAQEAimFu+xTm3UdyU+fO+2hz4DS20OGSC9NBDkorjzhRPWoZ
+IVhUi6yH5drqSBm4/2ZYS1Ba5npzfyJwm+cLO28ljxAApfRHlbN0y83hKv7c0I7g
+zWTMRs8X8ar5Gd7d4O5jpC4PAaZ1ozSDoE06U5im6YMLaJy/0QYvf5EQBMvLdeoc
+d1vl17JYKYqYzcX2dvayikrfiglFqDaZZ66yJPBSuiyNhXpPkbXsOoyyTPtV/0Bh
+eKIQiQyJID5aZtR7D4fBAzKdp5wB9KLQXBZ80hrwqrIuy+ME0tFaBWYBi8dzQ1iq
+/E3Qz0USfGmxPMm8y/zRqsDvxZCRiSuvzBkOXbGMdA==
+-----END CERTIFICATE-----
diff --git a/id/server/data/deploy/conf/moa-spss/certstore/toBeAdded/a-sign-corporate-light-02.20140905-20240905.SerNo153B49.cer b/id/server/data/deploy/conf/moa-spss/certstore/toBeAdded/a-sign-corporate-light-02.20140905-20240905.SerNo153B49.cer
new file mode 100644
index 000000000..e4bd48dac
--- /dev/null
+++ b/id/server/data/deploy/conf/moa-spss/certstore/toBeAdded/a-sign-corporate-light-02.20140905-20240905.SerNo153B49.cer
Binary files differ
diff --git a/id/server/data/deploy/conf/moa-spss/certstore/toBeAdded/a-sign-premium-sig-02.20140701-20240701.SerNo144e10.cer b/id/server/data/deploy/conf/moa-spss/certstore/toBeAdded/a-sign-premium-sig-02.20140701-20240701.SerNo144e10.cer
new file mode 100644
index 000000000..74c4ce3b8
--- /dev/null
+++ b/id/server/data/deploy/conf/moa-spss/certstore/toBeAdded/a-sign-premium-sig-02.20140701-20240701.SerNo144e10.cer
Binary files differ
diff --git a/id/server/data/deploy/conf/moa-spss/certstore/toBeAdded/a-sign-premium-sig-03.20140701-20240701.SerNo144e13.cer b/id/server/data/deploy/conf/moa-spss/certstore/toBeAdded/a-sign-premium-sig-03.20140701-20240701.SerNo144e13.cer
new file mode 100644
index 000000000..6c50ec079
--- /dev/null
+++ b/id/server/data/deploy/conf/moa-spss/certstore/toBeAdded/a-sign-premium-sig-03.20140701-20240701.SerNo144e13.cer
Binary files differ
diff --git a/id/server/data/deploy/conf/moa-spss/trustProfiles/MOAIDBuergerkarteAuthentisierungsDatenMitTestkarten/a-sign-Premium-Test-Sig-02.20141124-20141118.SerNo3969edc1.cer b/id/server/data/deploy/conf/moa-spss/trustProfiles/MOAIDBuergerkarteAuthentisierungsDatenMitTestkarten/a-sign-Premium-Test-Sig-02.20141124-20141118.SerNo3969edc1.cer
new file mode 100644
index 000000000..1bb449441
--- /dev/null
+++ b/id/server/data/deploy/conf/moa-spss/trustProfiles/MOAIDBuergerkarteAuthentisierungsDatenMitTestkarten/a-sign-Premium-Test-Sig-02.20141124-20141118.SerNo3969edc1.cer
Binary files differ
diff --git a/id/server/data/deploy/conf/moa-spss/trustProfiles/MOAIDBuergerkarteAuthentisierungsDatenMitTestkarten/a-sign-Premium-Test-Sig-02.20141124-20241118.SerNo3969edc1.cer b/id/server/data/deploy/conf/moa-spss/trustProfiles/MOAIDBuergerkarteAuthentisierungsDatenMitTestkarten/a-sign-Premium-Test-Sig-02.20141124-20241118.SerNo3969edc1.cer
new file mode 100644
index 000000000..1bb449441
--- /dev/null
+++ b/id/server/data/deploy/conf/moa-spss/trustProfiles/MOAIDBuergerkarteAuthentisierungsDatenMitTestkarten/a-sign-Premium-Test-Sig-02.20141124-20241118.SerNo3969edc1.cer
Binary files differ
diff --git a/id/server/data/deploy/conf/moa-spss/trustProfiles/MOAIDBuergerkarteAuthentisierungsDatenMitTestkarten/a-sign-Test-Qual-01.20141117-20241111.SerNo16120f.cer b/id/server/data/deploy/conf/moa-spss/trustProfiles/MOAIDBuergerkarteAuthentisierungsDatenMitTestkarten/a-sign-Test-Qual-01.20141117-20241111.SerNo16120f.cer
new file mode 100644
index 000000000..60bc9a557
--- /dev/null
+++ b/id/server/data/deploy/conf/moa-spss/trustProfiles/MOAIDBuergerkarteAuthentisierungsDatenMitTestkarten/a-sign-Test-Qual-01.20141117-20241111.SerNo16120f.cer
@@ -0,0 +1,23 @@
+-----BEGIN CERTIFICATE-----
+MIID2zCCAsOgAwIBAgIDFhIPMA0GCSqGSIb3DQEBBQUAMIGTMQswCQYDVQQGEwJB
+VDFIMEYGA1UECgw/QS1UcnVzdCBHZXMuIGYuIFNpY2hlcmhlaXRzc3lzdGVtZSBp
+bSBlbGVrdHIuIERhdGVudmVya2VociBHbWJIMRwwGgYDVQQLDBNhLXNpZ24tVEVT
+VC1RdWFsLTAxMRwwGgYDVQQDDBNhLXNpZ24tVEVTVC1RdWFsLTAxMB4XDTE0MTEx
+NzA3NDAzNloXDTI0MTExMTA2NDAzNlowgZMxCzAJBgNVBAYTAkFUMUgwRgYDVQQK
+DD9BLVRydXN0IEdlcy4gZi4gU2ljaGVyaGVpdHNzeXN0ZW1lIGltIGVsZWt0ci4g
+RGF0ZW52ZXJrZWhyIEdtYkgxHDAaBgNVBAsME2Etc2lnbi1URVNULVF1YWwtMDEx
+HDAaBgNVBAMME2Etc2lnbi1URVNULVF1YWwtMDEwggEiMA0GCSqGSIb3DQEBAQUA
+A4IBDwAwggEKAoIBAQD4TRgyXzhxJ2AkndX0RPY771f64dsJrReEeuShLRK5io0B
+kJWc4t7wuD1B98cJ0MUPlMmOJ2Ckc/vuLhQUyY3qEUmhMhixCUIcdHQ5yH3H0yMV
+HxyJxAG83fE8M25kpKA4TzzMW8KPd2S63wbpPElyEy7vrllrLxvdQRSDpMZMvRg8
+fvoDGAehxsnKKwlXZuMq1aSBzfMz3cMBDKxvqzDIz7yC1iWNkdiwog3a5a5PbViK
+shhZ0h+bx9WFDpiN6ooPQgcGhjD+NqIDoiOr7CUFHp+HiC6xIsEFJaBHTf3dRZ61
+0r1FDABx0Yj8+wlXSQLYq/1nR/QMwsvH0Cz1qYTPAgMBAAGjNjA0MA8GA1UdEwEB
+/wQFMAMBAf8wEQYDVR0OBAoECE8h1CulBqTdMA4GA1UdDwEB/wQEAwIBBjANBgkq
+hkiG9w0BAQUFAAOCAQEAimFu+xTm3UdyU+fO+2hz4DS20OGSC9NBDkorjzhRPWoZ
+IVhUi6yH5drqSBm4/2ZYS1Ba5npzfyJwm+cLO28ljxAApfRHlbN0y83hKv7c0I7g
+zWTMRs8X8ar5Gd7d4O5jpC4PAaZ1ozSDoE06U5im6YMLaJy/0QYvf5EQBMvLdeoc
+d1vl17JYKYqYzcX2dvayikrfiglFqDaZZ66yJPBSuiyNhXpPkbXsOoyyTPtV/0Bh
+eKIQiQyJID5aZtR7D4fBAzKdp5wB9KLQXBZ80hrwqrIuy+ME0tFaBWYBi8dzQ1iq
+/E3Qz0USfGmxPMm8y/zRqsDvxZCRiSuvzBkOXbGMdA==
+-----END CERTIFICATE-----
diff --git a/id/server/data/deploy/conf/moa-spss/trustProfiles/MOAIDBuergerkartePersonenbindungMitTestkarten/a-sign-corporate-light-02.20140905-20240905.SerNo153B49.cer b/id/server/data/deploy/conf/moa-spss/trustProfiles/MOAIDBuergerkartePersonenbindungMitTestkarten/a-sign-corporate-light-02.20140905-20240905.SerNo153B49.cer
new file mode 100644
index 000000000..e4bd48dac
--- /dev/null
+++ b/id/server/data/deploy/conf/moa-spss/trustProfiles/MOAIDBuergerkartePersonenbindungMitTestkarten/a-sign-corporate-light-02.20140905-20240905.SerNo153B49.cer
Binary files differ
diff --git a/id/server/data/deploy/conf/moa-spss/trustProfiles/MOAIDBuergerkartePersonenbindungOhneTestkarten/a-sign-corporate-light-02.20140905-20240905.SerNo153B49.cer b/id/server/data/deploy/conf/moa-spss/trustProfiles/MOAIDBuergerkartePersonenbindungOhneTestkarten/a-sign-corporate-light-02.20140905-20240905.SerNo153B49.cer
new file mode 100644
index 000000000..e4bd48dac
--- /dev/null
+++ b/id/server/data/deploy/conf/moa-spss/trustProfiles/MOAIDBuergerkartePersonenbindungOhneTestkarten/a-sign-corporate-light-02.20140905-20240905.SerNo153B49.cer
Binary files differ
diff --git a/id/server/doc/handbook/additional/additional.html b/id/server/doc/handbook/additional/additional.html
index fb4e76733..d26447748 100644
--- a/id/server/doc/handbook/additional/additional.html
+++ b/id/server/doc/handbook/additional/additional.html
@@ -2,23 +2,24 @@
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" >
+ <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<title>MOA-ID - Zusatzinformationen</title>
<link rel="stylesheet" href="../common/MOA.css" type="text/css">
+ <link href='https://fonts.googleapis.com/css?family=Roboto:300,400' rel='stylesheet' type='text/css'>
</head>
<body link="#990000">
- <table class="logoTable" width="100%" border="0" cellspacing="0" cellpadding="10">
- <tr>
- <td align="center" class="logoTitle" width="267"><img src="../common/LogoBKA.png" alt="Logo BKA" width="267" height="37" align="left"></td>
- <td align="center" class="logoTitle">Dokumentation</td>
- <td align="center" class="logoTitle" width="123"><img src="../common/LogoEGIZ.png" alt="Logo EGIZ" width="230" height="81" align="right"></td>
- </tr>
- </table>
- <hr/>
- <p class="title"><a href="../index.html">MOA-ID (Identifikation) </a></p>
-<p class="subtitle">Zusatzinformationen</p>
-<hr/>
- <h1>Inhalt</h1>
- <ol>
+ <div id="headline">
+ <div class="container">
+ <a href="http://www.digitales.oesterreich.gv.at/"><img src="../common/logo_digAT.png"/></a>
+ <a href="../index.html"><h1>MOA-ID-AUTH </h1></a>
+ <br/>
+ </div>
+ </div>
+ <div class="container">
+<h1 align="center">Zusatzinformationen</h1>
+
+ <h2>Inhalt</h2>
+ <ol class="index">
<li><a href="#allgemeines">Datenmanagement</a>
<ol>
<li><a href="#sessiondata">Sessiondaten</a>
@@ -32,149 +33,148 @@
</li>
<li><a href="#networkconnections">Ben&ouml;tigte Netzwerkverbindungen (incoming / outgoing)</a></li>
</ol>
-<hr/>
- <h1><a name="allgemeines"></a>1 Datenmanagement</h1>
+ <h2><a name="allgemeines"></a>1 Datenmanagement</h2>
<p>Dieser Abschnitt spezifiziert jene Datens&auml;tze die w&auml;hrend eines Anmeldevorgangs durch das Modul MOA-ID-Auth tempor&auml;r oder permanent gespeichert werden. Hierbei handelt es sich sowohl um tempor&auml;re Sessiondaten als auch um dauerhaft gespeicherte Statistikdaten.</p>
- <h2><a name="sessiondata" id="sessiondata"></a>1.1 Sessiondaten</h2>
+ <h3><a name="sessiondata" id="sessiondata"></a>1.1 Sessiondaten</h3>
<p>Dieser Abschnitt behandelt jene Informationen die das Modul MOA-ID-Auth w&auml;hrend eines Authentifizierungsvorgangs oder w&auml;hrend einer aktiven Single Sign-On Session im Speicher h&auml;lt. Diese Datens&auml;tze werden nach Beendigung des Anmeldevorgangs, bei einfacher Anmeldung, oder nach Beendigung der Single Sign-On Session gel&ouml;scht. Die nachfolgenden Unterkapitel geben eine Aufstellung jener Daten die von MOA-ID im jeweiligen Falle gespeichert werden.</p>
- <h3><a name="sessiondata_general" id="sessiondata2"></a>1.1.1 Allgemein</h3>
+ <h4><a name="sessiondata_general" id="sessiondata2"></a>1.1.1 Allgemein</h4>
<p>Folgende Daten m&uuml;ssen mindestens von MOA-ID gecached werden um einen korrekten Anmeldevorgang zu erm&ouml;glichen.</p>
- <table border="1" cellspacing="0" cellpadding="0">
+ <table class="configtable">
<tr>
- <td width="160" valign="top"><p><strong>Element</strong></p></td>
- <td width="764" valign="top"><p><strong>Beschreibung</strong></p></td>
+ <td><p><strong>Element</strong></p></td>
+ <td><p><strong>Beschreibung</strong></p></td>
</tr>
<tr>
- <td width="160" valign="top"><p>Authentication Request</p></td>
- <td width="764" valign="top"><p>Dieser wird von der Online-Applikation als Start des Anmeldevorgangs &uuml;bertragen.</p></td>
+ <td><p>Authentication Request</p></td>
+ <td><p>Dieser wird von der Online-Applikation als Start des Anmeldevorgangs &uuml;bertragen.</p></td>
</tr>
<tr>
- <td width="160" valign="top"><p>Session ID</p></td>
- <td width="764" valign="top"><p>Wird von MOA-ID generiert und dient zur Identifikation von Datens&auml;tzen.</p></td>
+ <td><p>Session ID</p></td>
+ <td><p>Wird von MOA-ID generiert und dient zur Identifikation von Datens&auml;tzen.</p></td>
</tr>
<tr>
- <td width="160" valign="top"><p>Personenbindung</p></td>
- <td width="764" valign="top"><p>Die Personenbindung der Benutzerin oder des Benutzers.</p></td>
+ <td><p>Personenbindung</p></td>
+ <td><p>Die Personenbindung der Benutzerin oder des Benutzers.</p></td>
</tr>
<tr>
- <td width="160" valign="top"><p>AuthBlock</p></td>
- <td width="764" valign="top"><p>Der Authentifizierungsblock, welcher im Rahmen des Anmeldevorgangs vom der Benutzerin oder dem Benutzer signiert wird.</p></td>
+ <td><p>AuthBlock</p></td>
+ <td><p>Der Authentifizierungsblock, welcher im Rahmen des Anmeldevorgangs vom der Benutzerin oder dem Benutzer signiert wird.</p></td>
</tr>
<tr>
- <td width="160" valign="top"><p>Signaturzertifikat</p></td>
- <td width="764" valign="top"><p>Das Signaturzertifikat, welches zur Signierung des Authentifizierungsblocks verwendet wurde.</p></td>
+ <td><p>Signaturzertifikat</p></td>
+ <td><p>Das Signaturzertifikat, welches zur Signierung des Authentifizierungsblocks verwendet wurde.</p></td>
</tr>
<tr>
- <td width="160" valign="top"><p>Vollmacht</p></td>
- <td width="764" valign="top"><p>Die Online-Vollmacht, welche bei einer Anmeldung in Vertretung ausgew&auml;hlt wurde.</p></td>
+ <td><p>Vollmacht</p></td>
+ <td><p>Die Online-Vollmacht, welche bei einer Anmeldung in Vertretung ausgew&auml;hlt wurde.</p></td>
</tr>
<tr>
- <td width="160" valign="top"><p>STORK</p></td>
- <td width="764" valign="top"><p>Alle Attribute, welche bei einer Anmeldung mittels STORK &uuml;bertragen werden.</p></td>
+ <td><p>STORK</p></td>
+ <td><p>Alle Attribute, welche bei einer Anmeldung mittels STORK &uuml;bertragen werden.</p></td>
</tr>
<tr>
- <td valign="top">AuthTimeStamp</td>
- <td valign="top">Zeitpunkt an dem sich die Benutzerin oder der Benutzer an MOA-ID-Auth authentifiziert hat.</td>
+ <td>AuthTimeStamp</td>
+ <td>Zeitpunkt an dem sich die Benutzerin oder der Benutzer an MOA-ID-Auth authentifiziert hat.</td>
</tr>
</table>
-<h3><a name="sessiondata_sso" id="sessiondata3"></a>1.1.2 Single Sign-On</h3>
+<h4><a name="sessiondata_sso" id="sessiondata3"></a>1.1.2 Single Sign-On</h4>
<p>Im Falle einer Anmeldung mit Single Sign-In werden zus&auml;tzlich zu den oben genannten Elementen noch weitere Datens&auml;tze gecached.</p>
-<table border="1" cellspacing="0" cellpadding="0">
+ <table class="configtable">
<tr>
- <td width="159" valign="top"><p><strong>Element</strong></p></td>
- <td width="760" valign="top"><p><strong>Beschreibung</strong></p></td>
+ <td><p><strong>Element</strong></p></td>
+ <td><p><strong>Beschreibung</strong></p></td>
</tr>
<tr>
- <td width="159" valign="top"><p>SSO Session Token</p></td>
- <td width="760" valign="top"><p>Das SSO Session Token dient zur Identifizierung einer aktuell bestehenden Single Sign-On Session.</p></td>
+ <td><p>SSO Session Token</p></td>
+ <td><p>Das SSO Session Token dient zur Identifizierung einer aktuell bestehenden Single Sign-On Session.</p></td>
</tr>
<tr>
- <td valign="top">UpdateTimeStamp</td>
- <td valign="top">Zeitpunkt des letzten Zugriffs der Benutzerin oder des Benutzers mittels SSO.</td>
+ <td>UpdateTimeStamp</td>
+ <td>Zeitpunkt des letzten Zugriffs der Benutzerin oder des Benutzers mittels SSO.</td>
</tr>
<tr>
- <td width="159" valign="top"><p>Liste: ung&uuml;ltige SSO Token</p></td>
- <td width="760" valign="top"><p>Eine Liste aller in dieser Single Sign-On Session bereits vergebenen und verwendeten SSO Session Token. </p></td>
+ <td><p>Liste: ung&uuml;ltige SSO Token</p></td>
+ <td><p>Eine Liste aller in dieser Single Sign-On Session bereits vergebenen und verwendeten SSO Session Token. </p></td>
</tr>
<tr>
- <td width="159" valign="top"><p>Liste:&nbsp; Online-Applikationen</p></td>
- <td width="760" valign="top"><p>Eine Liste aller Onlineapplikationen an denen im Rahmen dieser SSO Session eine Anmeldung stattgefunden hat.</p></td>
+ <td><p>Liste:&nbsp; Online-Applikationen</p></td>
+ <td><p>Eine Liste aller Onlineapplikationen an denen im Rahmen dieser SSO Session eine Anmeldung stattgefunden hat.</p></td>
</tr>
</table>
-<h2><a name="statisticdata" id="statisticdata"></a>1.2 Logging von Statistikdaten</h2>
+<h3><a name="statisticdata" id="statisticdata"></a>1.2 Logging von Statistikdaten</h3>
<p align="left">Zus&auml;tzlich zu den Daten aus den tempor&auml;ren Sessiondaten werden vom Modul MOA-ID-Auth auch Logging- und Statistikdaten generiert, welche nicht automatisiert gel&ouml;scht werden. Diese Daten dienen der Statuskontrolle und zur Protokollierung von Anmeldevorg&auml;ngen an MOA-ID-Auth. Von MOA-ID-Auth werden folgende <a href="./../config/config.html#basisconfig_moa_id_auth_param_database_info">Statistikdaten</a> je Anmeldevorgang gespeichert, wobei je nach Art der Anmeldung nicht alle Datenelemente gef&uuml;llt werden. Die nachstehende Tabelle beschreibt den maximalen Umfang der Loggingdaten, wobei keine Informationen zur anmeldenden Person gespeichert werden.</p>
-<table border="1" cellspacing="0" cellpadding="0">
+ <table class="configtable">
<tr>
- <td width="163" valign="top"><p><strong>Element</strong></p></td>
- <td width="757" valign="top"><p><strong>Beschreibung</strong></p></td>
+ <td><p><strong>Element</strong></p></td>
+ <td><p><strong>Beschreibung</strong></p></td>
</tr>
<tr>
- <td width="163" valign="top"><p>timestamp</p></td>
- <td width="757" valign="top"><p>Datum und Uhrzeit des Eintrags.</p></td>
+ <td><p>timestamp</p></td>
+ <td><p>Datum und Uhrzeit des Eintrags.</p></td>
</tr>
<tr>
- <td width="163" valign="top"><p>OAID</p></td>
- <td width="757" valign="top"><p>Eindeutige Datenbank ID der Online-Applikation.</p></td>
+ <td><p>OAID</p></td>
+ <td><p>Eindeutige Datenbank ID der Online-Applikation.</p></td>
</tr>
<tr>
- <td width="163" valign="top"><p>OAURLPrefix</p></td>
- <td width="757" valign="top"><p>Publik URL Prefix der Online-Applikation</p></td>
+ <td><p>OAURLPrefix</p></td>
+ <td><p>Publik URL Prefix der Online-Applikation</p></td>
</tr>
<tr>
- <td width="163" valign="top"><p>OAFriendlyName</p></td>
- <td width="757" valign="top"><p>Bezeichnung der Online-Applikation</p></td>
+ <td><p>OAFriendlyName</p></td>
+ <td><p>Bezeichnung der Online-Applikation</p></td>
</tr>
<tr>
- <td width="163" valign="top"><p>isBusinessService</p></td>
- <td width="757" valign="top"><p>&bdquo;True&ldquo; wenn die Online-Applikation aus dem privatwirtschaftlichen Bereich stammt.</p></td>
+ <td><p>isBusinessService</p></td>
+ <td><p>&bdquo;True&ldquo; wenn die Online-Applikation aus dem privatwirtschaftlichen Bereich stammt.</p></td>
</tr>
<tr>
- <td width="163" valign="top"><p>OATarget</p></td>
- <td width="757" valign="top"><p>Bereichskennzeichen der Online-Applikation (Target oder privatwirtschaftlicher Bereich)</p></td>
+ <td><p>OATarget</p></td>
+ <td><p>Bereichskennzeichen der Online-Applikation (Target oder privatwirtschaftlicher Bereich)</p></td>
</tr>
<tr>
- <td width="163" valign="top"><p>BKUType</p></td>
- <td width="757" valign="top"><p>Art der B&uuml;rgerkartenumgebung die f&uuml;r den Anmeldevorgang verwendet wurde. (online, local, handy)</p></td>
+ <td><p>BKUType</p></td>
+ <td><p>Art der B&uuml;rgerkartenumgebung die f&uuml;r den Anmeldevorgang verwendet wurde. (online, local, handy)</p></td>
</tr>
<tr>
- <td width="163" valign="top"><p>BKUURL</p></td>
- <td width="757" valign="top"><p>URL der verwendeten B&uuml;rgerkartenumgebung</p></td>
+ <td><p>BKUURL</p></td>
+ <td><p>URL der verwendeten B&uuml;rgerkartenumgebung</p></td>
</tr>
<tr>
- <td width="163" valign="top"><p>isSSOLogin</p></td>
- <td width="757" valign="top"><p>&bdquo;True&ldquo; wenn die die Anmeldung als Teil einer SSO Anmeldung erfolgt ist.</p></td>
+ <td><p>isSSOLogin</p></td>
+ <td><p>&bdquo;True&ldquo; wenn die die Anmeldung als Teil einer SSO Anmeldung erfolgt ist.</p></td>
</tr>
<tr>
- <td width="163" valign="top"><p>isMandateLogin</p></td>
- <td width="757" valign="top"><p>&bdquo;True&ldquo; wenn die Anmeldung in Vertretung erfolgt ist.</p></td>
+ <td><p>isMandateLogin</p></td>
+ <td><p>&bdquo;True&ldquo; wenn die Anmeldung in Vertretung erfolgt ist.</p></td>
</tr>
<tr>
- <td width="163" valign="top"><p>MandateType</p></td>
- <td width="757" valign="top"><p>Art der verwendeten Vollmacht (Einzelprofile des Vollmachtenservice oder OID des Organwalters / berufsm&auml;&szlig;igen Parteienvertreters)</p></td>
+ <td><p>MandateType</p></td>
+ <td><p>Art der verwendeten Vollmacht (Einzelprofile des Vollmachtenservice oder OID des Organwalters / berufsm&auml;&szlig;igen Parteienvertreters)</p></td>
</tr>
<tr>
- <td width="163" valign="top"><p>MandatorType</p></td>
- <td width="757" valign="top"><p>&bdquo;jur&ldquo; / &bdquo;nat&ldquo; je nach Art der vertretenen juristischen oder nat&uuml;rlichen Person</p></td>
+ <td><p>MandatorType</p></td>
+ <td><p>&bdquo;jur&ldquo; / &bdquo;nat&ldquo; je nach Art der vertretenen juristischen oder nat&uuml;rlichen Person</p></td>
</tr>
<tr>
- <td width="163" valign="top"><p>isPV</p></td>
- <td width="757" valign="top"><p>&bdquo;True&ldquo; wenn die Anmeldung in Vertretung durch einen Organwalter oder berufsm&auml;&szlig;igen Parteienvertreter erfolgt ist.</p></td>
+ <td><p>isPV</p></td>
+ <td><p>&bdquo;True&ldquo; wenn die Anmeldung in Vertretung durch einen Organwalter oder berufsm&auml;&szlig;igen Parteienvertreter erfolgt ist.</p></td>
</tr>
<tr>
- <td width="163" valign="top"><p>PVOID</p></td>
- <td width="757" valign="top"><p>OID des Organwalter oder berufsm&auml;&szlig;igen Parteienvertreter</p></td>
+ <td><p>PVOID</p></td>
+ <td><p>OID des Organwalter oder berufsm&auml;&szlig;igen Parteienvertreter</p></td>
</tr>
<tr>
- <td width="163" valign="top"><p>ProtocolType</p></td>
- <td width="757" valign="top"><p>Type des f&uuml;r die Anmeldung verwendeten Authentifizierungsprotokolls. (PVP21, OpenID, SAML1)</p></td>
+ <td><p>ProtocolType</p></td>
+ <td><p>Type des f&uuml;r die Anmeldung verwendeten Authentifizierungsprotokolls. (PVP21, OpenID, SAML1)</p></td>
</tr>
<tr>
- <td width="163" valign="top"><p>ProtocolSubType</p></td>
- <td width="757" valign="top"><p>N&auml;here Spezifizierung des Protokolltyps. (Im Falle von PVP 2.1: POST oder Redirect)</p></td>
+ <td><p>ProtocolSubType</p></td>
+ <td><p>N&auml;here Spezifizierung des Protokolltyps. (Im Falle von PVP 2.1: POST oder Redirect)</p></td>
</tr>
<tr>
- <td width="163" valign="top"><p>ExceptionType</p></td>
- <td width="757" valign="top"><p>Typ des Fehlers der w&auml;hrend des Anmeldevorgangs aufgetreten ist. Aktuell werden folgende Typen unterschieden:</p>
+ <td><p>ExceptionType</p></td>
+ <td><p>Typ des Fehlers der w&auml;hrend des Anmeldevorgangs aufgetreten ist. Aktuell werden folgende Typen unterschieden:</p>
<ul>
<li><strong>bku</strong>: Fehler w&auml;hrend der Kommunikation mit der B&uuml;rgerkartenumgebung.</li>
<li> <strong>moa-sp</strong>: Fehler bei der Kommunikation mit MOA-SP oder der Signaturpr&uuml;fung.</li>
@@ -184,74 +184,71 @@
</ul> </td>
</tr>
<tr>
- <td width="163" valign="top"><p>ExceptionCode</p></td>
- <td width="757" valign="top"><p>Fehlercode des aufgetretenen Fehlers falls vorhanden.</p></td>
+ <td><p>ExceptionCode</p></td>
+ <td><p>Fehlercode des aufgetretenen Fehlers falls vorhanden.</p></td>
</tr>
<tr>
- <td width="163" valign="top"><p>ExceptionMessage</p></td>
- <td width="757" valign="top"><p>Fehlermeldung in textueller Form (max. 255 Zeichen lang)</p></td>
+ <td><p>ExceptionMessage</p></td>
+ <td><p>Fehlermeldung in textueller Form (max. 255 Zeichen lang)</p></td>
</tr>
</table>
<p>&nbsp;</p>
-<h1><a name="networkconnections" id="networkconnections"></a>2 Ben&ouml;tigte Netzwerkverbindungen (incoming / outgoing)</h1>
+<h2><a name="networkconnections" id="networkconnections"></a>2 Ben&ouml;tigte Netzwerkverbindungen (incoming / outgoing)</h2>
<p>F&uuml;r die Betrieb des Modules MOA-ID-Auth werden Netzwerkverbindungen zu externen Service ben&ouml;tigt. Die nachfolgende Tabelle gibt eine Aufstellung der ben&ouml;tigten Verbindungen und eine kurze Beschreibung &uuml;ber deren Funktion.</p>
-<table border="1" cellpadding="0" cellspacing="0">
+ <table class="configtable">
<tr>
- <td width="105" height="34" valign="middle"><strong>Service</strong></td>
- <td width="275" valign="middle"><strong>URL</strong></td>
- <td width="63" valign="middle"><strong>Port</strong></td>
- <td width="87" valign="middle"><strong>Richtung</strong></td>
- <td width="702" valign="middle"><strong>Beschreibung</strong></td>
+ <td><strong>Service</strong></td>
+ <td><strong>URL</strong></td>
+ <td><strong>Port</strong></td>
+ <td><strong>Richtung</strong></td>
+ <td><strong>Beschreibung</strong></td>
</tr>
<tr>
- <td valign="middle"><p>MOA-ID-Auth</p></td>
- <td align="center" valign="middle">*</td>
- <td align="center" valign="middle">80, 443</td>
- <td align="center" valign="middle">eingehend</td>
- <td valign="middle"><p>Front-Channel und Back-Channel Verbinding zum IDP</p></td>
+ <td><p>MOA-ID-Auth</p></td>
+ <td>*</td>
+ <td>80, 443</td>
+ <td>eingehend</td>
+ <td><p>Front-Channel und Back-Channel Verbinding zum IDP</p></td>
</tr>
<tr>
- <td valign="middle"><p>MOA-ID-Auth</p></td>
- <td align="center" valign="middle">*</td>
- <td align="center" valign="middle">80, 443</td>
- <td align="center" valign="middle">ausgehend</td>
- <td valign="middle">Abholen von Template oder PVP 2.1 Metadaten</td>
+ <td><p>MOA-ID-Auth</p></td>
+ <td>*</td>
+ <td>80, 443</td>
+ <td>ausgehend</td>
+ <td>Abholen von Template oder PVP 2.1 Metadaten</td>
</tr>
<tr>
- <td height="26" valign="middle">LDAP</td>
- <td align="center" valign="middle">*</td>
- <td align="center" valign="middle">389, 636</td>
- <td align="center" valign="middle">ausgehend</td>
- <td valign="middle">Zertifikatspr&uuml;fung</td>
+ <td>LDAP</td>
+ <td>*</td>
+ <td>389, 636</td>
+ <td>ausgehend</td>
+ <td>Zertifikatspr&uuml;fung</td>
</tr>
<tr>
- <td width="105" valign="middle"><p>OSCP / CRL</p></td>
- <td width="275" align="center" valign="middle">*</td>
- <td width="63" align="center" valign="middle">80, 443</td>
- <td width="87" align="center" valign="middle">ausgehend</td>
- <td width="702" valign="middle"><p>Zertifikatspr&uuml;fung</p></td>
+ <td><p>OSCP / CRL</p></td>
+ <td>*</td>
+ <td>80, 443</td>
+ <td>ausgehend</td>
+ <td><p>Zertifikatspr&uuml;fung</p></td>
</tr>
<tr>
- <td valign="middle">OVS</td>
- <td align="center" valign="middle"><p><strong>Prod:</strong> <a href="https://vollmachten.stammzahlenregister.gv.at/mis/">vollmachten.stammzahlenregister.gv.at</a><br>
+ <td>OVS</td>
+ <td>vollmachten.stammzahlenregister.gv.at</a><br>
<strong>Test:</strong> <a href="https://vollmachten.egiz.gv.at/mis-test/">vollmachten.egiz.gv.at</a></p></td>
- <td align="center" valign="middle">443</td>
- <td align="center" valign="middle">ausgehend</td>
- <td valign="middle">Online-Vollmachten Service (MIS) via SOAP Service</td>
+ <td>443</td>
+ <td>ausgehend</td>
+ <td>Online-Vollmachten Service (MIS) via SOAP Service</td>
</tr>
<tr>
- <td height="46" valign="middle">SZR-Gateway</td>
- <td align="left" valign="middle"><strong>Prod: </strong><a href="https://gateway.stammzahlenregister.gv.at/">gateway.stammzahlenregister.gv.at</a><br>
+ <td>SZR-Gateway</td>
+ <td>gateway.stammzahlenregister.gv.at</a><br>
<strong>Test:</strong> <a href="http://szrgw.egiz.gv.at/">szrgw.egiz.gv.at</a></td>
- <td align="center" valign="middle">443</td>
- <td align="center" valign="middle">ausgehend</td>
- <td valign="middle">Stammzahlenregister Gateway via SOAP Service</td>
+ <td>443</td>
+ <td>ausgehend</td>
+ <td>Stammzahlenregister Gateway via SOAP Service</td>
</tr>
</table>
-<p>&nbsp;</p>
-<p align="left">&nbsp;</p>
-<p>&nbsp;</p>
- <p>&nbsp;</p>
-<p>&nbsp;</p>
+
+ </div>
</body>
</html>
diff --git a/id/server/doc/handbook/application/application.html b/id/server/doc/handbook/application/application.html
index 8dbae87ed..5fadafd9a 100644
--- a/id/server/doc/handbook/application/application.html
+++ b/id/server/doc/handbook/application/application.html
@@ -2,23 +2,24 @@
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" >
+ <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<title>MOA-ID - Anwendungen</title>
<link rel="stylesheet" href="../common/MOA.css" type="text/css">
+ <link href='https://fonts.googleapis.com/css?family=Roboto:300,400' rel='stylesheet' type='text/css'>
</head>
<body link="#990000">
- <table class="logoTable" width="100%" border="0" cellspacing="0" cellpadding="10">
- <tr>
- <td align="center" class="logoTitle" width="267"><img src="../common/LogoBKA.png" alt="Logo BKA" width="267" height="37" align="left"></td>
- <td align="center" class="logoTitle">Dokumentation</td>
- <td align="center" class="logoTitle" width="123"><img src="../common/LogoEGIZ.png" alt="Logo EGIZ" width="230" height="81" align="right"></td>
- </tr>
- </table>
- <hr/>
- <p class="title"><a href="../index.html">MOA-ID (Identifikation) </a></p>
-<p class="subtitle">Anwendungen</p>
- <hr/>
- <h1>Inhalt</h1>
- <ol>
+ <div id="headline">
+ <div class="container">
+ <a href="http://www.digitales.oesterreich.gv.at/"><img src="../common/logo_digAT.png"/></a>
+ <a href="../index.html"><h1>MOA-ID-AUTH </h1></a>
+ <br/>
+ </div>
+ </div>
+ <div class="container">
+<h1 align="center">Anwendungen</h1>
+
+ <h2>Inhalt</h2>
+ <ol class="index">
<li><a href="#allgemeines">Allgemeines</a></li>
<li><a href="#bkuselection">Integration in bestehende Online-Applikationen</a>
<ol>
@@ -44,36 +45,36 @@
</ol>
</li>
</ol>
- <hr/>
- <h1><a name="allgemeines"></a>1 Allgemeines</h1>
+
+ <h2><a name="allgemeines"></a>1 Allgemeines</h2>
<p>Das erste Kapitel behandelt die Integration der von MOA-ID-Auth generierten B&uuml;rgerkartenauswahl in bestehende Online-Applikationen. Zus&auml;tzlich zur Beschreibung ist MOA-ID auch eine PVP 2.1 Demo Applikation beigelegt. Die Konfiguration und Verwendung dieser Demo Applikation ist Inhalt des letzten Kapitels.</p>
-<h1><a name="bkuselection" id="allgemeines_zugangspunkte2"></a>2 Integration in bestehende Online-Applikationen</h1>
+<h2><a name="bkuselection" id="allgemeines_zugangspunkte2"></a>2 Integration in bestehende Online-Applikationen</h2>
<p>Ab MOA-ID 2.0 wird die B&uuml;rgerkartenauswahl und die Single Sign-On Anmeldeabfrage standardm&auml;&szlig;ig vom Modul MOA-ID-Auth bereitgestellt und muss nicht mehr durch den Service Provider implementiert werden.</p>
<p>Die im Modul MOA-ID-Auth hinterlegten Standard Templates (<a href="./../config/config.html#import_template_bku">B&uuml;rgerkartenauswahl</a>, <a href="./../config/config.html#import_template_sso">Single Sign-On Anmeldeabfrage</a>) unterst&uuml;tzt Responsive Design und passt sich somit in einem weiten Bereich an die aktuelle Fenstergr&ouml;&szlig;e an, wodurch eine individuelle Integration der von MOA-ID-Auth erzeugten Formulare m&ouml;glich ist. Zus&auml;tzlich bietet das Konfigurationstool die M&ouml;glichkeit der <a href="./../config/config.html#konfigurationsparameter_oa_additional_formular">online-applikationsspezifischen Anpassung der Standard Templates</a>. Mit dieser Funktion k&ouml;nnen einzelne Parameter der Standard Templates an die Online-Applikation individualisiert werden um die Integration weiter zu verfeinern.</p>
<p><strong>Hinweis:</strong> Es besteht jedoch auch die M&ouml;glichkeit der Hinterlegung von vollst&auml;ndig benutzerdefinierten online-applikationsspezifischen Templates f&uuml;r die B&uuml;rgerkartenauswahl und die Single Sign-On Anmeldeabfrage (siehe <a href="./../config/config.html#konfigurationsparameter_oa_bku">hier</a>).</p>
-<h2><a name="bkuselection" id="allgemeines_zugangspunkte6"></a>2.1 B&uuml;rgerkartenauswahl</h2>
+<h3><a name="bkuselection" id="allgemeines_zugangspunkte6"></a>2.1 B&uuml;rgerkartenauswahl</h3>
<p>Die B&uuml;rgerkartenauswahl wird ab MOA-ID 2.0 standardm&auml;&szlig;ig von MOA-ID-Auth, als Antwort auf einen eingehenden Authentifizierungsrequest, bereitgestellt. Dem zu Folge m&uuml;ssen die aus MOA-ID 1.5.1 bekannten Parameter (target, bkuURL, template, usemandate) nicht mehr im Authentifizierungsrequest an MOA-ID-Auth &uuml;bergeben werden und es kann ein standardkonformer Protokollrequest verwendet werden. Die aus MOA-ID 1.5.1 bekannte Variante der B&uuml;rgerkartenauswahl in der Online-Applikation des Service Providers steht jedoch weiterhin als <a href="./../protocol/protocol.html#allgemeines_legacy">Legacy Variante</a> zur Verf&uuml;gung.</p>
<p>Die Integration der von MOA-ID-Auth bereitgestellten B&uuml;rgerkartenauswahl in eine bestehende Online-Applikation kann auf zwei Arten erfolgen. Bei beiden Varianten erfolgt der Login Vorgang (senden des Authentifizierungsrequests an MOA-ID-Auth) durch den Klick auf einen Login Button. Die Auswahl der B&uuml;rgerkartenumgebung erfolgt somit erst im zweiten Schritt. Das Sequenzdiagramm eines solchen Anmeldevorgangs finden Sie <a href="./../intro/intro.html#ablauf">hier</a> und die nachfolgende Grafik zeigt ein Beispiel zur Integration eines Login Buttons.</p>
-<p><img src="login_button.PNG" width="853" height="683" alt="Integration Login Button"></p>
-<h3><a name="bkuselection_iframe" id="allgemeines_zugangspunkte5"></a>2.1.1 Request aus einem iFrame</h3>
+<div class="largeImgDiv"><img src="login_button.PNG" alt="Integration Login Button"></div>
+<h4><a name="bkuselection_iframe" id="allgemeines_zugangspunkte5"></a>2.1.1 Request aus einem iFrame</h4>
<p>Bei dieser Variante wird der Authentifizierungsrequests aus einem iFrame, welcher in die Online-Applikation eingebunden ist, abgesetzt. MOA-ID-Auth antwortet auf diesen Request mit der konfigurierten B&uuml;rgerkartenauswahl welche durch Verwendung des iFrame in die Online-Applikation eingebunden werden kann. Die nachfolgende Grafik zeigt ein Beispiel f&uuml;r die von MOA-ID-Auth bereitgestellte B&uuml;rgerkartenauswahl, welche nach Bet&auml;tigung des Login Buttons im iFrame dargestellt wird. </p>
-<p><img src="iframe.png" width="752" height="764" alt="B&uuml;rgerkartenauswahl im iFrame"></p>
+<div class="largeImgDiv"><img src="iframe.png" alt="B&uuml;rgerkartenauswahl im iFrame"></div>
<p><strong>Hinweis:</strong> Bei dieser Variante wird die Assertion ebenfalls an den iFrame ausgeliefert wodurch der authentifizierte Bereich der Online-Applikation im iFrame dargestellt wird. Dieses Verhalten kann durch eine <a href="./../config/config.html#konfigurationsparameter_oa_additional_formular">online-applikationsspezifischen Anpassung der Standard Templates</a> und dem Parameter <em>Targetparameter</em> unterbunden werden.</p>
-<h3><a name="bkuselection_mainframe" id="allgemeines_zugangspunkte7"></a>2.1.2 Request aus dem Hauptframe</h3>
+<h4><a name="bkuselection_mainframe" id="allgemeines_zugangspunkte7"></a>2.1.2 Request aus dem Hauptframe</h4>
<p>Bei dieser Variante wird der Authentifizierungsrequests direkt aus dem aktuell offenen Browserfenster an MOA-ID-Auth gesendet. In diesem Fall wird die B&uuml;rgerkartenauswahl fensterf&uuml;llend im Browser dargestellt und die Benutzerin oder der Benutzer befindet sich nicht mehr in der Domain der Online-Applikation (Service Provider). Nach erfolgreicher Authentifizierung wird die Benutzerin oder der Benutzer an die Online-Applikation zur&uuml;ckgeleitet. Die nachfolgende Grafik zeigt die B&uuml;rgerkartenauswahl im seitenf&uuml;llenden Layout.</p>
-<p><img src="mainframe.PNG" width="1330" height="822" alt="B&uuml;rgerkartenauswahl im seitenf&uuml;llenden Layout"></p>
-<h2><a name="ssoquestion" id="allgemeines_zugangspunkte3"></a> 2.2 Single Sign-On Anmeldeabfrage</h2>
+<div class="largeImgDiv"><img src="mainframe.PNG" alt="B&uuml;rgerkartenauswahl im seitenf&uuml;llenden Layout"></div>
+<h3><a name="ssoquestion" id="allgemeines_zugangspunkte3"></a> 2.2 Single Sign-On Anmeldeabfrage</h3>
<p>Wird f&uuml;r die Integration in die Online-Applikation die Variante mit dem Login Button und der von MOA-ID-Auth bereitgestellten B&uuml;rgerkartenauswahl verwendet (<a href="#bkuselection_iframe">iFrame</a> oder <a href="#bkuselection_mainframe">Hauptframe</a>), ergeben sich f&uuml;r die Single Sign-On Anmeldeabfrage keine zus&auml;tzlichen Anforderungen. Im Falle einer aktiven Single Sign-On Session, w&uuml;rde MOA-ID-Auth mit der Single Sign-On Anmeldeabfrage anstatt der B&uuml;rgerkartenauswahl antworten. Auch in diesem Fall stehen beide M&ouml;glichkeiten der Integration, identisch zum Kapitel B&uuml;rgerkartenauswahl, zur Verf&uuml;gung. Die nachfolgende Grafik zeigt eine Single Sign-On Abfrage welche je nach verwendeter Variante die B&uuml;rgerkartenauswahl, in den zuvor gezeigten Beispielen, ersetzen w&uuml;rde.</p>
-<p><img src="sso_sendassertion.PNG" width="383" height="240" alt="Single Sign-On Anmeldeabfrage"></p>
+<div class="largeImgDiv"><img src="sso_sendassertion.PNG" alt="Single Sign-On Anmeldeabfrage"></div>
<p><strong>Hinweis:</strong> Wird f&uuml;r die Integration der B&uuml;rgerkartenauswahl jedoch die <a href="./../protocol/protocol.html#allgemeines_legacy">Legacy Variante</a> verwendet (direkte Integration der B&uuml;rgerkartenauswahl in die Online-Applikation) kann es zu Inkompatibilit&auml;ten mit der Single Sign-On Anmeldeabfrage kommen, da diese Abfrage von MOA-ID-Auth generiert werden muss und eine direkte Integration in eine Online-Applikation nicht m&ouml;glich ist. </p>
-<h2><a name="DemoApp" id="allgemeines_zugangspunkte4"></a>3 Demo Applikationen</h2>
+<h3><a name="DemoApp" id="allgemeines_zugangspunkte4"></a>3 Demo Applikationen</h3>
<p>Dieser Abschnitt behandelt die Konfiguration und Verwendung der bei MOA-ID beigelegten Demo Applikationen.</p>
-<h2><a name="DemoApp_pvp21" id="allgemeines_zugangspunkte"></a>3.1 PVP 2.1 Demo</h2>
+<h3><a name="DemoApp_pvp21" id="allgemeines_zugangspunkte"></a>3.1 PVP 2.1 Demo</h3>
<p>Die PVP 2.1 Demo stellt das Minimalbeispiel einer Online-Applikation dar, welche zur Authentifizierung das Protokoll PVP 2.1 verwendet. Die nachfolgenden Abschnitte beschreiben die Installation, Konfiguration und Verwendung der PVP 2.1 Demo Applikation.</p>
<p><strong>Hinweis:</strong> Der Source Code der PVP 2.1 Demo Applikation ist im Order <code>$MOA_ID_AUTH_INST/source/moa-id-oa</code> verf&uuml;gbar. Jedoch ist die Validierung der PVP 2.1 Assertion in dieser Version nicht vollst&auml;ndig implementiert und m&uuml;sste bei Verwendung in einem Produktivsystem noch erweitert werden.</p>
-<h3><a name="DemoApp_pvp21_install" id="allgemeines_zugangspunkte9"></a>3.1.1 Installation</h3>
+<h4><a name="DemoApp_pvp21_install" id="allgemeines_zugangspunkte9"></a>3.1.1 Installation</h4>
<p>F&uuml;r die Installation der Demo Applikation wird ein Apache Tomcat ben&ouml;tigt. Die Konfiguration dieser Tomcat Instanz ist identisch zur <a href="./../install/install.html#webservice_basisinstallation">Konfiguration der Tomcat Instanz</a> der Module MOA-ID-Auth und MOA-ID-Configuration.</p>
-<h5><a name="DemoApp_pvp21_install_demooa" id="allgemeines_zugangspunkte10"></a>3.1.1.1 Einsatz der Demo Applikation in Tomcat</h5>
+<h6><a name="DemoApp_pvp21_install_demooa" id="allgemeines_zugangspunkte10"></a>3.1.1.1 Einsatz der Demo Applikation in Tomcat</h6>
<ul>
<li>Die Datei <code>$MOA_ID_AUTH_INST/moa-id_oa.war</code> enth&auml;lt das einsatzfertige Webarchiv der Demo Applikation und muss ins Verzeichnis <code>$CATALINA_HOME/webapps</code> kopiert werden. Dort wird sie beim ersten Start von Tomcat automatisch ins Verzeichnis <code>$CATALINA_HOME/webapps/moa-id-oa</code> entpackt. </li>
<li>Die Konfigurationsdatei mit der Basiskonfiguration f&uuml;r die Demo Applikation und die zugeh&ouml;rigen Verzeichnisse m&uuml;ssen in ein beliebiges Verzeichnis im Dateisystem kopiert werden (z.B. <code>$CATALINA_HOME/conf/moa-id-oa</code>). Eine funktionsf&auml;hige Konfiguration, die als Ausgangspunkt f&uuml;r die Basiskonfiguration der Demo Applikation dienen kann, finden Sie <a href="../../../conf/moa-id-oa/oa.properties">hier</a>. <br>
@@ -89,7 +90,7 @@
</ul>
</li>
</ul>
-<h4><a name="DemoApp_pvp21_install_start" id="allgemeines_zugangspunkte11"></a>3.1.1.2 Einsatz der Demo Applikation in Tomcat</h4>
+<h5><a name="DemoApp_pvp21_install_start" id="allgemeines_zugangspunkte11"></a>3.1.1.2 Einsatz der Demo Applikation in Tomcat</h5>
<p>Das starten und stoppen der Demo Applikation erfolgt identisch zur Beschreibung f&uuml;r die Module MOA-ID-Auth und MOA-ID-Configuration.</p>
<p>Ein erfolgreicher Start der Demo Applikation ist an folgender Log-Meldung ersichtlich:</p>
<pre>INFO at.gv.egovernment.moa.id.demoOA.Configuration - Demo Application initializaten finished.</pre>
@@ -99,15 +100,15 @@
<pre>
https://&lt;host&gt;:&lt;port&gt;/moa-id-oa/
</pre>
-<h3><a name="DemoApp_pvp21_config" id="allgemeines_zugangspunkte8"></a>3.1.2 Konfiguration Demo Applikation</h3>
+<h4><a name="DemoApp_pvp21_config" id="allgemeines_zugangspunkte8"></a>3.1.2 Konfiguration Demo Applikation</h4>
<p>Die zentrale Konfigurationsdatei f&uuml;r die Demo Applikation wird der <span class="term">Java Virtual Machine</span>, in der die Demo Applikation l&auml;uft, durch eine <span class="term">System Property </span> mitgeteilt (wird beim Starten der <span class="term">Java Virtual Machine</span> in der Form <code>-D&lt;name&gt;=&lt;wert&gt;</code> gemacht). Der Name der <span class="term">System Property</span> lautet <code>moa.id.demoOA</code> als Wert der <span class="term">System Property</span> ist der Pfad sowie der Name der Konfigurationsdatei im Dateisystem anzugeben, z.B.</p>
<pre>moa.id.demoOA=C:/Programme/apache/tomcat-4.1.30/conf/moa-id-oa/oa.properties</pre>
<p>Diese Konfigurationsdatei beinhaltet folgende Parameter. </p>
-<table width="1247" border="1">
+<table class="configtable">
<tr>
- <th width="395" scope="col">Name</th>
- <th width="271" scope="col">Beispielwert</th>
- <th width="559" scope="col">Beschreibung</th>
+ <th>Name</th>
+ <th>Beispielwert</th>
+ <th>Beschreibung</th>
</tr>
<tr>
<td>general.publicURLContext</td>
@@ -200,9 +201,9 @@ http://&lt;host&gt;:&lt;port&gt;/moa-id-oa/servlet/metadata</pre>
<pre>
https://&lt;host&gt;:&lt;port&gt;/moa-id-oa/servlet/metadata</pre>
<p>Nach erfolgreicher Konfiguration muss die Tomcat Instanz neu gestartet werden.</p>
-<h3><a name="DemoApp_pvp21_config_moaidauth" id="allgemeines_zugangspunkte13"></a>3.1.3 Konfiguration von MOA-ID-Auth</h3>
+<h4><a name="DemoApp_pvp21_config_moaidauth" id="allgemeines_zugangspunkte13"></a>3.1.3 Konfiguration von MOA-ID-Auth</h4>
<p>Bevor ein Anmeldevorgang gestartet werden kann muss die Demo Applikation auch als Online-Applikation f&uuml;r das Modul MOA-ID-Auth konfiguriert werden. Hierf&uuml;r kann das Konfigurationstool (Modul MOA-ID-Configuration) verwendet werden. Tragen Sie die Demo Applikation als Online-Applikation bei Ihrer MOA-ID-Auth Instanz ein. Eine Beschreibung der einzelnen Konfigurationsparameter finden Sie <a href="./../config/config.html#konfigurationsparameter_oa">hier</a>.</p>
-<h3><a name="DemoApp_pvp21_use" id="allgemeines_zugangspunkte12"></a>3.1.4 Anwendung</h3>
+<h4><a name="DemoApp_pvp21_use" id="allgemeines_zugangspunkte12"></a>3.1.4 Anwendung</h4>
<p>Nach dem Starten von Tomcat steht die Demo Applikation zur Verf&uuml;gung.</p>
<pre>http://&lt;host&gt;:&lt;port&gt;/moa-id-oa/</pre>
<p>bzw. </p>
@@ -214,5 +215,6 @@ https://&lt;host&gt;:&lt;port&gt;/moa-id-oa/
<p>Nach erfolgreicher Authentifizierung werden Sie an die Demo Applikation zur&uuml;ckgeleite. Diese extrahiert einige Basisdaten aus der PVP 2.1 Assertion und stellt diese im Browser dar. Zus&auml;tzlich kann die gesamte &uuml;bertragene PVP 2.1 Assertion angezeigt werden.</p>
<p>Wurde der Anmeldevorgang durch einen Fehler abgebrochen werden Sie ebenfalls an die Demo Applikation zur&uuml;ckgeleitet. In diesem Fall wird eine kurze Fehlerbeschreibung dargestellt. Eine ausf&uuml;hrliche Fehlerbeschreibung kann der PVP 2.1 Assertion entnommen werden.</p>
<p>&nbsp;</p>
+ </div>
</body>
</html>
diff --git a/id/server/doc/handbook/common/LogoBKA.png b/id/server/doc/handbook/common/LogoBKA.png
deleted file mode 100644
index 6a92647fd..000000000
--- a/id/server/doc/handbook/common/LogoBKA.png
+++ /dev/null
Binary files differ
diff --git a/id/server/doc/handbook/common/MOA.css b/id/server/doc/handbook/common/MOA.css
index f76ea53d4..f8fd01d8c 100644
--- a/id/server/doc/handbook/common/MOA.css
+++ b/id/server/doc/handbook/common/MOA.css
@@ -1,353 +1,77 @@
+.container {
+ margin: auto;
+ max-width: 1000px;
+ padding-left: 20px;
+ padding-right: 20px;
+}
+
body
{
- font-family: "Times New Roman", Times, serif;
+ font-family: "Roboto", sans-serif;
+
+ color: #000;
font-size: medium;
- font-weight: normal;
- margin-left: 2.5em;
- margin-right: 2.5em;
+ font-weight: 300;
+ margin-left: 0px;
+ margin-right: 0px;
+ margin-top: 0px;
background-color: white;
- text: #000000;
- link: #990000;
- vlink: #666666;
- alink: #cc9966;
-}
+ letter-spacing: 0.05em;
+}
+b{
+ font-weight: 500;
+}
p
{
margin-top: 0pt;
margin-bottom: 0.5em;
- text-align: justify
-}
-
-pre
-{
- font-family: "Courier New", monospace;
- font-size: 90%;
- background-color: #cccccc;
- color: #000000;
- margin-left:1.5%;
- margin-right:1.5%;
- margin-top: 1em;
- margin-bottom: 1em;
- border: #008000 none;
-}
-
-hr
-{
- color: #000080;
- background-color: #000080;
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-table.fixedWidth
-{
- width: 97%;
- margin-left:1.5%;
- margin-right:1.5%;
- margin-top: 1em;
- margin-bottom: 1em;
-}
-
-
-table.varWidth
-{
- margin-left:1.5%;
- margin-top: 1em;
- margin-bottom: 1em;
-}
-
-th
-{
- text-align: left;
-}
-
-h1
-{
- color: #000000;
- text-align: left;
- font-size: 167%;
- font-family: Arial, Helvetica, sans-serif;
- font-weight: normal;
- background-color:#999;
-}
-
-h2
-{
- color: #000000;
- font-size: 150%;
- font-family: Arial, Helvetica, sans-serif;
- font-weight: normal;
- background-color:#999;
-}
-
-h3
-{
- color: #000000;
- font-size: 133%;
- font-family: Arial, Helvetica, sans-serif;
- font-weight: normal;
- background-color:#999;
-}
-
-h4
-{
- color: #000000;
- font-size: 116%;
- font-family: Arial, Helvetica, sans-serif;
- font-weight: normal;
- background-color:#999;
-}
-
-h5
-{
- color: #000000;
- font-size: 100%;
- font-family: Arial, Helvetica, sans-serif;
- font-weight: normal;
- background-color:#999;
-}
-
-h6
-{
- color: #000000;
- font-size: 83%;
- font-family: Arial, Helvetica, sans-serif;
- font-weight: normal;
- background-color:#999;
-}
-
-code
-{
- font-family: "Courier New", Courier, monospace;
- font-size: 90%;
- color: #000000
-}
-
-dd
-{
- margin-top: 0.8em;
- margin-bottom: 0.8em;
- text-align: justify
-
-}
-
-dt
-{
- margin-top: 0.8em;
- font-family: Arial, Helvetica, sans-serif;
- color: #000080
-}
-
-ol
-{
- margin-top: 0.5em;
- margin-bottom: 0.5em
-}
-
-ol.alpha
-{
- list-style-type: lower-alpha
-}
-
-li
-{
- margin-top: 0.25em;
- margin-bottom: 0.25em;
- text-align: justify
-}
-
-a:hover
-{
- color: #990000
-}
-
-
-.title
-{
- text-align: left;
- font-size: 200%;
- color: #000000;
- font-family: Arial, Helvetica, sans-serif;
- margin-top: 0.4em;
- margin-bottom: 0.4em;
- background-color:#999;
-}
-
-.subtitle
-{
- text-align: left;
- font-size: 133%;
- color: #000000;
- font-family: Arial, Helvetica, sans-serif;
- margin-top: 0.4em;
- margin-bottom: 0.4em
-}
-
-.glossaryTerm
-{
- font-style: italic;
- color: #006699
-}
-
-.example
-{
- font-family: "Courier New", monospace;
- background-color: #CCFFFF;
- color: #000000;
- margin: 0pt 0pt;
- border: #008000 none
-}
-
-.schema
-{
- font-family: "Courier New", monospace;
- background-color: #FFFFCC;
- color: #000000;
- margin: 0pt 0pt;
- border: #008000 none
-}
+ text-align: justify;
-.documentinfo
-{
- font-family: Arial, Helvetica, sans-serif;
- font-size: 100%;
}
-.ol-contents
-{
- font-size: 100%;
- margin-top: 0.0em;
- margin-bottom: 0.0em;
+.centeredimage{
+ text-align: center;
+ width:100%;
}
-.li-contents
-{
- font-size: 100%;
- margin-top: 0.0em;
- margin-bottom: 0.0em;
+.index{
+ padding-left: 0;
}
-
-.logoTitle
-{
- text-align: center;
- font-size: 200%;
- color: #000080;
- font-family: Arial, Helvetica, sans-serif;
+.index a{
+ color: #666;
}
-
-.logoTable
-{
- margin-bottom: 0px;
- margin-left: 0px
-}
-
-.superscript
-{
- vertical-align: super;
- font-size: 66%;
-}
-
-.term
-{
- font-style: italic;
-}
-
-.strongerterm
-{
- font-style: italic;
- font-weight: 600;
-}
-
-
-.comment
-{
- color: #000000;
- background: #ffff00;
- font-style: italic
-}
-
-.addedErrata12
-{
- color: #FF0000;
- background-color: #FFEEEE;
- text-decoration: underline
-}
-
-.deletedErrata12
-{
- color: #999999;
- background-color: #EEEEEE;
- text-decoration: line-through
-}
-
-.added12
-{
- color: #FF0000;
- text-decoration: underline
-; background-color: #F8F0FF
-}
-
-.deleted12
+.index a:hover
{
- color: #999999;
- text-decoration: line-through
-; background-color: #f8f0ff
+ color:#E10319;
}
-
-.rfc2119Keyword
-{
- font-variant: small-caps;
- font-style: normal;
+.index ul{
+ list-style-type: none;
}
-
-.remark { font-style: italic}
-
-li.faq
-{
- margin-top: 1.5em;
- margin-bottom: 1.5em;
+.index li{
+ list-style-type: none;
}
-.faq-question
-{
- color: #000080;
- font-size: 100%;
- font-family: Arial, Helvetica, sans-serif;
- font-weight: normal;
- margin-bottom: 0.4em;
+td{
+ font-weight: 300;
}
-/*body
-{
- font-family: "Times New Roman", Times, serif;
- font-size: medium;
- font-weight: normal;
- margin-left: 2.5em;
- margin-right: 2.5em;
-}
-
-p
-{
- margin-top: 0pt;
- margin-bottom: 0.5em;
- text-align: justify
-}
pre
{
font-family: "Courier New", monospace;
font-size: 90%;
- background-color: #cccccc;
+ background-color: #DDD;
color: #000000;
margin-left:1.5%;
margin-right:1.5%;
margin-top: 1em;
margin-bottom: 1em;
border: #008000 none;
+ white-space: pre-wrap;
}
hr
@@ -365,9 +89,8 @@ table.fixedWidth
margin-right:1.5%;
margin-top: 1em;
margin-bottom: 1em;
+ color:#404040;
}
-
-
table.varWidth
{
margin-left:1.5%;
@@ -375,86 +98,114 @@ table.varWidth
margin-bottom: 1em;
}
+table.configtable{
+ width:100%;
+ border-collapse: collapse;
+ border-style:solid;
+ border-color: #404040;
+ border-width: 2px;
+ font-family: "Roboto",sans-serif
+}
+table.configtable th{
+ border-style:solid;
+ border-color: #404040;
+ border-width: 2px;
+ padding:3px;
+}
+table.configtable th{
+ font-weight: 300;
+ font-size: 120%;
+}
+table.configtable td{
+ border-style:solid;
+ border-color: #404040;
+ border-width: 1px;
+ border-left-width: 2px;
+ border-right-width: 2px;
+ padding:3px;
+ font-weight: 300;
+}
+
+
th
{
text-align: left;
+
}
h1
-{
- color: #000080;
- text-align: left;
- font-size: 167%;
- font-family: Arial, Helvetica, sans-serif;
- font-weight: normal
+{
+ font-size: 220%;
+ font-weight: 400;
}
h2
{
- color: #000080;
- font-size: 150%;
- font-family: Arial, Helvetica, sans-serif;
- font-weight: normal
+ letter-spacing: 1px;
+ font-size: 170%;
+ font-weight: 300;
+
}
h3
{
- color: #000080;
- font-size: 133%;
- font-family: Arial, Helvetica, sans-serif;
- font-weight: normal
+ letter-spacing: 1px;
+ font-size: 160%;
+ font-weight: 300;
}
h4
{
- color: #000080;
- font-size: 116%;
- font-family: Arial, Helvetica, sans-serif;
- font-weight: normal
+ letter-spacing: 1px;
+ font-size: 150%;
+ font-weight: 300;
+
}
h5
{
- color: #000080;
- font-size: 100%;
- font-family: Arial, Helvetica, sans-serif;
- font-weight: normal
+ letter-spacing: 1px;
+ font-size: 140%;
+ font-weight: 300;
}
h6
{
- color: #000080;
- font-size: 83%;
- font-family: Arial, Helvetica, sans-serif;
- font-weight: normal
+ letter-spacing: 1px;
+ font-size: 130%;
+ font-weight: 300;
}
code
{
- font-family: "Courier New", Courier, monospace;
+ font-family: "Roboto","Courier New", Courier, monospace;
font-size: 90%;
- color: #000000
+ font-weight: 400;
+ color: #000000;
}
dd
{
margin-top: 0.8em;
margin-bottom: 0.8em;
- text-align: justify
+ text-align: justify;
}
dt
{
margin-top: 0.8em;
- font-family: Arial, Helvetica, sans-serif;
- color: #000080
+ color: #E10319;
+}
+dt a{
+ text-decoration:none;
}
ol
{
margin-top: 0.5em;
- margin-bottom: 0.5em
+ margin-bottom: 0.5em;
+ padding-left:0.8em;
}
ol.alpha
@@ -466,31 +217,35 @@ li
{
margin-top: 0.25em;
margin-bottom: 0.25em;
- text-align: justify
+ text-align: justify;
}
a:hover
{
- color: #990000
+ color: #E10319;
+}
+a{
+ color: #666;
+ text-decoration: none;
}
.title
{
text-align: left;
- font-size: 167%;
- color: #000080;
- font-family: Arial, Helvetica, sans-serif;
+ font-size: 200%;
+ color: #000000;
+ font-family: "Roboto", sans-serif;
margin-top: 0.4em;
- margin-bottom: 0.4em
+ margin-bottom: 0.4em;
}
.subtitle
{
text-align: left;
font-size: 133%;
- color: #000080;
- font-family: Arial, Helvetica, sans-serif;
+ color: #000000;
+ font-family: "Roboto", sans-serif;
margin-top: 0.4em;
margin-bottom: 0.4em
}
@@ -503,7 +258,7 @@ a:hover
.example
{
- font-family: "Courier New", monospace;
+ font-family: "Roboto", sans-serif;
background-color: #CCFFFF;
color: #000000;
margin: 0pt 0pt;
@@ -521,7 +276,7 @@ a:hover
.documentinfo
{
- font-family: Arial, Helvetica, sans-serif;
+ font-family: "Roboto", sans-serif;
font-size: 100%;
}
@@ -542,19 +297,21 @@ a:hover
.logoTitle
{
text-align: center;
- font-size: 133%;
- color: #000080;
- font-family: Arial, Helvetica, sans-serif;
+ font-size: 200%;
}
.logoTable
{
margin-bottom: 0px;
- margin-left: 0px
+ margin-left: 0px;
+ background: linear-gradient(#FAFAFA, #F5F5F5);
+ border-bottom: 1px solid #EEE;
+ border-color: #818286;
+
}
.superscript
-{
+{
vertical-align: super;
font-size: 66%;
}
@@ -564,6 +321,13 @@ a:hover
font-style: italic;
}
+.strongerterm
+{
+ font-style: italic;
+ font-weight: 500;
+}
+
+
.comment
{
color: #000000;
@@ -588,8 +352,8 @@ a:hover
.added12
{
color: #FF0000;
- text-decoration: underline
-; background-color: #F8F0FF
+ text-decoration: underline;
+ background-color: #F8F0FF;
}
.deleted12
@@ -617,8 +381,121 @@ li.faq
{
color: #000080;
font-size: 100%;
- font-family: Arial, Helvetica, sans-serif;
- font-weight: normal;
+ font-family: "Roboto", sans-serif;
+ font-weight: 300;
margin-bottom: 0.4em;
}
-*/
+/*********************************/
+@media ( min-width :600px) {
+ #headline {
+ /*background: linear-gradient(center top , #FAFAFA, #F5F5F5) repeat scroll 0% 0% transparent;*/
+ background: linear-gradient(#FAFAFA, #F5F5F5);
+ border-bottom: 1px solid #EEE;
+
+ }
+ #headline br {
+ clear: both;
+ }
+
+ #headline h1 {
+ color: #404040;
+ padding-right: 1em;
+ padding-top: 0.15em;
+ margin-bottom: 0;
+ float: right;
+ }
+ #headline img {
+ width: 300px;
+ padding-left: 0;
+ padding-top: 35px;
+ padding-bottom:20px;
+ }
+
+ .smallImgDiv{
+ width:50%;
+ margin:auto;
+ margin-bottom:40px;
+ margin-top:20px;
+ }
+ .smallImgDiv img{
+ max-width: 100%;
+ max-height: 100%;
+ margin:auto;
+ display: block;
+ }
+ .largeImgDiv{
+ width:100%;
+ margin: auto;
+ margin-bottom:40px;
+ margin-top:20px;
+ }
+ .largeImgDiv img{
+ max-width: 100%;
+ max-height: 100%;
+ margin:auto;
+ display: block;
+ }
+}
+/*****************************/
+@media ( max-width :599px) {
+ #headline {
+ /*background: linear-gradient(center top , #FAFAFA, #F5F5F5) repeat scroll 0% 0% transparent;*/
+ background: linear-gradient(#FAFAFA, #F5F5F5);
+ border-bottom: 1px solid #EEE;
+ }
+
+ #headline img {
+ width: 150px;
+ padding-left: 0;
+ padding-top: 0.5em;
+ padding-bottom:0.5em;
+ }
+ #headline br {
+ clear: both;
+ }
+ #demologin {
+ width: 100%;
+ box-sizing: border-box;
+ border: 1px solid;
+ border-radius: 1px;
+ border-color: #818286;
+ background: #F5F5F5;
+ height: 182px;
+ width: 242px;
+ margin-top: 18px;
+ padding-left:0;
+ }
+ #headline h1 {
+ color: #404040;
+ padding: 0;
+ margin-bottom: 0;
+ margin-top: 0;
+ text-align: center;
+ }
+ .smallImgDiv{
+ width:100%;
+ margin:auto;
+ margin-bottom:40px;
+ margin-top:20px;
+ }
+ .smallImgDiv img{
+ max-width: 100%;
+ max-height: 100%;
+ margin:auto;
+ display: block;
+ }
+ .largeImgDiv{
+ width:100%;
+ margin: auto;
+ margin-bottom:40px;
+ margin-top:20px;
+ }
+ .largeImgDiv img{
+ max-width: 100%;
+ max-height: 100%;
+ margin:auto;
+ display: block;
+ }
+}
+
+
diff --git a/id/server/doc/handbook/common/logo_digAT.png b/id/server/doc/handbook/common/logo_digAT.png
new file mode 100644
index 000000000..4f36681e2
--- /dev/null
+++ b/id/server/doc/handbook/common/logo_digAT.png
Binary files differ
diff --git a/id/server/doc/handbook/config/config.html b/id/server/doc/handbook/config/config.html
index 9b4190035..f5292f76a 100644
--- a/id/server/doc/handbook/config/config.html
+++ b/id/server/doc/handbook/config/config.html
@@ -2,23 +2,25 @@
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" >
+ <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<title>MOA-ID - Konfiguration</title>
<link rel="stylesheet" href="../common/MOA.css" type="text/css">
+ <link href='https://fonts.googleapis.com/css?family=Roboto:300,400' rel='stylesheet' type='text/css'>
</head>
<body link="#990000">
-<table class="logoTable" width="100%" border="0" cellspacing="0" cellpadding="10">
- <tr>
- <td align="center" class="logoTitle" width="267"><img src="../common/LogoBKA.png" alt="Logo BKA" width="267" height="37" align="left"></td>
- <td align="center" class="logoTitle">Dokumentation</td>
- <td align="center" class="logoTitle" width="123"><img src="../common/LogoEGIZ.png" alt="Logo EGIZ" width="230" height="81" align="right"></td>
- </tr>
- </table>
- <hr/>
- <p class="title"><a href="../index.html">MOA-ID (Identifikation) </a></p>
-<p class="subtitle">Konfiguration</p>
- <hr/>
-<h1>Inhalt</h1>
- <ol>
+
+ <div id="headline">
+ <div class="container">
+ <a href="http://www.digitales.oesterreich.gv.at/"><img src="../common/logo_digAT.png"/></a>
+ <a href="../index.html"><h1>MOA-ID-AUTH </h1></a>
+ <br/>
+ </div>
+ </div>
+<div class="container">
+<h1 align="center">Konfiguration<h1>
+
+<h2>Inhalt</h2>
+ <ol class="index">
<li>
<p><a href="#uebersicht">&Uuml;bersicht</a></p>
<ol>
@@ -75,6 +77,7 @@
</li>
<li> <a href="#basisconfig_moa_id_auth_param_testing">Testing</a></li>
<li><a href="#basisconfig_moa_id_auth_szrclient">SZR Client f&uuml;r STORK &lt;-&gt; PVP Gateway Betrieb</a></li>
+ <li><a href="#basisconfig_moaid_stork2">STORK 2.0</a></li>
</ol>
</li>
</ol>
@@ -152,14 +155,14 @@
<li><a href="#sp-config">Konfiguration von MOA-SP</a></li>
<li><a href="#security">Tomcat Security Manager</a></li>
</ol>
-<ol type="A">
+<ol type="A" class="index">
<li><a href="#referenzierte_spezifikation">Referenzierte Spezifikation</a></li>
</ol>
-<hr/>
- <h1><a name="uebersicht" id="uebersicht"></a>1 &Uuml;bersicht </h1>
+
+ <h2><a name="uebersicht" id="uebersicht"></a>1 &Uuml;bersicht </h2>
<p>Dieses Handbuch beschreibt detailliert die Konfigurationsm&ouml;glichkeiten f&uuml;r die Module MOA-ID-Auth und MOA-ID-Configuration. Wobei das zentrale Einsatzgebiet des Modules MOA-ID-Configuration die Konfiguration des Modules MOA-ID-Auth darstellt.</p>
<p>Die Konfiguration der beiden Module MOA-ID-Auth und MOA-ID-Configuration kann in zwei Teilbereiche unterteilt werden. Der erste Abschnitt behandelt die Basiskonfiguration der beiden Module, welche in textueller Form mit Hilfe von properties-Konfigurationsdateien erfolgt. Der zweite Abschnitt behandelt die Konfiguration des Modules MOA-ID-Auth unter Zuhilfenahme des Modules MOA-ID-Configuration.</p>
- <h2><a name="uebersicht_ablauf" id="uebersicht2"></a>1.1 Empfohlener Konfigurationsablauf</h2>
+ <h3><a name="uebersicht_ablauf" id="uebersicht2"></a>1.1 Empfohlener Konfigurationsablauf</h3>
<ol>
<li><a href="#moa_id_config_parameters">Basiskonfiguration des Modules MOA-ID-Configuration</a></li>
<li><a href="#moa_id_config_init">Initialisierung des Modules MOA-ID-Configuration</a></li>
@@ -168,24 +171,24 @@
<li><a href="#konfigurationsparameter_oa">Konfiguration von Online-Applikationen</a></li>
</ol>
<p>Optional kann nach dem Schritt 3 Basiskonfiguration des Modules MOA-ID-Auth eine <a href="#import_export_legacy">bestehende MOA-ID 1.5.1 Konfiguration importiert</a> werden. F&uuml;r bestehende Konfigurationen &lt; 1.5.1 wird eine vollst&auml;ndige Neukonfiguration empfohlen.</p>
-<h1><a name="uebersicht_zentraledatei" id="uebersicht_zentraledatei"></a>2 Basiskonfiguration</h1>
+<h2><a name="uebersicht_zentraledatei" id="uebersicht_zentraledatei"></a>2 Basiskonfiguration</h2>
<p>Die Basiskonfiguration f&uuml;r die Module MOA-ID-Auth und MOA-ID-Configuration erfolgt mit Hilfe textueller properties-Dateien. Diese properties-Dateien beinhalten alle Konfigurationsparameter welche f&uuml;r den Start der Module erforderlich sind und m&uuml;ssen der Java Virtual Machine durch eine System Property mitgeteilt werden. Alle &Auml;nderungen die an der Basiskonfiguration vorgenommen werden erfordern einen Neustart der jeweiligen Java Virtual Machine.</p>
<p><strong>Hinweis:</strong> Alle URL Konfigurationsparameter auf Dateien ohne den Prefix <em>file:/</em> werden als relative Pfadangaben zum Konfigurationsbasisverzeichnis des jeweiligen Modules interpretiert.</p>
-<h2><a name="uebersicht_zentraledatei_aktualisierung" id="uebersicht_zentraledatei_aktualisierung"></a>2.1 MOA-ID-Configuration</h2>
+<h3><a name="uebersicht_zentraledatei_aktualisierung" id="uebersicht_zentraledatei_aktualisierung"></a>2.1 MOA-ID-Configuration</h3>
<p>Dieser Abschnitt behandelt die Basiskonfiguration des Modules MOA-ID-Configuration. Der erste Teilabschnitt behandelt die Bekanntmachung der Konfigurationsdatei mittels einer System Property und der zweite Teilabschnitt beschreibt die einzelnen Konfigurationsparameter im Detail. Eine Konfiguration die als Ausgangspunkt f&uuml;r die individuelle Konfiguration verwendet werden kann finden Sie <a href="../../conf/moa-id-configuration/moa-id-configtool.properties">hier</a>.</p>
-<h3><a name="moa_id_config_property" id="uebersicht_zentraledatei_aktualisierung7"></a>2.1.1 Bekanntmachung der Konfigurationsdatei</h3>
+<h4><a name="moa_id_config_property" id="uebersicht_zentraledatei_aktualisierung7"></a>2.1.1 Bekanntmachung der Konfigurationsdatei</h4>
<p>Die zentrale Konfigurationsdatei von MOA-ID-Configuration wird der <span class="term">Java Virtual Machine</span>, in der MOA-ID-Configuration l&auml;uft, durch eine <span class="term">System Property </span> mitgeteilt (wird beim Starten der <span class="term">Java Virtual Machine</span> in der Form <code>-D&lt;name&gt;=&lt;wert&gt;</code> gemacht). Der Name der <span class="term">System Property</span> lautet <code>moa.id.webconfig</code> als Wert der <span class="term">System Property</span> ist der Pfad sowie der Name der Konfigurationsdatei im Dateisystem anzugeben, z.B.</p>
<pre>moa.id.webconfig=C:/Programme/apache/tomcat-4.1.30/conf/moa-id-configuration/moa-id-configuration.properties</pre>
<p>Weitere Informationen zum Bekanntmachen der zentralen Konfigurationsdatei f&uuml;r MOA-ID-Configuration erhalten Sie in <a href="../install/install.html#moa_id_configuration_deploy">Abschnitt 2.1.2.4</a> des Installationshandbuchs.</p>
-<h3><a name="moa_id_config_parameters" id="uebersicht_zentraledatei_aktualisierung8"></a>2.1.2 Konfigurationsparameter</h3>
+<h4><a name="moa_id_config_parameters" id="uebersicht_zentraledatei_aktualisierung8"></a>2.1.2 Konfigurationsparameter</h4>
<p>Aus Gr&uuml;nden der &Uuml;bersichtlichkeit werden die einzelnen Konfigurationsparameter in logisch zusammenh&auml;ngende Bl&ouml;cke unterteilt. Die Konfiguration der Bl&ouml;cke <a href="#moa_id_config_parameters_generel">Allgemeine Konfigurationsparameter</a> und <a href="#moa_id_config_parameters_database">Datenbankzugriff</a> sind nicht optional und m&uuml;ssen f&uuml;r den Betrieb angepasst werden. </p>
-<h4><a name="moa_id_config_parameters_generel" id="uebersicht_zentraledatei_aktualisierung9"></a>2.1.2.1 Allgemeine Konfigurationsparameter</h4>
+<h5><a name="moa_id_config_parameters_generel" id="uebersicht_zentraledatei_aktualisierung9"></a>2.1.2.1 Allgemeine Konfigurationsparameter</h5>
<p>Die folgenden Konfigurationsparameter sind nicht optional und m&uuml;ssen in der Konfigurationsdatei enthalten sein und individuell angepasst werden.</p>
-<table width="1247" border="1">
+<table class="configtable">
<tr>
- <th width="176" scope="col">Name</th>
- <th width="222" scope="col">Beispielwert</th>
- <th width="827" scope="col">Beschreibung</th>
+ <th scope="col">Name</th>
+ <th scope="col">Beispielwert</th>
+ <th scope="col">Beschreibung</th>
</tr>
<tr>
<td>general.login.deaktivate</td>
@@ -230,13 +233,13 @@
<td>Innerhalb dieses Zeitraums muss ein neuer Benutzer die im Benutzerprofil hinterlegte eMail Adresse validieren. </td>
</tr>
</table>
-<h4>2.1.2.3 Datenbankzugriff</h4>
+<h5>2.1.2.3 Datenbankzugriff</h5>
<p>Diese Konfigurationsparameter sind nicht optional und m&uuml;ssen in der Konfigurationsdatei enthalten sein und individuell angepasst werden. F&uuml;r die Beispielkonfiguration wurde mySQL als Datenbank verwendet wodurch sich die Konfigurationsparameter auf mySQL beziehen. Das Modul MOA-ID-Configuration kann jedoch auch mit Datenbanken anderer Hersteller betrieben werden. Hierf&uuml;r wird jedoch auf die <a href="http://docs.jboss.org/hibernate/core/4.2/manual/en-US/html/">Hibernate Dokumention</a> verwiesen, welches im Module MOA-ID-Configuration f&uuml;r den Datenbankzugriff verwendet wird. </p>
-<table width="1247" border="1">
+<table class="configtable">
<tr>
- <th width="209" scope="col">Name</th>
- <th width="223" scope="col">Beispielwert</th>
- <th width="793" scope="col">Beschreibung</th>
+ <th>Name</th>
+ <th>Beispielwert</th>
+ <th>Beschreibung</th>
</tr>
<tr>
<td>hibernate.dialect</td>
@@ -266,13 +269,13 @@
</table>
<p>&nbsp;</p>
<p>Die Beispielkonfiguration beinhaltet noch zus&auml;tzliche Konfigurationsparameter f&uuml;r den Datenbankzugriff welche direkt aus der Beispielkonfiguration &uuml;bernommen werden k&ouml;nnen. Eine detaillierte Beschreibung der einzelnen Einstellungsparameter kann der <a href="http://docs.jboss.org/hibernate/core/4.2/manual/en-US/html/">Hibernate Dokumention</a> entnommen werden.</p>
-<h4><a name="moa_id_config_parameters_pvp2" id="uebersicht_zentraledatei_aktualisierung11"></a>2.1.2.4 B&uuml;rgerkarten LogIn</h4>
+<h5><a name="moa_id_config_parameters_pvp2" id="uebersicht_zentraledatei_aktualisierung11"></a>2.1.2.4 B&uuml;rgerkarten LogIn</h5>
<p>Zus&auml;tzlich zur Authentifizierung mittels Benutzername und Passwort unterst&uuml;tzt das Modul MOA-ID-Configuration auch eine Authentifizierung mittels B&uuml;rgerkarte oder Handy-Signatur unter Verwendung des <a href="./protocol/protocol.html">Authentifizierungsprotokolls PVP2.1</a>. Wenn eine Authentifizierung mittels B&uuml;rgerkarte oder Handy-Signatur gew&uuml;nscht wird m&uuml;ssen die nachfolgen Parameter konfiguriert werden.</p>
-<table width="1247" border="1">
+<table class="configtable">
<tr>
- <th width="395" scope="col">Name</th>
- <th width="271" scope="col">Beispielwert</th>
- <th width="559" scope="col">Beschreibung</th>
+ <th>Name</th>
+ <th>Beispielwert</th>
+ <th>Beschreibung</th>
</tr>
<tr>
<td>general.login.pvp2.isactive</td>
@@ -363,13 +366,13 @@ http://&lt;host&gt;:&lt;port&gt;/moa-id-configuration/servlet/metadata</pre>
<p>bzw. </p>
<pre>
https://&lt;host&gt;:&lt;port&gt;/moa-id-configuration/servlet/metadata</pre>
-<h4><a name="moa_id_config_parameters_mail" id="uebersicht_zentraledatei_aktualisierung12"></a>2.1.2.5 Mailversand</h4>
+<h5><a name="moa_id_config_parameters_mail" id="uebersicht_zentraledatei_aktualisierung12"></a>2.1.2.5 Mailversand</h5>
<p>Das Modul MOA-ID-Configuration bietet die M&ouml;glichkeit zur Generierung von automatischen Statusmeldungen welche via eMail versendet werden. Diese Statusmeldungen betreffen die Aktivierung neuer Online-Applikationen oder Benutzeraccounts und die Verifikation von eMail Adressen welche einem Benutzeraccount zugeordnet sind. Detailinformationen hierzu finden Sie im Abschnitt <a href="#moa_id_config_user">Benutzerverwaltung</a>.</p>
-<table width="1247" border="1">
+<table class="configtable">
<tr>
- <th width="395" scope="col">Name</th>
- <th width="271" scope="col">Beispielwert</th>
- <th width="559" scope="col">Beschreibung</th>
+ <th>Name</th>
+ <th>Beispielwert</th>
+ <th>Beschreibung</th>
</tr>
<tr>
<td>general.mail.host</td>
@@ -453,7 +456,7 @@ https://&lt;host&gt;:&lt;port&gt;/moa-id-configuration/servlet/metadata</pre>
</tr>
</table>
<p>&nbsp;</p>
-<h3><a name="moa_id_config_init" id="uebersicht_zentraledatei_aktualisierung13"></a>2.1.3 Initialisierung des Modules MOA-ID-Configuration</h3>
+<h4><a name="moa_id_config_init" id="uebersicht_zentraledatei_aktualisierung13"></a>2.1.3 Initialisierung des Modules MOA-ID-Configuration</h4>
<p>F&uuml;r den ersten Start muss die Authentifizierung deaktiviert werden (siehe <em>general.login.deaktivate</em> <a href="#moa_id_config_parameters_generel">Abschnitt 2.2.2.1</a>). Anschlie&szlig;end kann die Benutzerverwaltung des Modules MOA-ID-Configuration unter der folgenden Adresse aufgerufen werden.</p>
<pre>http://&lt;host&gt;:&lt;port&gt;/moa-id-configuration/secure/usermanagementInit.action</pre>
<p>bzw. </p>
@@ -461,16 +464,16 @@ https://&lt;host&gt;:&lt;port&gt;/moa-id-configuration/servlet/metadata</pre>
https://&lt;host&gt;:&lt;port&gt;/moa-id-configuration/secure/usermanagementInit.action</pre>
<p>Mit Hilfe dieser Benutzerverwaltung kann ein neuer Benutzeraccount am Konfigurationstool angelegt und ein Kennwort f&uuml;r den Benutzer vergeben werden. Zus&auml;tzlich m&uuml;ssen dem neu erstellten Benutzer die Eigenschaften <em>aktiv</em> und <em>admin</em> zugewiesen werden. Nach dem speichern wird der neu angelegte Benutzer in der Liste aller vorhandenen Benutzern dargestellt.</p>
<p>Hiermit ist die Initialisierung des Moduls MOA-ID-Configuration abgeschlossen und die Authentifizierung kann wieder aktiviert werden (siehe <em>general.login.deaktivate</em> <a href="#moa_id_config_parameters_generel">Abschnitt 2.2.2.1</a>). Anschlie&szlig;end muss die Java Virtual Machine, in welchem das Modul MOA-ID-Configuration betrieben wird, neu gestartet werden.</p>
-<p><b>Hinweis:</b> Ein Betrieb des Moduls MOA-ID-Configuration ohne Authentifizierung ist ebenfalls möglich. In diesem Fall wird jedoch empfohlen den Zugriff auf das Konfigurationstool mit anderen Mitteln einzuschränken.</b></p>
-<h3><a name="moa_id_config_user" id="uebersicht_zentraledatei_aktualisierung14"></a>2.1.4 Benutzerverwaltung</h3>
+<p><b>Hinweis:</b> Ein Betrieb des Moduls MOA-ID-Configuration ohne Authentifizierung ist ebenfalls m\F6glich. In diesem Fall wird jedoch empfohlen den Zugriff auf das Konfigurationstool mit anderen Mitteln einzuschr\E4nken.</b></p>
+<h4><a name="moa_id_config_user" id="uebersicht_zentraledatei_aktualisierung14"></a>2.1.4 Benutzerverwaltung</h4>
<p>Das Modul MOA-ID-Configuration unterst&uuml;tzt die Ben&uuml;tzung und Verwaltung unterschiedlicher Benutzeraccounts. Hierf&uuml;r stellt die Web-Oberfl&auml;che des Modules MOA-ID-Configuration ein spezielles Interface zur Benutzerverwaltung zur Verf&uuml;gung. </p>
-<h4><a name="moa_id_config_user_add" id="uebersicht_zentraledatei_aktualisierung15"></a>2.1.4.1 Einen neuen Benutzer erstellen</h4>
+<h5><a name="moa_id_config_user_add" id="uebersicht_zentraledatei_aktualisierung15"></a>2.1.4.1 Einen neuen Benutzer erstellen</h5>
<p>F&uuml;r die Registrierung eins neuen Benutzeraccounts werden folgende Informationen ben&ouml;tigt.</p>
-<table width="1247" border="1">
+<table class="configtable">
<tr>
- <th width="215" scope="col">Name</th>
- <th width="930" scope="col">Beschreibung</th>
- <th width="80" align="center" scope="col">optional</th>
+ <th >Name</th>
+ <th >Beschreibung</th>
+ <th align="center">Optional</th>
</tr>
<tr>
<td>Vorname</td>
@@ -536,8 +539,8 @@ https://&lt;host&gt;:&lt;port&gt;/moa-id-configuration/secure/usermanagementInit
<li><strong>Durch PVP 2.1 Login:</strong> Bei dieser Variante wird die Generierung eines neues Benutzeraccounts durch einen Loginversuch mittels B&uuml;rgerkarte oder Handy-Signatur ausgel&ouml;st. Nach erfolgreicher Authentifizierung wird die Benutzerin / der Benutzer an das Konfigurationstool weitergeleitet. Hierbei wird gepr&uuml;ft ob aktuell ein Benutzeraccount f&uuml;r diese Person existiert. Wenn kein Account existiert wird die Benutzerin / der Benutzer aufgefordert die fehlenden Informationen f&uuml;r die Registrierung eines neuen Benutzeraccounts einzutragen. In diesem Fall muss die eMail Adresse durch die Benutzerin / den Benutzer zwingend validiert werden wof&uuml;r der <a href="#moa_id_config_parameters_mail">Mailversand</a> am Module MOA-ID-Configuration konfiguriert sein muss. Nach erfolgreicher Validierung der eMail Adresse ist der Benutzeraccount als nicht aktiv registriert und muss anschlie&szlig;end durch einen Administrator aktiviert werden. Erst nach erfolgreicher Aktivierung ist eine g&uuml;ltige Anmeldung m&ouml;glich.<br>
Sollte die Validierung der eMail Adresse nicht innerhalb des in <a href="#moa_id_config_parameters_generel">Abschnitt 2.2.1.1</a> konfigurierten Zeitraums erfolgen, wird die Benutzeranforderung automatisch gel&ouml;scht und die Benutzerin / der Benutzer muss sich erneut am Konfigurationstool registrieren.</li>
</ol>
-<h4><a name="moa_id_config_user_role" id="uebersicht_zentraledatei_aktualisierung16"></a>2.1.4.2 Benutzerrechte</h4>
-<p>Alle Benutzer die Admin&ndash;Rechte (Eigenschaft <em>admin</em>) besitzen haben vollen Zugriff auf die gesamte Konfiguration der verwalteten MOA-ID-Auth Instanz. Benutzer ohne Admin-Rechten stehen nur folgende Operationen zur Verfügung wobei diese auch besondere Einschränkungen aufweisen können.</p>
+<h5><a name="moa_id_config_user_role" id="uebersicht_zentraledatei_aktualisierung16"></a>2.1.4.2 Benutzerrechte</h5>
+<p>Alle Benutzer die Admin&ndash;Rechte (Eigenschaft <em>admin</em>) besitzen haben vollen Zugriff auf die gesamte Konfiguration der verwalteten MOA-ID-Auth Instanz. Benutzer ohne Admin-Rechten stehen nur folgende Operationen zur Verf\FCgung wobei diese auch besondere Einschr\E4nkungen aufweisen k\F6nnen.</p>
<ul>
<li><strong>Online-Applikationen bearbeiten:</strong> Ein Benutzer ohne Admin-Rechte kann nur jene Online-Applikationen bearbeiten die von ihm erstellt wurden. Das bearbeiten fremder Online-Applikationen ist nicht m&ouml;glich. Folgende Parameter k&ouml;nnen durch diesen Benutzer bearbeitet werden.
<ul>
@@ -557,21 +560,21 @@ https://&lt;host&gt;:&lt;port&gt;/moa-id-configuration/secure/usermanagementInit
<li><strong>Online Applikation anlegen:</strong> Ein Benutzer ohne Admin-Rechte kann neue Online-Applikationen anlegen. Die Funktionen &bdquo;Online-Applikation aktivieren&ldquo; (siehe <a href="#konfigurationsparameter_oa">Kapitel 3.2</a>: ) steht jedoch nicht zur Verf&uuml;gung. Somit muss die Online-Applikation von einem Benutzer mit Admin-Rechten aktiv geschalten werden. </li>
<li><strong>Benutzerverwaltung:</strong> Ein Benutzer ohne Admin-Rechte kann keine neuen Benutzer erstellen. Dieser kann jedoch seinen Benutzeraccount bearbeiten und gegeben falls l&ouml;schen. Beim L&ouml;schen eines Benutzeraccounts werden Online-Applikationen die von diesem erstellt wurden jedoch nicht automatisch gel&ouml;scht. </li>
</ul>
-<h2><a name="basisconfig_moa_id_auth" id="uebersicht_zentraledatei_aktualisierung2"></a>2.2 MOA-ID-Auth</h2>
+<h3><a name="basisconfig_moa_id_auth" id="uebersicht_zentraledatei_aktualisierung2"></a>2.2 MOA-ID-Auth</h3>
<p>Dieser Abschnitt behandelt die Basiskonfiguration des Modules MOA-ID-Auth. Der erste Teilabschnitt behandelt die Bekanntmachung der Konfigurationsdatei mittels einer System Property und der zweite Teilabschnitt beschreibt die einzelnen Konfigurationsparameter im Detail. Eine Konfiguration die als Ausgangspunkt f&uuml;r die individuelle Konfiguration verwendet werden kann finden Sie <a href="../../conf/moa-id/moa-id.properties">hier</a>.</p>
-<h3><a name="uebersicht_bekanntmachung" id="uebersicht_bekanntmachung"></a>2.2.1 Bekanntmachung der Konfigurationsdatei</h3>
+<h4><a name="uebersicht_bekanntmachung" id="uebersicht_bekanntmachung"></a>2.2.1 Bekanntmachung der Konfigurationsdatei</h4>
<p>Die zentrale Konfigurationsdatei von MOA-ID-Configuration wird der <span class="term">Java Virtual Machine</span>, in der MOA-ID-Configuration l&auml;uft, durch eine <span class="term">System Property </span> mitgeteilt (wird beim Starten der <span class="term">Java Virtual Machine</span> in der Form <code>-D&lt;name&gt;=&lt;wert&gt;</code> gemacht). Der Name der <span class="term">System Property</span> lautet <code>moa.id.webconfig</code> als Wert der <span class="term">System Property</span> ist der Pfad sowie der Name der Konfigurationsdatei im Dateisystem anzugeben, z.B.</p>
<pre>moa.id.configuration=C:/Programme/apache/tomcat-4.1.30/conf/moa-id/moa-id.properties</pre>
<p>Weitere Informationen zum Bekanntmachen der zentralen Konfigurationsdatei f&uuml;r MOA-ID-Auth erhalten Sie in <a href="../install/install.html#webservice_basisinstallation_installation_spssdeploy">Abschnitt 2.1.2.3</a> des Installationshandbuchs.</p>
- <h3><a name="basisconfig_moa_id_auth_param" id="uebersicht_bekanntmachung2"></a>2.2.2 Konfigurationsparameter</h3>
+ <h4><a name="basisconfig_moa_id_auth_param" id="uebersicht_bekanntmachung2"></a>2.2.2 Konfigurationsparameter</h4>
<p>Aus Gr&uuml;nden der &Uuml;bersichtlichkeit werden die einzelnen Konfigurationsparameter in logisch zusammenh&auml;ngende Bl&ouml;cke unterteilt.</p>
-<h4><a name="basisconfig_moa_id_auth_param_general" id="uebersicht_bekanntmachung4"></a>2.2.2.1 Allgemeine Konfigurationsparameter</h4>
+<h5><a name="basisconfig_moa_id_auth_param_general" id="uebersicht_bekanntmachung4"></a>2.2.2.1 Allgemeine Konfigurationsparameter</h5>
<p>Die folgenden Konfigurationsparameter sind optional und m&uuml;ssen nicht zwingend angegeben werden. Im Falle eines produktiven Betriebs von MOA-ID-Auth wird jedoch die Angabe eines Schl&uuml;ssels zur verschl&uuml;sselten Speicherung der Session Daten in der Datenbank dringend empfohlen. </p>
-<table width="1247" border="1">
+<table class="configtable">
<tr>
- <th width="272" scope="col">Name</th>
- <th width="126" scope="col">Beispielwert</th>
- <th width="827" scope="col">Beschreibung</th>
+ <th>Name</th>
+ <th>Beispielwert</th>
+ <th>Beschreibung</th>
</tr>
<tr>
<td>configuration.moasession.key</td>
@@ -620,15 +623,15 @@ https://&lt;host&gt;:&lt;port&gt;/moa-id-configuration/secure/usermanagementInit
<pre>
https://&lt;host&gt;:&lt;port&gt;/moa-id-auth/MonitoringServlet</pre>
<p>Nach einem erfolgreichen Testdurchlauf Antwortet das Monitoring mit einen http Statuscode 200 und der oben definierten Statusmeldung aus dem Parameter <em>configuration.monitoring.message.success</em>. Im Falle eines Fehlers antwortet das Monitoring mit einem http Statuscode 500 und die Statusmeldung enth&auml;lt eine Beschreibung des aufgetretenen Fehlers.</p>
-<h4><a name="basisconfig_moa_id_auth_param_services" id="uebersicht_bekanntmachung5"></a>2.2.2.2 Externe Services</h4>
+<h5><a name="basisconfig_moa_id_auth_param_services" id="uebersicht_bekanntmachung5"></a>2.2.2.2 Externe Services</h5>
<p>F&uuml;r den Aufbau von Verbindungen zu anderen Komponenten werden in manchen F&auml;llen spezielle Client-Zertifikate oder Sicherheitseinstellungen ben&ouml;tigt. In diesem Abschnitt erfolgt die Konfiguration der f&uuml;r den Verbindungsaufbau ben&ouml;tigten Parameter. Die Konfiguration der URL zum jeweiligen Service wird jedoch &uuml;ber die Web-Oberfl&auml;che des Modules MOA-ID-Configuration vorgenommen (siehe <a href="#konfigurationsparameter_allgemein_services">Kapitel 3.1.7</a>).</p>
-<h5><a name="basisconfig_moa_id_auth_param_services_moasp" id="uebersicht_bekanntmachung6"></a>2.2.2.2.1 MOA-SP</h5>
+<h6><a name="basisconfig_moa_id_auth_param_services_moasp" id="uebersicht_bekanntmachung6"></a>2.2.2.2.1 MOA-SP</h6>
<p>Wird MOA-SP &uuml;ber ein Web-Service, welches Client Authentifizierung voraussetzt, angesprochen m&uuml;ssen in diesem Abschnitt die erforderlichen Schl&uuml;ssel hinterlegt werden.</p>
-<table width="1247" border="1">
+<table class="configtable">
<tr>
- <th width="272" scope="col">Name</th>
- <th width="147" scope="col">Beispielwert</th>
- <th width="806" scope="col">Beschreibung</th>
+ <th>Name</th>
+ <th>Beispielwert</th>
+ <th>Beschreibung</th>
</tr>
<tr>
<td>service.moasp.clientKeyStore</td>
@@ -647,13 +650,13 @@ https://&lt;host&gt;:&lt;port&gt;/moa-id-auth/MonitoringServlet</pre>
</tr>
</table>
<p>&nbsp;</p>
-<h5><a name="basisconfig_moa_id_auth_param_services_mandates" id="uebersicht_bekanntmachung7"></a>2.2.2.2.2 Online-Vollmachen</h5>
+<h6><a name="basisconfig_moa_id_auth_param_services_mandates" id="uebersicht_bekanntmachung7"></a>2.2.2.2.2 Online-Vollmachen</h6>
<p>MOA-ID-Auth bietet die M&ouml;glichkeit der Nutzung von Online-Vollmachten f&uuml;r Anwendungen aus dem &ouml;ffentlichen Bereich. Hierf&uuml;r ist ein Online-Vollmachten-Service n&ouml;tig, wobei die Zugangsdaten zum Online-Vollmachten-Service konfiguriert werden m&uuml;ssen. Der Zugang zum Online-Vollmachten-Service ein Client-Zertifikat f&uuml;r die SSL-Verbindung zum Service. Voraussetzung daf&uuml;r ist ein Zertifikat von A-Trust bzw. A-CERT mit Verwaltungseigenschaft oder Dienstleistereigenschaft. Wenn ihr MOA-ID-Auth Zertifikat diese Voraussetzung erf&uuml;llt, k&ouml;nnen Sie dieses hier angeben. </p>
-<table width="1247" border="1">
+<table class="configtable">
<tr>
- <th width="272" scope="col">Name</th>
- <th width="147" scope="col">Beispielwert</th>
- <th width="806" scope="col">Beschreibung</th>
+ <th>Name</th>
+ <th>Beispielwert</th>
+ <th>Beschreibung</th>
</tr>
<tr>
<td>service.onlinemandates.clientKeyStore</td>
@@ -672,13 +675,13 @@ https://&lt;host&gt;:&lt;port&gt;/moa-id-auth/MonitoringServlet</pre>
</tr>
</table>
<p>&nbsp;</p>
-<h5><a name="basisconfig_moa_id_auth_param_services_foreign" id="uebersicht_bekanntmachung8"></a>2.2.2.2.3 Foreign Identities</h5>
+<h6><a name="basisconfig_moa_id_auth_param_services_foreign" id="uebersicht_bekanntmachung8"></a>2.2.2.2.3 Foreign Identities</h6>
<p>MOA-ID-Auth bietet die M&ouml;glichkeit der Nutzung von ausl&auml;ndischen Karten oder die Anmeldung ausl&auml;ndischer Personen mittels STORK. Hierf&uuml;r ist eine Verbindung zum Stammzahlenregister-Gateway n&ouml;tig, das einen entsprechenden Zugang zum Stammzahlenregister bereitstellt. F&uuml;r diesen Zugriff muss das Client-Zertifikat f&uuml;r die SSL-Verbindung zum Gateway angegeben werden. Voraussetzung daf&uuml;r ist ein Zertifikat von A-Trust bzw. A-CERT mit Verwaltungseigenschaft oder Dienstleistereigenschaft. Wenn ihr MOA-ID-Auth Zertifikat diese Voraussetzung erf&uuml;llt, k&ouml;nnen Sie dieses hier angeben.</p>
-<table width="1247" border="1">
+<table class="configtable">
<tr>
- <th width="272" scope="col">Name</th>
- <th width="147" scope="col">Beispielwert</th>
- <th width="806" scope="col">Beschreibung</th>
+ <th>Name</th>
+ <th>Beispielwert</th>
+ <th>Beschreibung</th>
</tr>
<tr>
<td>service.foreignidentities.clientKeyStore</td>
@@ -697,14 +700,14 @@ https://&lt;host&gt;:&lt;port&gt;/moa-id-auth/MonitoringServlet</pre>
</tr>
</table>
<p>&nbsp;</p>
-<h4><a name="basisconfig_moa_id_auth_param_protocol" id="uebersicht_bekanntmachung9"></a>2.2.2.3 Protokolle</h4>
+<h5><a name="basisconfig_moa_id_auth_param_protocol" id="uebersicht_bekanntmachung9"></a>2.2.2.3 Protokolle</h5>
<p>MOA-ID-Auth unterst&uuml;tzt mehrere Authentifizierungsprotokolle. Manche dieser Protokolle ben&ouml;tigen Schl&uuml;ssel zur Signierung von Authentifizierungsdaten oder Metadaten. In diesem Abschnitt erfolgt die Konfiguration des zu verwendeten Schl&uuml;sselmaterials. </p>
-<h5><a name="basisconfig_moa_id_auth_param_protocol_pvp21" id="uebersicht_bekanntmachung10"></a>2.2.2.3.1 PVP 2.1</h5>
-<table width="1247" border="1">
+<h6><a name="basisconfig_moa_id_auth_param_protocol_pvp21" id="uebersicht_bekanntmachung10"></a>2.2.2.3.1 PVP 2.1</h6>
+<table class="configtable">
<tr>
- <th width="272" scope="col">Name</th>
- <th width="147" scope="col">Beispielwert</th>
- <th width="806" scope="col">Beschreibung</th>
+ <th>Name</th>
+ <th>Beispielwert</th>
+ <th>Beschreibung</th>
</tr>
<tr>
<td>protocols.pvp2.idp.ks.file</td>
@@ -748,44 +751,44 @@ https://&lt;host&gt;:&lt;port&gt;/moa-id-auth/MonitoringServlet</pre>
</tr>
</table>
<p>&nbsp;</p>
-<h5><a name="basisconfig_moa_id_auth_param_protocol_openid" id="uebersicht_bekanntmachung11"></a>2.2.2.3.2 OpenID Connect</h5>
-<table width="1247" border="1">
+<h6><a name="basisconfig_moa_id_auth_param_protocol_openid" id="uebersicht_bekanntmachung11"></a>2.2.2.3.2 OpenID Connect</h6>
+<table class="configtable">
<tr>
- <th width="272" scope="col">Name</th>
- <th width="147" scope="col">Beispielwert</th>
- <th width="806" scope="col">Beschreibung</th>
+ <th>Name</th>
+ <th>Beispielwert</th>
+ <th>Beschreibung</th>
</tr>
<tr>
- <td>protocols.oauth20.jwt.ks.file</td>
+ <td>protocols.oauth30.jwt.ks.file</td>
<td>keys/moa_idp[password].p12</td>
<td>Dateiname des Java Keystore oder PKCS12 Keystore zur Signierung des OpenID Connect <em>id_token</em></td>
</tr>
<tr>
- <td>protocols.oauth20.jwt.ks.password=</td>
+ <td>protocols.oauth30.jwt.ks.password=</td>
<td>passsword</td>
<td>Passwort zum Keystore</td>
</tr>
<tr>
- <td>protocols.oauth20.jwt.ks.key.name</td>
+ <td>protocols.oauth30.jwt.ks.key.name</td>
<td>pvp_assertion</td>
<td>Name des Schl&uuml;ssels der zum Signieren des <em>id_tokens</em> verwendet wird</td>
</tr>
<tr>
- <td>protocols.oauth20.jwt.ks.key.password</td>
+ <td>protocols.oauth30.jwt.ks.key.password</td>
<td>pasword</td>
<td>Password des Schl&uuml;ssels der zum Signieren des <em>id_tokens</em> verwendet wird</td>
</tr>
</table>
<p>&nbsp;</p>
- <h4><a name="basisconfig_moa_id_auth_param_database" id="uebersicht_bekanntmachung3"></a>2.2.2.4 Datenbank </h4>
+ <h5><a name="basisconfig_moa_id_auth_param_database" id="uebersicht_bekanntmachung3"></a>2.2.2.4 Datenbank </h5>
<p>Das Modul MOA-ID-Auth ben&ouml;tigt f&uuml;r den Betrieb zwei (optional drei) separate Datenbank Schema, welche in der Basiskonfiguration konfiguriert werden. F&uuml;r Beispielkonfiguration wurde mySQL als Datenbank verwendet wodurch sich die Konfigurationsparameter auf mySQL beziehen. Das Modul MOA-ID-Auth kann jedoch auch mit Datenbanken anderer Hersteller oder einer InMemory Datenbank betrieben werden. Hierf&uuml;r wird jedoch auf die <a href="http://docs.jboss.org/hibernate/core/4.2/manual/en-US/html/">Hibernate Dokumention</a> verwiesen. </p>
-<h5><a name="basisconfig_moa_id_auth_param_database_conf" id="uebersicht_bekanntmachung12"></a>2.2.2.4.1 Konfiguration</h5>
+<h6><a name="basisconfig_moa_id_auth_param_database_conf" id="uebersicht_bekanntmachung12"></a>2.2.2.4.1 Konfiguration</h6>
<p>Alle Parameter aus der Basiskonfiguration welche als Prefix <em>configuration.hibernate</em>. im Parameternamen aufweisen konfigurieren den Zugriff auf das Datenbank Schema welches die Konfiguration von MOA-ID-Auth beinhaltet. Eine Konfiguration dieser Parameter ist nicht optional.</p>
-<table width="1247" border="1">
+<table class="configtable">
<tr>
- <th width="281" scope="col">Name</th>
- <th width="261" scope="col">Beispielwert</th>
- <th width="683" scope="col">Beschreibung</th>
+ <th>Name</th>
+ <th>Beispielwert</th>
+ <th>Beschreibung</th>
</tr>
<tr>
<td>configuration.hibernate.dialect</td>
@@ -814,13 +817,13 @@ https://&lt;host&gt;:&lt;port&gt;/moa-id-auth/MonitoringServlet</pre>
</tr>
</table>
<p>&nbsp;</p>
- <h5><a name="basisconfig_moa_id_auth_param_database_session" id="uebersicht_bekanntmachung13"></a>2.2.2.4.2 Session Informationen</h5>
+ <h6><a name="basisconfig_moa_id_auth_param_database_session" id="uebersicht_bekanntmachung13"></a>2.2.2.4.2 Session Informationen</h6>
<p>Alle Parameter aus der Basiskonfiguration welche als Prefix <em>moasession.hibernate</em>. im Parameternamen aufweisen konfigurieren den Zugriff auf das Datenbank Schema in welchem MOA-ID-Auth die Session Informationen tempor&auml;r ablegt. Eine Konfiguration dieser Parameter ist nicht optional.</p>
-<table width="1247" border="1">
+<table class="configtable">
<tr>
- <th width="281" scope="col">Name</th>
- <th width="261" scope="col">Beispielwert</th>
- <th width="683" scope="col">Beschreibung</th>
+ <th>Name</th>
+ <th>Beispielwert</th>
+ <th>Beschreibung</th>
</tr>
<tr>
<td>moasession.hibernate.dialect</td>
@@ -848,13 +851,13 @@ https://&lt;host&gt;:&lt;port&gt;/moa-id-auth/MonitoringServlet</pre>
<td>Passwort f&uuml;r den Zugriff auf das Datenbank Schema</td>
</tr>
</table>
-<h5><a name="basisconfig_moa_id_auth_param_database_info" id="uebersicht_bekanntmachung14"></a>2.2.2.4.3 Statistikdaten</h5>
+<h6><a name="basisconfig_moa_id_auth_param_database_info" id="uebersicht_bekanntmachung14"></a>2.2.2.4.3 Statistikdaten</h6>
<p>Alle Parameter aus der Basiskonfiguration welche als Prefix <em>advancedlogging.hibernate</em>. im Parameternamen aufweisen konfigurieren den Zugriff auf das Datenbank Schema welches die Konfiguration von MOA-ID-Auth beinhaltet. Eine Konfiguration dieser Parameter ist nur erforderlich wenn <em>configuration.advancedlogging.active</em> auf <em>true</em> gesetzt wird. (siehe <a href="#basisconfig_moa_id_auth_param_general">Kapitel 2.2.2.1</a>)</p>
-<table width="1247" border="1">
+<table class="configtable">
<tr>
- <th width="281" scope="col">Name</th>
- <th width="261" scope="col">Beispielwert</th>
- <th width="683" scope="col">Beschreibung</th>
+ <th>Name</th>
+ <th>Beispielwert</th>
+ <th>Beschreibung</th>
</tr>
<tr>
<td>advancedlogging.hibernate.dialect</td>
@@ -884,13 +887,13 @@ https://&lt;host&gt;:&lt;port&gt;/moa-id-auth/MonitoringServlet</pre>
</table>
<p>&nbsp;</p>
<p>Die Beispielkonfiguration beinhaltet noch zus&auml;tzliche Konfigurationsparameter f&uuml;r den Datenbankzugriff der einzelnen Schema welche direkt aus der Beispielkonfiguration &uuml;bernommen werden k&ouml;nnen. Eine detaillierte Beschreibung der einzelnen Einstellungsparameter kann der <a href="http://docs.jboss.org/hibernate/core/4.2/manual/en-US/html/">Hibernate Dokumention</a> entnommen werden.</p>
-<h4><a name="basisconfig_moa_id_auth_param_testing" id="uebersicht_bekanntmachung15"></a>2.2.2.5 Testing</h4>
+<h5><a name="basisconfig_moa_id_auth_param_testing" id="uebersicht_bekanntmachung15"></a>2.2.2.5 Testing</h5>
<p>Diese Parameter dienen auf Testsystemen zur Deaktivierung einzelner Verarbeitungs- oder Pr&uuml;fschritte. Standardm&auml;&szlig;ig ist jeweils die sichere Variante aktiviert.</p>
- <table width="1247" border="1">
+ <table class="configtable">
<tr>
- <th width="281" scope="col">Name</th>
- <th width="261" scope="col">Beispielwert</th>
- <th width="683" scope="col">Beschreibung</th>
+ <th>Name</th>
+ <th>Beispielwert</th>
+ <th>Beschreibung</th>
</tr>
<tr>
<td>configuration.validation.certificate.QC.ignore</td>
@@ -899,20 +902,26 @@ https://&lt;host&gt;:&lt;port&gt;/moa-id-auth/MonitoringServlet</pre>
<p><strong>Defaultwert:</strong> false</p></td>
</tr>
<tr>
+ <td>protocols.pvp2.schemavalidation</td>
+ <td>true / false</td>
+ <td><p>Mit diesem Parameter kann die Schemavalidierung f&uuml;r PVP Metadaten deaktiviert werden.</p>
+ <strong>Defaultwert:</strong> true</td>
+ </tr>
+ <tr>
<td>protocols.pvp2.assertion.encryption.active</td>
<td>true / false</td>
<td><p>Mit diesem Parameter kann die Verschl&uuml;sselung der PVP2.1 Assertion f&uuml;r diese MOA-ID-Auth Instanz vollst&auml;ndig deaktiviert werden.</p>
<p><strong>Defaultwert:</strong> true</p></td>
</tr>
</table>
- <h4><a name="basisconfig_moa_id_auth_szrclient" id="uebersicht_bekanntmachung16"></a>2.2.2.6 SZR Client f&uuml;r STORK &lt;-&gt; PVP Gateway Betrieb</h4>
+ <h5><a name="basisconfig_moa_id_auth_szrclient" id="uebersicht_bekanntmachung16"></a>2.2.2.6 SZR Client f&uuml;r STORK &lt;-&gt; PVP Gateway Betrieb</h5>
<p>Die Konfiguration des Stammzahlenregister (SZR) Clients ist nur erforderlich wenn das Modul MOA-ID-Auth als STORK &lt;-&gt; PVP Gateway betrieben wird. Da in diesem Fall die Benutzerin oder der Benutzer &uuml;ber ein PVP Stammportal authentifiziert wird ist eine direkte Generierung der STORK eID w&auml;hrend des Anmeldevorgangs nicht m&ouml;glich. Somit erfolgt f&uuml;r diese Personen einen Stammzahlenregisterabfrage zur Bestimmung der STORK eID.</p>
<p>F&uuml;r den in MOA-ID-Auth verwendeten SZR Client sind folgende Konfigurationsparameter erforderlich.</p>
- <table width="1247" border="1">
+ <table class="configtable">
<tr>
- <th width="281" scope="col">Name</th>
- <th width="261" scope="col">Beispielwert</th>
- <th width="683" scope="col">Beschreibung</th>
+ <th>Name</th>
+ <th>Beispielwert</th>
+ <th>Beschreibung</th>
</tr>
<tr>
<td>service.egovutil.szr.test</td>
@@ -1029,19 +1038,51 @@ https://&lt;host&gt;:&lt;port&gt;/moa-id-auth/MonitoringServlet</pre>
</table>
<p>&nbsp;</p>
<p><strong>Hinweis:</strong> Detaillierte Informationen zu den einzelnen PVP spezifischen Konfigurationsparametern finden Sie in der entsprechenden PVP Spezifikation.</p>
-<h2><a name="uebersicht_logging" id="uebersicht_logging"></a>2.3 Konfiguration des Loggings</h2>
+ <h5><a name="basisconfig_moaid_stork2" id="uebersicht_bekanntmachung17"></a>2.2.2.6 STORK 2</h5>
+ <p>Dieses Abschnitt beschreibt Konfigurationswerte welche nur f&uuml;r den <strong>Testbetrieb von STORK 2</strong> erforderlich sind.</p>
+ <table class="configtable">
+ <tr>
+ <th>Name</th>
+ <th>Beispielwert</th>
+ <th>Beschreibung</th>
+ </tr>
+ <tr>
+ <td>stork.fakeIdL.active</td>
+ <td>true / false</td>
+ <td><p>Im Produktivbetrieb ist eine Anmeldung nur f&uuml;r jene L&auml;nder mittels STORK 2 m&ouml;glich welche in der <em>Gleichwertigkeitsverordnung</em> aufgelistet sind. Um einen Testbetrieb mit weiteren L&auml;ndern zu erm&ouml;glichen bietet das Modul MOA-ID-Auth die M&ouml;glichkeit zur Ausstellung eines Fake-Identititlink, welcher im Testbetrieb f&uuml;r die Anmeldung an einer &ouml;sterreichischen Test Online Applikation verwendet werden kann.</p>
+ <p><strong>Hinweis:</strong> Diese Funktion ist standardm&auml;&szlig;ig <strong>deaktiviert</strong>. Eine Aktivierung ist nur im Testbetrieb f&uuml;r STORK 2 empfohlen.</p></td>
+ </tr>
+ <tr>
+ <td>stork.fakeIdL.countries</td>
+ <td>DE,CH</td>
+ <td>K&uuml;rzel jener L&auml;nder f&uuml;r welche ein Fake-Identitilink ausgestellt werden soll.</td>
+ </tr>
+ <tr>
+ <td>stork.fakeIdL.keygroup</td>
+ <td>IDL_signing</td>
+ <td>MOA-SS Schl&uuml;sselgruppe, welche f&uuml;r die Signatur des Fake-Identitilinks verwendet werden soll.</td>
+ </tr>
+ <tr>
+ <td>stork.documentservice.url</td>
+ <td>http://testvidp.buergerkarte.at/<br>
+ DocumentService/DocumentService?wsdl</td>
+ <td>URL zum STORK 2 Dokumentenservice</td>
+ </tr>
+ </table>
+ <p>&nbsp;</p>
+<h3><a name="uebersicht_logging" id="uebersicht_logging"></a>2.3 Konfiguration des Loggings</h3>
<p>Die Module MOA-ID-Auth und MOA-ID-Configuration verwendet als Framework f&uuml;r Logging-Information die Open Source Software <code>log4j</code>. Die Konfiguration der Logging-Information erfolgt nicht direkt durch die einzelnen Module, sondern &uuml;ber eine eigene Konfigurationsdatei, die der <span class="term">Java Virtual Machine</span> durch eine <span class="term">System Property </span> mitgeteilt wird. Der Name der <span class="term">System Property </span> lautet <code>log4j.configuration</code>; als Wert der <span class="term">System Property </span> ist eine URL anzugeben, die auf die <code>log4j</code>-Konfigurationsdatei verweist, z.B. </p>
<pre>log4j.configuration=file:/C:/Programme/apache/tomcat-4.1.30/conf/moa-id/log4j.properties</pre>
Weitere Informationen zur Konfiguration des Loggings erhalten Sie in <a href="../install/install.html#webservice_basisinstallation_logging">Abschnitt 2.1.3</a> des Installationshandbuchs.
<p></p>
-<h2><a name="uebersicht_samlengine" id="uebersicht_samlengine"></a>2.4 Konfiguration des SamlEngines</h2>
-<p>Für die Untestützung des STORK2 Protokols verwendet MOA-ID eine zusätzliche Bibliothek, die über gesonderte Dateien konfiguriert wird. Diese Dateien sind unter einem Verzeichnis gespeichert, das sich üblicherweise im MOA-ID-Auth Konfigurationsverzeichnis befindet. Der Name der <span class="term">System Property </span> lautet <code>eu.stork.samlengine.config.location</code>; als Wert der <span class="term">System Property </span> ist das Verzeichnis anzugeben, wo die entsprechende SamlEngine Konfigurationsdateien gespeichert werden, z.B. </p>
+<h3><a name="uebersicht_samlengine" id="uebersicht_samlengine"></a>2.4 Konfiguration des SamlEngines</h3>
+<p>F\FCr die Untest\FCtzung des STORK2 Protokols verwendet MOA-ID eine zus\E4tzliche Bibliothek, die \FCber gesonderte Dateien konfiguriert wird. Diese Dateien sind unter einem Verzeichnis gespeichert, das sich \FCblicherweise im MOA-ID-Auth Konfigurationsverzeichnis befindet. Der Name der <span class="term">System Property </span> lautet <code>eu.stork.samlengine.config.location</code>; als Wert der <span class="term">System Property </span> ist das Verzeichnis anzugeben, wo die entsprechende SamlEngine Konfigurationsdateien gespeichert werden, z.B. </p>
<pre>eu.stork.samlengine.config.location=file:/C:/Programme/apache/tomcat-4.1.30/conf/moa-id/conf/moa-id/stork</pre>
<p>Dieses Verzeichnis muss mindestens folgende Dateien enthalten:</p>
-<table width="1247" border="1">
+<table class="configtable">
<tr>
- <th width="141" scope="col">Datei</th>
- <th width="583" scope="col">Beschreibung</th>
+ <th>Datei</th>
+ <th>Beschreibung</th>
</tr>
<tr>
<td>SamlEngine.xml</td>
@@ -1049,10 +1090,10 @@ https://&lt;host&gt;:&lt;port&gt;/moa-id-auth/MonitoringServlet</pre>
</tr>
<tr>
<td>StorkSamlEngine_<span class="term">XXX</span>.xml</td>
- <td>Enthält allgemeine Konfigurationsparametern einer spezifischen Instanz des SamlEngines.</td>
+ <td>Enth\E4lt allgemeine Konfigurationsparametern einer spezifischen Instanz des SamlEngines.</td>
</tr> <tr>
<td>SignModule_<span class="term">XXX</span>.xml</td>
- <td>Enthält Konfigurationsparametern für Trust- und Keystore einer spezifischen Instanz des SamlEngines.</td>
+ <td>Enth\E4lt Konfigurationsparametern f\FCr Trust- und Keystore einer spezifischen Instanz des SamlEngines.</td>
</tr>
</table>
<p></p>
@@ -1079,7 +1120,7 @@ https://&lt;host&gt;:&lt;port&gt;/moa-id-auth/MonitoringServlet</pre>
&lt;/instances&gt;
</pre>
<p>In diesem Beispiel ist nur eine Instanz <em>VIDP</em> definiert deren spezifischen Parametern in zwei Konfigurationsdateien aufgeteilt werden.</p>
-<p>Die Datei <span class="strongerterm">StorkSamlEngine_VIDP.xml</span> enthält STORK-spezifische Parameter, die im Normalbetrieb nicht geändert werden m&uuml;ssen. Die zweite Datei, <span class="strongerterm">SignModule_VIDP.xml</span>, definiert den von der SamlEngine verwendeten Trust- und Keystore. Die Beispielkonfiguration dieser Datei sieht wie folgendes:</p>
+<p>Die Datei <span class="strongerterm">StorkSamlEngine_VIDP.xml</span> enth\E4lt STORK-spezifische Parameter, die im Normalbetrieb nicht ge\E4ndert werden m&uuml;ssen. Die zweite Datei, <span class="strongerterm">SignModule_VIDP.xml</span>, definiert den von der SamlEngine verwendeten Trust- und Keystore. Die Beispielkonfiguration dieser Datei sieht wie folgendes:</p>
<pre>
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;!DOCTYPE properties SYSTEM &quot;http://java.sun.com/dtd/properties.dtd&quot;&gt;
@@ -1094,52 +1135,53 @@ https://&lt;host&gt;:&lt;port&gt;/moa-id-auth/MonitoringServlet</pre>
&lt;entry key=&quot;keystoreType&quot;&gt;JKS&lt;/entry&gt;
&lt;/properties&gt;
</pre>
-<p>Diese Parameter m&uuml;ssen bei der Installation angepasst werden, um die Zugriff an Keystore und die Schlüssel zu ermöglichen. Die einzelne Parameter werden in folgender Tabelle erl&auml;utert:</p><table width="1247" border="1">
+<p>Diese Parameter m&uuml;ssen bei der Installation angepasst werden, um die Zugriff an Keystore und die Schl\FCssel zu erm\F6glichen. Die einzelne Parameter werden in folgender Tabelle erl&auml;utert:</p>
+<table class="configtable">
<tr>
- <th width="121" scope="col">Name</th>
- <th width="683" scope="col">Beschreibung</th>
+ <th>Name</th>
+ <th>Beschreibung</th>
</tr>
<tr>
<td>keystorePath</td>
- <td>Keystore mit Schlüssel und Zertifikaten welche für das Signieren und Verschlüsseln von STORK Nachrichten verwendet werden sollen. </td>
+ <td>Keystore mit Schl\FCssel und Zertifikaten welche f\FCr das Signieren und Verschl\FCsseln von STORK Nachrichten verwendet werden sollen. </td>
</tr>
<tr>
<td>keyStorePassword</td>
- <td>Passwort des Keystores. Keystore soll den Schlüssel für das Signieren von Nachrichten enthalten, ebenso wie die vertrauenswürdige Zertifikate von anderen Parteien, wie z.B. ausländische PEPSes. </td>
+ <td>Passwort des Keystores. Keystore soll den Schl\FCssel f\FCr das Signieren von Nachrichten enthalten, ebenso wie die vertrauensw\FCrdige Zertifikate von anderen Parteien, wie z.B. ausl\E4ndische PEPSes. </td>
</tr>
<tr>
<td>keyPassword</td>
- <td>Password des Schlüssels, der für das Signieren der STORK Nachrichten verwendet werden soll.</td>
+ <td>Password des Schl\FCssels, der f\FCr das Signieren der STORK Nachrichten verwendet werden soll.</td>
</tr>
<tr>
<td>issuer</td>
- <td>Issuer des Keypairs, der für das Signieren der STORK Nachrichten verwendet werden soll.</td>
+ <td>Issuer des Keypairs, der f\FCr das Signieren der STORK Nachrichten verwendet werden soll.</td>
</tr>
<tr>
<td>serialNumber</td>
- <td>Nummer des Keypairs, der für das Signieren der STORK Nachrichten verwendet werden soll.</td>
+ <td>Nummer des Keypairs, der f\FCr das Signieren der STORK Nachrichten verwendet werden soll.</td>
</tr>
<tr>
<td>keystoreType</td>
- <td>Typ und Format des Keystores. <span class="term">JKS</span> steht für <span class="term">Java Key Store</span>.</td>
+ <td>Typ und Format des Keystores. <span class="term">JKS</span> steht f\FCr <span class="term">Java Key Store</span>.</td>
</tr>
</table>
-<h1><a name="konfigurationsparameter"></a>3 Konfiguration MOA-ID-Auth</h1>
+<h2><a name="konfigurationsparameter"></a>3 Konfiguration MOA-ID-Auth</h2>
<p>Dieser Abschnitt beschreibt die Konfiguration des Modules MOA-ID-Auth mithilfe der durch das Modul MOA-ID-Configuration zur Verf&uuml;gung gestellten Web-Oberfl&auml;che. Hierzu muss das Konfigurationstool (Module MOA-ID-Konfiguration) bereits installiert und konfiguriert sein (siehe <a href="#uebersicht_zentraledatei_aktualisierung">Kapitel 2.1</a>). Nach erfolgreichem Login am Konfigurationstool kann das Modul MOA-ID-Auth &uuml;ber die Web-Oberfl&auml;che konfiguriert werden.</p>
<p>Die Konfiguration von MOA-ID-Auth ist in zwei Teilbereiche unterteilet. Diese behandeln die Allgemeine Konfiguration der MOA-ID-Auth Instanz und die Konfiguration von Online-Applikationen (Service Providern) welche dieser MOA-ID-Auth Instanz zugeordnet sind.</p>
-<h2><a name="konfigurationsparameter_allgemein" id="konfigurationsparameter_allgemein"></a>3.1
- Allgemeine Konfiguration</h2>
+<h3><a name="konfigurationsparameter_allgemein" id="konfigurationsparameter_allgemein"></a>3.1
+ Allgemeine Konfiguration</h3>
<p>Die Allgemeine Konfiguration des Modules MOA-ID-Auth umfasst alle nicht online-applikationsspezifischen Konfigurationsparameter. Die Konfiguration dieser Parameter erfolgt &uuml;ber eine Web-Oberfl&auml;che, welche Eingabefelder f&uuml;r jeden Konfigurationsparameter zur Verf&uuml;gung stellt. Jedes Eingabefeld wird validiert bevor der Konfigurationsparameter in der Datenbank gespeichert wird. Die Validierung erfolgt auf Basis des zu erwartenden Eingabewerts, wobei der erlaubte Zeichensatz f&uuml;r freidefinierbare textuelle Eingabefelder eingeschr&auml;nkt sein kann. Detailinformationen zum erlaubten Zeichen finden Sie bei der jeweiligen Beschreibung des Konfigurationsparameters. </p>
<p>Eine &Auml;nderung (Speicherung) an der allgemeinen Konfiguration wirkt sich nicht umgehend auf die zugeordnete MOA-ID-Auth Instanz aus, sondern erfolgt mit zeitlicher Verz&ouml;gerung. Die zeitliche Verz&ouml;gerung betr&auml;gt jedoch maximal eine Minute. Dass die ge&auml;nderte MOA-ID-Auth Konfiguration in der zugeordneten Instanz geladen wurde ist durch folgende Log Meldungen erkennbar.</p>
<pre>INFO | 19 10:25:23,179 | ConfigurationLoader | check for new config.<br>INFO | 19 10:25:23,189 | ConfigurationLoader | Read MOA-ID 2.0 configuration from database.<br>INFO | 19 10:25:23,192 | ConfigurationLoader | MOA-ID 2.0 is loaded.</pre>
<p>Nachfolgend finden Sie die Detailbeschreibung aller allgemeinen Konfigurationsparameter.</p>
-<h3><a name="konfigurationsparameter_allgemein_publicurlprefix" id="konfigurationsparameter_allgemein_bku17"></a>3.1.1 Public URL Prefix</h3>
+<h4><a name="konfigurationsparameter_allgemein_publicurlprefix" id="konfigurationsparameter_allgemein_bku17"></a>3.1.1 Public URL Prefix</h4>
<p>Dieser Parameter definiert den Public URL Prefix unter welchem die MOA-ID Instanz erreichbar ist. Die Konfiguration dieses Parameters ist verpflichtend.</p>
-<table width="1247" border="1">
+<table class="configtable">
<tr>
- <th width="119" scope="col">Name</th>
- <th width="263" scope="col">Beispielwerte</th>
- <th width="843" scope="col">Beschreibung</th>
+ <th>Name</th>
+ <th>Beispielwerte</th>
+ <th>Beschreibung</th>
</tr>
<tr>
<td><span id="wwlbl_loadGeneralConfig_moaconfig_ssoPublicUrl2">Public URL Prefix</span></td>
@@ -1147,13 +1189,13 @@ https://&lt;host&gt;:&lt;port&gt;/moa-id-auth/MonitoringServlet</pre>
<td>URL-Prefix der MOA-ID Instanz. Diese URL wird f&uuml;r die automatische Generierung von Formularen und Informationen verwendet und MUSS konfiguriert werden.</td>
</tr>
</table>
-<h3><a name="konfigurationsparameter_allgemein_bku" id="konfigurationsparameter_allgemein_bku"></a>3.1.2 Default BKUs</h3>
+<h4><a name="konfigurationsparameter_allgemein_bku" id="konfigurationsparameter_allgemein_bku"></a>3.1.2 Default BKUs</h4>
<p>Hiermit werden die URLs zu den Default B&uuml;rgerkartenumgebungen (BKUs) definiert die von MOA-ID-Auth f&uuml;r einen Anmeldevorgang verwendet werden, wenn die B&uuml;rgerkartenauswahl nicht bereits auf Seiten der Online-Applikation erfolgt ist (siehe <a href="./../protocol/protocol.html#allgemeines_legacy">Legacy Request</a>) oder in der Online-Applikationskonfiguration keine BKU URLs konfiguriert wurden (siehe <a href="#konfigurationsparameter_oa_bku">Kapitel 3.2.2</a>).</p>
-<table width="1247" border="1">
+<table class="configtable">
<tr>
- <th width="89" scope="col">Name</th>
- <th width="314" scope="col">Beispielwert</th>
- <th width="822" scope="col">Beschreibung</th>
+ <th>Name</th>
+ <th>Beispielwert</th>
+ <th>Beschreibung</th>
</tr>
<tr>
<td>Online BKU</td>
@@ -1171,15 +1213,15 @@ https://&lt;host&gt;:&lt;port&gt;/moa-id-auth/MonitoringServlet</pre>
<td>URL auf die lokale BKU Instanz</td>
</tr>
</table>
-<h3><a name="konfigurationsparameter_allgemein_sl-templates" id="konfigurationsparameter_allgemein_bku2"></a>3.1.3 Security-Layer Request Templates</h3>
+<h4><a name="konfigurationsparameter_allgemein_sl-templates" id="konfigurationsparameter_allgemein_bku2"></a>3.1.3 Security-Layer Request Templates</h4>
<p>Security-Layer (SL) Templates dienen der Kommunikation mit der gew&auml;hlten B&uuml;rgerkartenumgebung. Die hier hinterlegen SL-Templates werden f&uuml;r die Kommunikation mit der jeweiligen BKU verwendet. N&auml;here Details zum Aufbau dieser SL-Templates finden Sie im <a href="#import_template_sltemplate">Kapitel 4.3</a>. </p>
<p>Die Lage der Templates wird in Form einer URL beschrieben, wobei sowohl lokale Referenzen als der Bezug &uuml;ber http(s) m&ouml;glich sind. Relative Pfadangaben werden dabei relativ zum Verzeichnis, in dem sich die MOA-ID-Auth Basiskonfigurationsdatei befindet, interpretiert. Bei Templates die &uuml;ber das Protokoll https referenziert werden, muss vor dem Start des Tomcat ein Truststore angegeben werden, das die notwendigen vertrauensw&uuml;rdigen Zertifikate enth&auml;lt.</p>
<p><strong>Hinweis:</strong> Diese hier definierten Templates dienen als zus&auml;tzliche WhiteList f&uuml;r Templates welche im &bdquo;StartAuthentication&ldquo; Request mit dem Parameter &bdquo;template&ldquo; &uuml;bergeben werden. Sollte im &bdquo;StartAuthentication&ldquo; Request der Parameter &bdquo;template&ldquo; fehlen, es wurde jedoch eine &bdquo;bkuURL&ldquo; &uuml;bergeben, dann wird f&uuml;r den Authentifizierungsvorgang ein bei der <a href="#konfigurationsparameter_oa_bku">Online Applikation konfiguriertes Tempalte</a> oder als Backup das erste Template in dieser Liste verwendet. Detailinformationen zum <a href="./../protocol/protocol.html#allgemeines_legacy">Legacy Request</a> finden Sie im Kapitel Protokolle.</p>
-<table width="1247" border="1">
+<table class="configtable">
<tr>
- <th width="89" scope="col">Name</th>
- <th width="314" scope="col">Beispielwert</th>
- <th width="822" scope="col">Beschreibung</th>
+ <th>Name</th>
+ <th>Beispielwert</th>
+ <th>Beschreibung</th>
</tr>
<tr>
<td>Online BKU</td>
@@ -1197,13 +1239,13 @@ https://&lt;host&gt;:&lt;port&gt;/moa-id-auth/MonitoringServlet</pre>
<td>SL Template zur Kommunikation mit einer lokalen BKU Instanz</td>
</tr>
</table>
-<h3><a name="konfigurationsparameter_allgemein_certvalidation" id="konfigurationsparameter_allgemein_bku3"></a>3.1.4 Zertifikatspr&uuml;fung</h3>
+<h4><a name="konfigurationsparameter_allgemein_certvalidation" id="konfigurationsparameter_allgemein_bku3"></a>3.1.4 Zertifikatspr&uuml;fung</h4>
<p>Dieser Bereich behandelt die allgemeine Einstellungen zur Zertifikatspr&uuml;fung und die Konfiguration von vertrauensw&uuml;rdigen Zertifikaten.</p>
-<table width="1247" border="1">
+<table class="configtable">
<tr>
- <th width="89" scope="col">Name</th>
- <th width="314" scope="col">Beispielwert</th>
- <th width="822" scope="col">Beschreibung</th>
+ <th>Name</th>
+ <th>Beispielwert</th>
+ <th>Beschreibung</th>
</tr>
<tr>
<td>CertStoreDirecorty</td>
@@ -1227,12 +1269,12 @@ Checking</td>
<td>ChainingMode definiert, ob bei der Zertifikatspfad-&uuml;berpr&uuml;fung das Kettenmodell (&quot;chaining&quot;) oder das Modell nach PKIX RFC 3280 (&quot;pkix&quot;) verwendet werden soll. </td>
</tr>
</table>
-<h3><a name="konfigurationsparameter_allgemein_timeouts" id="konfigurationsparameter_allgemein_bku4"></a>3.1.5 Session TimeOuts</h3>
-<table width="1247" border="1">
+<h4><a name="konfigurationsparameter_allgemein_timeouts" id="konfigurationsparameter_allgemein_bku4"></a>3.1.5 Session TimeOuts</h4>
+<table class="configtable">
<tr>
- <th width="174" scope="col">Name</th>
- <th width="130" scope="col">Beispielwert [sec]</th>
- <th width="921" scope="col">Beschreibung</th>
+ <th>Name</th>
+ <th>Beispielwert [sec]</th>
+ <th>Beschreibung</th>
</tr>
<tr>
<td>Anmeldedaten</td>
@@ -1255,14 +1297,14 @@ Checking</td>
<td>Gibt die Zeitspanne in Sekunden an, die eine Single Sign-On (SSO) Session seit dem letzten Zugriff (Anmeldevorgang) ausgehend g&uuml;ltig ist. Nach Ablauf dieser Zeitspanne muss sich die Benutzerin oder der Benutzer bei einer erneuten Anmeldung neu authentifizieren.</td>
</tr>
</table>
-<h3><a name="konfigurationsparameter_allgemein_moasp" id="konfigurationsparameter_allgemein_bku5"></a>3.1.6 MOA-SP</h3>
+<h4><a name="konfigurationsparameter_allgemein_moasp" id="konfigurationsparameter_allgemein_bku5"></a>3.1.6 MOA-SP</h4>
<p>Der Abschnitt MOA-SP Konfiguration enth&auml;lt Parameter zur Nutzung von MOA-SP. MOA-SP wird f&uuml;r die &Uuml;berpr&uuml;fung der Signatur der Personenbindung und des AUTH-Blocks verwendet.</p>
<p>MOA-SP muss entsprechend konfiguriert werden - siehe hierzu Abschnitt <a href="#sp-config"> Konfiguration von MOA-SP</a>. Alle Details zur Konfiguration von MOA-SP finden sie in der Distribution von MOA-SP/SS beiliegenden Dokumentation im Abschnitt 'Konfiguration'. </p>
-<table width="1247" border="1">
+<table class="configtable">
<tr>
- <th width="164" scope="col">Name</th>
- <th width="168" scope="col">Beispielwert</th>
- <th width="893" scope="col">Beschreibung</th>
+ <th>Name</th>
+ <th>Beispielwert</th>
+ <th>Beschreibung</th>
</tr>
<tr>
<td>Personenbindung Trustprofil</td>
@@ -1286,13 +1328,13 @@ Checking</td>
<strong>Hinweis:</strong> Wird kein <em>MOA-SP Service URL</em> angegeben so wird eine MOA-ID beiliegende Version von MOA-SP direkt &uuml;ber das Java-API angesprochen. In diesem Fall muss das System-Property auf die verwendete Konfigurationsdatei von MOA-SP gesetzt werden. Eine beispielhafte MOA-SP Konfigurationsdatei ist in <em>$MOA_ID_INST_AUTH/conf/moa-spss/SampleMOASPSSConfiguration.xml </em>enthalten. </td>
</tr>
</table>
-<h3><a name="konfigurationsparameter_allgemein_services" id="konfigurationsparameter_allgemein_bku6"></a>3.1.7 Externe Services</h3>
+<h4><a name="konfigurationsparameter_allgemein_services" id="konfigurationsparameter_allgemein_bku6"></a>3.1.7 Externe Services</h4>
<p>Hiermit werden die URLs zum Online-Vollmachten Service und zum SZR-Gateway konfiguriert. Die Konfiguration der f&uuml;r den Zugriff ben&ouml;tigen Client-Zertifikate wurden bereits im Abschnitt <a href="#basisconfig_moa_id_auth_param_services">2.2.2.2</a> behandelt.</p>
-<table width="1247" border="1">
+<table class="configtable">
<tr>
- <th width="147" scope="col">Name</th>
- <th width="360" scope="col">Beispielwert</th>
- <th width="718" scope="col">Beschreibung</th>
+ <th>Name</th>
+ <th>Beispielwert</th>
+ <th>Beschreibung</th>
</tr>
<tr>
<td><span id="wwlbl_loadGeneralConfig_moaconfig_mandateURL">Online-Vollmachten Service</span></td>
@@ -1314,7 +1356,7 @@ Checking</td>
</ul></td>
</tr>
</table>
-<h3><a name="konfigurationsparameter_allgemein_sso" id="konfigurationsparameter_allgemein_bku7"></a>3.1.8 Single-Sign On (SSO)</h3>
+<h4><a name="konfigurationsparameter_allgemein_sso" id="konfigurationsparameter_allgemein_bku7"></a>3.1.8 Single-Sign On (SSO)</h4>
<p>In der SSO Konfiguration muss angegeben werden in welchem Bereich (&ouml;ffentlicher oder privatwirtschaftlicher Bereich) die MOA-ID-Auth Instanz betrieben wird. Je nach dem zu welchem Bereich die Instanz zugeordnet ist ergibt sich ein unterschiedlicher Funktionsumfang der SSO Funktionalit&auml;t.</p>
<ol>
<li><strong>&Ouml;ffentlicher Bereich:</strong> Die MOA-ID-Auth Instanz ist einem &ouml;ffentlichen Bereich f&uuml;r SSO zugeordnet. In diesem Fall k&ouml;nnen sowohl &ouml;ffentlichen als auch privatwirtschaftliche Applikationen diese MOA-ID-Auth Instanz f&uuml;r eine Anmeldung mittels SSO Nutzen. Eine Zuordnung in den &ouml;ffentlichen Bereich ist jedoch nur dann M&ouml;glich wenn mindestens eine der folgenden Anforderungen erf&uuml;llt ist.
@@ -1331,11 +1373,11 @@ Checking</td>
<li><strong>Privatwirtschaftlicher Bereich:</strong><strong></strong> Die MOA-ID-Auth Instanz ist einem privatwirtschaftlichen Bereich f&uuml;r SSO zugeordnet, steht SSO nur eingeschr&auml;nkt zur Verf&uuml;gung. Da laut E-Governmentgesetz die Errechnung eines wbPK aus der Stammzahl nicht beim Auftraggeber eines privaten Bereichs durchgef&uuml;hrt werden darf (vgl. E-Government Gesetz &sect;12(1).4), und deshalb an die B&uuml;rgerkartenumgebung ausgelagert werden muss. In diesem Fall sind Anmeldungen mittels SSO nur f&uuml;r jenen privatwirtschaftlichen Bereich m&ouml;glich dem auch der SSO Bereich zugeordnet wurde. </li>
</ol>
-<table width="1247" border="1">
+<table class="configtable">
<tr>
- <th width="101" scope="col">Name</th>
- <th width="281" scope="col">Beispielwerte</th>
- <th width="843" scope="col">Beschreibung</th>
+ <th>Name</th>
+ <th>Beispielwerte</th>
+ <th>Beschreibung</th>
</tr>
<tr>
<td><p><span id="wwlbl_loadGeneralConfig_moaconfig_ssoFriendlyName">SSO Service Name</span></p></td>
@@ -1371,13 +1413,13 @@ Checking</td>
<p><em>Ich Max Mustermann, geboren am 01.01.1978 stimme am 05.02.2014 um 10:35 einer Anmeldung mittels Single Sign-On zu.</em></p></td>
</tr>
</table>
-<h3><a name="konfigurationsparameter_allgemein_stork" id="konfigurationsparameter_allgemein_bku8"></a>3.1.8 Secure idenTity acrOss boRders linKed (STORK)</h3>
-<p>Hierbei werden allgemeine Parameter für STORK Protokoll konfiguriert.</p>
-<table width="1247" border="1">
+<h4><a name="konfigurationsparameter_allgemein_stork" id="konfigurationsparameter_allgemein_bku8"></a>3.1.8 Secure idenTity acrOss boRders linKed (STORK)</h4>
+<p>Hierbei werden allgemeine Parameter f\FCr STORK Protokoll konfiguriert.</p>
+<table class="configtable">
<tr>
- <th width="201" scope="col">Name</th>
- <th width="460" scope="col">Beispielwerte</th>
- <th width="944" scope="col">Beschreibung</th>
+ <th>Name</th>
+ <th>Beispielwerte</th>
+ <th>Beschreibung</th>
</tr>
<tr>
<td>Standard QAA-Level</td>
@@ -1387,26 +1429,26 @@ Checking</td>
<tr>
<td>Country Code</td>
<td>ES</td>
- <td>Der zweistelligen Code vom unterstützten PEPS-Staat.</td>
+ <td>Der zweistelligen Code vom unterst\FCtzten PEPS-Staat.</td>
</tr>
<tr>
<td>PEPS URL</td>
<td>https://prespanishpeps.redsara.es/PEPS/ColleagueRequest</td>
- <td>Die Adresse von PEPS eines unterstützten PEPS-Staat.</td>
+ <td>Die Adresse von PEPS eines unterst\FCtzten PEPS-Staat.</td>
</tr>
<tr>
<td>Attributname</td>
<td>eIdentifier</td>
- <td>Der Name des unterstützten Attributes. Die als <span class="term">zwingend</span> markierte Attribute müssen im Response von dem gegenstehendem PEPS enthalten sein. Jedes Attribut wird gesondert eingetragen. <br/>Die Liste von vorhandenen und unterstützen Attributes ist in Konfigurationsdatei von SamlEngine <span class="term">(StorkSamlEngine_XXX.xml)</span> vorhanden. </td>
+ <td>Der Name des unterst\FCtzten Attributes. Die als <span class="term">zwingend</span> markierte Attribute m\FCssen im Response von dem gegenstehendem PEPS enthalten sein. Jedes Attribut wird gesondert eingetragen. <br/>Die Liste von vorhandenen und unterst\FCtzen Attributes ist in Konfigurationsdatei von SamlEngine <span class="term">(StorkSamlEngine_XXX.xml)</span> vorhanden. </td>
</tr>
</table>
<p>&nbsp;</p>
<p>Folgende PEPS URLs stehen aktuell zur Verf&uuml;gung:</p>
-<table width="1243" border="1">
+<table class="configtable">
<tr>
- <th width="133" scope="col">L&auml;ndercode</th>
- <th width="87" scope="col">TestInstanz</th>
- <th width="1001" scope="col">URL</th>
+ <th>L&auml;ndercode</th>
+ <th>TestInstanz</th>
+ <th>URL</th>
</tr>
<tr>
<td>AT </td>
@@ -1456,12 +1498,12 @@ Checking</td>
</table>
<p>&nbsp;</p>
<p>Folgende Attribute m&uuml;ssen jedoch mindestens angefordert werden, wobei die erforderlichen Attribute je nach Anmeldeart unterschiedlich sind. Eine Liste mit weiteren m&ouml;glichen Attribute finden Sie im Kapitel <a href="./../protocol/protocol.html#allgemeines_attribute">Protokolle</a> oder in der <a href="#referenzierte_spezifikation">STORK Spezifikation</a>.</p>
-<table width="1251" border="1">
+<table class="configtable">
<tr>
- <th width="145" scope="col">Name</th>
- <th width="106" scope="col">nat&uuml;rliche Person</th>
- <th width="102" scope="col">Anmeldung in Vertretung</th>
- <th width="870" scope="col">Beschreibung</th>
+ <th>Name</th>
+ <th>nat&uuml;rliche Person</th>
+ <th>Anmeldung in Vertretung</th>
+ <th>Beschreibung</th>
</tr>
<tr>
<td>eIdentifier</td>
@@ -1532,20 +1574,20 @@ Checking</td>
</tr>
</table>
<p></p>
-<h3><a name="konfigurationsparameter_allgemein_protocol" id="konfigurationsparameter_allgemein_bku9"></a>3.1.9 Protokolle</h3>
+<h4><a name="konfigurationsparameter_allgemein_protocol" id="konfigurationsparameter_allgemein_bku9"></a>3.1.9 Protokolle</h4>
<p>Hierbei handelt es ich um allgemeine Einstellungen zu den vom Modul MOA-ID-Auth unterst&uuml;tzen Authentifizierungsprotokollen.</p>
-<h4><a name="konfigurationsparameter_allgemein_protocol_allowed" id="konfigurationsparameter_allgemein_bku10"></a>3.1.10.1 Protokolle aktivieren</h4>
+<h5><a name="konfigurationsparameter_allgemein_protocol_allowed" id="konfigurationsparameter_allgemein_bku10"></a>3.1.10.1 Protokolle aktivieren</h5>
<p>In diesem Abschnitt k&ouml;nnen die einzelnen von MOA-ID-Auth unterst&uuml;tzen Authentifizierungsprotokolle aktiviert oder deaktiviert werden. Diese Einstellung gilt f&uuml;r die gesamte MOA-ID-Auth Instanz.</p>
-<h4><a name="konfigurationsparameter_allgemein_protocol_legacy" id="konfigurationsparameter_allgemein_bku11"></a>3.1.10.2 Legacy Modus</h4>
+<h5><a name="konfigurationsparameter_allgemein_protocol_legacy" id="konfigurationsparameter_allgemein_bku11"></a>3.1.10.2 Legacy Modus</h5>
<p>Ab der Version 2.0 des Modules MOA-ID-Auth wird die B&uuml;rgerkartenauswahl standardm&auml;&szlig;ig von MOA-ID-Auth bereitgestellt und erfolgt im Kontext von MOA-ID-Auth. Dem zu Folge m&uuml;ssen die aus MOA-ID 1.5.1 bekannten StartAuthentication Parameter (target, bkuURL, template, usemandate) nicht mehr im StartAuthentication Request &uuml;bergeben werden.</p>
Soll die B&uuml;rgerkartenauswahl weiterhin, wie in MOA-ID 1.5.1 im Kontext der Online-Applikation erfolgen muss f&uuml;r das jeweilige Protokoll der Legacy Modus aktiviert werden. Wird der Legacy Modus verwendet m&uuml;ssen jedoch die bkuURL, das Security-Layer Template und der Target mit den bei MOA-ID-Auth hinterlegten Konfigurationsparametern der Online-Applikation &uuml;bereinstimmten. Detailinformationen hierzu finden Sie im Kapitel <a href="./../protocol/protocol.html#allgemeines_legacy">Protokolle</a>.
-<h4><a name="konfigurationsparameter_allgemein_protocol_saml1" id="konfigurationsparameter_allgemein_bku12"></a>3.1.10.3 SAML1 Konfiguration</h4>
+<h5><a name="konfigurationsparameter_allgemein_protocol_saml1" id="konfigurationsparameter_allgemein_bku12"></a>3.1.10.3 SAML1 Konfiguration</h5>
<p>Die SourceID ist ein Teil des SAML1 Artifacts welches zur Abholung der SAML1 Assertion an die Online-Applikation zur&uuml;ckgegeben wird. Standardm&auml;&szlig;ig wird die SourceID aus der URL der jeweiligen Online-Applikation, an der die Anmeldung stattfinden, generiert. Optional kann jedoch eine SourceID f&uuml;r die gesamte MOA-ID-Auth Instanz vergeben werden, welche f&uuml;r alle Online-Applikationen verwendet wird.</p>
-<table width="1247" border="1">
+<table class="configtable">
<tr>
- <th width="101" scope="col">Name</th>
- <th width="180" scope="col">Beispielwerte</th>
- <th width="944" scope="col">Beschreibung</th>
+ <th>Name</th>
+ <th>Beispielwerte</th>
+ <th>Beschreibung</th>
</tr>
<tr>
<td>SourceID</td>
@@ -1554,14 +1596,14 @@ Soll die B&uuml;rgerkartenauswahl weiterhin, wie in MOA-ID 1.5.1 im Kontext der
</tr>
</table>
<p>&nbsp;</p>
-<h4><a name="konfigurationsparameter_allgemein_protocol_pvp21" id="konfigurationsparameter_allgemein_bku13"></a>3.1.10.4 PVP2.1 Konfiguration</h4>
+<h5><a name="konfigurationsparameter_allgemein_protocol_pvp21" id="konfigurationsparameter_allgemein_bku13"></a>3.1.10.4 PVP2.1 Konfiguration</h5>
<p>Die allgemeinen Konfigurationsparameter f&uuml;r das Authentifizierungsprotokoll PVP2.1 behandeln Informationen zum Betreiber der MOA-ID-Auth Instanz und zu einer Ansprechperson f&uuml;r diese Instanz. Diese Parameter werden in den PVP2.1 Metadaten, die von MOA-ID-Auth f&uuml;r Online-Applikation (Service Providern) bereitgestellt werden, eingetragen.</p>
-<h5><a name="konfigurationsparameter_allgemein_protocol_pvp21_org" id="konfigurationsparameter_allgemein_bku15"></a>3.1.10.4.1 Betreiberorganisation</h5>
-<table width="1247" border="1">
+<h6><a name="konfigurationsparameter_allgemein_protocol_pvp21_org" id="konfigurationsparameter_allgemein_bku15"></a>3.1.10.4.1 Betreiberorganisation</h6>
+<table class="configtable">
<tr>
- <th width="210" scope="col">Name</th>
- <th width="192" scope="col">Beispielwert</th>
- <th width="823" scope="col">Beschreibung</th>
+ <th>Name</th>
+ <th>Beispielwert</th>
+ <th>Beschreibung</th>
</tr>
<tr>
<td><p>PVP Service Name</p></td>
@@ -1584,12 +1626,12 @@ Soll die B&uuml;rgerkartenauswahl weiterhin, wie in MOA-ID 1.5.1 im Kontext der
<td>URL zu einer Seite mit Informationen der Organisation welche die MOA-ID-Auth Instanz betreibt. Dieser Parameter wird in den Metadaten im Element <em>md:Organization</em>/<em>md:OrganizationURL</em> angezeigt.</td>
</tr>
</table>
-<h5><a name="konfigurationsparameter_allgemein_protocol_pvp21_contact" id="konfigurationsparameter_allgemein_bku16"></a>3.1.10.4.2 Kontaktperson</h5>
-<table width="1247" border="1">
+<h6><a name="konfigurationsparameter_allgemein_protocol_pvp21_contact" id="konfigurationsparameter_allgemein_bku16"></a>3.1.10.4.2 Kontaktperson</h6>
+<table class="configtable">
<tr>
- <th width="164" scope="col">Name</th>
- <th width="168" scope="col">Beispielwert</th>
- <th width="893" scope="col">Beschreibung</th>
+ <th>Name</th>
+ <th>Beispielwert</th>
+ <th>Beschreibung</th>
</tr>
<tr>
<td>Familienname</td>
@@ -1630,19 +1672,19 @@ Soll die B&uuml;rgerkartenauswahl weiterhin, wie in MOA-ID 1.5.1 im Kontext der
<p>Dieser Name wird in den Metadaten im Element <em>md:ContactPerson</em>als Attribut <em>contactType</em> angezeigt.</p></td>
</tr>
</table>
-<h3><a name="konfigurationsparameter_allgemein_sltransform" id="konfigurationsparameter_allgemein_bku14"></a>3.1.11 Security-Layer Transformationen</h3>
+<h4><a name="konfigurationsparameter_allgemein_sltransform" id="konfigurationsparameter_allgemein_bku14"></a>3.1.11 Security-Layer Transformationen</h4>
<p>Die Security-Layer (SL) Transformation, welche von MOA-ID-Auth f&uuml;r die Erstellung der Signatur des AuthBlock verwendet werden soll, muss hier angegeben werden. &Uuml;ber das Datei-Upload Feld kann die zu verwendende Transformation hochgeladen werden. Diese befindet sich in der MOA-ID-Auth Defaultkonfiguration im Ordner <em><a href="./../../../conf/moa-id/transforms/TransformsInfoAuthBlockTable_DE_2.0.xml">/conf/moa-id/transforms/ TransformsInfoAuthBlockTable_DE_2.0.xml</a></em>.</p>
-<h2><a name="konfigurationsparameter_oa" id="uebersicht_zentraledatei_aktualisierung3"></a>3.2 Online Applikationen</h2>
+<h3><a name="konfigurationsparameter_oa" id="uebersicht_zentraledatei_aktualisierung3"></a>3.2 Online Applikationen</h3>
<p>Die Konfiguration von Online-Applikationen erfolgt ebenfalls mit Hilfe des Moduls MOA-ID-Configuration. Es k&ouml;nnen sowohl neue Online-Applikationen erstellt als auch bestehende Online-Applikationen bearbeitet oder gel&ouml;scht werden. Der erlaubte Konfigurationsumfang h&auml;ngt jedoch von Role des aktuellen Benutzers ab, wobei eine Konfiguration der gesamten Parameter nur einem Benutzer mit der Role <em>admin</em> m&ouml;glich ist. Alle Konfigurationsfelder die nur einem Benutzer mit der Role <em>admin</em> zur Verf&uuml;gung stehen sind gesondert gekennzeichnet.</p>
-<h3><a name="konfigurationsparameter_oa_general" id="uebersicht_zentraledatei_aktualisierung17"></a>3.2.1 Informationen zur Online-Applikation (Service Provider)</h3>
+<h4><a name="konfigurationsparameter_oa_general" id="uebersicht_zentraledatei_aktualisierung17"></a>3.2.1 Informationen zur Online-Applikation (Service Provider)</h4>
<p>Dieser erste Abschnitt behandelt allgemeine Parameter zur Online-Applikation.</p>
-<table width="1248" border="1">
+<table class="configtable">
<tr>
- <th width="153" scope="col">Name</th>
- <th width="204" scope="col">Beispielwert</th>
- <th width="43" scope="col">Admin</th>
- <th width="57" scope="col">Optional</th>
- <th width="757" scope="col">Beschreibung</th>
+ <th>Name</th>
+ <th>Beispielwert</th>
+ <th>Admin</th>
+ <th>Optional</th>
+ <th>Beschreibung</th>
</tr>
<tr>
<td>Online-Applikation ist aktiviert</td>
@@ -1674,15 +1716,15 @@ Soll die B&uuml;rgerkartenauswahl weiterhin, wie in MOA-ID 1.5.1 im Kontext der
<td>Definiert ob die Online-Applikation dem &ouml;ffentlichen Bereich oder dem privatwirtschaftlichen Bereich (Business Service) zugeordnet ist. Ja nach Bereich sind unterschiedliche Konfigurationsparameter erforderlich.</td>
</tr>
</table>
-<h4><a name="konfigurationsparameter_oa_general_public" id="uebersicht_zentraledatei_aktualisierung18"></a>3.2.1.1 &Ouml;ffentlicher Bereich</h4>
+<h5><a name="konfigurationsparameter_oa_general_public" id="uebersicht_zentraledatei_aktualisierung18"></a>3.2.1.1 &Ouml;ffentlicher Bereich</h5>
<p>Wurde die Online-Applikation einem &ouml;ffentlichen Bereich zugeordnet muss in weiterer Folge der zugeordnete Bereich definiert werden. Hierf&uuml;r stehen folgende Parameter zur Verf&uuml;gung.</p>
-<table width="1250" border="1">
+<table class="configtable">
<tr>
- <th width="123" scope="col">Name</th>
- <th width="204" scope="col">Beispielwert</th>
- <th width="43" scope="col">Admin</th>
- <th width="57" scope="col">Optional</th>
- <th width="789" scope="col">Beschreibung</th>
+ <th>Name</th>
+ <th>Beispielwert</th>
+ <th>Admin</th>
+ <th>Optional</th>
+ <th>Beschreibung</th>
</tr>
<tr>
<td><span id="wwlbl_loadOA_generalOA_target">Bereich (Target)</span></td>
@@ -1717,7 +1759,7 @@ Soll die B&uuml;rgerkartenauswahl weiterhin, wie in MOA-ID 1.5.1 im Kontext der
</ul>
</li>
</ul>
-<h4><a name="konfigurationsparameter_oa_general_business" id="uebersicht_zentraledatei_aktualisierung19"></a>3.2.1.2 Privatwirtschaftlicher Bereich</h4>
+<h5><a name="konfigurationsparameter_oa_general_business" id="uebersicht_zentraledatei_aktualisierung19"></a>3.2.1.2 Privatwirtschaftlicher Bereich</h5>
<p>Wurde die Online-Applikation einem privatwirtschaftlichen Bereich zugeordnet muss in weiterer Folge die Stammzahl des privatwirtschaftlichen Unternehmens angegeben werden. Die Stammzahl des &ouml;ffentlichen Bereichs muss mit dem entsprechenden Prefix des Bereichs angegeben werden, wobei der Prefix aus einer vorgegebenen Liste gew&auml;hlt werden muss. </p>
<ul>
<li>FN: Die Stammzahl ist eine Firmenbuchnummer. (Beispiel: <em>FN468924i</em>)</li>
@@ -1725,13 +1767,13 @@ Soll die B&uuml;rgerkartenauswahl weiterhin, wie in MOA-ID 1.5.1 im Kontext der
<li>ERSB: Die Stammzahl ist einer Kennzahl aus dem Erg&auml;nzungsregister f&uuml;r sonstige Betroffene (ERsB) (Beispiel: ERSB1425367879)</li>
<li>STORK: L&auml;ndercode dem der Service Provider zugeordnet werden kann. Wird f&uuml;r die Ableitung des STORK-eIdentifiers verwendet.</li>
</ul>
-<table width="1250" border="1">
+<table class="configtable">
<tr>
- <th width="123" scope="col">Name</th>
- <th width="204" scope="col">Beispielwerte</th>
- <th width="43" scope="col">Admin</th>
- <th width="57" scope="col">Optional</th>
- <th width="789" scope="col">Beschreibung</th>
+ <th>Name</th>
+ <th>Beispielwerte</th>
+ <th>Admin</th>
+ <th>Optional</th>
+ <th>Beschreibung</th>
</tr>
<tr>
<td><span id="wwlbl_loadOA_generalOA_identificationType">Identifikationsnummer</span></td>
@@ -1745,15 +1787,15 @@ Soll die B&uuml;rgerkartenauswahl weiterhin, wie in MOA-ID 1.5.1 im Kontext der
</tr>
</table>
-<h3><a name="konfigurationsparameter_oa_bku" id="uebersicht_zentraledatei_aktualisierung20"></a>3.2.2 BKU Konfiguration</h3>
+<h4><a name="konfigurationsparameter_oa_bku" id="uebersicht_zentraledatei_aktualisierung20"></a>3.2.2 BKU Konfiguration</h4>
<p>Dieser Abschnitt behandelt online-applikationsspezifische Einstellungen zum Anmeldeprozess. Diese Einstellungen stehen jedoch nur einer Benutzerin oder einem Benutzer mit der Role <em>admin</em> zur Verf&uuml;gung.</p>
-<table width="1248" border="1">
+<table class="configtable">
<tr>
- <th width="168" scope="col">Name</th>
- <th width="189" scope="col">Beispielwert</th>
- <th width="43" scope="col">Admin</th>
- <th width="57" scope="col">Optional</th>
- <th width="757" scope="col">Beschreibung</th>
+ <th>Name</th>
+ <th>Beispielwert</th>
+ <th>Admin</th>
+ <th>Optional</th>
+ <th>Beschreibung</th>
</tr>
<tr>
<td><span id="wwlbl_newOA_generalOA_bkuOnlineURL">Online BKU</span></td>
@@ -1807,15 +1849,15 @@ Soll die B&uuml;rgerkartenauswahl weiterhin, wie in MOA-ID 1.5.1 im Kontext der
<td>Dieses Feld erlaubt die Konfiguration eines online-applikationsspezifischen Templates f&uuml;r die zus&auml;tzliche Anmeldeabfrage im Falle einer Single Sign-On Anmeldung. Dieses Template muss in die Konfiguration hochgeladen werden und muss die Mindestanforderungen aus <a href="#import_template_sso">Kapitel 4.2</a> umsetzen. Da diese Templates direkt in den Authentifizierungsprozess eingreifen und diese somit eine potentielle Angriffsstelle f&uuml;r Cross-Site Scripting (XSS) bieten wird die Verwendung von online-applikationsspezifischen Templates nicht empfohlen.</td>
</tr>
</table>
-<h3><a name="konfigurationsparameter_oa_testcredentials" id="uebersicht_zentraledatei_aktualisierung10"></a> 3.2.3 Test Identit&auml;ten</h3>
+<h4><a name="konfigurationsparameter_oa_testcredentials" id="uebersicht_zentraledatei_aktualisierung10"></a> 3.2.3 Test Identit&auml;ten</h4>
<p>In diesem Abschnitt k&ouml;nnen f&uuml;r diese Online-Applikation Testidentit&auml;ten erlaubt werden. Diese Testidentit&auml;ten k&ouml;nnen auch bei produktiven Instanzen freigeschalten werden, da die Unterschiedung zwischen Produkt- und Testidentit&auml;t anhand einer speziellen OID im Signaturzertifikat der Testidentit&auml;t getroffen wird. Folgende Konfigurationsparameter stehen hierf&uuml;r zur Verf&uuml;gung.</p>
-<table width="1250" border="1">
+<table class="configtable">
<tr>
- <th width="167" scope="col">Name</th>
- <th width="168" scope="col">Beispielwert</th>
- <th width="43" scope="col">Admin</th>
- <th width="57" scope="col">Optional</th>
- <th width="781" scope="col">Beschreibung</th>
+ <th>Name</th>
+ <th>Beispielwert</th>
+ <th>Admin</th>
+ <th>Optional</th>
+ <th>Beschreibung</th>
</tr>
<tr>
<td><span id="wwlbl_newOA_generalOA_useMandates2">Testidentit&auml;ten erlauben</span></td>
@@ -1835,15 +1877,15 @@ Soll die B&uuml;rgerkartenauswahl weiterhin, wie in MOA-ID 1.5.1 im Kontext der
</table>
<p>&nbsp;</p>
<p><strong>Hinweis:</strong> Diese Funktionalit&auml;t steht jedoch nur Testidentit&auml;ten welchen bereits mit einer Test OID im Signaturzertifikat ausgestattet sind zur Verf&uuml;gung.</p>
-<h3><a name="konfigurationsparameter_oa_mandates" id="uebersicht_zentraledatei_aktualisierung21"></a>3.2.4 Vollmachten</h3>
+<h4><a name="konfigurationsparameter_oa_mandates" id="uebersicht_zentraledatei_aktualisierung21"></a>3.2.4 Vollmachten</h4>
<p>Dieser Abschnitt behandelt online-applikationsspezifische Einstellungen zur Anmeldung mittels Online-Vollmachen.</p>
-<table width="1250" border="1">
+<table class="configtable">
<tr>
- <th width="167" scope="col">Name</th>
- <th width="168" scope="col">Beispielwert</th>
- <th width="43" scope="col">Admin</th>
- <th width="57" scope="col">Optional</th>
- <th width="781" scope="col">Beschreibung</th>
+ <th>Name</th>
+ <th>Beispielwert</th>
+ <th>Admin</th>
+ <th>Optional</th>
+ <th>Beschreibung</th>
</tr>
<tr>
<td><span id="wwlbl_newOA_generalOA_useMandates">Vollmachten (ja/nein)</span></td>
@@ -1869,15 +1911,15 @@ Soll die B&uuml;rgerkartenauswahl weiterhin, wie in MOA-ID 1.5.1 im Kontext der
</table>
<p>&nbsp;</p>
<p><strong>Hinweis:</strong> Werden f&uuml;r die Online-Applikation eigene Templates f&uuml;r die B&uuml;rgerkartenauswahl oder die zus&auml;tzliche Anmeldeabfrage im SSO Fall (siehe <a href="#konfigurationsparameter_oa_bku">Abschnitt 3.2.2</a>) verwendet, stehen alle Konfigurationsparameter die Einfluss auf die BKU-Auswahl haben nicht zur Verf&uuml;gung. Die Funktionalit&auml;t der entsprechenden Parameter hat jedoch weiterhin Einfluss auf den Anmeldevorgang.</p>
-<h3><a name="konfigurationsparameter_oa_sso" id="uebersicht_zentraledatei_aktualisierung22"></a>3.2.5 Single Sign-On (SSO)</h3>
+<h4><a name="konfigurationsparameter_oa_sso" id="uebersicht_zentraledatei_aktualisierung22"></a>3.2.5 Single Sign-On (SSO)</h4>
<p>Dieser Abschnitt behandelt online-applikationsspezifische Einstellungen zu Single Sign-On</p>
-<table width="1248" border="1">
+<table class="configtable">
<tr>
- <th width="168" scope="col">Name</th>
- <th width="189" scope="col">Beispielwert</th>
- <th width="43" scope="col">Admin</th>
- <th width="57" scope="col">Optional</th>
- <th width="757" scope="col">Beschreibung</th>
+ <th>Name</th>
+ <th>Beispielwert</th>
+ <th>Admin</th>
+ <th>Optional</th>
+ <th>Beschreibung</th>
</tr>
<tr>
<td><span id="wwlbl_OAuseSSO">Single Sign-On verwenden</span></td>
@@ -1896,14 +1938,14 @@ Soll die B&uuml;rgerkartenauswahl weiterhin, wie in MOA-ID 1.5.1 im Kontext der
<p><strong>Hinweis:</strong> Diese Abfrage ist standardm&auml;&szlig;ig aktiviert und kann nur durch einen Benutzer mit der Role <em>admin</em> deaktiviert werden.</p></td>
</tr>
</table>
-<h3><a name="konfigurationsparameter_oa_stork" id="uebersicht_zentraledatei_aktualisierung23"></a>3.2.6 Secure idenTity acrOss boRders linKed (STORK)</h3>
+<h4><a name="konfigurationsparameter_oa_stork" id="uebersicht_zentraledatei_aktualisierung23"></a>3.2.6 Secure idenTity acrOss boRders linKed (STORK)</h4>
<p>Dieser Abschnitt behandelt Online-Applikationsspezifische Einstellungen zu STORK.</p>
-<table width="1250" border="1">
+<table class="configtable">
<tr>
- <th width="167" scope="col">Name</th>
- <th width="68" scope="col">Beispielwert</th>
- <th width="57" scope="col">Optional</th>
- <th width="781" scope="col">Beschreibung</th>
+ <th>Name</th>
+ <th>Beispielwert</th>
+ <th>Optional</th>
+ <th>Beschreibung</th>
</tr>
<tr>
<td>STORK verwenden</td>
@@ -1934,18 +1976,18 @@ Soll die B&uuml;rgerkartenauswahl weiterhin, wie in MOA-ID 1.5.1 im Kontext der
</table>
<p>&nbsp;</p>
<p><strong>Hinweis:</strong> Werden f&uuml;r die Online-Applikation eigene Templates f&uuml;r die B&uuml;rgerkartenauswahl oder die zus&auml;tzliche Anmeldeabfrage im SSO Fall (siehe <a href="#konfigurationsparameter_oa_bku">Abschnitt 3.2.2</a>) verwendet, stehen alle Konfigurationsparameter die Einfluss auf die BKU-Auswahl haben nicht zur Verf&uuml;gung.</p>
-<h3><a name="konfigurationsparameter_oa_protocol" id="uebersicht_zentraledatei_aktualisierung24"></a>3.2.7 Authentifizierungsprotokolle</h3>
+<h4><a name="konfigurationsparameter_oa_protocol" id="uebersicht_zentraledatei_aktualisierung24"></a>3.2.7 Authentifizierungsprotokolle</h4>
<p>Dieser Abschnitt behandelt online-applikationsspezifische Einstellungen zu den von der Online-Applikation unterst&uuml;tzen Authentifizierungsprotokollen. Eine Verwendung aller zur Verf&uuml;gung stehender Authentifizierungsprotokolle durch die Online-Applikation ist ebenfalls m&ouml;glich. Hierf&uuml;r m&uuml;ssen nur alle ben&ouml;tigten Protokolle konfiguriert werden. N&auml;here Informationen zu den unterst&uuml;tzten Protokollen finden sie im Kapitel <a href="./../protocol/protocol.html">Protokolle</a>.</p>
<p>Aus Gr&uuml;nden der &Uuml;bersichtlichkeit kann der Konfigurationsbereich f&uuml;r jeden Protokoll, in der Web-Oberfl&auml;che des Konfigurationstools, ein- oder ausgeblendet werden.</p>
-<h4><a name="konfigurationsparameter_oa_protocol_saml1" id="uebersicht_zentraledatei_aktualisierung25"></a>3.2.7.1 SAML1</h4>
+<h5><a name="konfigurationsparameter_oa_protocol_saml1" id="uebersicht_zentraledatei_aktualisierung25"></a>3.2.7.1 SAML1</h5>
<p>F&uuml;r das Protokoll SAML1 stehen folgende Konfigurationsparameter zur Verf&uuml;gung.</p>
-<table width="1250" border="1">
+<table class="configtable">
<tr>
- <th width="167" scope="col">Name</th>
- <th width="168" scope="col">Beispielwert</th>
- <th width="43" scope="col">Admin</th>
- <th width="57" scope="col">Optional</th>
- <th width="781" scope="col">Beschreibung</th>
+ <th>Name</th>
+ <th>Beispielwert</th>
+ <th>Admin</th>
+ <th>Optional</th>
+ <th>Beschreibung</th>
</tr>
<tr>
<td><span id="wwlbl_loadOA_saml1OA_Active">SAML1 aktivieren</span></td>
@@ -1992,15 +2034,15 @@ Soll die B&uuml;rgerkartenauswahl weiterhin, wie in MOA-ID 1.5.1 im Kontext der
</table>
<p>&nbsp;</p>
<p><strong>Hinweis: </strong>Das Modul MOA-ID-Auth in der Version 2.0 unterst&uuml;tzt SAML1 nur mehr zur Abw&auml;rtskompatibilit&auml;t mit bereits bestehenden Online-Applikationen. Wir empfehlen den Umstieg auf ein anderes, von MOA-ID-Auth unterst&uuml;tztes, Authentifizierungsprotokoll. Aus diesem Grund steht die Konfiguration des SAML1 Protokolls nur mehr einer Benutzerin oder einem Benutzer mit der Role <em>admin</em> zur Verf&uuml;gung.</p>
-<h4><a name="konfigurationsparameter_oa_protocol_pvp21" id="uebersicht_zentraledatei_aktualisierung26"></a>3.2.7.2 PVP 2.1</h4>
+<h5><a name="konfigurationsparameter_oa_protocol_pvp21" id="uebersicht_zentraledatei_aktualisierung26"></a>3.2.7.2 PVP 2.1</h5>
<p>In diesem Bereich erfolgt die applikationsspezifische Konfiguration f&uuml;r das Authentifizierungsprotokoll PVP 2.1.</p>
-<table width="1250" border="1">
+<table class="configtable">
<tr>
- <th width="87" scope="col">Name</th>
- <th width="326" scope="col">Beispielwert</th>
- <th width="59" scope="col">Admin</th>
- <th width="60" scope="col">Optional</th>
- <th width="684" scope="col">Beschreibung</th>
+ <th>Name</th>
+ <th>Beispielwert</th>
+ <th>Admin</th>
+ <th>Optional</th>
+ <th>Beschreibung</th>
</tr>
<tr>
<td>Neu Laden</td>
@@ -2015,7 +2057,7 @@ Soll die B&uuml;rgerkartenauswahl weiterhin, wie in MOA-ID 1.5.1 im Kontext der
<td align="center">&nbsp;</td>
<td align="center">&nbsp;</td>
<td>URL unter der die MOA-ID-Auth Instanz die Metadaten der Online-Applikation beziehen kann. Diese Metadaten m&uuml;ssen durch die Online-Applikation signiert sein. F&uuml;r den Fall das die Metadaten &uuml;ber https abgeholt werden, muss das jeweilige Serverzertifikat zur Zertifikatspr&uuml;fung im <a href="../install/install.html#webservice_basisinstallation_installation_spssdeploy">TrustStore der MOA-ID-Auth Instanz</a> hinterlegt sein. Die Metadaten werden anschlie&szlig;end durch MOA-ID-Auth innerhalb des in den Metadaten angegebenen G&uuml;ltigkeitszeitraums automatisch aktualisiert. Das Aktualisierungsintervall bei automatischer Aktualisierung betr&auml;gt jedoch mindestens 15 Minuten jedoch nicht mehr als 24 Stunden. (Intervall: 15min &lt; Aktualisierungszeitpunkt &lt; 24 Stunden)
- <p><b>Hinweis:</b> Metadaten können nur über http oder https bezogen werden. Das Laden von Metadaten aus dem lokalen Verzeichnissystem ist nicht möglich.</p></td>
+ <p><b>Hinweis:</b> Metadaten k\F6nnen nur \FCber http oder https bezogen werden. Das Laden von Metadaten aus dem lokalen Verzeichnissystem ist nicht m\F6glich.</p></td>
</tr>
<tr>
<td>Infos zum Zertifikat</td>
@@ -2033,15 +2075,15 @@ Soll die B&uuml;rgerkartenauswahl weiterhin, wie in MOA-ID 1.5.1 im Kontext der
<td>Zertifikat mit dem die Metadaten der Online-Applikation signiert sind. Dieses wird ben&ouml;tigt um die Metadaten zu verifizieren.</td>
</tr>
</table>
-<h4><a name="konfigurationsparameter_oa_protocol_openIDConnect" id="uebersicht_zentraledatei_aktualisierung27"></a>3.2.7.3 OpenID Connect</h4>
+<h5><a name="konfigurationsparameter_oa_protocol_openIDConnect" id="uebersicht_zentraledatei_aktualisierung27"></a>3.2.7.3 OpenID Connect</h5>
<p>In diesem Bereich erfolgt die applikationsspezifische Konfiguration f&uuml;r OpenID Connect (OAuth 2.0). </p>
-<table width="1250" border="1">
+<table class="configtable">
<tr>
- <th width="87" scope="col">Name</th>
- <th width="221" scope="col">Beispielwert</th>
- <th width="58" scope="col">Admin</th>
- <th width="64" scope="col">Optional</th>
- <th width="786" scope="col">Beschreibung</th>
+ <th>Name</th>
+ <th>Beispielwert</th>
+ <th>Admin</th>
+ <th>Optional</th>
+ <th>Beschreibung</th>
</tr>
<tr>
<td>Client ID</td>
@@ -2065,17 +2107,17 @@ Soll die B&uuml;rgerkartenauswahl weiterhin, wie in MOA-ID 1.5.1 im Kontext der
<td>OpenID Connect Redirect URL. Nach erfolgreicher Authentifizierung wird die Benutzerin oder der Benutzer an diese URL zur&uuml;ckgeleitet.</td>
</tr>
</table>
-<h4><a name="konfigurationsparameter_oa_additional" id="uebersicht_zentraledatei_aktualisierung28"></a>3.2.8 Zus&auml;tzliche allgemeine Einstellungen</h4>
-<p>In Abschnitt ermöglicht eine erweiterte online-applikationsspezifische Individualisierung des AuthBlocks und der Bürgerkartenauswahl.
- Die Individualisierung des AuthBlocks steht jedoch dann zur Verfügung wenn die dem Module MOA-ID-Auth beigelegte Security-Layer Transformation verwendet wird oder
+<h5><a name="konfigurationsparameter_oa_additional" id="uebersicht_zentraledatei_aktualisierung28"></a>3.2.8 Zus&auml;tzliche allgemeine Einstellungen</h5>
+<p>In Abschnitt erm\F6glicht eine erweiterte online-applikationsspezifische Individualisierung des AuthBlocks und der B\FCrgerkartenauswahl.
+ Die Individualisierung des AuthBlocks steht jedoch dann zur Verf\FCgung wenn die dem Module MOA-ID-Auth beigelegte Security-Layer Transformation verwendet wird oder
wenn die individuelle Security-Layer Transformation den Formvorschriften der Spezifikation entspricht.</p>
-<table width="1250" border="1">
+<table class="configtable">
<tr>
- <th width="87" scope="col">Name</th>
- <th width="221" scope="col">Beispielwert</th>
- <th width="58" scope="col">Admin</th>
- <th width="64" scope="col">Optional</th>
- <th width="786" scope="col">Beschreibung</th>
+ <th>Name</th>
+ <th>Beispielwert</th>
+ <th>Admin</th>
+ <th>Optional</th>
+ <th>Beschreibung</th>
</tr>
<tr>
<td>AuthblockText</td>
@@ -2097,71 +2139,71 @@ wenn die individuelle Security-Layer Transformation den Formvorschriften der Sp
<td>&nbsp;</td>
<td align="center">&nbsp;</td>
<td align="center">X</td>
- <td>Wird diese Option gewählt wird im AuthBlock, welcher im Anmeldevorgang signiert wird, keine bPK oder wbPK dargestellt.</td>
+ <td>Wird diese Option gew\E4hlt wird im AuthBlock, welcher im Anmeldevorgang signiert wird, keine bPK oder wbPK dargestellt.</td>
</tr>
</table>
-<h4><a name="konfigurationsparameter_oa_additional_formular" id="uebersicht_zentraledatei_aktualisierung29"></a>3.2.8.1 Login-Fenster Konfiguration</h4>
-<p>Diese Konfigurationsparameter bieten zusätzliche Einstellungen für eine Anpassung der Bürgerkartenauswahl welche von MOA-ID-Auth generiert wird.
+<h5><a name="konfigurationsparameter_oa_additional_formular" id="uebersicht_zentraledatei_aktualisierung29"></a>3.2.8.1 Login-Fenster Konfiguration</h5>
+<p>Diese Konfigurationsparameter bieten zus\E4tzliche Einstellungen f\FCr eine Anpassung der B\FCrgerkartenauswahl welche von MOA-ID-Auth generiert wird.
Zur besseren Handhabung werden die angegebenen Parameter direkt in einer Vorschau dargestellt.
-Alle in diesem Abschnitt angegebenen Parameter sind Optional und werden bei Bedarf durch Standardwerte ergänzt.
+Alle in diesem Abschnitt angegebenen Parameter sind Optional und werden bei Bedarf durch Standardwerte erg\E4nzt.
</p>
-<table width="1250" border="1">
+<table class="configtable">
<tr>
- <th width="87" scope="col">Name</th>
- <th width="221" scope="col">Beispielwert</th>
- <th width="58" scope="col">BKU-Auswahl</th>
- <th width="64" scope="col">SL-Template</th>
- <th width="786" scope="col">Beschreibung</th>
+ <th>Name</th>
+ <th>Beispielwert</th>
+ <th>BKU-Auswahl</th>
+ <th>SL-Template</th>
+ <th>Beschreibung</th>
</tr>
<tr>
<td>Hintergrundfarbe</td>
<td>#E5E5E5</td>
<td align="center">X</td>
<td align="center">X</td>
- <td>Hintergrundfarbe der Bürgerkartenauswahl und Hintergrundfarbe des Java-Applets der Online-BKU (wird &uuml;ber den Security-Layer Request angegeben). Die Angabe der Farbe erfolgt als RGB Wert in hexadezimaler Form.</td>
+ <td>Hintergrundfarbe der B\FCrgerkartenauswahl und Hintergrundfarbe des Java-Applets der Online-BKU (wird &uuml;ber den Security-Layer Request angegeben). Die Angabe der Farbe erfolgt als RGB Wert in hexadezimaler Form.</td>
</tr>
<tr>
<td>Vordergrundfarbe</td>
<td>#E5E5E5</td>
<td align="center">X</td>
<td align="center">&nbsp;</td>
- <td>Vordergrundfarbe (Textfarbe) der Bürgerkartenauswahl. Die Angabe der Farbe erfolgt als RGB Wert in hexadezimaler Form.</td>
+ <td>Vordergrundfarbe (Textfarbe) der B\FCrgerkartenauswahl. Die Angabe der Farbe erfolgt als RGB Wert in hexadezimaler Form.</td>
</tr>
<tr>
- <td>Hintergrundfarbe Überschrift</td>
+ <td>Hintergrundfarbe \DCberschrift</td>
<td>#E5E5E5</td>
<td align="center">X</td>
<td align="center">&nbsp;</td>
- <td>Hintergrundfarbe der Überschrift der Bürgerkartenauswahl. Die Angabe der Farbe erfolgt als RGB Wert in hexadezimaler Form.</td>
+ <td>Hintergrundfarbe der \DCberschrift der B\FCrgerkartenauswahl. Die Angabe der Farbe erfolgt als RGB Wert in hexadezimaler Form.</td>
</tr>
<tr>
- <td>Vordergrundfarbe Überschrift</td>
+ <td>Vordergrundfarbe \DCberschrift</td>
<td>#E5E5E5</td>
<td align="center">X</td>
<td align="center">&nbsp;</td>
- <td>Vordergrundfarbe (Textfarbe) der Überschrift der Bürgerkartenauswahl. Die Angabe der Farbe erfolgt als RGB Wert in hexadezimaler Form.</td>
+ <td>Vordergrundfarbe (Textfarbe) der \DCberschrift der B\FCrgerkartenauswahl. Die Angabe der Farbe erfolgt als RGB Wert in hexadezimaler Form.</td>
</tr>
<tr>
- <td>Überschriftstext</td>
+ <td>\DCberschriftstext</td>
<td>Anmeldung</td>
<td align="center">X</td>
<td align="center">&nbsp;</td>
- <td>Die hier angegebene Zeichenkette wird als Überschrift in der Bürgerkartenauswahl dargestellt. Es sind jedoch nur Buchstaben, Zahlen und Satzzeichen erlaubt.</td>
+ <td>Die hier angegebene Zeichenkette wird als \DCberschrift in der B\FCrgerkartenauswahl dargestellt. Es sind jedoch nur Buchstaben, Zahlen und Satzzeichen erlaubt.</td>
</tr>
<tr>
<td>Targetparameter</td>
<td>&nbsp;</td>
<td align="center">&nbsp;</td>
<td align="center">X</td>
- <td>Mit diesem Parameter kann der Redirect-Target welcher im Security-Layer Request an die BKU übergeben wird definiert werden. Die möglichen Parameter sind äquivalent zum
+ <td>Mit diesem Parameter kann der Redirect-Target welcher im Security-Layer Request an die BKU \FCbergeben wird definiert werden. Die m\F6glichen Parameter sind \E4quivalent zum
html Attribut <i>target</i> (siehe <a href="#import_template_sltemplate">Kapitel 4.3</a>). </td>
</tr>
<tr>
- <td>Applethöhe</td>
+ <td>Appleth\F6he</td>
<td>220</td>
<td align="center">&nbsp;</td>
<td align="center">X</td>
- <td>Mit diesem Parameter kann die Höhe des Java-Applets der Online-BKU definiert werden. Dieser Parameter &uuml;berschreibt einen in der BKU-Auswahl &uuml;bergebenen Parameter (siehe <a href="#import_template_bku">Kapitel 3.4.1</a>).</td>
+ <td>Mit diesem Parameter kann die H\F6he des Java-Applets der Online-BKU definiert werden. Dieser Parameter &uuml;berschreibt einen in der BKU-Auswahl &uuml;bergebenen Parameter (siehe <a href="#import_template_bku">Kapitel 3.4.1</a>).</td>
</tr>
<tr>
<td>Appletbreite</td>
@@ -2175,27 +2217,27 @@ Alle in diesem Abschnitt angegebenen Parameter sind Optional und werden bei Beda
<td>&nbsp;</td>
<td align="center">X</td>
<td align="center">&nbsp;</td>
- <td>Dieses Feld erlaubt die Auswahl der gewünschten Schriftart, welche für die BKU-Auswahl verwendet werden soll. Es kann jedoch nur eine Schriftart gewählt werden.</td>
+ <td>Dieses Feld erlaubt die Auswahl der gew\FCnschten Schriftart, welche f\FCr die BKU-Auswahl verwendet werden soll. Es kann jedoch nur eine Schriftart gew\E4hlt werden.</td>
</tr>
<tr>
<td>Formularschrifttyp (Textfeld)</td>
<td>&nbsp;</td>
<td align="center">X</td>
<td align="center">&nbsp;</td>
- <td>Dieses Textfeld erlaubt die Konfiguration eine Liste von Schriftarten, welche für die BKU-Auswahl verwendet werden soll.
- Die Angabe erfolgt mittels einer durch &quot;<i>,&quot;</i> getrennten Liste, äquivalent zur Schriftartendefinition laut HTML Spezifikation</td>
+ <td>Dieses Textfeld erlaubt die Konfiguration eine Liste von Schriftarten, welche f\FCr die BKU-Auswahl verwendet werden soll.
+ Die Angabe erfolgt mittels einer durch &quot;<i>,&quot;</i> getrennten Liste, \E4quivalent zur Schriftartendefinition laut HTML Spezifikation</td>
</tr>
</table>
<p>&nbsp;</p>
-<p><strong>Hinweis:</strong> Bei Verwendung einer online-applikationsspezifischen Bürgerkartenauswahl stehen alle Parameter die die Bürgerkartenauswahl betreffen nicht zur Verfügung.</p>
-<p><strong>Hinweis:</strong> Bei Verwendung eines online-applikationsspezifischen Security-Layer-Request Templates stehen alle Parameter die das SL-Template betreffen nicht zur Verfügung.</p>
-<h4><a name="konfigurationsparameter_oa_additional_encbpk" id="uebersicht_zentraledatei_aktualisierung31"></a>3.2.8.2 Fremd-bPK Konfiguration</h4>
+<p><strong>Hinweis:</strong> Bei Verwendung einer online-applikationsspezifischen B\FCrgerkartenauswahl stehen alle Parameter die die B\FCrgerkartenauswahl betreffen nicht zur Verf\FCgung.</p>
+<p><strong>Hinweis:</strong> Bei Verwendung eines online-applikationsspezifischen Security-Layer-Request Templates stehen alle Parameter die das SL-Template betreffen nicht zur Verf\FCgung.</p>
+<h5><a name="konfigurationsparameter_oa_additional_encbpk" id="uebersicht_zentraledatei_aktualisierung31"></a>3.2.8.2 Fremd-bPK Konfiguration</h5>
<p>Dieser Konfigurationsparameter erm&ouml;glicht die Konfiguration eines Key Stores, welcher im Falle einer<a href="../interfederation/interfederation.html"> Anmeldung mittels Single Sign-On Interfederation</a> zur Entschl&uuml;sselung einer verschl&uuml;sselten Fremd-bPK verwendet werden soll. Hierf&uuml;r sind folgende Konfigurationsparameter notwenig.</p>
-<table width="1247" border="1">
+<table class="configtable">
<tr>
- <th width="272" scope="col">Name</th>
- <th width="147" scope="col">Beispielwert</th>
- <th width="806" scope="col">Beschreibung</th>
+ <th>Name</th>
+ <th>Beispielwert</th>
+ <th>Beschreibung</th>
</tr>
<tr>
<td>KeyStore hochladen</td>
@@ -2220,18 +2262,18 @@ Alle in diesem Abschnitt angegebenen Parameter sind Optional und werden bei Beda
</table>
<p>&nbsp;</p>
<p><strong>Hinweis:</strong> Diese Konfiguration ist jedoch nur n&ouml;tig wenn die f&uuml;r das Modul MOA-ID-Auth Interfederation verwendet und von weiteren Identity Providern in der Federation Fremd-bPKs &uuml;bermittelt werden welche bereits im Modul MOA-ID-Auth entschl&uuml;sselt werden sollen (z.B. bei Verwendung von SAML 1 als Authentifizierungsprotokoll). Bei Verwendung von PVP 2.1 und OpenID Connect kann die Fremd-bPK auch direkt an die Online Applikation weitergeben werden wodurch eine Entschl&uuml;sselung auf Seiten des Modules MOA-ID-Auth nicht zwingend notwendig ist.</p>
-<h2><a name="import_export" id="uebersicht_zentraledatei_aktualisierung4"></a>3.3 Import / Export</h2>
-<p>Über diese Funktionalität besteht die Möglichkeit eine bestehende MOA-ID 1.5.1
-Konfiguration in MOA-ID 2.0 zu importieren. Zusätzlich besteht die Möglichkeit eine MOA-ID-Auth 2.0
+<h3><a name="import_export" id="uebersicht_zentraledatei_aktualisierung4"></a>3.3 Import / Export</h3>
+<p>\DCber diese Funktionalit\E4t besteht die M\F6glichkeit eine bestehende MOA-ID 1.5.1
+Konfiguration in MOA-ID 2.0 zu importieren. Zus\E4tzlich besteht die M\F6glichkeit eine MOA-ID-Auth 2.0
Konfiguration in ein XML Dokument zu exportieren oder in eine bestehende MOA-ID-Auth 2.0
XML Konfiguration zu importieren. Eine exportierte MOA-ID-Auth 2.0 XML-Konfiguration kann auch direkt zur Konfiguration des Modules MOA-ID-Auth herangezogen werden (siehe <a href="#basisconfig_moa_id_auth_param_general">Kapitel 2.2.2.1</a>)</p>
<p><strong>Hinweis:</strong>
Zu beachten ist, dass bei einem Import die aktuell vorhandene
- Konfiguration vollständig gelöscht und durch die importierte Konfiguration ersetzt wird.
+ Konfiguration vollst\E4ndig gel\F6scht und durch die importierte Konfiguration ersetzt wird.
Es wird empfohlen ein Backup einer eventuell vorhandenen MOA-ID 2.0 Konfiguration
- zu erstellen, bevor eine neue Konfiguration importiert wird. Hierfür kann die
+ zu erstellen, bevor eine neue Konfiguration importiert wird. Hierf\FCr kann die
Exportfunktion verwendet werden.</p>
-<h3><a name="import_export_legacy" id="uebersicht_zentraledatei_aktualisierung5"></a>3.3.1 Import alter Konfigurationen (&lt;= MOA-ID 1.5.1)</h3>
+<h4><a name="import_export_legacy" id="uebersicht_zentraledatei_aktualisierung5"></a>3.3.1 Import alter Konfigurationen (&lt;= MOA-ID 1.5.1)</h4>
<p>Es besteht auch die M&ouml;glichkeit eine bestehende MOA-ID 1.5.1 Konfiguration zu importieren. Da nicht alle neuen Konfigurationsparameter automatisiert aus der MOA-ID 1.5.1 Konfiguration erstellt werden sind f&uuml;r den Importvorgang mehrere Schritte notwendig.</p>
<ol>
<li>Importieren einer bestehenden MOA-ID 1.5.1 Konfiguration mithilfe der Import Funktion des Modules MOA-ID-Configuration. Danach sollten sowohl die allgemeine Konfiguration als auch die Online-Applikationen eingetragen sein. </li>
@@ -2257,16 +2299,16 @@ Exportfunktion verwendet werden.</p>
</ol>
<h2><a name="import_template_" id="uebersicht_zentraledatei_Templates"></a>4 Templates</h2>
<p>Dieser Abschnitt spezifiziert den Mindestaufbau der Templates f&uuml;r die BKU Auswahl, die Single Sign-On Anmeldeabfrage und die Security-Layer Request Templates welche vo Module MOA-ID-Auth verwendet werden. Alle hier beschriebenen Templates werden durch MOA-ID-Auth geladen, erweitert und gegeben falls der Benutzerin oder dem Benutzer im Web-Browser dargestellt. Um einen korrekten Anmeldeprozess zu gew&auml;hrleisten m&uuml;ssen diese Templates mindestens folgende Formvorschriften und Strukturen aufweisen.</p>
-<h3><a name="import_template_bku" id="uebersicht_zentraledatei_aktualisierung6"></a>4.1 Bürgerkartenauswahl</h3>
+<h4><a name="import_template_bku" id="uebersicht_zentraledatei_aktualisierung6"></a>4.1 B\FCrgerkartenauswahl</h4>
<p>Das BKU Template dient im Anmeldeprozess der Auswahl der gew&uuml;nschten B&uuml;rgerkatenumgebung oder Handysignatur. Nach erfolgter Auswahl durch die Benutzer oder dem Benutzer wird diese an MOA-ID-Auth &uuml;bermittelt. </p>
<p><strong>Hinweis:</strong> In der Datei <em>./htmlTemplates/loginFormFull.html</em> welcher sich relativ zur <a href="#uebersicht_bekanntmachung">MOA-ID-Auth Konfigurationsdatei</a> befindet finden Sie das Standard Template welches f&uuml;r den Anmeldevorgang verwendet wird, wenn kein online-applikationsspezifisches Template hinterlegt wurde. Dieses Standard Template unterst&uuml;tzt Responsive Design und passt sich somit in einem weiten Bereich an die aktuelle Fenstergr&ouml;&szlig;e an.</p>
<p>F&uuml;r die &Uuml;bermittlung an MOA-ID-Auth ist ein http GET Request vorgesehen welcher folgende Parameter unterst&uuml;tzt. Die URL dieses http GET Request wird automatisiert &uuml;ber den Parameter &bdquo;#AUTH_URL#&ldquo; (ohne &bdquo;&ldquo;) eingetragen und muss nicht manuell hinterlegt werden. Folgende http GET Parameter werden f&uuml;r die BKU-Auswahl akzeptiert.</p>
-<table width="1201" border="1">
+<table class="configtable">
<tr>
- <th width="167" scope="col">Name</th>
- <th width="168" scope="col">Beispielwert</th>
- <th width="57" scope="col">Optional</th>
- <th width="781" scope="col">Beschreibung</th>
+ <th>Name</th>
+ <th>Beispielwert</th>
+ <th>Optional</th>
+ <th>Beschreibung</th>
</tr>
<tr>
<td>bkuURI</td>
@@ -2313,11 +2355,11 @@ Exportfunktion verwendet werden.</p>
</table>
<p><br>
Einige dieser Parameter werden jedoch nicht durch den Benutzer oder dem Service-Provider sondern durch das Modul MOA-ID-Auth im Rahmen des Anmeldeprozesses automatisiert, an im Template gekennzeichneten Stellen, eingetragen. Folgende Platzhalter stehen zur Verf&uuml;gung und werden von MOA-ID-Auth durch die jeweiligen Werte ersetzt. Alle nicht als Optional gekennzeichneten Platzhalter m&uuml;ssen durch MOA-ID-Auth ersetzt werden.</p>
-<table width="1198" border="1">
+<table class="configtable">
<tr>
- <th width="167" scope="col">Name</th>
- <th width="63" scope="col">Optional</th>
- <th width="946" scope="col">Beschreibung</th>
+ <th>Name</th>
+ <th>Optional</th>
+ <th>Beschreibung</th>
</tr>
<tr>
<td>#AUTH_URL#</td>
@@ -2356,17 +2398,17 @@ Einige dieser Parameter werden jedoch nicht durch den Benutzer oder dem Service
&lt;/form&gt;
</pre>
<p>Als Beispiel f&uuml;r ein BKU-Auswahl Template steht auch das bei MOA-ID-Auth hinterlegte Standardtemplate zur Verf&uuml;gung. Dieses finden Sie <a href="../../htmlTemplates/BKU-selection.html">hier</a>. </p>
-<h3><a name="import_template_sso" id="uebersicht_zentraledatei_aktualisierung7"></a>4.2 Single Sign-On Anmeldeabfrage</h3>
+<h4><a name="import_template_sso" id="uebersicht_zentraledatei_aktualisierung7"></a>4.2 Single Sign-On Anmeldeabfrage</h4>
<p>Das Send-Assertion Template dient im Falle einer Anmeldung mittels Single Sign-On der Abfrage ob die Anmeldedaten an die betreffende Online Applikation &uuml;bertragen werden d&uuml;rfen. </p>
<p><strong>Hinweis:</strong> In der Datei <em>./htmlTemplates/sendAssertionFormFull.html</em> welcher sich relativ zur <a href="#uebersicht_bekanntmachung">MOA-ID-Auth Konfigurationsdatei</a> befindet finden Sie das Standard Template welches f&uuml;r den Anmeldevorgang verwendet wird, wenn kein online-applikationsspezifisches Template hinterlegt wurde. Dieses Standard Template unterst&uuml;tzt Responsive Design und passt sich somit in einem weiten Bereich an die aktuelle Fenstergr&ouml;&szlig;e an.</p>
<p>&Auml;hnlich dem Template f&uuml;r die B&uuml;rgerkartenauswahl m&uuml;ssen auch hierbei Formvorschriften und Strukturen im Aufbau des Templates eingehalten werden.<br>
F&uuml;r die &Uuml;bermittlung an das Modul MOA-ID-Auth ist ein http POST Request vorgesehen welcher folgende Parameter unterst&uuml;tzt. Die URL, an welche dieser http POST Request gesendet werden muss, wird automatisiert &uuml;ber den Parameter &bdquo;#URL#&ldquo; (ohne &bdquo;&ldquo;) eingetragen und muss nicht manuell hinterlegt werden.</p>
-<table width="1201" border="1">
+<table class="configtable">
<tr>
- <th width="167" scope="col">Name</th>
- <th width="168" scope="col">Beispielwert</th>
- <th width="57" scope="col">Optional</th>
- <th width="781" scope="col">Beschreibung</th>
+ <th>Name</th>
+ <th>Beispielwert</th>
+ <th>Optional</th>
+ <th>Beschreibung</th>
</tr>
<tr>
<td>mod</td>
@@ -2395,11 +2437,11 @@ F&uuml;r die &Uuml;bermittlung an das Modul MOA-ID-Auth ist ein http POST Reques
</table>
<p><br>
Einige dieser Parameter werden jedoch nicht durch den Benutzer oder dem Service-Provider sondern durch das Modul MOA-ID-Auth im Rahmen des Anmeldeprozesses automatisiert, an im Template gekennzeichneten Stellen, eingetragen. Folgende Platzhalter stehen zur Verf&uuml;gung und werden von MOA-ID-Auth durch die jeweiligen Werte ersetzt. Alle nicht als Optional gekennzeichneten Platzhalter m&uuml;ssen durch MOA-ID-Auth ersetzt werden.</p>
-<table width="1198" border="1">
+<table class="configtable">
<tr>
- <th width="167" scope="col">Name</th>
- <th width="63" scope="col">Optional</th>
- <th width="946" scope="col">Beschreibung</th>
+ <th>Name</th>
+ <th>Optional</th>
+ <th>Beschreibung</th>
</tr>
<tr>
<td>#URL#</td>
@@ -2424,15 +2466,15 @@ Einige dieser Parameter werden jedoch nicht durch den Benutzer oder dem Service
</table>
<p><br>
Die nachfolgende Form zeigt ein Beispiel f&uuml;r den Aufbau des im BKU-Auswahl Template zu verwendeten http GET Request Templates f&uuml;r die lokale BKU.</p>
-<pre>&lt;form method=&quot;post&quot; id=&quot;moaidform_yes&quot; action=&quot;#URL#&quot;&gt;<br>
- &nbsp;&nbsp;&nbsp; &lt;input type=&quot;hidden&quot; name=&quot;value&quot; value=&quot;true&quot;&gt;<br>
- &nbsp;&nbsp;&nbsp; &lt;input type=&quot;hidden&quot; name=&quot;mod&quot; value=&quot;#MODUL#&quot;&gt;<br>
- &nbsp;&nbsp;&nbsp; &lt;input type=&quot;hidden&quot; name=&quot;action&quot; value=&quot;#ACTION#&quot;&gt;<br>
- &nbsp;&nbsp;&nbsp; &lt;input type=&quot;hidden&quot; name=&quot;identifier&quot; value=&quot;#ID#&quot;&gt;<br>
- &nbsp;&nbsp;&nbsp; &lt;input type=&quot;submit&quot; size=&quot;400&quot; value=&quot;Ja&quot;&gt;<br>
+<pre>&lt;form method=&quot;post&quot; id=&quot;moaidform_yes&quot; action=&quot;#URL#&quot;&gt;
+ &lt;input type=&quot;hidden&quot; name=&quot;value&quot; value=&quot;true&quot;&gt;
+ &lt;input type=&quot;hidden&quot; name=&quot;mod&quot; value=&quot;#MODUL#&quot;&gt;
+ &lt;input type=&quot;hidden&quot; name=&quot;action&quot; value=&quot;#ACTION#&quot;&gt;
+ &lt;input type=&quot;hidden&quot; name=&quot;identifier&quot; value=&quot;#ID#&quot;&gt;
+ &lt;input type=&quot;submit&quot; size=&quot;400&quot; value=&quot;Ja&quot;&gt;
&lt;/form&gt;</pre>
<p>Als Beispiel f&uuml;r ein Single Sign-On Anmeldeabfrage Template steht auch das bei MOA-ID-Auth hinterlegte Standardtemplate zur Verf&uuml;gung. Dieses finden Sie <a href="../../htmlTemplates/sendAssertion.html">hier</a>.</p>
-<h3><a name="import_template_sltemplate" id="uebersicht_zentraledatei_aktualisierung8"></a>4.3 Security-Layer Request</h3>
+<h4><a name="import_template_sltemplate" id="uebersicht_zentraledatei_aktualisierung8"></a>4.3 Security-Layer Request</h4>
<p>Das Security-Layer (SL) Request Template dient zur Kommunikation zwischen dem Modul MOA-ID-Auth und der gew&auml;hlten B&uuml;rgerkartenumgebung. Diese Kommunikation erfolgt &uuml;ber ein http Formular welches als http POST Request an die B&uuml;rgerkartenumgebung gesendet wird. Bei MOA-ID-Auth werden SL Templates mitgeliefert, wobei einige Template Parameter auch &uuml;ber das Konfigurationstool je Online-Applikation angepasst werden k&ouml;nnen (siehe <a href="#konfigurationsparameter_oa_additional_formular">Kapitel 3.2.7.1</a>).</p>
<p>F&uuml;r den Fall das individuelle Anpassungen am SL Template erforderlich sind m&uuml;ssen diese folgende Formvorschriften erf&uuml;llen.</p>
<pre>&lt;form name=&quot;CustomizedForm&quot; action=&quot;&lt;BKU&gt;&quot; method=&quot;post&quot;&gt;
@@ -2443,11 +2485,11 @@ Die nachfolgende Form zeigt ein Beispiel f&uuml;r den Aufbau des im BKU-Auswahl
&lt;/form&gt;
</pre>
<p>Innerhalb dieser &lt;form&gt;-Elemente k&ouml;nnen Texte, Beschriftungen und Styles modifiziert werden, und es k&ouml;nnen zus&auml;tzliche Elemente darin aufgenommen werden. Die vorgegebene Grundstruktur ist aber in jedem Fall einzuhalten, und es m&uuml;ssen die speziellen Tags <em>&lt;BKU&gt;</em> (kommt 2x vor), <em>&lt;XMLRequest&gt;</em>, <em>&lt;DataURL&gt;</em> darin enthalten sein.</p>
-<table width="1198" border="1">
+<table class="configtable">
<tr>
- <th width="167" scope="col">Name</th>
- <th width="63" scope="col">Optional</th>
- <th width="946" scope="col">Beschreibung</th>
+ <th>Name</th>
+ <th>Optional</th>
+ <th>Beschreibung</th>
</tr>
<tr>
<td>&lt;BKU&gt;</td>
@@ -2467,11 +2509,11 @@ Die nachfolgende Form zeigt ein Beispiel f&uuml;r den Aufbau des im BKU-Auswahl
</table>
<p>&nbsp;</p>
<p>Folgende zus&auml;tzliche Tags zur Layout Anpassung (siehe <a href="#konfigurationsparameter_oa_additional_formular">Kapitel 3.2.7.1</a>) stehen optional zur Verf&uuml;gung und k&ouml;nnen &uuml;ber das SL Template an die B&uuml;rgerkartenumgebung &uuml;bergeben werden. Ein Beispiel f&uuml;r die Verwendung dieser zus&auml;tzlichen Tags finden Sie im beigelegten <a href="../../htmlTemplates/template_onlineBKU.html">SL Template</a>.</p>
-<table width="1198" border="1">
+<table class="configtable">
<tr>
- <th width="167" scope="col">Name</th>
- <th width="63" scope="col">Optional</th>
- <th width="946" scope="col">Beschreibung</th>
+ <th>Name</th>
+ <th>Optional</th>
+ <th>Beschreibung</th>
</tr>
<tr>
<td height="24">&lt;REDIRECTTARGET&gt;</td>
@@ -2496,22 +2538,22 @@ Die nachfolgende Form zeigt ein Beispiel f&uuml;r den Aufbau des im BKU-Auswahl
</table>
<p>&nbsp;</p>
<p><strong>Hinweis: </strong>Das in MOA-ID 1.5.1 verwendete Security-Layer Template ist kompatibel zu dem in MOA-ID 2.0 verwendeten Security-Layer Template. Jedoch stehen bei dem Template aus MOA-ID 1.5.1 die zus&auml;tzlichen Parameter zur Konfiguration mittels Konfigurationstool nicht zur Verf&uuml;gung.</p>
-<h1><a name="sp-config" id="sp-config">5 Konfiguration von MOA-SP</a></h1>
+<h2><a name="sp-config" id="sp-config"></a>5 Konfiguration von MOA-SP</h2>
<p>MOA-ID &uuml;berpr&uuml;ft die Signaturen der Personenbindung und des AUTH-Blocks mit dem VerifyXMLSignatureRequest von MOA-SP. Dazu muss MOA-SP wie unten beschreiben konfiguriert werden. <br>
<br>
- <strong verifytransformsinfoprofile"="">VerifyTransformsInfoProfile</strong><br>
+ <strong verifytransformsinfoprofile="">VerifyTransformsInfoProfile</strong><br>
Der Request zum &Uuml;berpr&uuml;fen der Signatur des AUTH-Blocks verwendet ein vordefiniertes VerifyTransformsInfoProfile. Die im Request verwendete Profil-ID wird in der MOA-ID-Auth Konfiguration im Parameter <a href="#konfigurationsparameter_allgemein_moasp">Authentfizierungsblock Transformationen</a> definiert. Entsprechend muss am MOA-SP Server ein VerifyTransformsInfoProfile mit gleichlautender ID definiert werden. Die Profiledefinition selbst ist in der Auslieferung von MOA-ID in $MOA_ID_INST_AUTH/conf/moa-spss/profiles/MOAIDTransformAuthBlockTable_DE_2.0.xml enthalten. Diese Profildefinition muss unver&auml;ndert &uuml;bernommen werden. </p>
<p id="trustProfile"> <strong>TrustProfile</strong><br>
Die Requests zur &Uuml;berpr&uuml;fung der Signatur verwenden vordefinierte TrustProfile. Die im Request verwendete Profil-IDs werden in der MOA-ID-Auth Konfiguration in den Parametern <a href="#konfigurationsparameter_allgemein_moasp">Personenbindung Trustprofil</a> und <a href="#konfigurationsparameter_allgemein_moasp">Authentfizierungsblock Trustprofil</a> definiert. Diese beiden Elemente k&ouml;nnen unterschiedliche oder identische TrustProfileIDs enthalten. Am MOA-SP Server m&uuml;ssen TrustProfile mit gleichlautender ID definiert werden. Die Auslieferung von MOA-ID enth&auml;lt das Verzeichnis $MOA_ID_INST_AUTH/conf/moa-spss/trustprofiles/MOAIDBuergerkarteRoot, das als TrustProfile verwendet werden kann. Weitere Zertifikate k&ouml;nnen als vertrauensw&uuml;rdig hinzugef&uuml;gt werden. </p>
<p id="certstore"> <strong>Certstore</strong><br>
Zum Aufbau eines Zertifikatspfades k&ouml;nnen ben&ouml;tigte Zertifikate aus einem Zertifikatsspeicher verwendet werden. Die Auslieferung von MOA-ID enth&auml;lt das Verzeichnis $MOA_ID_INST_AUTH/conf/moa-spss/certstore, das als initialer Zertifikatsspeicher verwendet werden kann. </p>
<p>Hinweis: Mit dem Wechsel auf Version 1.3 verwendet MOA SP/SS ein neues Format f&uuml;r die XML-Konfigurationsdatei. F&uuml;r die Konvertierung einer &auml;lteren Konfigurationsdatei auf das neue Format steht Ihnen ein Tool zur Verf&uuml;gung. Details dazu finden sie in der der Distribution von MOA-SP/SS beiliegenden Dokumentation im Kapitel 'Konfiguration', Abschnitt 1.2.1.</p>
-<h1><a name="security" id="security">6 Tomcat Security Manager</a></h1>
+<h2><a name="security" id="security"></a>6 Tomcat Security Manager</h2>
<p>Apache Tomcat bietet die M&ouml;glichkeit den Server unter einem Security Manager zu betreiben. Damit ist es m&ouml;glich den lokalen Dateizugriff zu beschr&auml;nken. Mit Hilfe der Datei "catalina.policy" k&ouml;nnen so Zugriffe auf lokale Dateien und Verzeichnisse festgelegt werden. Eine beispielhafte catalina.policy Datei finden Sie im Verzeichnis $MOA_ID_INST_AUTH/tomcat. Diese Datei wurde unter Apache Tomcat 4.1.31, 5.0.28 und 5.5.27 getestet. </p>
<p>Mehr Informationen zum Security Manager entnehmen Sie bitte der entsprechenden Apache Tomcat Dokumentation. </p>
<p>&nbsp;</p>
-<h1><a name="referenzierte_spezifikation" id="uebersicht_zentraledatei_aktualisierung30"></a>A Referenzierte Spezifikation</h1>
-<table class="fixedWidth" border="1" cellpadding="2">
+<h2><a name="referenzierte_spezifikation" id="uebersicht_zentraledatei_aktualisierung30"></a>A Referenzierte Spezifikation</h2>
+<table class="configtable">
<tbody>
<tr>
<th>Spezifikation</th>
@@ -2549,5 +2591,6 @@ Zum Aufbau eines Zertifikatspfades k&ouml;nnen ben&ouml;tigte Zertifikate aus ei
</table>
<p>&nbsp;</p>
<p>&nbsp;</p>
+</div>
</body>
</html>
diff --git a/id/server/doc/handbook/index.html b/id/server/doc/handbook/index.html
index 7e89b7c8f..1f71d56e2 100644
--- a/id/server/doc/handbook/index.html
+++ b/id/server/doc/handbook/index.html
@@ -2,21 +2,35 @@
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" >
+ <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<title>MOA ID - &Uuml;bersicht</title>
<link rel="stylesheet" href="./common/MOA.css" type="text/css">
+ <link href='https://fonts.googleapis.com/css?family=Roboto:300,400' rel='stylesheet' type='text/css'>
</head>
-<body link="#990000">
+<body link="#990000">
+<!--
<table class="logoTable" width="100%" border="0" cellspacing="0" cellpadding="10">
<tr>
- <td align="center" class="logoTitle" width="267"><img src="common/LogoBKA.png" alt="Logo BKA" width="267" height="37" align="left"></td>
+ <div class="container">
+ <td align="center" class="logoTitle" width="267"><img src="common/LogoBKA.png" alt="Logo BKA" width="200" align="left"></td>
<td align="center" class="logoTitle">Dokumentation</td>
- <td align="center" class="logoTitle" width="123"><img src="common/LogoEGIZ.png" alt="Logo EGIZ" width="230" height="81" align="right"></td>
+ <td align="center" class="logoTitle" width="123"><img src="common/LogoEGIZ.png" alt="Logo EGIZ" width="200" align="right"></td>
+ </div>
</tr>
</table>
- <hr/>
- <p class="title">MOA-ID (Identifikation) </p>
- <p class="subtitle">&Uuml;bersicht zur Dokumentation der Version 2.1.2 </p>
- <hr/>
+ -->
+
+ <div id="headline">
+ <div class="container">
+ <a href="http://www.digitales.oesterreich.gv.at/"><img src="common/logo_digAT.png"/></a>
+ <h1>MOA-ID-AUTH </h1>
+ <br/>
+ </div>
+ </div>
+
+<div class="container">
+ <h2>&Uuml;bersicht zur Dokumentation der Version 2.1.2 </h2>
+
<dl>
<dt><a href="./intro/intro.html">Einf&uuml;hrung</a></dt>
<dd>&Uuml;bersicht &uuml;ber die einzelnen Module.</dd>
@@ -38,5 +52,6 @@
<dl>
<dt>&nbsp;</dt>
</dl>
+ </div>
</body>
</html>
diff --git a/id/server/doc/handbook/install/install.html b/id/server/doc/handbook/install/install.html
index 3b1a7e905..aa508183e 100644
--- a/id/server/doc/handbook/install/install.html
+++ b/id/server/doc/handbook/install/install.html
@@ -2,26 +2,23 @@
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
+ <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<title>MOA-ID - Installation</title>
<link rel="stylesheet" href="../common/MOA.css" type="text/css">
+ <link href='https://fonts.googleapis.com/css?family=Roboto:300,400' rel='stylesheet' type='text/css'>
</head>
-<<body link="#990000">
- <table class="logoTable" width="100%" border="0" cellspacing="0" cellpadding="10">
- <tr>
- <td align="center" class="logoTitle" width="267"><img src="../common/LogoBKA.png" alt="Logo BKA" width="267" height="37" align="left"></td>
- <td align="center" class="logoTitle">Dokumentation</td>
- <td align="center" class="logoTitle" width="123">&nbsp;</td>
- </tr>
- </table>
- <hr/>
- <p class="title"><a href="../index.html">MOA-ID (Identifikation) </a></p>
-<p class="subtitle">Installation</p>
- <hr/>
- <h1>Inhalt</h1>
- <ol>
- <li>
- <p><a href="#uebersicht">&Uuml;bersicht</a><span class="logoTitle"><img src="../common/LogoEGIZ.png" alt="Logo EGIZ" width="230" height="81" align="right"></span></p>
- </li>
+<body link="#990000">
+ <div id="headline">
+ <div class="container">
+ <a href="http://www.digitales.oesterreich.gv.at/"><img src="../common/logo_digAT.png"/></a>
+ <a href="../index.html"><h1>MOA-ID-AUTH </h1></a>
+ <br/>
+ </div>
+ </div>
+<div class="container">
+<h1 align="center">Installation</h1>
+ <h2>Inhalt</h2>
+ <ol class="index">
<li>
<p><a href="#webservice">MOA-ID-Auth und MOA-ID-Configuration</a></p>
<ol>
@@ -77,17 +74,16 @@
</li>
</ol>
</ol>
- <ol type="A">
+ <ol type="A" class="index">
<li><a href="#referenzierte_software">Referenzierte Software</a></li>
</ol>
- <hr/>
- <h1><a name="uebersicht" id="uebersicht"></a>1 &Uuml;bersicht</h1>
+ <h2><a name="uebersicht" id="uebersicht"></a>1 &Uuml;bersicht</h2>
<p>Die Module MOA-ID-Auth und MOA-ID-Configuration sind als plattformunabh&auml;ngige Module ausgelegt. MOA-ID-Auth bietet Webservices &uuml;ber HTTPS zur Identifizierung und Authentifizierung an. Das Modul MOA-ID-Configuration stellt eine Weboberfl&auml;che zur Konfiguration des MOA-ID-Auth Modules zur Verf&uuml;gung.</p>
<p>Dieses Handbuch beschreibt die Installation der beiden Module.</p>
-<h1><a name="webservice"></a>2 MOA-ID-Auth und MOA-ID-Configuration</h1>
+<h2><a name="webservice"></a>2 MOA-ID-Auth und MOA-ID-Configuration</h2>
<p>Dieser Abschnitt beschreibt die Installation von der Module MOA-ID-Auth und MOA-ID-Configuration. Im ersten Unterkapitel wird eine minimale Basisinstallation beschrieben. Das zweite Unterkapitel zeigt eine Reihe von optionalen Erweiterungsm&ouml;glichkeiten auf.</p>
- <h2><a name="webservice_basisinstallation" id="webservice_basisinstallation"></a>2.1 Basisinstallation</h2>
- <h3><a name="webservice_basisinstallation_einfuehrung" id="webservice_basisinstallation_einfuehrung"></a>2.1.1 Einf&uuml;hrung </h3>
+ <h3><a name="webservice_basisinstallation" id="webservice_basisinstallation"></a>2.1 Basisinstallation</h3>
+ <h4><a name="webservice_basisinstallation_einfuehrung" id="webservice_basisinstallation_einfuehrung"></a>2.1.1 Einf&uuml;hrung </h4>
<p> Die Basisinstallation der Module MOA-ID-Auth und MOA-ID-Configuration stellt einerseits die minimalen Anforderungen f&uuml;r den Betrieb von MOA-ID dar, andererseits dient sie als Ausgangspunkt f&uuml;r optionale <a href="#webservice_erweiterungsmoeglichkeiten">Erweiterungsm&ouml;glichkeiten</a>.</p>
<p>Die <strong>Mindestanforderungen</strong> f&uuml;r die Basisinstallation sind: </p>
<ul>
@@ -100,8 +96,8 @@
<li><a href="#referenziertesoftware">Apache Tomcat 7.0.50 bzw. Apache Tomcat 8.0.3</a> </li>
</ul>
<p>In diesem Betriebs-Szenario wird das MOA-ID-Auth Webservice und das MOA-ID Konfigurationstool in Tomcat zum Einsatz gebracht. Beide Module k&ouml;nnen sowohl in derselben Tomcat-Instanz, als auch in separaten Tomcat-Instanzen betrieben werden. F&uuml;r den Fall des separaten Betriebs muss die Installation auf beiden Tomcat-Instanzen ausgef&uuml;hrt werden. In beiden F&auml;llen fungiert der Tomcat gleichzeitig als HTTP- und HTTPS-Endpunkt f&uuml;r beide Module. Beide Protokolle werden direkt in Tomcat konfiguriert, wobei MOA-ID-Auth und MOA-ID-Configuration Log4j als Logging Toolkit verwenden.</p>
-<h3><a name="webservice_basisinstallation_installation" id="webservice_basisinstallation_installation"></a>2.1.2 Installation</h3>
-<h4><a name="webservice_basisinstallation_installation_vorbereitung" id="webservice_basisinstallation_installation_vorbereitung"></a>2.1.2.1 Vorbereitung</h4>
+<h4><a name="webservice_basisinstallation_installation" id="webservice_basisinstallation_installation"></a>2.1.2 Installation</h4>
+<h5><a name="webservice_basisinstallation_installation_vorbereitung" id="webservice_basisinstallation_installation_vorbereitung"></a>2.1.2.1 Vorbereitung</h5>
<p>Die folgenden Schritte dienen der Vorbereitung der Installation.</p>
<dl>
<dt>Installation von Java SE</dt>
@@ -121,11 +117,11 @@
<dd>F&uuml;r den Betrieb von MOA-ID 2.0 wird eine Datenbank ben&ouml;tigt, wobei mySQL als Datenbank empfohlen wird (wurde mit mySQL getestet). Der Einsatz eines alternativen Datenbanksystems ist jedoch ebenfalls m&ouml;glich. F&uuml;r den Betrieb werden mindestens zwei getrennte Datenbank Schema ben&ouml;tig, da die Konfiguration und die Session Informationen getrennt abgelegt werden. Erstellen Sie zwei Datenbank Schemas welche von MOA-ID-Auth verwendet werden sollen. Deren Namen k&ouml;nnen z.B. auf <em>moa-id-session</em> f&uuml;r Sessiondaten und <em>moa-id-config</em> f&uuml;r die Konfiguration lauten. Beliebige andere Namen f&uuml;r die Datenbank Schema sind jedoch auch m&ouml;glich.
</dd>
</dl>
-<h4><a name="webservice_basisinstallation_installation_tomcatconfig" id="webservice_basisinstallation_installation_tomcatconfig"></a>2.1.2.2 Konfiguration von Apache Tomcat</h4>
+<h5><a name="webservice_basisinstallation_installation_tomcatconfig" id="webservice_basisinstallation_installation_tomcatconfig"></a>2.1.2.2 Konfiguration von Apache Tomcat</h5>
<p>Die zentrale Konfigurations-Datei von Tomcat ist <code>$CATALINA_HOME/conf/server.xml</code>. Tomcat wird grunds&auml;tzlich mit einer funktionierenden Default-Konfiguration ausgeliefert. </p>
-<h5><a name="webservice_basisinstallation_installation_tomcatconfig_httpconn" id="webservice_basisinstallation_installation_tomcatconfig_httpconn"></a>2.1.2.2.1 Konfiguration des HTTP Connectors</h5>
+<h6><a name="webservice_basisinstallation_installation_tomcatconfig_httpconn" id="webservice_basisinstallation_installation_tomcatconfig_httpconn"></a>2.1.2.2.1 Konfiguration des HTTP Connectors</h6>
<p>Die Tomcat Default-Konfiguration schaltet ausschlie&szlig;lich den Connector f&uuml;r HTTP auf Port 8080 frei. Wir empfehlen diese Konfiguration nur f&uuml;r F&auml;lle, in denen das MOA-ID-Configuration Modul in einer abgeschlossenen Netzwerkumgebung betrieben wird. Das Modul MOA-ID-Auth verlangt f&uuml;r Authentifizierungsanfragen zwingend HTTPS.</p>
-<h5><a name="webservice_basisinstallation_installation_tomcatconfig_httpsconn" id="webservice_basisinstallation_installation_tomcatconfig_httpsconn"></a>2.1.2.2.2 Konfiguration des HTTPS Connectors</h5>
+<h6><a name="webservice_basisinstallation_installation_tomcatconfig_httpsconn" id="webservice_basisinstallation_installation_tomcatconfig_httpsconn"></a>2.1.2.2.2 Konfiguration des HTTPS Connectors</h6>
<p>F&uuml;r den sicheren Betrieb von MOA-ID-AUTH ist die Verwendung von SSL Voraussetzung, sofern nicht ein vorgelagerter Webserver (Apache oder IIS) das SSL-Handling &uuml;bernimmt. Ebenso kann SSL auch f&uuml;r MOA-ID-Configuration verwendet werden.</p>
<p>F&uuml;r die dazu notwendige Konfiguration kann die im vorigen Abschnitt besprochene minimale Tomcat-Konfiguration als Ausgangspunkt verwendet werden: Zun&auml;chst ist der HTTP Connector abzuschalten (auskommentieren). Anschlie&szlig;end ist der HTTPS Connector zu konfigurieren. Das Dokument <a href="http://tomcat.apache.org/tomcat-7.0-doc/ssl-howto.html">Tomcat SSL Configuration HOW-TO </a> gibt einen guten &Uuml;berblick dazu. Grob zusammengefasst sind folgende Schritte durchzuf&uuml;hren: </p>
<ul>
@@ -134,7 +130,7 @@
<li>Falls eine Client-Authentisierung gew&uuml;nscht ist, muss die Konfiguration des SSL-Connectors in <code>$CATALINA_HOME/conf/server.xml</code> angepasst werden.</li>
</ul>
<p>Die Konfiguration des HTTPS Connectors kann entfallen, wenn Tomcat ein Webserver vorgeschaltet ist, und dieser die SSL-Kommunikation mit dem Kunden &uuml;bernimmt (siehe <a href="#webservice_erweiterungsmoeglichkeiten_webserver">Abschnitt 2.2.1</a>).</p>
- <h5><a name="webservice_basisinstallation_installation_spssdeploy" id="webservice_basisinstallation_installation_spssdeploy"></a>2.1.2.3 Einsatz des Moduls MOA-ID-Auth in Tomcat</h5>
+ <h6><a name="webservice_basisinstallation_installation_spssdeploy" id="webservice_basisinstallation_installation_spssdeploy"></a>2.1.2.3 Einsatz des Moduls MOA-ID-Auth in Tomcat</h6>
<p> Um die Module MOA-ID-Auth und MOA-ID-Configuration in Tomcat f&uuml;r den Einsatz vorzubereiten, sind folgende Schritte notwendig:</p>
<ul>
<li>Die Datei <code>$MOA_ID_AUTH_INST/moa-id_auth.war</code> enth&auml;lt das einsatzfertige MOA-ID-Auth Webarchiv und muss ins Verzeichnis <code>$CATALINA_HOME/webapps</code> kopiert werden. Dort wird sie beim ersten Start von Tomcat automatisch ins Verzeichnis <code>$CATALINA_HOME/webapps/moa-id-auth</code> entpackt. </li>
@@ -153,7 +149,7 @@
</ul>
</li>
</ul>
-<h5><a name="moa_id_configuration_deploy" id="webservice_basisinstallation_installation_spssdeploy2"></a>2.1.2.4 Einsatz des Moduls MOA-ID-Configuration in Tomcat</h5>
+<h6><a name="moa_id_configuration_deploy" id="webservice_basisinstallation_installation_spssdeploy2"></a>2.1.2.4 Einsatz des Moduls MOA-ID-Configuration in Tomcat</h6>
<ul>
<li>Die Datei <code>$MOA_ID_AUTH_INST/moa-id_configuration.war</code> enth&auml;lt das einsatzfertige MOA-ID-Configuration Webarchiv und muss ins Verzeichnis <code>$CATALINA_HOME/webapps</code> kopiert werden. Dort wird sie beim ersten Start von Tomcat automatisch ins Verzeichnis <code>$CATALINA_HOME/webapps/moa-id-configuration</code> entpackt. </li>
<li>Die Konfigurationsdatei mit der Basiskonfiguration f&uuml;r MOA-ID-Auth und die zugeh&ouml;rigen Verzeichnisse m&uuml;ssen in ein beliebiges Verzeichnis im Dateisystem kopiert werden (z.B. <code>$CATALINA_HOME/conf/moa-id-configuration</code>). Eine funktionsf&auml;hige Konfiguration, die als Ausgangspunkt f&uuml;r die Basiskonfiguration des MOA-ID-Auth Modules dienen kann, finden Sie <a href="../../../conf/moa-id-configuration/moa-id-configtool.properties">hier</a>. <br>
@@ -169,18 +165,18 @@
</ul>
</li>
</ul>
-<h4><a name="webservice_basisinstallation_installation_tomcatstartstop" id="webservice_basisinstallation_installation_tomcatstartstop"></a>2.1.2.4 Starten und Stoppen von Tomcat</h4>
-<h5><a name="webservice_basisinstallation_installation_tomcatstartstop_windows" id="webservice_basisinstallation_installation_tomcatstartstop_windows"></a>2.1.2.4.1 Unter Windows</h5>
+<h5><a name="webservice_basisinstallation_installation_tomcatstartstop" id="webservice_basisinstallation_installation_tomcatstartstop"></a>2.1.2.4 Starten und Stoppen von Tomcat</h5>
+<h6><a name="webservice_basisinstallation_installation_tomcatstartstop_windows" id="webservice_basisinstallation_installation_tomcatstartstop_windows"></a>2.1.2.4.1 Unter Windows</h6>
<div id="block">
<p>Das Verzeichnis <code>$MOA_IA_AUTH_INST/tomcat/win32</code> enth&auml;lt Script-Dateien zum Starten und Stoppen von Tomcat. Vor der erstmaligen Verwendung der Scripts m&uuml;ssen in den ersten Zeilen die Umgebungsvariablen <code>JAVA_HOME</code> (Basisverzeichnis der eingesetzten Java SE) und <code>CATALINA_HOME</code> (Basisverzeichnis der eingesetzten Tomcat-Installation) angepasst werden. Evtl. m&uuml;ssen Sie auch noch die in den Script-Dateien gesetzten, in Abschnitt 2.1.2.3 besprochenen <span class="term">System Properties</span> anpassen. </p>
</div>
-<h5><a name="webservice_basisinstallation_installation_tomcatstartstop_unix" id="webservice_basisinstallation_installation_tomcatstartstop_unix"></a>2.1.2.4.2 Unter Unix</h5>
+<h6><a name="webservice_basisinstallation_installation_tomcatstartstop_unix" id="webservice_basisinstallation_installation_tomcatstartstop_unix"></a>2.1.2.4.2 Unter Unix</h6>
<p>Zun&auml;chst m&uuml;ssen die in Abschnitt 2.1.2.3 besprochenen <span class="term">System Properties</span> mit Hilfe der Umgebungsvariablen <code>CATALINA_OPTS</code> gesetzt sein. Die Datei <code>$MOA_ID_AUTH_INST/tomcat/unix/moa-env.sh</code> enth&auml;lt ein Beispiel daf&uuml;r. Des Weiteren m&uuml;ssen noch die Umgebungsvariablen <code>JAVA_HOME</code> (Basisverzeichnis der eingesetzten Java SE) und <code>CATALINA_HOME</code> (Basisverzeichnis der eingesetzten Tomcat-Installation) angepasst werden.</p>
<p>Nun kann Tomcat aus seinem Basisverzeichnis mit </p>
<pre>bin/catalina.sh start</pre>
gestartet werden. Das Stoppen von Tomcat erfolgt analog mit
<pre>bin/catalina.sh stop</pre>
-<h5><a name="webservice_basisinstallation_installation_tomcatstartstop_verify" id="webservice_basisinstallation_installation_tomcatstartstop_verify"></a>2.1.2.4.3 Pr&uuml;fen des erfolgreichen Starts </h5>
+<h6><a name="webservice_basisinstallation_installation_tomcatstartstop_verify" id="webservice_basisinstallation_installation_tomcatstartstop_verify"></a>2.1.2.4.3 Pr&uuml;fen des erfolgreichen Starts </h6>
<div id="block">
<p>Ein erfolgreicher Start des MOA-ID-Auth Modules ist an folgender Log-Meldung ersichtlich: <br>
</p>
@@ -200,7 +196,7 @@ http://&lt;host&gt;:&lt;port&gt;/moa-id-configuration/</pre>
https://&lt;host&gt;:&lt;port&gt;/moa-id-auth/
https://&lt;host&gt;:&lt;port&gt;/moa-id-configuration/</pre>
<p>Die Verf&uuml;gbarkeit des Services k&ouml;nnen Sie einfach &uuml;berpr&uuml;fen, indem Sie die Endpunkte mit einem Web-Browser aufgerufen; dies sollte nach erfolgreichem Start zur Anzeige einer Informationsseite f&uuml;hren. </p>
-<h4><a name="webservice_basisinstallation_logging" id="webservice_basisinstallation_logging"></a>2.1.3 Logging </h4>
+<h5><a name="webservice_basisinstallation_logging" id="webservice_basisinstallation_logging"></a>2.1.3 Logging </h5>
<p>Beide Module verwenden <a href="#referenziertesoftware">Log4j</a> f&uuml;r die Ausgabe von Log-Meldungen am Bildschirm bzw. in Log-Dateien. Log4j bietet zahlreiche Konfigurationsm&ouml;glichkeiten, die ausf&uuml;hrlich im Log4j Handbuch beschrieben sind. Unter anderem gibt es die M&ouml;glichkeit, folgende Einstellungen vorzunehmen:
<ul>
<li id="klein">
@@ -227,7 +223,7 @@ https://&lt;host&gt;:&lt;port&gt;/moa-id-configuration/</pre>
</li>
</ul>
<p>Eine f&uuml;r beide Module passende Konfigurationsdatei f&uuml;r Log4j finden Sie <a href="../../../conf/moa-spss/log4j.properties">hier</a>. Wird diese Datei als Logging-Konfiguration verwendet, so werden alle Log-Meldungen sowohl in die Konsole, als auch in die Dateien <code>moa-id-auth.log</code> und <code>moa-id-configuration.log</code> geschrieben. </p>
- <h4><a name="webservice_basisinstallation_logging_format" id="webservice_basisinstallation_logging_format"></a>2.1.3.1 Format der Log-Meldungen</h4>
+ <h5><a name="webservice_basisinstallation_logging_format" id="webservice_basisinstallation_logging_format"></a>2.1.3.1 Format der Log-Meldungen</h5>
<p> Anhand einer konkreten Log-Meldung wird das Format der MOA SP/SS Log-Meldungen erl&auml;utert: </p>
<pre>
INFO | 01 21:25:26,540 | Thread-3 | TID=1049225059594-100 NID=node1
@@ -254,7 +250,7 @@ INFO | 01 21:25:26,540 | Thread-3 | TID=1049225059594-100 NID=node1
<p>Der n&auml;chste Wert <code>01 21:25:26,540</code> gibt den Zeitpunkt an, zu dem die Log-Meldung generiert wurde (in diesem Fall den 1. Tag im aktuellen Monat, sowie die genaue Uhrzeit). </p>
<p> Der Wert <code>Thread-3</code> bezeichnet den Thread, von dem die Anfrage bearbeitet wird.</p>
<p> Der Rest der Zeile einer Log-Meldung ist der eigentliche Text, mit dem das System bestimmte Informationen anzeigt. Im Fehlerfall ist h&auml;ufig ein Java Stack-Trace angef&uuml;gt, der eine genauere Ursachen-Forschung erm&ouml;glicht.</p>
-<h4> <a name="webservice_basisinstallation_logging_messages" id="webservice_basisinstallation_logging_messages"></a>2.1.3.2 Wichtige Log-Meldungen</h4>
+<h5> <a name="webservice_basisinstallation_logging_messages" id="webservice_basisinstallation_logging_messages"></a>2.1.3.2 Wichtige Log-Meldungen</h5>
<p> Neben den im Abschnitt <a href="#webservice_basisinstallation_installation_tomcatstartstop_verify">2.1.2.4.3</a> beschriebenen Log-Meldungen, die anzeigen, ob das Service ordnungsgem&auml;&szlig; gestartet wurde, geben nachfolgenden Log-Meldungen Aufschluss &uuml;ber die Abarbeitung von Anfragen. </p>
<p>Die Entgegennahme einer Anfrage wird angezeigt durch:
@@ -267,32 +263,32 @@ INFO | 01 21:25:26,540 | Thread-3 | TID=1049225059594-100 NID=node1
<p>In diesem Fall gibt der mitgeloggte Stacktrace Auskunft &uuml;ber die Art des Fehlers.</p>
<p> Die tats&auml;chlich &uuml;bertragenen Anfragen bzw. Antworten werden aus Effizienzgr&uuml;nden nur im Log-Level <code>DEBUG</code> angezeigt. </p>
</div>
- <h2><a name="webservice_erweiterungsmoeglichkeiten" id="webservice_erweiterungsmoeglichkeiten"></a>2.2 Erweiterungsm&ouml;glichkeiten</h2>
+ <h3><a name="webservice_erweiterungsmoeglichkeiten" id="webservice_erweiterungsmoeglichkeiten"></a>2.2 Erweiterungsm&ouml;glichkeiten</h3>
<p>Ausgehend von der <a href="#webservice_basisinstallation">Basisinstallation</a> k&ouml;nnen die optionalen Erweiterungen, die in den nachfolgenden Abschnitten beschrieben werden, unabh&auml;ngig und in beliebiger Kombination aufgesetzt werden.</p>
-<h3><a name="webservice_erweiterungsmoeglichkeiten_webserver" id="webservice_erweiterungsmoeglichkeiten_webserver"></a>2.2.1 Vorgeschalteter Webserver</h3>
-<h4><a name="webservice_erweiterungsmoeglichkeiten_webserver_iis" id="webservice_erweiterungsmoeglichkeiten_webserver_iis"></a>2.2.1.1 Microsoft Internet Information Server (MS IIS) </h4>
+<h4><a name="webservice_erweiterungsmoeglichkeiten_webserver" id="webservice_erweiterungsmoeglichkeiten_webserver"></a>2.2.1 Vorgeschalteter Webserver</h4>
+<h5><a name="webservice_erweiterungsmoeglichkeiten_webserver_iis" id="webservice_erweiterungsmoeglichkeiten_webserver_iis"></a>2.2.1.1 Microsoft Internet Information Server (MS IIS) </h5>
<p>Den MOA SP/SS Webservices kann optional ein MS IIS vorgeschaltet sein. In diesem Fall &uuml;bernimmt der MS IIS die HTTP- bzw. HTTPS-Kommunikation mit dem Aufrufer des Webservices. Die Kommunikation zwischen MS IIS und dem in Tomcat eingerichteten MOA-ID Modulen wird durch <span class="term">mod_jk</span> durchgef&uuml;hrt. Die angef&uuml;hrten Konfigurationsschritte gehen von einer MS IIS Standard-Installation aus.</p>
- <h5><a name="webservice_erweiterungsmoeglichkeiten_webserver_iis_jk" id="webservice_erweiterungsmoeglichkeiten_webserver_iis_jk"></a>2.2.1.1.1 Konfiguration von <span class="term">mod_jk</span> im MS IIS</h5>
+ <h6><a name="webservice_erweiterungsmoeglichkeiten_webserver_iis_jk" id="webservice_erweiterungsmoeglichkeiten_webserver_iis_jk"></a>2.2.1.1.1 Konfiguration von <span class="term">mod_jk</span> im MS IIS</h6>
<p> F&uuml;r die Kommunikation des MS IIS mit dem im Tomcat eingerichteten MOA SP/SS Webservice wird das <span class="term">ISAPI</span>-Modul von <span class="term">mod_jk</span> im MS IIS installiert und konfiguriert. Eine detaillierte Installations- und Konfigurationsanleitung gibt das <span class="term"><a href="http://tomcat.apache.org/connectors-doc/webserver_howto/iis.html" target="_blank">mod_jk</a></span><a href="http://tomcat.apache.org/connectors-doc/webserver_howto/iis.html" target="_blank"> IIS HowTo</a>. Beispiele f&uuml;r <code>workers.properties</code> und <code>uriworkermap.properties</code> Dateien liegen im Verzeichnis <code>$MOA_ID_AUTH_INST/tomcat</code> bei.</p>
- <h5><a name="webservice_erweiterungsmoeglichkeiten_webserver_iis_tomcat" id="webservice_erweiterungsmoeglichkeiten_webserver_iis_tomcat"></a>2.2.1.1.2 Konfiguration von Tomcat</h5>
+ <h6><a name="webservice_erweiterungsmoeglichkeiten_webserver_iis_tomcat" id="webservice_erweiterungsmoeglichkeiten_webserver_iis_tomcat"></a>2.2.1.1.2 Konfiguration von Tomcat</h6>
<p>Damit Tomcat die Aufrufe entgegennehmen kann, die von MS IIS mittels <span class="term"> mod_jk</span> weiterleitet werden, muss in <code>$CATALINA_HOME/conf/server.xml</code> der <span class="term">AJP Connector</span> aktiviert werden. Im Gegenzug k&ouml;nnen die Konnektoren f&uuml;r HTTP und HTTPS deaktiviert werden. Das geschieht am einfachsten durch Ein- bzw. Auskommentieren der entsprechenden <code>Connector</code> Konfigurations-Elemente in dieser Datei.</p>
-<h5><a name="webservice_erweiterungsmoeglichkeiten_webserver_iis_ssl" id="webservice_erweiterungsmoeglichkeiten_webserver_iis_ssl"></a>2.2.1.1.3 Konfiguration von SSL</h5>
+<h6><a name="webservice_erweiterungsmoeglichkeiten_webserver_iis_ssl" id="webservice_erweiterungsmoeglichkeiten_webserver_iis_ssl"></a>2.2.1.1.3 Konfiguration von SSL</h6>
<p> Die Dokumentation zum Einrichten von SSL auf dem MS IIS steht nach Installation des IIS unter http://localhost/iisHelp/ oder aber auch auf den Webseiten von Mircrosoft zur Verf&uuml;gung. </p>
- <h4><a name="webservice_erweiterungsmoeglichkeiten_webserver_apache" id="webservice_erweiterungsmoeglichkeiten_webserver_apache"></a>2.2.1.2 Apache</h4>
+ <h5><a name="webservice_erweiterungsmoeglichkeiten_webserver_apache" id="webservice_erweiterungsmoeglichkeiten_webserver_apache"></a>2.2.1.2 Apache</h5>
<p>Den MOA SP/SS Webservices kann ein Apache Webserver vorgeschaltet sein. Das Prinzip funktioniert wie bei MS IIS, auch hier wird <span class="term"> mod_jk</span> f&uuml;r die Kommunikation zwischen Webserver und Tomcat eingesetzt. Die angef&uuml;hrten Konfigurationsschritte gehen von einer Standard-Installation des Apache Webservers aus.</p>
- <h5><a name="webservice_erweiterungsmoeglichkeiten_webserver_apache_jk" id="webservice_erweiterungsmoeglichkeiten_webserver_apache_jk"></a>2.2.1.2.1 Konfiguration von <span class="term"> mod_jk</span> im Apache </h5>
+ <h6><a name="webservice_erweiterungsmoeglichkeiten_webserver_apache_jk" id="webservice_erweiterungsmoeglichkeiten_webserver_apache_jk"></a>2.2.1.2.1 Konfiguration von <span class="term"> mod_jk</span> im Apache </h6>
<p>Um die MOA-ID Module hinter einem Apache Webserver zu betreiben, ist die Konfiguration des Apache-Moduls <span class="term">mod_jk</span> erforderlich. Eine detaillierte Installations- und Konfigurationsanleitung gibt das <span class="term"><a href="http://tomcat.apache.org/connectors-doc/webserver_howto/apache.html" target="_blank">mod_jk</a></span><a href="http://tomcat.apache.org/connectors-doc/webserver_howto/apache.html" target="_blank"> Apache HowTo</a>. Ein Beispiel f&uuml;r eine <code>workers.properties</code> Datei liegt im Verzeichnis <code>$MOA_ID_AUTH_INST/tomcat</code> bei.</p>
<p>Um die MOA-ID Module dem Apache Webserver bekannt zu machen, sind zumindest folgende Eintr&auml;ge im globalen Kontext der Apache-Konfigurationsdatei notwendig:</p>
<pre>LoadModule jk_module /usr/lib/apache/mod_jk.so<br>AddModule jk_module<br>JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories<br>JkWorkersFile conf/workers.properties <br>JkMount /moa-spss/* moaworker </pre>
<p>Die Pfad- und Dateinamen k&ouml;nnen je nach existierender Apache Installation geringf&uuml;gig variieren.</p>
- <h5><a name="webservice_erweiterungsmoeglichkeiten_webserver_apache_tomcat" id="webservice_erweiterungsmoeglichkeiten_webserver_apache_tomcat"></a>2.2.1.2.2 Konfiguration von Tomcat</h5>
+ <h6><a name="webservice_erweiterungsmoeglichkeiten_webserver_apache_tomcat" id="webservice_erweiterungsmoeglichkeiten_webserver_apache_tomcat"></a>2.2.1.2.2 Konfiguration von Tomcat</h6>
<p>Die Konfiguration von Tomcat ist analog zu Abschnitt <a href="#webservice_erweiterungsmoeglichkeiten_webserver_iis_tomcat">2.2.1.1.2</a> durchzuf&uuml;hren.</p>
- <h5><a name="webservice_erweiterungsmoeglichkeiten_webserver_apache_ssl" id="webservice_erweiterungsmoeglichkeiten_webserver_apache_ssl"></a>2.2.1.2.2 Konfiguration von SSL mit <span class="term">mod_SSL</span></h5>
+ <h6><a name="webservice_erweiterungsmoeglichkeiten_webserver_apache_ssl" id="webservice_erweiterungsmoeglichkeiten_webserver_apache_ssl"></a>2.2.1.2.2 Konfiguration von SSL mit <span class="term">mod_SSL</span></h6>
<p>Apache kann in Verbindung mit <span class="term">mod_SSL</span> als SSL-Endpunkt f&uuml;r die MOA-ID Module fungieren. In diesem Fall entf&auml;llt die SSL-Konfiguration in Tomcat, da Apache und Tomcat auch im Fall von SSL Daten via <span class="term">mod_jk</span> austauschen. Eine detaillierte Installations- und Konfigurationsanleitung enth&auml;lt die <a href="http://www.modssl.org/docs/" target="_blank">Online-Dokumentation</a> von <span class="term">mod_SSL</span>.</p>
<p>Bei der Verwendung von Client-Authentisierung muss darauf geachtet werden, dass <span class="term">mod_ssl</span> die HTTP-Header mit den Informationen &uuml;ber das Client-Zertifikat exportiert. Dies wird durch Angabe der folgenden Option in der Apache-Konfiguration erreicht: </p>
<pre>SSLOptions +ExportCertData +StdEnvVars</pre>
<p>Je nach vorhandener SSL-Konfiguration des Apache Webservers kann diese Option im globalen Kontext, im Kontext des Virtual Hosts oder im Kontext eines Verzeichnisses spezifiziert werden.</p>
-<h1><a name="referenzierte_software"></a>A Referenzierte Software</h1>
+<h2><a name="referenzierte_software"></a>A Referenzierte Software</h2>
<p>Auf folgende Software-Pakete wird in diesem Handbuch verwiesen:</p>
<table class="fixedWidth" border="1" cellpadding="2">
<tr>
@@ -312,6 +308,6 @@ INFO | 01 21:25:26,540 | Thread-3 | TID=1049225059594-100 NID=node1
<td>Logging Framework </td>
</tr>
</table>
-
+ </div>
</body>
</html>
diff --git a/id/server/doc/handbook/interfederation/interfederation.html b/id/server/doc/handbook/interfederation/interfederation.html
index f52556e23..6bc3727b4 100644
--- a/id/server/doc/handbook/interfederation/interfederation.html
+++ b/id/server/doc/handbook/interfederation/interfederation.html
@@ -2,23 +2,23 @@
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" >
+ <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<title>MOA-ID - Protokolle</title>
<link rel="stylesheet" href="../common/MOA.css" type="text/css">
+ <link href='https://fonts.googleapis.com/css?family=Roboto:300,400' rel='stylesheet' type='text/css'>
</head>
<body link="#990000">
- <table class="logoTable" width="100%" border="0" cellspacing="0" cellpadding="10">
- <tr>
- <td align="center" class="logoTitle" width="267"><img src="../common/LogoBKA.png" alt="Logo BKA" width="267" height="37" align="left"></td>
- <td align="center" class="logoTitle">Dokumentation</td>
- <td align="center" class="logoTitle" width="123"><img src="../common/LogoEGIZ.png" alt="Logo EGIZ" width="230" height="81" align="right"></td>
- </tr>
- </table>
- <hr/>
- <p class="title"><a href="../index.html">MOA-ID (Identifikation) </a></p>
-<p class="subtitle">Interfederation</p>
- <hr/>
-<h1>Inhalt</h1>
- <ol>
+ <div id="headline">
+ <div class="container">
+ <a href="http://www.digitales.oesterreich.gv.at/"><img src="../common/logo_digAT.png"/></a>
+ <a href="../index.html"><h1>MOA-ID-AUTH </h1></a>
+ <br/>
+ </div>
+ </div>
+<div class="container">
+<h1 align="center">Interfederation</h1>
+ <h2>Inhalt</h2>
+ <ol class="index">
<li><a href="#general">Allgemeines</a>
<ol>
<li><a href="#sequenzediagramm">Sequenzdiagramm</a></li>
@@ -40,9 +40,9 @@
<li><a href="#storkpvpgateway">STORK &lt;-&gt; PVP Gateway</a></li>
</ol>
<p>&nbsp;</p>
- <h1><a name="general" id="konfigurationsparameter_allgemein_bku7"></a>1 Allgemeines</h1>
+ <h2><a name="general" id="konfigurationsparameter_allgemein_bku7"></a>1 Allgemeines</h2>
<p>Ab der Version 2.1.0 des Modulpakets MOA-ID unterst&uuml;tzt das Modul MOA-ID-Auth Single Sign-On Interfederation zwischen Instanzen des Modules MOA-ID-Auth, welche bei unterschiedlichen Service Providern betrieben werden. Die nachfolgende Abbildung zeigt das Blockdiagramm einer solchen Systemkonfiguration und beschreibt die Funktionalit&auml;t auf einer abstrakten Ebene.</p>
- <p><img src="blockdiagramm.png" width="1010" height="618" alt="Blockdiagramm MOA-ID Inderfederation"></p>
+ <div class="smallImgDiv"><img src="blockdiagramm.png" alt="Blockdiagramm MOA-ID Inderfederation"></div>
<ol>
<li>Eine Benutzerin oder ein Benutzer m&ouml;chte sich an einer Online Applikation (Applikation 1) oder einem Service Portal anmelden.</li>
<li>F&uuml;r den Anmeldevorgang wird die Benutzerin oder der Benutzer an den IdentityProvider (MOA-ID IDP 1) welcher die Identifizierung und Authentifizierung durchf&uuml;hrt und eine Single Sign-On (SSO) Session anlegt.</li>
@@ -52,9 +52,9 @@
<li>IDP 2 holt von IDP 1 die Authentifizierungsinformationen f&uuml;r Applikation 2 ab. F&uuml;r die Kommunikation zwischen den beiden IDPs wird PVP 2.1 als Protokoll verwendet. Sollte am IDP 1 keine aktive SSO Session f&uuml;r diesen Benutzer existieren wird eine lokale Authentifizierung der Benutzerin oder des Benutzer an IDP 2 gestartet.</li>
<li>Anschlie&szlig;end wird die Benutzerin oder der Benutzer an Applikation 2 zur&uuml;ckgeleitet und befindet sich im angemeldeten Bereich der Applikation 2.</li>
</ol>
-<h2><a name="sequenzediagramm" id="konfigurationsparameter_allgemein_bku"></a>1.1 Sequenzdiagramm</h2>
+<h3><a name="sequenzediagramm" id="konfigurationsparameter_allgemein_bku"></a>1.1 Sequenzdiagramm</h3>
<p>Das nachfolgende Sequenzdiagramm beschreibt den Ablauf eines Anmeldevorgangs an einer Online Applikation mit Hilfe von Interfederation im Detail wobei in diesem Beispiel als Authentifizierungsprotokoll an der Online Applikation 2 PVP 2.1 und die <a href="#usage_redirect">Variante mit Redirect Servlet</a> verwendet werden. Eine Verwendung aller anderen, durch das Modul MOA-ID-Auth bereitgestellten Authentifizierungsprotokolle ist jedoch ebenfalls m&ouml;glich. Aus Gr&uuml;nden der &Uuml;bersichtlichkeit sind die Schritte 1 - 3 aus dem oben dargestellten Blockdiagramm im Sequenzdiagramm nicht ber&uuml;cksichtigt, da diese Schritte bereits im Kapitel <a href="./../protocol/protocol.html">Protokolle</a> im Detail beschrieben wurden. </p>
-<p><img src="interfederation_sequenz.png" width="1082" height="994" alt="SSO Interfederation Sequenze"></p>
+ <div class="largeImgDiv"><img src="interfederation_sequenz.png" alt="SSO Interfederation Sequenze"></div>
<p>&nbsp;</p>
<ol>
<li>Die Benutzerin oder der Benutzer ist bereits an einer Online Applikation (Application 1) angemeldet und m&ouml;chte sich nun an einer zweiten Online Applikation (Application 2) mittels Single Sign On anmelden. Nach dem Click auf die entsprechende Login Schaltfl&auml;che wird der Anmeldevorgang gestartet.</li>
@@ -84,21 +84,21 @@
<li>Online Applikation 2 validiert die Assertion</li>
<li>Wurde die Validierung der Assertion positiv abgeschlossen wird der Benutzer im sicheren Bereich von Online Applikation zwei angemeldet.</li>
</ol>
-<h1> <a name="config" id="konfigurationsparameter_allgemein_bku2"></a>2 Konfiguration</h1>
+<h2> <a name="config" id="konfigurationsparameter_allgemein_bku2"></a>2 Konfiguration</h2>
<p>Die Konfiguration des Modules MOA-ID-Auth in einer IDP Interfederation ist in zwei Abschnitte unterteilt. Der erste Teil behandelt die Basiskonfiguration des Modules MOA-ID-Auth. Im zweiten Abschnitt erfolgt die Konfiguration der einzelnen IDP Instanzen welche von dieser MOA-ID-Auth verwendet werden k&ouml;nnen oder in einem IDP interfederation Verbund stehen.</p>
<p>Bei IDP Interfederation handelt es sich um eine Erweiterung der Funktionalit&auml;t des Modules MOA-ID-Auth. Die in diesem Abschnitt beschriebene Konfiguration bezieht sich speziell auf den Bereich Interfederation, ersetzt jedoch nicht die Konfiguration des Modules MOA-ID-Auth laut Kapitel <a href="./../config/config.html">Konfiguration</a>.</p>
-<h2><a name="config_basic" id="konfigurationsparameter_allgemein_bku3"></a>2.1 Basiskonfiguration</h2>
+<h3><a name="config_basic" id="konfigurationsparameter_allgemein_bku3"></a>2.1 Basiskonfiguration</h3>
<p>Wird das Modul MOA-ID-Auth in einer IDP Interfederation betrieben muss das PVP 2.1 Protokoll, in der Basiskonfiguration von MOA-ID-Auth konfiguriert werden. Eine Beschreibung der entsprechenden Konfigurationsparameter finden Sie im Kapitel <a href="./../config/config.html#basisconfig_moa_id_auth_param_protocol_pvp21">Protokolle -&gt; PVP 2.1</a>. </p>
-<h2><a name="config_idps" id="konfigurationsparameter_allgemein_bku4"></a>2.2 Konfiguration einzelner IDPs </h2>
+<h3><a name="config_idps" id="konfigurationsparameter_allgemein_bku4"></a>2.2 Konfiguration einzelner IDPs </h3>
<p>Zus&auml;tzlich zu Basiskonfiguration m&uuml;ssen alle f&uuml;r diese IDP Interfederation registrierten IDPs konfiguriert werden. Diese Konfiguration erfolgt &uuml;ber das Modul MOA-ID-Configuration wobei f&uuml;r Interfederation ein eigener Men&uuml;punkt im Hauptmen&uuml; zur Verf&uuml;gung steht. &Uuml;ber diesen Konfigurationspunkt k&ouml;nnen neue IDPs hinzugef&uuml;gt (MOA-ID IDP hinzuf&uuml;gen) oder bestehende IDPs bearbeitet werden wobei alle aktuell hinterlegten IDPs in einer Liste dargestellt werden.</p>
<p>Die Konfiguration der einzelnen IDP Instanzen erfolgt &auml;hnlich zur Konfiguration von Online-Applikationen (siehe <a href="./../config/config.html#konfigurationsparameter_oa">Online-Applikationskonfiguration</a>), jedoch sind f&uuml;r eine IDP Konfiguration nicht alle Konfigurationsparameter aus der Online-Applikationskonfiguration erforderlich.</p>
<p>Im ersten Abschnitt werden allgemeine Informationen zum IDP konfiguriert.</p>
-<table width="1199" border="1">
+<table class="configtable">
<tr>
- <th width="153" scope="col">Name</th>
- <th width="204" scope="col">Beispielwert</th>
- <th width="57" scope="col">Optional</th>
- <th width="757" scope="col">Beschreibung</th>
+ <th>Name</th>
+ <th>Beispielwert</th>
+ <th>Optional</th>
+ <th>Beschreibung</th>
</tr>
<tr>
<td>Online-Applikation ist aktiviert</td>
@@ -128,12 +128,12 @@
</table>
<p>&nbsp;</p>
<p>Der zweite Abschnitt behandelt spezielle Konfigurationsparameter f&uuml;r IDP Interfederation.</p>
-<table width="1199" border="1">
+<table class="configtable">
<tr>
- <th width="153" scope="col">Name</th>
- <th width="204" scope="col">Beispielwert</th>
- <th width="57" scope="col">Optional</th>
- <th width="757" scope="col">Beschreibung</th>
+ <th>Name</th>
+ <th>Beispielwert</th>
+ <th>Optional</th>
+ <th>Beschreibung</th>
</tr>
<tr>
<td><span id="wwlbl_loadIDP_moaIDP_inboundSSO">Eingehendes SSO erlauben</span></td>
@@ -185,13 +185,13 @@
</ul>
</li>
</ul>
-<h1><a name="usage" id="konfigurationsparameter_allgemein_bku6"></a>3 Integration in bestehende Systeme</h1>
+<h2><a name="usage" id="konfigurationsparameter_allgemein_bku6"></a>3 Integration in bestehende Systeme</h2>
<p>Um den Interfederation Mechanismus in ein bestehendes System zu integrieren muss dem protokollspezifischen Authentifizierungsrequest, welcher da das Modul MOA-ID-Auth gesendet wird, ein zus&auml;tzlicher Parameter angef&uuml;gt werden. Dieser Parameter identifiziert den interfederation IDP von welchem eine aktive SSO Session verwendet werden soll. Dieser zus&auml;tzliche Parameter kann als http GET oder als http POST Parameter an MOA-ID-Auth &uuml;bertragen werden. </p>
-<table width="1247" border="1">
+<table class="configtable">
<tr>
- <th width="115" scope="col">Name</th>
- <th width="262" scope="col">Beispielwert</th>
- <th width="848" scope="col">Beschreibung</th>
+ <th>Name</th>
+ <th>Beispielwert</th>
+ <th>Beschreibung</th>
</tr>
<tr>
<td>interIDP</td>
@@ -202,7 +202,7 @@
</table>
<p>&nbsp;</p>
<p>Wie bereits im <a href="#sequenzediagramm">Abschnitt Sequenzdiagramm</a> erw&auml;hnt stehen f&uuml;r die &Uuml;bertragung des zus&auml;tzlichen Parameters zwei Varianten zur Verf&uuml;gung.</p>
-<h2><a name="usage_direct" id="konfigurationsparameter_allgemein_bku8"></a>3.1 Direkte &Uuml;bermittlung im Authentifizierungsrequest</h2>
+<h3><a name="usage_direct" id="konfigurationsparameter_allgemein_bku8"></a>3.1 Direkte &Uuml;bermittlung im Authentifizierungsrequest</h3>
<p>Bei dieser Variante wird der zus&auml;tzliche Parameter <em>interIDP</em> direkt im protokollspezifischen Authentifizierungsrequest, welcher den Authentifizierungsvorgang startet, angef&uuml;gt. In diesem Fall muss der Service Provider, welcher den Authentifizierungsrequest erzeugt, den zus&auml;tzlichen Parameter <em>interIDP</em> einf&uuml;gen. Diese Variante steht f&uuml;r alle verf&uuml;gbaren Authentifizierungsvarianten des Modules MOA-ID-Auth zur Verf&uuml;gung und es existieren keine besonderen Einschr&auml;nkungen. Das nachfolgende Beispiel zeigt die Verwendung in Kombination mit SAML 1 wobei der <em>interIDP</em> Parameter als http GET Parameter &uuml;bermittelt wird.</p>
<pre>&lt;a href="https://&lt;moa-id-server-und-pfad&gt;/StartAuthentication
?Target=&lt;gesch&auml;ftsbereich&gt;
@@ -210,13 +210,13 @@
&amp;bkuURI=&lt;bku-url&gt;
&amp;interIDP=&lt;IDP EntityID&gt;
&gt;</pre>
-<h2><a name="usage_redirect" id="konfigurationsparameter_allgemein_bku9"></a>3.2 Verwendung des Redirect Servlets</h2>
+<h3><a name="usage_redirect" id="konfigurationsparameter_allgemein_bku9"></a>3.2 Verwendung des Redirect Servlets</h3>
<p>Bei dieser Variante wird der zus&auml;tzliche Parameter <em>interIDP</em> und eine Redirect-URL <em>redirecturl</em> an ein Service der MOA-ID-Auth Instanz &uuml;bermittelt. Dieses Service validiert alle Parameter und hinterlegt den Parameter <em>interIDP</em> in einem http Cookie im Browser der Benutzerin oder des Benutzers. Anschlie&szlig;end erfolgt ein Redirect an die im Parameter redirecturl angegebene Service welches den eigentlichen Authentifizierungsrequest erzeugt und an die MOA-ID-Auth Instanz sendet. In diesem Fall ist es nicht erforderlich dass der Authentifizierungsrequest den zus&auml;tzlichen Parameter <em>interIDP</em> enth&auml;lt, da dieser &uuml;ber das zuvor gesetzte http Cookie vom Modul MOA-ID-Auth ausgewertet wird. </p>
-<table width="1247" border="1">
+<table class="configtable">
<tr>
- <th width="115" scope="col">Name</th>
- <th width="262" scope="col">Beispielwert</th>
- <th width="848" scope="col">Beschreibung</th>
+ <th>Name</th>
+ <th>Beispielwert</th>
+ <th>Beschreibung</th>
</tr>
<tr>
<td>interIDP</td>
@@ -232,15 +232,15 @@
</tr>
</table>
<p>&nbsp;</p>
-<h1><a name="vidp" id="konfigurationsparameter_allgemein_bku5"></a>4 STORK VIDP Konfiguration</h1>
+<h2><a name="vidp" id="konfigurationsparameter_allgemein_bku5"></a>4 STORK VIDP Konfiguration</h2>
<p>Das Modul MOA-ID-Auth kann auch als STORK2 VIDP betrieben werden. Diese VIDP Konfiguration erfolgt ebenfalls &uuml;ber den Men&uuml;punkt Interfederation, wobei neues VIDPs mit Hilfe der Schaltfl&auml;che VIDP hinzuf&uuml;gen konfiguriert werden k&ouml;nnen. </p>
<p>Die Konfiguration eines VIDPs erfolgt weitgehend identisch zur Konfiguration einer <a href="./../config/config.html#konfigurationsparameter_oa">Online-Applikation</a>, wobei im Falle eines VIDPs noch folgende zus&auml;tzliche Konfigurationsparameter zur Verf&uuml;gung stehen.</p>
-<table width="1250" border="1">
+<table class="configtable">
<tr>
- <th width="185" scope="col">Name</th>
- <th width="85" scope="col">Beispielwert</th>
- <th width="66" scope="col">Optional</th>
- <th width="886" scope="col">Beschreibung</th>
+ <th>Name</th>
+ <th>Beispielwert</th>
+ <th>Optional</th>
+ <th>Beschreibung</th>
</tr>
<tr>
<td><p>VIDP Interface aktiv</p></td>
@@ -260,10 +260,10 @@
Diese Attributprovider werden f&uuml;r die Abholung einiger Attribute von &ouml;sterreichischen B&uuml;rgern ben&ouml;tigt (Anmeldung in Ausland). Die Eintragung und Auswahl von Attributprovidern ist <span class="term">optional</span>. </p>
<p>W&auml;hrend des Anmeldevorgangs wird der Benutzer an den entsprechenden Attributprovider weitergeleitet. Am Attributprovider werden die erforderlichen Attribute ausgew&auml;hlt und zur&uuml;ck an VIDP (am Service Provider) geliefert. </p>
<br/>
-<table width="1250" border="1">
+<table class="configtable">
<tr>
- <th width="167" scope="col">Name des Plugins</th>
- <th width="781" scope="col">Beschreibung</th>
+ <th>Name des Plugins</th>
+ <th>Beschreibung</th>
</tr>
<tr>
<td>EHvdAttributeProvider</td>
@@ -293,11 +293,11 @@
</table>
<p>&nbsp;</p>
<p>Beispiel eines Eintrages f&uuml;r Attributprovider:</p>
-<pre><table width="1220" border="1">
+<pre><table class="configtable">
<tr>
- <th width="167" scope="col">AP Plugin</th>
- <th width="681" scope="col">URL</th>
- <th width="281" scope="col">Attribute</th>
+ <th>AP Plugin</th>
+ <th>URL</th>
+ <th>Attribute</th>
</tr>
<tr>
<td>MISAttributeRequestProvider</td>
@@ -306,10 +306,10 @@
</tr>
</table></pre>
<p>&nbsp;</p>
-<h1><a name="storkpvpgateway" id="konfigurationsparameter_allgemein_bku10"></a>5 STORK &lt;-&gt; PVP Gateway</h1>
+<h2><a name="storkpvpgateway" id="konfigurationsparameter_allgemein_bku10"></a>5 STORK &lt;-&gt; PVP Gateway</h2>
<p>Das Modul MOA-ID-Auth kann auch als Gateway zwischen dem Portalverbund der &ouml;sterreichischen Beh&ouml;rden und der STORK Infrastruktur betrieben werden. Diese Konfiguration konfiguriert einen Gateway welcher zur Authentifizierung &ouml;sterreichischer Benutzerinnen oder Benutzer im Falle einer STORK Anmeldung mit Hilfe der &ouml;sterreichischen PVP Infrastruktur dient. Der Einsprung zum Gateway erfolgt &uuml;ber den <em>PVPAuthenticationProvider</em> in der <a href="#vidp">VIDP Konfiguration</a>.</p>
<p>Die nachstehende Grafik skizziert den Prozessfluss eines solchen Anmeldevorgangs.</p>
-<p><img src="blockdiagramm_storkpvpgateway.png" width="1000" height="734" alt="Blockdiagramm STORK-PVP Gateway"></p>
+<div class="smallImgDiv"><img src="blockdiagramm_storkpvpgateway.png" alt="Blockdiagramm STORK-PVP Gateway"></div>
<ol>
<li>Eine &ouml;sterreichische Benutzerin oder ein &ouml;sterreichischer Benutzer m&ouml;chte sich an einer europ&auml;ischen Online Applikation (Applikation 1) anmelden.</li>
<li>Die Benutzerin oder der Benutzer wird an den entsprechenden VIDP unter Verwendung des STORK Protokolls zur Authentifizierung weitergeleitet. F&uuml;r den Fall das spezielle Attribute durch die Applikation angefordert wurden (z.B. <em>ECApplicationRole</em>) kann die Authentifizierung nicht am VIDP vorgenommen werden. In diesem Fall erfolgt eine Weiterleitung an den nationalen STORK-PVP Gateway (siehe <a href="#vidp">VIDP Konfiguration</a>).</li>
@@ -322,12 +322,12 @@
</ol>
<p>&nbsp;</p>
<p>Die Konfiguration eines STORK-PVP Gateways besteht aus folgenden Elementen.</p>
-<table width="1199" border="1">
+<table class="configtable">
<tr>
- <th width="153" scope="col">Name</th>
- <th width="204" scope="col">Beispielwert</th>
- <th width="57" scope="col">Optional</th>
- <th width="757" scope="col">Beschreibung</th>
+ <th>Name</th>
+ <th>Beispielwert</th>
+ <th>Optional</th>
+ <th>Beschreibung</th>
</tr>
<tr>
<td>Online-Applikation ist aktiviert</td>
@@ -357,12 +357,13 @@
</tr>
</table>
<p>&nbsp;</p>
-<table width="1199" border="1">
+<table class="configtable">
+<table class="configtable">
<tr>
- <th width="153" scope="col">Name</th>
- <th width="204" scope="col">Beispielwert</th>
- <th width="57" scope="col">Optional</th>
- <th width="757" scope="col">Beschreibung</th>
+ <th>Name</th>
+ <th>Beispielwert</th>
+ <th>Optional</th>
+ <th>Beschreibung</th>
</tr>
<tr>
<td><span id="wwlbl_loadIDP_pVPGateway_entityID">EntityID des PVP Portals:</span></td>
@@ -374,7 +375,7 @@
</table>
<p>&nbsp;</p>
<p>&nbsp;</p>
-<h1><a name="referenzierte_spezifikation" id="uebersicht_zentraledatei_aktualisierung30"></a>A Referenzierte Spezifikation</h1>
+<h2><a name="referenzierte_spezifikation" id="uebersicht_zentraledatei_aktualisierung30"></a>A Referenzierte Spezifikation</h2>
<table class="fixedWidth" border="1" cellpadding="2">
<tbody>
<tr>
@@ -411,5 +412,6 @@
</tr>
</tbody>
</table>
+ </div>
</body>
</html>
diff --git a/id/server/doc/handbook/intro/intro.html b/id/server/doc/handbook/intro/intro.html
index f2af77391..19c9aa72d 100644
--- a/id/server/doc/handbook/intro/intro.html
+++ b/id/server/doc/handbook/intro/intro.html
@@ -2,66 +2,67 @@
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" >
+ <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<title>MOA-ID - Einf&uuml;hrung</title>
<link rel="stylesheet" href="../common/MOA.css" type="text/css">
+ <link href='https://fonts.googleapis.com/css?family=Roboto:300,400' rel='stylesheet' type='text/css'>
</head>
<body link="#990000">
- <table class="logoTable" width="100%" border="0" cellspacing="0" cellpadding="10">
- <tr>
- <td align="center" class="logoTitle" width="267"><img src="../common/LogoBKA.png" alt="Logo BKA" width="267" height="37" align="left"></td>
- <td align="center" class="logoTitle">Dokumentation</td>
- <td align="center" class="logoTitle" width="123"><img src="../common/LogoEGIZ.png" alt="Logo EGIZ" width="230" height="81" align="right"></td>
- </tr>
- </table>
- <hr/>
- <p class="title"><a href="../index.html">MOA-ID (Identifikation) </a></p>
-<p class="subtitle">Einf&uuml;hrung</p>
- <hr/>
- <h1>Inhalt</h1>
- <ol>
- <li><a href="#allgemeines">Allgemeines</a>
- <ol>
+ <div id="headline">
+ <div class="container">
+ <a href="http://www.digitales.oesterreich.gv.at/"><img src="../common/logo_digAT.png"/></a>
+ <a href="../index.html"><h1>MOA-ID-AUTH </h1></a>
+ <br/>
+ </div>
+ </div>
+
+ <div class="container">
+<h1 align="center">Einf&uuml;hrung</h1>
+ <h2>Inhalt</h2>
+ <ul class="index">
+ <li class="index"><a href="#allgemeines">Allgemeines</a>
+ <ul>
<li><a href="#allgemeines_service">Externe Services</a></li>
- </ol>
+ </ul>
</li>
- <li><a href="#ss">MOA-ID-Auth </a>
- <ol>
+ <li class="index"><a href="#moaidauth">MOA-ID-Auth </a>
+ <ul>
<li><a href="#ablauf">Ablauf einer Anmeldung</a></li>
- </ol>
+ </ul>
</li>
- <li><a href="#sp">MOA-ID-Configuration</a></li>
- </ol>
-<hr/>
- <h1><a name="allgemeines"></a>1 Allgemeines</h1>
- <p> Das Module MOA-ID-Auth kann von Anwendungen zur Identifizierung und Authentifizierung im Rahmen eines Anmeldeprozesses an einer Online-Applikation verwendet werden. Die Konfiguration des Modules MOA-ID-Auth erfolgt mit Hilfe des Zusatzmodules MOA-ID-Configuration welches eine web-basierte Konfigurationsschnittstelle zur Verf&uuml;gung stellt.</p>
+ <li class="index"><a href="#config">MOA-ID-Configuration</a></li>
+ </ul>
+ <h2><a name="allgemeines"></a>1 Allgemeines</h2>
+ <p> Das Modul MOA-ID-Auth kann von Anwendungen zur Identifizierung und Authentifizierung im Rahmen eines Anmeldeprozesses an einer Online-Applikation verwendet werden. Die Konfiguration des Modules MOA-ID-Auth erfolgt mit Hilfe des Zusatzmodules MOA-ID-Configuration welches eine web-basierte Konfigurationsschnittstelle zur Verf&uuml;gung stellt.</p>
<p>Das nachfolgende Blockdiagramm zeigt Struktur von MOA-ID und gibt eine kurze Beschreibung der einzelnen Komponenten.</p>
- <p><img src="Blockdiagramm.png" alt="Architektur MOA-ID" width="1000" height="678"></p>
- <p>&nbsp;</p>
+ <br/>
+ <p class="centeredimage"><img src="Blockdiagramm.png" alt="Architektur MOA-ID" width="95%" align="middle"></p>
+ <br/>
<p>MOA-ID besteht aus folgenden Kernkomponenten:</p>
<ol>
- <li><u>CORE LOGIC</u>: Diese Komponente ist die zentrale Logik zur Steuerung der einzelnen Prozesse innerhalb MOA-ID 2.x.</li>
- <li><u>Protocol Adapter</u>: Stellt die in MOA-ID 2.x unterst&uuml;tzten <a href="../protocol/protocol.html">Authentifizierungsprotokolle</a> f&uuml;r die Anbindung von Service Providern zur Verf&uuml;gung.</li>
- <li><u>Auth Sources</u>: Stellt die von MOA-ID 2.x unterst&uuml;tzten Identifikationsmechanismen und Single Sign-On Management Funktionen zur Verf&uuml;gung. Dies sind die &ouml;sterreichische B&uuml;rgerkarte oder Handy-Signatur, die Anmeldung ausl&auml;ndischer Personen mit Hilfe des STORK Protokoll oder mittels Single Sign-On von einem weiteren vertrauensw&uuml;rdigen Identity Provider (Interfederation). Dieses Modul beinhaltet somit alle jene Funktionen welche f&uuml;r den Authentifizierungs- oder Abmeldeprocess erforderlich sind. </li>
- <li><u>Template Generator</u>: Der Template Generator erzeugt f&uuml;r Service Provider die entsprechenden Login-Masken f&uuml;r die Integration in die eigene Web-Applikation.</li>
- <li><u>SSO Module</u>: Das Single Sign-On (SSO) Modul verwaltet die zus&auml;tzlichen Operationen die sich aus der Umsetzung von SSO ergeben. Dies umfasst im Besonderen das SSO Session-Management.</li>
- <li><u>Statistic Module</u>: Dieses Modul dient zur Generierung von anonymisierten Statistikdaten aus den Anmeldeinformationen. </li>
- <li><u>Monitoring &amp; Testing Module</u>: Dieses Modul implementiert Methoden mit deren Hilfe einzelne funktionale Bereiche aus MOA-ID-Auth getestet werden k&ouml;nnen. Somit dient dieses Modul als Schnittstellte zu einem externen Monitoring-Service.</li>
- <li><u>Configuration</u><u> Modul</u>: Dieses Modul stellt die Schnittstelle zur MOA-ID-Auth Konfiguration dar welche in einer Datenbank abgelegt wird. </li>
- <li><u>Konfigurationstool</u>: Oberfl&auml;che, mit deren Hilfe MOA-ID konfiguriert werden kann. Dies umfasst sowohl allgemeine Konfigurationsteile als auch die Konfiguration der einzelnen bei MOA-ID-Auth registrierten Online-Applikationen. Service Provider k&ouml;nnen sich am Konfigurationstool mittels B&uuml;rgerkarte oder Handy-Signatur anmelden und ihre Online-Applikationen verwalten.</li>
+ <li><b>CORE LOGIC</b>: Diese Komponente ist die zentrale Logik zur Steuerung der einzelnen Prozesse innerhalb MOA-ID 2.x.</li>
+ <li><b>Protocol Adapter</b>: Stellt die in MOA-ID 2.x unterst&uuml;tzten <a href="../protocol/protocol.html">Authentifizierungsprotokolle</a> f&uuml;r die Anbindung von Service Providern zur Verf&uuml;gung.</li>
+ <li><b>Auth Sources</b>: Stellt die von MOA-ID 2.x unterst&uuml;tzten Identifikationsmechanismen und Single Sign-On Management Funktionen zur Verf&uuml;gung. Dies sind die &ouml;sterreichische B&uuml;rgerkarte oder Handy-Signatur, die Anmeldung ausl&auml;ndischer Personen mit Hilfe des STORK Protokoll oder mittels Single Sign-On von einem weiteren vertrauensw&uuml;rdigen Identity Provider (Interfederation). Dieses Modul beinhaltet somit alle jene Funktionen welche f&uuml;r den Authentifizierungs- oder Abmeldeprocess erforderlich sind. </li>
+ <li><b>Template Generator</b>: Der Template Generator erzeugt f&uuml;r Service Provider die entsprechenden Login-Masken f&uuml;r die Integration in die eigene Web-Applikation.</li>
+ <li><b>SSO Module</b>: Das Single Sign-On (SSO) Modul verwaltet die zus&auml;tzlichen Operationen die sich aus der Umsetzung von SSO ergeben. Dies umfasst im Besonderen das SSO Session-Management.</li>
+ <li><b>Statistic Module</b>: Dieses Modul dient zur Generierung von anonymisierten Statistikdaten aus den Anmeldeinformationen. </li>
+ <li><b>Monitoring &amp; Testing Module</b>: Dieses Modul implementiert Methoden mit deren Hilfe einzelne funktionale Bereiche aus MOA-ID-Auth getestet werden k&ouml;nnen. Somit dient dieses Modul als Schnittstellte zu einem externen Monitoring-Service.</li>
+ <li><b>Configuration</b><b> Modul</b>: Dieses Modul stellt die Schnittstelle zur MOA-ID-Auth Konfiguration dar welche in einer Datenbank abgelegt wird. </li>
+ <li><b>Konfigurationstool</b>: Oberfl&auml;che, mit deren Hilfe MOA-ID konfiguriert werden kann. Dies umfasst sowohl allgemeine Konfigurationsteile als auch die Konfiguration der einzelnen bei MOA-ID-Auth registrierten Online-Applikationen. Service Provider k&ouml;nnen sich am Konfigurationstool mittels B&uuml;rgerkarte oder Handy-Signatur anmelden und ihre Online-Applikationen verwalten.</li>
</ol>
- <h2><a name="allgemeines_service" id="allgemeines_service"></a>1.1 Externe Services</h2>
+ <h3><a name="allgemeines_service" id="allgemeines_service"></a>1.1 Externe Services</h3>
<p>F&uuml;r die Anmeldung in Vertretung und die Anmeldung ausl&auml;ndischer Personen werden zus&auml;tzliche externe Services verwendet.</p>
- <h3><a name="allgemeines_service_ovs" id="allgemeines_service2"></a>1.1.1 Online-Vollmachten</h3>
+ <h4><a name="allgemeines_service_ovs" id="allgemeines_service2"></a>1.1.1 Online-Vollmachten</h4>
<p>Ab der MOA-ID Release 1.5.0 werden Online-Vollmachten (f&uuml;r Anwendungen aus dem &ouml;ffentlichen Bereich) unterst&uuml;tzt. Hierzu werden diese Vollmachten &uuml;ber ein Online-Vollmachten-Service ausgew&auml;hlt. Der Zugang zu diesem Online-Vollmachten Service ist &uuml;ber eine Client-Server Authentifizierung abgesichert. Als Client-Zertifikate werden Zertifikate der Firmen A-Trust bzw. A-CERT, die mit der Verwaltungs- oder Dienstleistereigenschaft versehen sind, akzeptiert. </p>
- <h3><a name="allgemeines_service_szrgw" id="allgemeines_service3"></a>1.1.2 Ausl&auml;ndische B&uuml;rger</h3>
+ <h4><a name="allgemeines_service_szrgw" id="allgemeines_service3"></a>1.1.2 Ausl&auml;ndische B&uuml;rger</h4>
<p> Ab der MOA-ID Release 1.4.7 ist es m&ouml;glich, dass sich auch ausl&auml;ndische B&uuml;rger mittels MOA-ID einloggen k&ouml;nnen. Hierzu wird eine Verbindung zu einem sogenannten Stammzahlenregister-Gateway aufgebaut, dass basierend auf den Zertifikatsdaten des ausl&auml;ndischen B&uuml;rgers eine Eintragung im Erg&auml;nzungsregister f&uuml;r nat&uuml;rliche Personen gem&auml;&szlig; E-Government Gesetz &sect;6(5) vornimmt. Somit ist es m&ouml;glich, dass eine Personenbindung ausgestellt werden kann, die in weitere Folge an MOA-ID weitergeleitet wird. Der Zugang zu diesem Stammzahlenregister-Gateway ist &uuml;ber eine Client-Server Authentifizierung abgesichert. Als Client-Zertifikate werden Zertifikate der Firmen A-Trust bzw. A-CERT, die mit der Verwaltungs- oder Dienstleistereigenschaft versehen sind, akzeptiert. </p>
-<h1><a name="moaidauth" id="moaidauth"></a>2 MOA-ID-Auth</h1>
+<h2><a name="moaidauth" id="moaidauth"></a>2 MOA-ID-Auth</h2>
<p>Das Modul MOA-ID-Auth dient der Identifizierung und Authentifizierung im Rahmen eines Anmeldevorgangs an einer Online-Applikation. Die Identifizierung und Authentifizierung erfolgt mit B&uuml;rgerkarte, Handy-Signatur oder f&uuml;r ausl&auml;ndische Personen mittels STORK.</p>
<p>Die Funktionalit&auml;t und der Aufbau der Schnittstellen des Modules MOA-ID-Auth in Richtung Online-Applikation werden im Kapitel <a href="../protocol/protocol.html">Protokolle</a> beschrieben.
<p>F&uuml;r den Betrieb von MOA-ID-Auth ist der Einsatz von MOA-Signaturpr&uuml;fung (MOA-SP) erforderlich.</p>
-<h2><a name="ablauf" id="ablauf"></a> 2.1 Ablauf einer Anmeldung</h2>
+<h3><a name="ablauf" id="ablauf"></a> 2.1 Ablauf einer Anmeldung</h3>
<p>Die nachfolgende Grafik beschreibt den Ablauf eines Abmeldevorgangs an einer Online-Applikation mit Hilfe von MOA-ID-Auth unter Verwendung der B&uuml;rgerkarte oder der Handy-Signatur.</p>
-<p><img src="anmeldeablauf.png" width="947" height="881" alt="Sequenzdiagramm eines Anmeldevorgangs mit MOA-ID-Auth"></p>
+<p class="centeredimage"><img src="anmeldeablauf.png" alt="Sequenzdiagramm eines Anmeldevorgangs mit MOA-ID-Auth" width="95%"></p>
<p>&nbsp;</p>
<ol>
<li>Der Benutzer verbindet sich zu einem Web-Portal (Service Provider) &uuml;ber das die Online-Applikation erreichbar ist. Nach der Bet&auml;tigung eines Login-Buttons wird der Anmeldevorgang ausgel&ouml;st.</li>
@@ -69,10 +70,10 @@
<li>MOA-ID-Auth validiert die Authentifizierungsanfrage des Service Providers</li>
<li>MOA-ID-Auth bietet dem Benutzer eine Auswahl von verf&uuml;gbaren Authentifizierungsmethoden (B&uuml;rgerkarte, Handy-Signatur, STORK) an.</li>
<li>Der Benutzer w&auml;hlt die gew&uuml;nschte Authentifizierungsmethode und sendet diese an MOA-ID-Auth.</li>
- <li>MOA-ID-AUTH erzeugt eine HTML-Seite mit einem &lt;InfoboxReadRequest&gt; zum Auslesen der Personenbindung. Diese HTML-Seite wird an den Browser geschickt.</li>
- <li>Der Browser schickt den &lt;InfoboxReadRequest&gt; an die ausgew&auml;hlte Bürgerkartenumgebung unter Verwendung des Security-Layer. Die Bürgerkartenumgebung liest die Personenbindung von der B&uuml;rgerkarte und sendet diese an MOA-ID-AUTH. MOA-ID-Auth prüft die Signatur der Personenbindung durch einen Aufruf von MOA-SP.</li>
- <li>MOA-ID-AUTH erstellt den AUTH-Block. Der AUTH-Block enth&auml;lt Vor- und Nachname aus der Personenbindung, URL von MOA-ID-AUTH, URL und Gesch&auml;ftsbereich der Online-Applikation oder im Falle einer SSO Anmeldung die URL und den Gesch&auml;ftsbereich der MOA-ID-Auth Instanz, die aktuelle Zeit, das aktuelle Datum und einen Zufallswert f&uuml;r diesen Anmeldevorgang. Anschlie&szlig;end wird eine XML Antwortseite, die das Kommando zum Signieren (&lt;CreateXMLSignatureRequest&gt;) des generierten AUTH-Blocks enth&auml;lt, an die ausgew&auml;hlte Bürgerkartenumgebung, unter Verwendung des Security-Layers, gesendet.</li>
- <li>Der Request wird von der Bürgerkartenumgebung verarbeitet. Die signierten Daten werden an MOA-ID-AUTH zur&uuml;ckgesendet.</li>
+ <li>MOA-ID-Auth erzeugt eine HTML-Seite mit einem &lt;InfoboxReadRequest&gt; zum Auslesen der Personenbindung. Diese HTML-Seite wird an den Browser geschickt.</li>
+ <li>Der Browser schickt den &lt;InfoboxReadRequest&gt; an die ausgew&auml;hlte Bürgerkartenumgebung unter Verwendung des Security-Layer. Die Bürgerkartenumgebung liest die Personenbindung von der B&uuml;rgerkarte und sendet diese an MOA-ID-Auth. MOA-ID-Auth prüft die Signatur der Personenbindung durch einen Aufruf von MOA-SP.</li>
+ <li>MOA-ID-Auth erstellt den AUTH-Block. Der AUTH-Block enth&auml;lt Vor- und Nachname aus der Personenbindung, URL von MOA-ID-Auth, URL und Gesch&auml;ftsbereich der Online-Applikation oder im Falle einer SSO Anmeldung die URL und den Gesch&auml;ftsbereich der MOA-ID-Auth Instanz, die aktuelle Zeit, das aktuelle Datum und einen Zufallswert f&uuml;r diesen Anmeldevorgang. Anschlie&szlig;end wird eine XML Antwortseite, die das Kommando zum Signieren (&lt;CreateXMLSignatureRequest&gt;) des generierten AUTH-Blocks enth&auml;lt, an die ausgew&auml;hlte Bürgerkartenumgebung, unter Verwendung des Security-Layers, gesendet.</li>
+ <li>Der Request wird von der Bürgerkartenumgebung verarbeitet. Die signierten Daten werden an MOA-ID-Auth zur&uuml;ckgesendet.</li>
<li>MOA-ID-Auth &uuml;berpr&uuml;ft den signierten AUTH-Block und generiert Information f&uuml;r weitere Anmeldungen mittels Single Sign-On.</li>
<li>MOA-ID-Auth generiert die Anmeldedaten (Assertion) welche folgende Information enthalten:
<ul>
@@ -89,7 +90,7 @@
<li> MOA-ID-Auth sendet die Anmeldedaten an den Service-Provider und setzt im Browser des Benutzers ein SSO Session-Token welches f&uuml;r weitere Anmeldevorg&auml;nge verwendet werden kann.</li>
<li>Die Anmeldedaten werden vom Service-Provider verarbeitet und der Benutzer wird vom Service-Provider an die Online-Applikation weitergeleitet. </li>
</ol>
-<h1><a name="config" id="config"></a>3 MOA-ID-Configuration </h1>
+<h2><a name="config" id="config"></a>3 MOA-ID-Configuration </h2>
<p>Das Modul MOA-ID-Configuration stellt eine web-basierte Benutzerschnittstelle zur Konfiguration des Moduls MOA-ID-Auth zur Verf&uuml;gung, wobei sich die Konfiguration in zwei Teilbereiche unterteilt ist. Eine detaillierte Aufstellung der einzelnen Konfigurationspunkte befindet sich im Kapitel <a href="../config/config.html">Konfiguration</a>.</p>
<ol>
<li>Allgemeine Konfiguration<br>
@@ -99,5 +100,6 @@
</ol>
<p>Zus&auml;tzlich unterst&uuml;tzt das Module MOA-ID-Configuration auch eine einfache Benutzerverwaltung mit Rechtevergabe mit deren Hilfe die Verwaltung von Online-Applikationen an den jeweiligen Service-Provider ausgelagert werden kann. Die Anmeldung am Konfigurationstool erfolgt mittels B&uuml;rgerkarte, Handysignatur oder STORK, wobei optional auch eine Anmeldung mittels Benutzername und Passwort zur Verf&uuml;gung steht.</p>
<p>&nbsp;</p>
+ </div>
</body>
</html>
diff --git a/id/server/doc/handbook/protocol/protocol.html b/id/server/doc/handbook/protocol/protocol.html
index 1c6e51661..6214c393c 100644
--- a/id/server/doc/handbook/protocol/protocol.html
+++ b/id/server/doc/handbook/protocol/protocol.html
@@ -4,21 +4,22 @@
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" >
<title>MOA-ID - Protokolle</title>
<link rel="stylesheet" href="../common/MOA.css" type="text/css">
+ <link href='https://fonts.googleapis.com/css?family=Roboto:300,400' rel='stylesheet' type='text/css'>
</head>
<body link="#990000">
- <table class="logoTable" width="100%" border="0" cellspacing="0" cellpadding="10">
- <tr>
- <td align="center" class="logoTitle" width="267"><img src="../common/LogoBKA.png" alt="Logo BKA" width="267" height="37" align="left"></td>
- <td align="center" class="logoTitle">Dokumentation</td>
- <td align="center" class="logoTitle" width="123"><img src="../common/LogoEGIZ.png" alt="Logo EGIZ" width="230" height="81" align="right"></td>
- </tr>
- </table>
- <hr/>
- <p class="title"><a href="../index.html">MOA-ID (Identifikation) </a></p>
-<p class="subtitle">Protokolle</p>
- <hr/>
-<h1>Inhalt</h1>
- <ol>
+ <div id="headline">
+ <div class="container">
+ <a href="http://www.digitales.oesterreich.gv.at/"><img src="../common/logo_digAT.png"/></a>
+ <a href="../index.html"><h1>MOA-ID-AUTH </h1></a>
+ <br/>
+ </div>
+ </div>
+
+<div class="container">
+<h1>Protokolle</h1>
+
+<h2>Inhalt</h2>
+ <ol class="index">
<li><a href="#allgemeines">Allgemeines</a>
<ol>
<li><a href="#allgemeines_zugangspunkte">&Uuml;bersicht der Zugangspunkte</a></li>
@@ -78,18 +79,18 @@
<li><a href="#referenzierte_spezifikation">Referenzierte Spezifikation</a></li>
</ol>
-<hr/>
- <h1><a name="allgemeines"></a>1 Allgemeines</h1>
- <p>Dieses Kapitel behandelt jene Authentifizierungsprotokolle die vom Modul MOA-ID-Auth unterstützt werden.
+
+ <h2><a name="allgemeines"></a>1 Allgemeines</h2>
+ <p>Dieses Kapitel behandelt jene Authentifizierungsprotokolle die vom Modul MOA-ID-Auth unterstützt werden.
Wobei die Verwendung der Protokolle PVP 2.1 oder OpenID Connect empfohlen wird. Das Protokoll SAML 1, welches bis zur MOA-ID Version 1.5.1
- verwendet wurde, wird jedoch ab der Version 2.0 nur mehr aus Kompatibilitätsgründen angeboten und nicht mehr aktiv weiterentwickelt.</p>
-<h2><a name="allgemeines_zugangspunkte" id="allgemeines_zugangspunkte"></a>1.1 &Uuml;bersicht der Zugangspunkte</h2>
+ verwendet wurde, wird jedoch ab der Version 2.0 nur mehr aus Kompatibilitätsgründen angeboten und nicht mehr aktiv weiterentwickelt.</p>
+<h3><a name="allgemeines_zugangspunkte" id="allgemeines_zugangspunkte"></a>1.1 &Uuml;bersicht der Zugangspunkte</h3>
<p>In diesem Abschnitt sind die Zugangspunkte der vom Modul MOA-ID-Auth unterst&uuml;tzten Protokolle kurz zusammengefasst. Eine detaillierte Beschreibung der einzelnen Protokolle finden Sie in den anschlie&szlig;enden Unterkapiteln. </p>
- <table width="1247" border="1">
+ <table class="configtable">
<tr>
- <th width="164" scope="col">Protokoll</th>
- <th width="168" scope="col">Requesttyp</th>
- <th width="893" scope="col">URL</th>
+ <th>Protokoll</th>
+ <th>Requesttyp</th>
+ <th>URL</th>
</tr>
<tr>
<td><a href="#pvp21">PVP 2.1</a></td>
@@ -122,12 +123,12 @@ Redirect Binding</td>
<td><a href="#openid">OpenID Connect</a></td>
<td>Authentifizierungsrequest <br>
(AuthCode-Request)</td>
- <td>https://&lt;host&gt;:&lt;port&gt;/moa-id-auth/oauth2/auth</td>
+ <td>https://&lt;host&gt;:&lt;port&gt;/moa-id-auth/oauth3/auth</td>
</tr>
<tr>
<td><a href="#openid">OpenID Connect</a></td>
<td><p>AccessToken-Request</p></td>
- <td>https://&lt;host&gt;:&lt;port&gt;/moa-id-auth/oauth2/token</td>
+ <td>https://&lt;host&gt;:&lt;port&gt;/moa-id-auth/oauth3/token</td>
</tr>
<tr>
<td><a href="#saml1">SAML 1</a></td>
@@ -153,21 +154,21 @@ Redirect Binding</td>
<p>http://&lt;host&gt;:&lt;port&gt;/moa-id-auth/idpSingleLogout</p></td>
</tr>
</table>
- <h2><a name="allgemeines_attribute" id="allgemeines_zugangspunkte2"></a>1.2 &Uuml;bersicht der m&ouml;glichen Attribute</h2>
+ <h3><a name="allgemeines_attribute" id="allgemeines_zugangspunkte2"></a>1.2 &Uuml;bersicht der m&ouml;glichen Attribute</h3>
<p>Die nachfolgende Tabelle beinhaltet eine Liste aller Attribute die vom Modul MOA-ID-Auth an die Online-Applikation zur&uuml;ckgeliefert werden k&ouml;nnen, sofern diese nach der Authentifizierung zur Verf&uuml;gung stehen. Alle Namen beziehen sich auf den Attributnamen im jeweiligen Protokoll. Detailinformationen zu den einzelnen Attributen finden Sie in der <a href="#referenzierte_spezifikation">PVP 2.1 Spezifikation</a> der der <a href="#referenzierte_spezifikation">STORK Spezifikation</a>.</p>
-<table width="1247" border="1">
+<table class="configtable">
<tr>
<th colspan="4" align="center" valign="middle" scope="col">Protokolle</th>
- <th width="429" rowspan="3" scope="col">Beschreibung</th>
+ <th rowspan="3" scope="col">Beschreibung</th>
</tr>
<tr>
- <th width="208" rowspan="2" scope="col">PVP 2.1</th>
+ <th rowspan="2" scope="col">PVP 2.1</th>
<th colspan="2" scope="col">OpenID Connect</th>
- <th width="335" rowspan="2" scope="col">SAML 1</th>
+ <th rowspan="2" scope="col">SAML 1</th>
</tr>
<tr>
- <th width="188" scope="col">Name</th>
- <th width="53" scope="col">Profil</th>
+ <th>Name</th>
+ <th>Profil</th>
</tr>
<tr>
<td>urn:oid:1.2.40.0.10.2.1.1.149</td>
@@ -515,16 +516,16 @@ Redirect Binding</td>
<p><strong>Hinweis:</strong> Dieses Attribut steht nur bei einer Anmeldung mittels STORK zur Verf&uuml;gung.</p></td>
</tr>
</table>
-<h2><a name="statuscodes" id="allgemeines_zugangspunkte6"></a>1.3 &Uuml;bersicht der m&ouml;glichen MOA-ID spezifischen Statuscodes</h2>
+<h3><a name="statuscodes" id="allgemeines_zugangspunkte6"></a>1.3 &Uuml;bersicht der m&ouml;glichen MOA-ID spezifischen Statuscodes</h3>
<p>Vom Modul MOA-ID-Auth werden verschiedene Authentifizierungsprotokolle wobei diese Protokolle die Fehlerr&uuml;ckgabe unterschiedlich spezifizieren. Zus&auml;tzlich zu den protokollabh&auml;ngigen Statuscodes (<a href="#referenzierte_spezifikation">siehe Spezifikation des jeweiligen Protokolls</a>) werden zus&auml;tzliche protokollunabh&auml;ngige Statuscodes an den Service Provider zur&uuml;ckgeliefert, wobei sich das Format der Fehlerr&uuml;ckgabe jedoch weiterhin protokollspezifisch ist.</p>
<p>Die nachfolgende Tabelle zeigt alle protokollunabh&auml;ngigen Statuscodes welche vom Modul MOA-ID-Auth zur&uuml;ckgeliefert werden k&ouml;nnen.</p>
-<h3><a name="statuscodes_1xxxx" id="allgemeines_zugangspunkte7"></a>1.3.1 Statuscodes 1xxxx</h3>
+<h4><a name="statuscodes_1xxxx" id="allgemeines_zugangspunkte7"></a>1.3.1 Statuscodes 1xxxx</h4>
<p>Alle Statuscodes beginnend mit der Zahl eins beschreiben Fehler welche w&auml;hrend des Identifizierungs- und Authentifizierungsvorgangs aufgetreten sind.</p>
-<h4><a name="statuscodes_10xxx" id="allgemeines_zugangspunkte11"></a>1.3.1.1 Authentifizierung (10xxx)</h4>
-<table width="1237" border="1">
+<h5><a name="statuscodes_10xxx" id="allgemeines_zugangspunkte11"></a>1.3.1.1 Authentifizierung (10xxx)</h5>
+<table class="configtable">
<tr>
- <th width="214" scope="col">Statuscode</th>
- <th width="1007" scope="col">Beschreibung</th>
+ <th>Statuscode</th>
+ <th>Beschreibung</th>
</tr>
<tr>
<td>1000</td>
@@ -559,11 +560,11 @@ Redirect Binding</td>
<td>Vollmachtsmodus f&uuml;r ausl&auml;ndische Personen wird nicht unterst&uuml;tzt.</td>
</tr>
</table>
-<h4><a name="statuscodes_11xxx" id="allgemeines_zugangspunkte12"></a>1.3.1.2 Validierung (11xxx)</h4>
-<table width="1237" border="1">
+<h5><a name="statuscodes_11xxx" id="allgemeines_zugangspunkte12"></a>1.3.1.2 Validierung (11xxx)</h5>
+<table class="configtable">
<tr>
- <th width="214" scope="col">Statuscode</th>
- <th width="1007" scope="col">Beschreibung</th>
+ <th>Statuscode</th>
+ <th>Beschreibung</th>
</tr>
<tr>
<td>1100</td>
@@ -606,11 +607,11 @@ Redirect Binding</td>
<td>Fehler beim Validieren der SZR-Gateway Response</td>
</tr>
</table>
-<h4><a name="statuscodes_12xxx" id="allgemeines_zugangspunkte13"></a>1.3.1.3 STORK (12xxx)</h4>
-<table width="1237" border="1">
+<h5><a name="statuscodes_12xxx" id="allgemeines_zugangspunkte13"></a>1.3.1.3 STORK (12xxx)</h5>
+<table class="configtable">
<tr>
- <th width="214" scope="col">Statuscode</th>
- <th width="1007" scope="col">Beschreibung</th>
+ <th>Statuscode</th>
+ <th>Beschreibung</th>
</tr>
<tr>
<td>1200</td>
@@ -637,16 +638,16 @@ Redirect Binding</td>
<td>Der geforderte QAA Level ist h&ouml;her als der QAA Level der gew&auml;hlten Authentifizierungsmethode</td>
</tr>
</table>
-<h3><a name="statuscodes_4xxxx" id="allgemeines_zugangspunkte8"></a>1.3.2 Statuscodes 4xxxx</h3>
+<h4><a name="statuscodes_4xxxx" id="allgemeines_zugangspunkte8"></a>1.3.2 Statuscodes 4xxxx</h4>
<p>Alles Statuscodes beginnend mit der Zahl vier beschreiben Fehler die w&auml;hrend der Kommunikation mit externen Services aufgetreten sind.</p>
-<h4><a name="statuscodes_40xxx" id="allgemeines_zugangspunkte19"></a>1.3.2.1 BKU (40xxxx)</h4>
+<h5><a name="statuscodes_40xxx" id="allgemeines_zugangspunkte19"></a>1.3.2.1 BKU (40xxxx)</h5>
<p>Tritt w&auml;hrend des Anmeldevorgangs in der B&uuml;rgerkartenumgebung ein Fehler auf so wird der entsprechende Fehlercode an den Service Provider weitergereicht. Der der durch das Modul MOA-ID-Auth weitergereichte Statuscode f&uuml;r B&uuml;rgerkartenumgebungsfehler wei&szlig;t das folgende zweiteilige Format auf. Der erste Teil, bestehend aus zwei Dezimalstellen, kennzeichnet den Fehler als Fehler als B&uuml;rgerkartenumgebungsfehler. Der zweite Teil, bestehend aus vier Dezimalstellen bezeichnet den eindeutigen Identifikator des Fehlers aus der B&uuml;rgerkartenumgebung (<a href="#referenzierte_spezifikation">siehe SecurityLayer Spezifikation</a>). </p>
<p align="right"><em>{40}{xxxxx}</em></p>
<blockquote>
<p>{40} ... MOA-ID Statuscode f&uuml;r Fehler aus der B&uuml;rgerkartenumgebung</p>
<p>{xxxx} .... Fehlercode der B&uuml;rgerkartenumgebung.</p>
</blockquote>
-<h4><a name="statuscodes_41xxx" id="allgemeines_zugangspunkte20"></a>1.3.2.2 MIS (41xxxx)</h4>
+<h5><a name="statuscodes_41xxx" id="allgemeines_zugangspunkte20"></a>1.3.2.2 MIS (41xxxx)</h5>
<p>Tritt w&auml;hrend der Kommunikation mit dem Online-Vollmachten Service oder der Vollmachtsauswahl ein Fehler auf so wird der entsprechende Fehlercode an den Service Provider weitergereicht. Der der durch das Modul MOA-ID-Auth weitergereichte Statuscode f&uuml;r Fehler aus dem Online-Vollmachten Service wei&szlig;t das folgende zweiteilige Format auf. Der erste Teil, bestehend aus drei Dezimalstellen, kennzeichnet den Fehler als Fehler als Online-Vollmachten Service Fehler. Der zweite Teil, bestehend aus drei Dezimalstellen bezeichnet den eindeutigen Identifikator des Fehlers aus dem Online-Vollmachten Service (<a href="#referenzierte_spezifikation">siehe Online-Vollmachten Spezifikation</a>). </p>
<p><em>{411}{xxxx}</em></p>
<blockquote>
@@ -654,10 +655,10 @@ Redirect Binding</td>
<p>{xxx} .... Fehlercode des Online-Vollmachten Service.</p>
</blockquote>
<p>Zus&auml;tzlich zu den gemappten Fehlern aus dem Online-Vollmachen Service werden zus&auml;tzliche weitere Fehlercodes definiert.</p>
-<table width="1237" border="1">
+<table class="configtable">
<tr>
- <th width="214" scope="col">Statuscode</th>
- <th width="1007" scope="col">Beschreibung</th>
+ <th>Statuscode</th>
+ <th>Beschreibung</th>
</tr>
<tr>
<td>41000</td>
@@ -668,11 +669,11 @@ Redirect Binding</td>
<td>Allgemeiner Fehler bei der Kommunikation mit dem Online-Vollmachten Service</td>
</tr>
</table>
-<h4><a name="statuscodes_42xxx" id="allgemeines_zugangspunkte21"></a>1.3.2.3 SZR-Gateway (42xxx)</h4>
-<table width="1237" border="1">
+<h5><a name="statuscodes_42xxx" id="allgemeines_zugangspunkte21"></a>1.3.2.3 SZR-Gateway (42xxx)</h5>
+<table class="configtable">
<tr>
- <th width="214" scope="col">Statuscode</th>
- <th width="1007" scope="col">Beschreibung</th>
+ <th>Statuscode</th>
+ <th>Beschreibung</th>
</tr>
<tr>
<td>4200</td>
@@ -683,35 +684,35 @@ Redirect Binding</td>
<td>Die Antragung in das SZR ist fehlgeschlagen</td>
</tr>
</table>
-<h4><a name="statuscodes_43xxx" id="allgemeines_zugangspunkte22"></a>1.3.2.4 MOA SP/SS(43xxx)</h4>
-<table width="1237" border="1">
+<h5><a name="statuscodes_43xxx" id="allgemeines_zugangspunkte22"></a>1.3.2.4 MOA SP/SS(43xxx)</h5>
+<table class="configtable">
<tr>
- <th width="214" scope="col">Statuscode</th>
- <th width="1007" scope="col">Beschreibung</th>
+ <th>Statuscode</th>
+ <th>Beschreibung</th>
</tr>
<tr>
<td>4300</td>
<td>Fehler beim Aufruf von MOA SP/SS</td>
</tr>
</table>
-<h4><a name="statuscodes_44xxx" id="allgemeines_zugangspunkte23"></a>1.3.2.5 Interfederation (44xxx)</h4>
-<table width="1237" border="1">
+<h5><a name="statuscodes_44xxx" id="allgemeines_zugangspunkte23"></a>1.3.2.5 Interfederation (44xxx)</h5>
+<table class="configtable">
<tr>
- <th width="214" scope="col">Statuscode</th>
- <th width="1007" scope="col">Beschreibung</th>
+ <th>Statuscode</th>
+ <th>Beschreibung</th>
</tr>
<tr>
<td>4400</td>
<td>Fehler beim Generieren der Anmeldedaten</td>
</tr>
</table>
-<h3><a name="statuscodes_6xxxx" id="allgemeines_zugangspunkte9"></a>1.3.3 Statuscodes 6xxxx</h3>
+<h4><a name="statuscodes_6xxxx" id="allgemeines_zugangspunkte9"></a>1.3.3 Statuscodes 6xxxx</h4>
<p>Alles Statuscodes beginnend mit der Zahl sechs beschreiben protokollspezifische Fehler die nicht durch das jeweilige Authentifizierungsprotokoll abgebildet werden.</p>
-<h4><a name="statuscodes_61xxx" id="allgemeines_zugangspunkte24"></a>1.3.3.1 Allgemein (61xxx)</h4>
-<table width="1237" border="1">
+<h5><a name="statuscodes_61xxx" id="allgemeines_zugangspunkte24"></a>1.3.3.1 Allgemein (61xxx)</h5>
+<table class="configtable">
<tr>
- <th width="214" scope="col">Statuscode</th>
- <th width="1007" scope="col">Beschreibung</th>
+ <th>Statuscode</th>
+ <th>Beschreibung</th>
</tr>
<tr>
<td>6000</td>
@@ -722,11 +723,11 @@ Redirect Binding</td>
<td>Der STORK Request wurde nicht erkannt oder wird nicht unterst&uuml;tzt</td>
</tr>
</table>
-<h4><a name="statuscodes_61xxx" id="allgemeines_zugangspunkte16"></a>1.3.3.2 PVP 2.1 (61xxx)</h4>
-<table width="1237" border="1">
+<h5><a name="statuscodes_61xxx" id="allgemeines_zugangspunkte16"></a>1.3.3.2 PVP 2.1 (61xxx)</h5>
+<table class="configtable">
<tr>
- <th width="214" scope="col">Statuscode</th>
- <th width="1007" scope="col">Beschreibung</th>
+ <th>Statuscode</th>
+ <th>Beschreibung</th>
</tr>
<tr>
<td>6100</td>
@@ -753,35 +754,35 @@ Redirect Binding</td>
<td>Der Request konnte nicht g&uuml;ltig validiert werden.</td>
</tr>
</table>
-<h4><a name="statuscodes_62xxx" id="allgemeines_zugangspunkte17"></a>1.3.3.3 OpenID Connect (62xxx)</h4>
-<table width="1237" border="1">
+<h5><a name="statuscodes_62xxx" id="allgemeines_zugangspunkte17"></a>1.3.3.3 OpenID Connect (62xxx)</h5>
+<table class="configtable">
<tr>
- <th width="214" scope="col">Statuscode</th>
- <th width="1007" scope="col">Beschreibung</th>
+ <th>Statuscode</th>
+ <th>Beschreibung</th>
</tr>
<tr>
<td>6200</td>
<td>Fehlerhafte redirect url</td>
</tr>
</table>
-<h4><a name="statuscodes_63xxx" id="allgemeines_zugangspunkte18"></a>1.3.3.4 SAML 1(63xxx)</h4>
-<table width="1237" border="1">
+<h5><a name="statuscodes_63xxx" id="allgemeines_zugangspunkte18"></a>1.3.3.4 SAML 1(63xxx)</h5>
+<table class="configtable">
<tr>
- <th width="214" scope="col">Statuscode</th>
- <th width="1007" scope="col">Beschreibung</th>
+ <th>Statuscode</th>
+ <th>Beschreibung</th>
</tr>
<tr>
<td>6300</td>
<td>Fehlerhaftes SAML Artifact Format</td>
</tr>
</table>
-<h3><a name="statuscodes_9xxxx" id="allgemeines_zugangspunkte10"></a>1.3.4 Statuscodes 9xxxx</h3>
+<h4><a name="statuscodes_9xxxx" id="allgemeines_zugangspunkte10"></a>1.3.4 Statuscodes 9xxxx</h4>
<p>Alles Statuscodes beginnend mit der Zahl neun beschreiben interne Serverfehler.</p>
-<h4><a name="statuscodes_90xxx" id="allgemeines_zugangspunkte14"></a>1.3.4.1 Konfigurationsfehler (90xxx)</h4>
-<table width="1237" border="1">
+<h5><a name="statuscodes_90xxx" id="allgemeines_zugangspunkte14"></a>1.3.4.1 Konfigurationsfehler (90xxx)</h5>
+<table class="configtable">
<tr>
- <th width="214" scope="col">Statuscode</th>
- <th width="1007" scope="col">Beschreibung</th>
+ <th>Statuscode</th>
+ <th>Beschreibung</th>
</tr>
<tr>
<td>9000</td>
@@ -816,11 +817,11 @@ Redirect Binding</td>
<td>Der SZR-Gateway Client konnte nicht initialisiert werden.</td>
</tr>
</table>
-<h4><a name="statuscodes_91xxx" id="allgemeines_zugangspunkte15"></a>1.3.4.2 Interne Fehler (91xxx)</h4>
-<table width="1237" border="1">
+<h5><a name="statuscodes_91xxx" id="allgemeines_zugangspunkte15"></a>1.3.4.2 Interne Fehler (91xxx)</h5>
+<table class="configtable">
<tr>
- <th width="214" scope="col">Statuscode</th>
- <th width="1007" scope="col">Beschreibung</th>
+ <th>Statuscode</th>
+ <th>Beschreibung</th>
</tr>
<tr>
<td>9100</td>
@@ -844,7 +845,7 @@ Redirect Binding</td>
</tr>
</table>
<p>&nbsp;</p>
-<h2><a name="allgemeines_sso" id="allgemeines_zugangspunkte3"></a>1.4 Single Sign-On</h2>
+<h3><a name="allgemeines_sso" id="allgemeines_zugangspunkte3"></a>1.4 Single Sign-On</h3>
<p>Das Modul MOA-ID-Auth unterst&uuml;tzt ab der Version 2.0 Single Sign-On (SSO), wobei diese Funktionalit&auml;t unabh&auml;ngig vom verwendeten Protokoll ist. Bei Verwendung von SSO muss sich der Benutzer nur ein Mal bei MOA-ID-Auth authentifizieren und danach steht die authentifizierte Session f&uuml;r die Benutzerin oder den Benutzer f&uuml;r weitere Anmeldevorg&auml;nge ohne weitere Authentifizierung mittels B&uuml;rgerkarte, Handy-Signatur oder STORK zur Verf&uuml;gung. Die SSO Session kann danach durch <a href="#allgemeines_ssologout">die Benutzerin oder den Benutzer beendet</a> werden, oder sie wird von MOA-ID-Auth nach der <a href="./../config/config.html#konfigurationsparameter_allgemein_timeouts">maximal erlaubten Sessionzeit</a> serverseitig beendet. </p>
<p>Das nachfolgende Sequenzdiagramm zeigt eine Anmeldung mittels Single Sign-On an zwei Online-Applikationen unter Verwendung von PVP 2.1. Aus Gr&uuml;nden der &Uuml;bersichtlichkeit wurden die Teile welche die Kommunikation mit der B&uuml;rgerkartenumgebung, die Vollmachten-Auswahl oder den Metadatenaustausch betreffen bewusst nicht ber&uuml;cksichtigt.</p>
<p><img src="sso_sequence.png" width="1095" height="978" alt="Sequenzdiagramm einer Anmeldung mittels Single Sign-On"></p>
@@ -873,7 +874,7 @@ Redirect Binding</td>
<li>Ist die Validierung der Assertion erfolgreich wird die Benutzerin oder der Benutzer an der Online-Applikation 2 angemeldet</li>
</ol>
<p>Zus&auml;tzliche Informationen zur Konfiguration und die sich daraus ergebenden Anforderungen oder Einschr&auml;nkungen finden sie <a href="./../config/config.html#konfigurationsparameter_allgemein_sso">hier</a>.</p>
-<h2><a name="allgemeines_ssologout" id="allgemeines_zugangspunkte5"></a>1.5 SSO Logout </h2>
+<h3><a name="allgemeines_ssologout" id="allgemeines_zugangspunkte5"></a>1.5 SSO Logout </h3>
<p>Das Modul MOA-ID-Auth stellt ein einfaches Service zur Beendigung einer bestehenden Single Sign-On Session zur Verf&uuml;gung. Nach dem Aufruf dieses Service aus dem Browser des Users wird eine bestehende SSO Session beendet und anschlie&szlig;end wird die Benutzerin oder der Benutzer an eine im LogOut Request angegebene URL weitergeleitet. </p>
<p>Das SSO Logout Service steht unter folgender URL zur Verf&uuml;gung und ben&ouml;tigt einen http GET Parameter:</p>
<pre>http://&lt;host&gt;:&lt;port&gt;/moa-id-auth/LogOut
@@ -882,11 +883,11 @@ Redirect Binding</td>
<pre>
https://&lt;host&gt;:&lt;port&gt;/moa-id-auth/LogOut
</pre>
-<table width="1247" border="1">
+<table class="configtable">
<tr>
- <th width="115" scope="col">Name</th>
- <th width="262" scope="col">Beispielwert</th>
- <th width="848" scope="col">Beschreibung</th>
+ <th>Name</th>
+ <th>Beispielwert</th>
+ <th>Beschreibung</th>
</tr>
<tr>
<td>redirect</td>
@@ -901,7 +902,7 @@ https://&lt;host&gt;:&lt;port&gt;/moa-id-auth/LogOut
<pre>https://demo.egiz.gv.at/moa-id-auth/LogOut?redirect=https://demo.egiz.gv.at/demoportal-openID_demo
</pre>
<p><strong>Hinweis:</strong> Dieses Service bietet jedoch NICHT eine vollst&auml;ndige Single Log-Out Funktionalit&auml;t wie sie im SAML 2 Protokoll vorgesehen ist, sondern beendet ausschlie&szlig;lich die SSO Session in der MOA-ID-Auth Instanz.</p>
-<h3><a name="allgemeines_ssologout_slo" id="allgemeines_zugangspunkte25"></a>1.5.1 Single LogOut</h3>
+<h4><a name="allgemeines_ssologout_slo" id="allgemeines_zugangspunkte25"></a>1.5.1 Single LogOut</h4>
<p>Ab der Version 2.1 unterst&uuml;tzt das Modul MOA-ID-Auth Single LogOut (SLO) laut SAML2 Spezifikation. Die SLO Funktionaltit&auml;t steht jedoch nur f&uuml;r Online-Applikationen zur Verf&uuml;gung welche als Authentifizierungsprotokoll PVP 2.1 verwenden. F&uuml;r alle anderen Authentifizierungsprotokolle steht aktuell kein SLO zur Verf&uuml;gung. </p>
<p>F&uuml;r Single LogOut stehen sowohl IDP initialisiertes SLO als auch Service Provider initialisiertes SLO zur Verf&uuml;gung. Als Einsprungpunkt f&uuml;r IDP initialisiertes SLO stellt das Modul MOA-ID-Auth folgende Web Adressen zur Verf&uuml;gung. Nach dem Aufruf dieses Services wird der Single LogOut Vorgang gestartet. Nach erfolgreicher Bearbeitung aller SLO Requests / Response erfolgt die Statusausgabe in den Browser.</p>
<pre>https://&lt;host&gt;:&lt;port&gt;/moa-id-auth/idpSingleLogout</pre>
@@ -912,14 +913,14 @@ https://&lt;host&gt;:&lt;port&gt;/moa-id-auth/LogOut
<p>&nbsp;</p>
<p><strong>Hinweis:</strong> Wenn Single Sign-On mit Authentifizierungsprotokollen, welche kein SLO unters&uuml;tzen verwendet wurde, schl&auml;gt der Single LogOut Vorgang auf jeden Fall fehl, da der Benutzer an den jeweiligen Online-Applikationen nicht angemeldet werden kann. Die SSO Session am Identityprovider wird jedoch auf jeden Fall beendet</p>
<p>&nbsp;</p>
-<h2><a name="allgemeines_legacy" id="allgemeines_zugangspunkte4"></a>1.6 Legacy Request (B&uuml;rgerkartenauswahl beim Service Provider)</h2>
+<h3><a name="allgemeines_legacy" id="allgemeines_zugangspunkte4"></a>1.6 Legacy Request (B&uuml;rgerkartenauswahl beim Service Provider)</h3>
<p>Soll die B&uuml;rgerkartenauswahl jedoch weiterhin, wie aus MOA-ID 1.5.1 bekannt direkt in der Online-Applikation des Service Providers erfolgen muss f&uuml;r das jeweilige Protokoll der <a href="./../config/config.html#konfigurationsparameter_allgemein_protocol_legacy">Legacy Modus aktiviert</a> werden. Wird der Legacy Modus verwendet muss jedoch zus&auml;tzlich zu den protokollspezifischen Parametern mindestens der Parameter <em>bkuURI</em>, welcher die gew&auml;hlte B&uuml;rgerkartenumgebung enth&auml;lt, im Authentifizierungsrequest an MOA-ID-Auth &uuml;bergeben werden (siehe <a href="#saml1_startauth">Protokoll SAML 1</a>). Die folgenden Parameter stehen bei Verwendung des Legacy Modus unabh&auml;ngig vom verwendeten Protokoll zur Verf&uuml;gung und bilden den gesamten Umfang der B&uuml;rgerkartenauswahl, wie aus MOA-ID 1.5.1 bekannt, ab.</p>
-<table border="1" width="1247">
+<table class="configtable">
<tbody>
<tr>
- <th scope="col" width="170">Name</th>
- <th scope="col" width="221">Beispielwert</th>
- <th scope="col" width="834">Beschreibung</th>
+ <th>Name</th>
+ <th>Beispielwert</th>
+ <th>Beschreibung</th>
</tr>
<tr>
<td>bkuURI=&lt;bku-url&gt;</td>
@@ -948,10 +949,10 @@ https://&lt;host&gt;:&lt;port&gt;/moa-id-auth/LogOut
<p>&nbsp;</p>
<p><strong>Hinweis:</strong> Bei einer vollst&auml;ndigen Neukonfiguration ist der Legacy Modus standardm&auml;&szlig;ig f&uuml;r alle Protokolle deaktiviert.</p>
<p><strong>Hinweis:</strong> Bei der Verwendung des Legacy Request f&uuml;r die B&uuml;rgerkartenauswahl ist jedoch zu beachten dass im Falle einer aktiven Single Sign-On Session, MOA-ID-Auth mit einer Abfrage zum SSO Anmeldevorgang antwortet.</p>
-<h1><a name="pvp21"></a>2 PVP 2.1</h1>
+<h2><a name="pvp21"></a>2 PVP 2.1</h2>
<p>Die PVP 2.1 Implementierung des Modules MOA-ID-Auth bezieht sich auf das <a href="#referenzierte_spezifikation">S-Profil der PVP 2 Spezifikation</a>. Das S - Profil von PVP 2 verwendet SAML WebSSO f&uuml;r die Authentifizierung von Benutzern mit Webbrowser. Dadurch wird die direkte Kommunikation des Browsers mit der Anwendung erm&ouml;glicht, was in Anwendungsf&auml;llen notwendig ist, wo Anwendungen nicht kompatibel mit dem Reverse - Proxy - Verfahren sind, datenschutzrechtliche Probleme bestehen oder SAML WebSSO als Industriestandard unterst&uuml;tzt werden soll.</p>
<p>Bevor PVP 2.1 als Authentifizierungsprotokoll verwendet werden kann muss das Modul MOA-ID-Auth entsprechend konfiguriert werden. Detailinformationen zur Konfiguration finden Sie <a href="../config/config.html">hier</a>.</p>
-<h2><a name="pvp21_sequenz" id="pvp21_sequenz"></a>2.1 Ablauf einer Anmeldung mittels PVP 2.1</h2>
+<h3><a name="pvp21_sequenz" id="pvp21_sequenz"></a>2.1 Ablauf einer Anmeldung mittels PVP 2.1</h3>
<p>Die nachfolgende Abbildung zeigt das Sequenzdiagramm eines Anmeldevorgangs mittels PVP 2.1 und des Modules MOA-ID-Auth als Identity Provider. Aus Gr&uuml;nden der &Uuml;bersichtlichkeit wurden die Teile welche die Kommunikation mit der B&uuml;rgerkartenumgebung oder die Vollmachten-Auswahl betreffen bewusst nicht ber&uuml;cksichtigt.</p>
<p><img src="pvp21_sequence.png" width="968" height="687" alt="Sequenzdiagramm PVP 2.1"></p>
<ol>
@@ -973,7 +974,7 @@ https://&lt;host&gt;:&lt;port&gt;/moa-id-auth/LogOut
</ol>
</li>
</ol>
-<h2><a name="pvp21_metadata" id="pvp21_metadata"></a>2.2 Metadaten</h2>
+<h3><a name="pvp21_metadata" id="pvp21_metadata"></a>2.2 Metadaten</h3>
<p>Das Modul MOA-ID-Auth stellt f&uuml;r Service-Provider (Online-Applikationen) Metadaten bereit welche alle PVP 2.1 spezifischen Informationen der MOA-ID-Auth Instanz beinhalten. Diese Metadaten werden durch das Modul MOA-ID-Auth signiert, wodurch Service Provider die Authentizit&auml;t der Metadaten verifizieren k&ouml;nnen. Ein Beispiel f&uuml;r Metadaten von MOA-ID-Auth finden sie <a href="#idp_metadata.xml">hier</a>. Die aktuellen Metadaten zu Ihrer MOA-ID-Auth Instanz k&ouml;nnen unter folgender URL abgerufen werden.</p>
<pre>http://&lt;host&gt;:&lt;port&gt;/moa-id-auth/pvp2/metadata
</pre>
@@ -993,7 +994,7 @@ https://&lt;host&gt;:&lt;port&gt;/moa-id-auth/pvp2/metadata
</ul>
<p>Zus&auml;tzlich unterst&uuml;tzt das Modul MOA-ID-Auth auch die Verschl&uuml;sselung PVP 2.1 Assertion mit einem vom Service-Provider definierten Zertifikat. Um diese Funktion zu nutzen muss in den Metadaten ein zweites XML Element <code>md:EntitiesDescriptor/md:EntityDescriptormd:SPSSODescriptor/md:KeyDescriptor</code> mit dem Attribut <code>use=&quot;encryption&quot;</code> vorhanden sein (siehe <a href="./serviceprovider_metadata.xml">Beispiel</a>). In diesem Fall verwendet das Modul MOA-ID-Auth, dass in diesem Element hinterlegte Zertifikat zur Verschl&uuml;sselung der PVP 2.1 Assertion.</p>
<p><strong>Hinweis:</strong> Fehlt im XML Element <code>md:EntitiesDescriptor/md:EntityDescriptormd:SPSSODescriptor/md:KeyDescriptor</code> das Attribut <code>use</code> wird das in diesem Element hinterlegte Zertifikat sowohl zur Pr&uuml;fung der Signatur des Authentifizierungsrequest als auch zur Verschl&uuml;sselung der PVP 2.1 Assertion verwendet.</p>
-<h2><a name="pvp21_binding" id="pvp21_binding"></a>2.3 Zugangspunkte</h2>
+<h3><a name="pvp21_binding" id="pvp21_binding"></a>2.3 Zugangspunkte</h3>
<p>F&uuml;r die Kommunikation zwischen Service Provider und dem Modul MOA-ID-Auth stellt MOA-ID-Auth aktuell zwei PVP 2.1 spezifische Zugangspunkte zur Verf&uuml;gung. Detailinformationen zu den beiden Zugangspunkten (Bindings) entnehmen finden Sie in der <a href="#referenzierte_spezifikation">SAML2 Spezifikation</a>. </p>
<ul>
<li><strong>POST Binding</strong>: In diesem Fall erfolgt die &Uuml;bertragung mittels http POST. Hierf&uuml;r stellt MOA-ID-Auth den folgenden Zugangspunkt zur Verf&uuml;gung.</li>
@@ -1004,16 +1005,16 @@ https://&lt;host&gt;:&lt;port&gt;/moa-id-auth/pvp2/metadata
</ul>
<pre>https://&lt;host&gt;:&lt;port&gt;/moa-id-auth/pvp2/redirect</pre>
<p><strong>Hinweis:</strong> Die Zugangspunkte k&ouml;nnen auch direkt aus den von MOA-ID-Auth generierten Metadaten entnommen werden.</p>
-<h3><a name="pvp21_binding_request" id="pvp21_binding2"></a>2.3.1 Authentifizierungsrequest</h3>
+<h4><a name="pvp21_binding_request" id="pvp21_binding2"></a>2.3.1 Authentifizierungsrequest</h4>
<p>Der Authentifizierungsrequest wird vom Service Provider erstellt und an das Modul MOA-ID-Auth &uuml;bermittelt. Zur &Uuml;bertragung, muss je nach verwendetem Binding, einer der beiden <a href="#pvp21_binding">Zugangspunkte</a> und die entsprechende Kodierung der Parameter verwendet werden.</p>
<p>Folgende Minimalanforderungen an den Authentifizierungsrequest m&uuml;ssen erf&uuml;llt sein.</p>
<ul>
<li>Der Request muss durch den Service Provider signiert sein (siehe <a href="AuthRequest.xml">Beispiel</a>). Die Signatur wird durch das Modul MOA-ID-Auth mit Hilfe des in den <a href="#pvp21_metadata">Metadaten hinterlegten Zertifikats</a> validiert. Schl&auml;gt die Signaturpr&uuml;fung fehl oder ist keine Signatur vorhanden wird der Request abgewiesen und MOA-ID-Auth antwortet mit http Code <em>400</em> und der Fehlermeldung <em>NO valid protocol request received!</em>.</li>
<li>
- <table border="1" cellpadding="2" class="fixedWidth">
+ <table class="configtable">
<tr>
- <td width="8%">Name</td>
- <td width="92%"><code>saml2p:AuthnRequest/saml2:Issuer</code></td>
+ <td>Name</td>
+ <td ><code>saml2p:AuthnRequest/saml2:Issuer</code></td>
</tr>
<tr>
<td> Gebrauch</td>
@@ -1026,7 +1027,7 @@ https://&lt;host&gt;:&lt;port&gt;/moa-id-auth/pvp2/metadata
</table>
</li>
<li>
- <table border="1" cellpadding="2" class="fixedWidth">
+ <table class="configtable">
<tr>
<td width="8%">Name</td>
<td width="92%"><code>/saml2p:AuthnRequest/@ID</code></td>
@@ -1044,7 +1045,7 @@ https://&lt;host&gt;:&lt;port&gt;/moa-id-auth/pvp2/metadata
</ul>
<p>Einen Beispielrequest finden Sie <a href="AuthRequest.xml">hier</a>.</p>
<p><strong>Hinweis:</strong> Detailinformationen finden Sie im Abschnitt <a href="#referenzierte_spezifikation">Spezifikationen</a> in der PVP 2.1 Spezifikation und der SAML2 Spezifikation.</p>
-<h3><a name="pvp21_binding_response" id="pvp21_binding3"></a>2.3.2 Authentifizierungsresponse</h3>
+<h4><a name="pvp21_binding_response" id="pvp21_binding3"></a>2.3.2 Authentifizierungsresponse</h4>
<p>Nach erfolgreicher Authentifizierung antwortet das Modul MOA-ID-Auth mit einer PVP 2.1 Assertion. Zur &Uuml;bertragung der Assertion erfolgt an das in den Metadaten der Online-Applikation angegebene <em>AssertionConsumerService</em> (siehe <a href="#pvp21_metadata">Metadaten</a>).</p>
<p>Aktuell werden vom Modul MOA-ID-Auth zwei Bindings zur &Uuml;bertragung der Assertion unterst&uuml;tzt.</p>
<ul>
@@ -1145,13 +1146,13 @@ https://&lt;host&gt;:&lt;port&gt;/moa-id-auth/pvp2/metadata
<td><p>Dieses Attribut beinhaltet einen von MOA-ID-Auth ausgestellten G&uuml;ltigkeitszeitraum f&uuml;r diese Assertion. Aktuell betr&auml;gt der G&uuml;ltigkeitszeitraum f&uuml;nf Minuten ab dem Ausstellzeitpunkt.</p></td>
</tr>
</table>
-<h1><a name="openid"></a>3 OpenID Connect </h1>
-<p>OpenID Connect ist ein Authentifizierungsprotokoll welches auf dem OAuth 2.0 Protokoll aufbaut. Dieses Protokoll erlaubt Online-Applikationen die Identifizierung und Authentifizierung von Benutzern, mit Hilfe des Modules MOA-ID-Auth. Der Vorteil von OpenID Connect im Vergleich zu auf SAML basierten Protokollen (PVP 2.1, SAML 1) ist der einfachere Aufbau der einzelnen Protokollnachrichten. Zusätzlich existieren einige frei Verfügbare Bibliotheken für unterschiedliche Programmiersprachen, welche OpenID Connect implementieren.</p>
+<h2><a name="openid"></a>3 OpenID Connect </h2>
+<p>OpenID Connect ist ein Authentifizierungsprotokoll welches auf dem OAuth 2.0 Protokoll aufbaut. Dieses Protokoll erlaubt Online-Applikationen die Identifizierung und Authentifizierung von Benutzern, mit Hilfe des Modules MOA-ID-Auth. Der Vorteil von OpenID Connect im Vergleich zu auf SAML basierten Protokollen (PVP 2.1, SAML 1) ist der einfachere Aufbau der einzelnen Protokollnachrichten. Zusätzlich existieren einige frei Verfügbare Bibliotheken für unterschiedliche Programmiersprachen, welche OpenID Connect implementieren.</p>
<p>Bevor OpenID Connect in Kombination mit dem Modul MOA-ID-Auth verwendet werden kann muss das Modul MOA-ID-Auth konfiguriert werden. Detailinformationen zur <a href="./../config/config.html#basisconfig_moa_id_auth_param_protocol_openid" >Allgemeinen Konfiguration</a> und zur <a href="./../config/config.html#konfigurationsparameter_oa_protocol_openIDConnect">online-applikationsspezifischen Konfiguration</a> finden Sie im jeweiligen Abschnitt des Kapitels Konfiguration.</p>
-<p>Die nachfolgende Beschreibung gibt einen kurzen Überblick zur Verwendung des Protokolls OpenID Connect in Kombination mit dem Modul MOA-ID-Auth. Detailinformationen zu OpenID Connect entnehmen Sie bitte der aktuellen <a href="#referenzierte_spezifikation">OpenID Connect Spezifikation</a></p>
+<p>Die nachfolgende Beschreibung gibt einen kurzen Ãœberblick zur Verwendung des Protokolls OpenID Connect in Kombination mit dem Modul MOA-ID-Auth. Detailinformationen zu OpenID Connect entnehmen Sie bitte der aktuellen <a href="#referenzierte_spezifikation">OpenID Connect Spezifikation</a></p>
-<h2><a name="openid_sequenzdiagramm"></a>3.1 Ablauf einer Anmeldung mittels OpenID Connect</h2>
-<p>Die nachfolgende Abbildung zeigt das Sequenzdiagramm eines Anmeldevorgangs mittels OpenID Connect und des Modules MOA-ID-Auth als Identity Provider. Aus Gründen der Übersichtlichkeit wurden die Teile welche die Kommunikation mit der Bürgerkartenumgebung oder die Vollmachten-Auswahl betreffen bewusst nicht berücksichtigt.</p>
+<h3><a name="openid_sequenzdiagramm"></a>3.1 Ablauf einer Anmeldung mittels OpenID Connect</h3>
+<p>Die nachfolgende Abbildung zeigt das Sequenzdiagramm eines Anmeldevorgangs mittels OpenID Connect und des Modules MOA-ID-Auth als Identity Provider. Aus Gründen der Übersichtlichkeit wurden die Teile welche die Kommunikation mit der Bürgerkartenumgebung oder die Vollmachten-Auswahl betreffen bewusst nicht berücksichtigt.</p>
<p><img src="openIDconnect_sequenz.png" width="1138" height="705" alt="Sequenzdiagramm OpenID Connect"></p>
<ol>
@@ -1182,23 +1183,23 @@ https://&lt;host&gt;:&lt;port&gt;/moa-id-auth/pvp2/metadata
</ol>
</li>
</ol>
-<h2><a name="openid_interface"></a>3.2 Zugangspunkte</h2>
-<p>Zur Verwendung von OpenID Connect stellt das Modul MOA-ID-Auth zwei Zugangspunkte zur Kommunikation mit der Online-Applikation zur Verfügung. Diese Zugangspunkte bezeichnen die URLs unter welchen das Modul MOA-ID-Auth die entsprechenden OpenID Connect Nachrichten entgegennimmt.</p>
+<h3><a name="openid_interface"></a>3.2 Zugangspunkte</h3>
+<p>Zur Verwendung von OpenID Connect stellt das Modul MOA-ID-Auth zwei Zugangspunkte zur Kommunikation mit der Online-Applikation zur Verfügung. Diese Zugangspunkte bezeichnen die URLs unter welchen das Modul MOA-ID-Auth die entsprechenden OpenID Connect Nachrichten entgegennimmt.</p>
<ul>
- <li><b>AuthCode-Request:</b> <em>https://&lt;host&gt;:&lt;port&gt;/moa-id-auth/oauth2/auth</em><br> Unter dieser URL wird der Authn Request entgegengenommen. Dieser Request startet den Authentifizierungsvorgang an der Online-Applikation. Hier finden Sie Detailinformationen zum <a href="#openid_req_authnreq"> Request </a>und zur <a href="#openid_req_authnresp">Response</a>.</li>
- <li><b>AccessToken-Request:</b> <em>https://&lt;host&gt;:&lt;port&gt;/moa-id-auth/oauth2/token</em><br> Unter dieser URL können nach erfolgreicher Authentifizierung die eigentlichen Authentifizierungsdaten am Modul MOA-ID-Auth abgeholt werden. Hier finden Sie Detailinformationen zum <a href="#openid_req_tokenreq"> Request </a>und zur <a href="#openid_req_tokenresp">Response</a>.</li>
+ <li><b>AuthCode-Request:</b> <em>https://&lt;host&gt;:&lt;port&gt;/moa-id-auth/oauth3/auth</em><br> Unter dieser URL wird der Authn Request entgegengenommen. Dieser Request startet den Authentifizierungsvorgang an der Online-Applikation. Hier finden Sie Detailinformationen zum <a href="#openid_req_authnreq"> Request </a>und zur <a href="#openid_req_authnresp">Response</a>.</li>
+ <li><b>AccessToken-Request:</b> <em>https://&lt;host&gt;:&lt;port&gt;/moa-id-auth/oauth3/token</em><br> Unter dieser URL können nach erfolgreicher Authentifizierung die eigentlichen Authentifizierungsdaten am Modul MOA-ID-Auth abgeholt werden. Hier finden Sie Detailinformationen zum <a href="#openid_req_tokenreq"> Request </a>und zur <a href="#openid_req_tokenresp">Response</a>.</li>
</ul>
-<h2><a name="openid_requests"></a>3.3 Beschreibung der Nachrichten</h2>
-<p>Dieser Abschnitt beschreibt die einzelnen OpenID Connect spezifischen Nachrichten, welche zwischen der Online-Applikation und dem Modul MOA-ID-Auth während eines Authentifizierungsvorgangs ausgetauscht werden. Hierbei wird auch auf das Sequenzdiagramm aus <a href="#openid_sequenzdiagramm">Abschnitt 3.1</a> Bezug genommen.</p>
+<h3><a name="openid_requests"></a>3.3 Beschreibung der Nachrichten</h3>
+<p>Dieser Abschnitt beschreibt die einzelnen OpenID Connect spezifischen Nachrichten, welche zwischen der Online-Applikation und dem Modul MOA-ID-Auth während eines Authentifizierungsvorgangs ausgetauscht werden. Hierbei wird auch auf das Sequenzdiagramm aus <a href="#openid_sequenzdiagramm">Abschnitt 3.1</a> Bezug genommen.</p>
-<h3><a name="openid_req_authnreq"></a>3.2.1 AuthCode Request</h3>
-<p>Der AuthCode Request ist die Authentifizierungsanfrage einer Online-Applikation für eine Benutzerin oder einen Benutzer.
-Folgende Parameter müssen mit dem AuthCode-Request mitgesendet werden, wobei für die Übertragung der Parameter sowohl http GET als auch http POST verwendet werden kann.</p>
-<table width="1247" border="1">
+<h4><a name="openid_req_authnreq"></a>3.2.1 AuthCode Request</h4>
+<p>Der AuthCode Request ist die Authentifizierungsanfrage einer Online-Applikation für eine Benutzerin oder einen Benutzer.
+Folgende Parameter müssen mit dem AuthCode-Request mitgesendet werden, wobei für die Übertragung der Parameter sowohl http GET als auch http POST verwendet werden kann.</p>
+<table class="configtable">
<tr>
- <th width="115" scope="col">Name</th>
- <th width="262" scope="col">Beispielwert</th>
- <th width="848" scope="col">Beschreibung</th>
+ <th>Name</th>
+ <th>Beispielwert</th>
+ <th>Beschreibung</th>
</tr>
<tr>
<td>client_id</td>
@@ -1241,7 +1242,7 @@ Folgende Parameter müssen mit dem AuthCode-Request mitgesendet werden, wobei für
</table>
<p>&nbsp;</p>
<p>Nachfolgend ein Beispiel f&uuml;r einen OpenID Connect Authentifizierungsrequest an das Modul MOA-ID-Auth.</p>
-<pre>&lt;form method=&quot;get&quot; action=&quot;https://demo.egiz.gv.at/demoportal_moaid-2.0/oauth2/auth&quot;&gt;
+<pre>&lt;form method=&quot;get&quot; action=&quot;https://demo.egiz.gv.at/demoportal_moaid-2.0/oauth3/auth&quot;&gt;
&lt;input type=&quot;hidden&quot; value=&quot;code&quot; name=&quot;response_type&quot;&gt;
&lt;input type=&quot;hidden&quot; value=&quot;https://demo.egiz.gv.at/demoportal-openID_demo&quot; name=&quot;client_id&quot;&gt;
&lt;input type=&quot;hidden&quot; value=&quot;https://demo.egiz.gv.at/demoportal-openID_demo/securearea.action&quot; name=&quot;redirect_uri&quot;&gt;
@@ -1249,13 +1250,13 @@ Folgende Parameter müssen mit dem AuthCode-Request mitgesendet werden, wobei für
&lt;input type=&quot;hidden&quot; value=&quot;1152547590&quot; name=&quot;state&quot;&gt;
&lt;input type=&quot;submit&quot; value=&quot;OpenID Connect login&quot;&gt;
&lt;/form&gt;</pre>
-<h3><a name="openid_req_authnresp"></a>3.2.2 AuthCode Response</h3>
+<h4><a name="openid_req_authnresp"></a>3.2.2 AuthCode Response</h4>
<p>Das Ergebnis des AuthCode Requests wird an die <em>redirect_uri</em> der Online-Applikation gesendet. Die nachfolgenden Parameter werden dabei &uuml;bergeben.</p>
-<table width="1247" border="1">
+<table class="configtable">
<tr>
- <th width="115" scope="col">Name</th>
- <th width="262" scope="col">Beispielwert</th>
- <th width="848" scope="col">Beschreibung</th>
+ <th>Name</th>
+ <th>Beispielwert</th>
+ <th>Beschreibung</th>
</tr>
<tr>
<td>state</td>
@@ -1271,13 +1272,13 @@ Folgende Parameter müssen mit dem AuthCode-Request mitgesendet werden, wobei für
<p>&nbsp;</p>
<p>Nachfolgend ein Beispiel f&uuml;r eine AuthCode Response.</p>
<pre>https://demo.egiz.gv.at/demoportal-openID_demo/securearea.action?state=1425782214234&amp;code=4/P7q7W91a-oMsCeLvIaQm6bTrgtp7 </pre>
-<h3><a name="openid_req_tokenreq"></a>3.2.3 AccessToken Request</h3>
+<h4><a name="openid_req_tokenreq"></a>3.2.3 AccessToken Request</h4>
<p>Mit dem AccessToken Request k&ouml;nnen vom Service Provider der Online-Applikation die Anmeldedaten an der MOA-ID-Auth Instanz abgeholt werden. F&uuml;r die Abholung m&uuml;ssen folgende Parameter mit dem AccessToken Request an MOA-ID-Auth &uuml;bertragen werden, wobei f&uuml;r die &Uuml;bertragung der Parameter sowohl http GET als auch http POST verwendet werden kann.</p>
-<table width="1247" border="1">
+<table class="configtable">
<tr>
- <th width="115" scope="col">Name</th>
- <th width="262" scope="col">Beispielwert</th>
- <th width="848" scope="col">Beschreibung</th>
+ <th>Name</th>
+ <th>Beispielwert</th>
+ <th>Beschreibung</th>
</tr>
<tr>
<td>grant_type</td>
@@ -1307,7 +1308,7 @@ Folgende Parameter müssen mit dem AuthCode-Request mitgesendet werden, wobei für
</table>
<p>&nbsp;</p>
<p>Nachfolgend ein Beispiel f&uuml;r einen AccessToken Request</p>
-<pre>&lt;form method=&quot;POST&quot; action=&quot;https://demo.egiz.gv.at/demoportal_moaid-2.0/oauth2/token&quot;&gt;
+<pre>&lt;form method=&quot;POST&quot; action=&quot;https://demo.egiz.gv.at/demoportal_moaid-2.0/oauth3/token&quot;&gt;
&lt;input type=&quot;hidden&quot; value=&quot;authorization_code&quot; name=&quot;grant_type&quot;&gt;
&lt;input type=&quot;hidden&quot; value=&quot;https://demo.egiz.gv.at/demoportal-openID_demo&quot; name=&quot;client_id&quot;&gt;
&lt;input type=&quot;hidden&quot; value=&quot;https://demo.egiz.gv.at/demoportal-openID_demo/securearea.action&quot; name=&quot;redirect_uri&quot;&gt;
@@ -1315,16 +1316,16 @@ Folgende Parameter müssen mit dem AuthCode-Request mitgesendet werden, wobei für
&lt;input type=&quot;hidden&quot; value=&quot;4/P7q7W91a-oMsCeLvIaQm6bTrgtp7&quot; name=&quot;code&quot;&gt;
&lt;/form&gt;</pre>
-<h3><a name="openid_req_tokenresp"></a>3.2.4 AccessToken Response</h3>
+<h4><a name="openid_req_tokenresp"></a>3.2.4 AccessToken Response</h4>
<p>Die AccessToken Response beinhaltet ein signiertes JSON-Token welches alle angeforderten (Parameter <em>scope</em> im AuthCode Request) und vorhandenen Authentifizierungsdaten beinhaltet. Dieses JSON-Token ist mit einer JSON Web Signatur von MOA-ID-Auth signiert, wobei die Signatur alle angeforderten Daten einschlie&szlig;t. Details zur Konfiguration des Signatur Zertifikats finden Sie <a href="../config/config.html#basisconfig_moa_id_auth_param_protocol_openid">hier</a>. </p>
-<table width="1247" border="1">
+<table class="configtable">
<tr>
- <th width="115" scope="col">Name</th>
- <th width="262" scope="col">Beispielwert</th>
- <th width="848" scope="col">Beschreibung</th>
+ <th>Name</th>
+ <th>Beispielwert</th>
+ <th>Beschreibung</th>
</tr>
<tr>
<td>access_token</td>
@@ -1365,20 +1366,20 @@ Folgende Parameter müssen mit dem AuthCode-Request mitgesendet werden, wobei für
NzYxMDAxIiwKICJhdWQiOiAiczZCaGRSa3F0MyIsCiAibm9uY2UiOiAibi0wUzZ
fV3pBMk1qIiwKICJleHAiOiAxMzExMjgxOTcwLAogImlhdCI6IDEzMTEyODA5Nz
AKfQ.ggW8hZ1EuVLuxNuuIJKX_V8a_OMXzR0EHR9R6jgdqrOOF4daGU96Sr_P6q
- Jp6IcmD3HP99Obi1PRs-cwh3LO-p146waJ8IhehcwL7F09JdijmBqkvPeB2T9CJ
+ Jp6IcmD3HP99Obi1PRs-cwh4LO-p146waJ8IhehcwL7F09JdijmBqkvPeB2T9CJ
NqeGpe-gccMg4vfKjkM8FcGvnzZUN4_KSP0aAp1tOJ1zZwgjxqGByKHiOtX7Tpd
QyHE5lcMiKPXfEIQILVq0pc_E2DzL7emopWoaoZTF_m0_N0YzFC6g6EJbOEoRoS
K5hoDalrcvRYLSrQAZZKflyuVCyixEoV9GfNQC3_osjzw2PAithfubEEBLuVVk4
XUVrWOLrLl0nx7RkKU8NXNHq-rvKMzqg&quot;
} </pre>
-<h3><a name="openid_req_errorresponse" id="openid_req_errorresponse"></a>3.2.5 Error Response</h3>
+<h4><a name="openid_req_errorresponse" id="openid_req_errorresponse"></a>3.2.5 Error Response</h4>
<p>Sollte w&auml;hrend des Authentifizierungsvorgangs ein Fehler auftreten antwortet das Modul MOA-ID-Auth mit einer Error Response. Diese beinhaltet folgende Parameter</p>
-<table width="1247" border="1">
+<table class="configtable">
<tr>
- <th width="115" scope="col">Name</th>
- <th width="262" scope="col">Beispielwert</th>
- <th width="848" scope="col">Beschreibung</th>
+ <th>Name</th>
+ <th>Beispielwert</th>
+ <th>Beschreibung</th>
</tr>
<tr>
<td>error</td>
@@ -1397,10 +1398,10 @@ Folgende Parameter müssen mit dem AuthCode-Request mitgesendet werden, wobei für
</tr>
</table>
<p>&nbsp;</p>
-<h1><a name="saml1"></a>3 SAML 1</h1>
+<h2><a name="saml1"></a>3 SAML 1</h2>
<p>SAML 1 wird durch MOA-ID-Auth 2.0 auch weiterhin, aus Gr&uuml;nden der Abw&auml;rtskompatibilit&auml;t, als Authentifizierungsprotokoll unterst&uuml;tzt. Es wird jedoch der Umstieg auf ein aktuelles Authentifizierungsprotokoll wie PVP 2.1 oder OpenID Connect empfohlen.</p>
<p>Die nachfolgenden Abschnitte beschreiben den Anmeldevorgang unter Verwendung von SAML1 wobei die Funktionalit&auml;t, wie sie aus MOA-ID &lt;= 1.5.1 bekannt ist, auch weiterhin unterst&uuml;tzt wird (B&uuml;rgerkartenauswahl auf Seiten des Service Provider). Zus&auml;tzlich steht f&uuml;r SAML 1 jedoch auch die Funktionalit&auml;t der automatischen Generierung der B&uuml;rgerkartenauswahl durch das Modul MOA-ID-Auth zur Verf&uuml;gung.</p>
-<h2><a name="saml1_sequence" id="saml1_sequence"></a>3.1 Ablauf einer Anmeldung mittels SAML 1</h2>
+<h3><a name="saml1_sequence" id="saml1_sequence"></a>3.1 Ablauf einer Anmeldung mittels SAML 1</h3>
<p>Die nachfolgende Abbildung zeigt das Sequenzdiagramm eines Anmeldevorgangs mittels SAML 1 und des Modules MOA-ID-Auth als Identity Provider. Hierbei wird die aus MOA-ID 1.5.1 bekannte Variante der B&uuml;rgerkartenauswahl beim Service Provider verwenden. Aus Gr&uuml;nden der &Uuml;bersichtlichkeit wurden die Teile welche die Kommunikation mit der B&uuml;rgerkartenumgebung oder die Vollmachten-Auswahl betreffen bewusst nicht ber&uuml;cksichtigt.</p>
<p><img src="saml1_sequence.png" width="936" height="592" alt="Sequenzdiagramm f&uuml;r SAML 1"></p>
<ol>
@@ -1419,7 +1420,7 @@ Folgende Parameter müssen mit dem AuthCode-Request mitgesendet werden, wobei für
<li>MOA-ID-Auth validiert das Artifact. Ist die Validierung erfolgreich antwortet MOA-ID-Auth mit der SAML 1 Assertion, welche die Anmeldedaten beinhaltet. </li>
<li>Der Service Provider verarbeitet die Assertion und danach ist der Benutzer an der Online-Applikation angemeldet.</li>
</ol>
-<h2><a name="saml1_zugang" id="saml1_zugang"></a>3.2 Zugangspunkte</h2>
+<h3><a name="saml1_zugang" id="saml1_zugang"></a>3.2 Zugangspunkte</h3>
<p>Zur Verwendung von SAML 1 stellt das Modul MOA-ID-Auth zwei Zugangspunkte zur Kommunikation mit der Online-Applikation (Service Provider) zur Verf&uuml;gung. Diese Zugangspunkte bezeichnen die URLs unter welchen das Modul MOA-ID-Auth die entsprechenden SAML1 Nachrichten entgegennimmt.</p>
<ul>
<li><strong>StartAuthentication Request:</strong> <em>https://&lt;host&gt;:&lt;port&gt;/moa-id-auth/StartAuthentication</em><br>
@@ -1427,7 +1428,7 @@ Folgende Parameter müssen mit dem AuthCode-Request mitgesendet werden, wobei für
<li><strong>GetAuthenticationData:</strong> <em>http(s)://&lt;host&gt;:&lt;port&gt;/moa-id-auth/services/GetAuthenticationData</em><br>
Unter dieser URL k&ouml;nnen nach erfolgreicher Authentifizierung die eigentlichen Authentifizierungsdaten am Modul MOA-ID-Auth abgeholt werden.</li>
</ul>
-<h2><a name="saml1_startauth" id="saml1_zugang2"></a>3.3 StartAuthentication Request</h2>
+<h3><a name="saml1_startauth" id="saml1_zugang2"></a>3.3 StartAuthentication Request</h3>
<p>MOA-ID-Auth wird immer durch eine andere (verweisende) Webseite aufgerufen. Diese Webseite kann z.B. Teil eines Portals sein. Der Aufruf erfolgt durch einen Verweis der Form, wobei die Parameter sowohl als http GET als auch als http POST an MOA-ID-Auth &uuml;bergeben werden k&ouml;nnen.</p>
<pre>&lt;a href="https://&lt;moa-id-server-und-pfad&gt;/StartAuthentication
?Target=&lt;gesch&auml;ftsbereich&gt;
@@ -1436,11 +1437,11 @@ Folgende Parameter müssen mit dem AuthCode-Request mitgesendet werden, wobei für
&amp;Template=&lt;template-url&gt;
&amp;useMandate=false
&amp;CCC=&lt;ccc&gt;"&gt;</pre>
-<table width="1247" border="1">
+<table class="configtable">
<tr>
- <th width="170" scope="col">Name</th>
- <th width="221" scope="col">Beispielwert</th>
- <th width="834" scope="col">Beschreibung</th>
+ <th>Name</th>
+ <th>Beispielwert</th>
+ <th>Beschreibung</th>
</tr>
<tr>
<td>&lt;moa-id-server-und-pfad&gt;</td>
@@ -1486,12 +1487,12 @@ Folgende Parameter müssen mit dem AuthCode-Request mitgesendet werden, wobei für
<td><strong>Optional:</strong> Die sourceID flie&szlig;t in die Generierung des SAML1 Artifacts, welches an den Service Provider returniert wird, ein. Detailinformationen zur Generierung des SAML1 Artifacts und zur sourceID finden Sie in der <a href="#referenzierte_spezifikation">SAML1 Spezifikation</a>.</td>
</tr>
</table>
-<h2><a name="saml1_getassertion" id="saml1_zugang3"></a>3.4 GetAuthenticationData Request</h2>
+<h3><a name="saml1_getassertion" id="saml1_zugang3"></a>3.4 GetAuthenticationData Request</h3>
<p>Nach erfolgter Authentisierung stehen in MOA-ID-AUTH Anmeldedaten zum Abholen bereit, und MOA-ID-AUTH veranlasst einen Redirect zur Online-Applikation (OA). <br>
<br>
In diesem Redirect werden der Gesch&auml;ftsbereich und ein SAML-Artifact als Parameter &uuml;bergeben. </p>
<pre>&lt;a href="https://&lt;oa-url&gt;?Target=&lt;gesch&auml;ftsbereich&gt;&amp;SAMLArtifact=&lt;saml-artifact&gt;"&gt;</pre>
-<table border="1">
+<table class="configtable">
<tbody valign="baseline">
<tr>
<td>oa-url&gt;</td>
@@ -1519,8 +1520,8 @@ Sollte w&auml;hrend des Anmeldevorgangs ein Fehler aufgetreten sein, antwortet d
<li> <a href="file:///D:/Projekte/svn/moa-id/moa-idspss/id/server/doc/cs-sstc-schema-assertion-01.xsd">SAML 1.0 Assertion Schema</a></li>
</ul>
<p>Der detaillierte Aufbau der &lt;saml:Assertion&gt; zu den Anmeldedaten ist in der <a href="./../spec/MOA_ID_1.4_20070802.pdf">Spezifikation MOA-ID 1.4</a> beschrieben.</p>
-<h1><a name="referenzierte_spezifikation" id="uebersicht_zentraledatei_aktualisierung30"></a>A Referenzierte Spezifikation</h1>
-<table class="fixedWidth" border="1" cellpadding="2">
+<h2><a name="referenzierte_spezifikation" id="uebersicht_zentraledatei_aktualisierung30"></a>A Referenzierte Spezifikation</h2>
+<table class="configtable">
<tbody>
<tr>
<th>Spezifikation</th>
@@ -1560,5 +1561,6 @@ Sollte w&auml;hrend des Anmeldevorgangs ein Fehler aufgetreten sein, antwortet d
</tr>
</tbody>
</table>
+ </div>
</body>
</html>
diff --git a/id/server/idserverlib/.gitignore b/id/server/idserverlib/.gitignore
index ea8c4bf7f..19f2e002c 100644
--- a/id/server/idserverlib/.gitignore
+++ b/id/server/idserverlib/.gitignore
@@ -1 +1,2 @@
/target
+/target
diff --git a/id/server/idserverlib/pom.xml b/id/server/idserverlib/pom.xml
index 8045ed8da..cab3c73e1 100644
--- a/id/server/idserverlib/pom.xml
+++ b/id/server/idserverlib/pom.xml
@@ -362,7 +362,7 @@
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
- <version>1.9</version>
+ <version>1.10</version>
</dependency>
<!-- Google OAuth Client -->
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/AuthenticationServer.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/AuthenticationServer.java
index cf50a1bf5..b9ce76d0c 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/AuthenticationServer.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/AuthenticationServer.java
@@ -1612,6 +1612,8 @@ public class AuthenticationServer implements MOAIDAuthConstants {
data.setFamilyname(PEPSFamilyname);
data.setFirstname(PEPSFirstname);
data.setIdentifier(PEPSIdentifier);
+
+ data.setFiscalNumber(PEPSFiscalNumber);
data.setRepresentative(representative);
data.setRepresented(represented);
@@ -1737,6 +1739,7 @@ public class AuthenticationServer implements MOAIDAuthConstants {
// add sign request
PersonalAttribute newAttribute = new PersonalAttribute();
newAttribute.setName("signedDoc");
+ newAttribute.setIsRequired(true);
List<String> value = new ArrayList<String>();
Logger.debug("PEPS supports XMLSignatures:"+cpeps.isXMLSignatureSupported());
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/AuthenticationDataBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/AuthenticationDataBuilder.java
index 52488c3cb..5d816be1b 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/AuthenticationDataBuilder.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/AuthenticationDataBuilder.java
@@ -43,6 +43,7 @@ import javax.xml.bind.Marshaller;
import org.opensaml.saml2.core.Attribute;
import org.opensaml.saml2.core.AttributeQuery;
+import org.opensaml.saml2.core.AuthnStatement;
import org.opensaml.saml2.core.Response;
import org.opensaml.ws.soap.common.SOAPException;
import org.opensaml.xml.XMLObject;
@@ -214,7 +215,7 @@ public class AuthenticationDataBuilder implements MOAIDAuthConstants {
} else {
//build AuthenticationData from MOASession
- buildAuthDataFormMOASession(authdata, session, oaParam);
+ buildAuthDataFormMOASession(authdata, session, oaParam, protocolRequest);
}
@@ -271,12 +272,13 @@ public class AuthenticationDataBuilder implements MOAIDAuthConstants {
AssertionAttributeExtractor extractor =
new AssertionAttributeExtractor(intfResp);
- if (!extractor.containsAllRequiredAttributes()) {
+ if (!extractor.containsAllRequiredAttributes()) {
+ Logger.info("Received assertion does no contain a minimum set of attributes. Starting AttributeQuery process ...");
//collect attributes by using BackChannel communication
String endpoint = idp.getIDPAttributQueryServiceURL();
if (MiscUtil.isEmpty(endpoint)) {
- Logger.error("No AttributeQueryURL for interfederationIDP " + oaParam.getPublicURLPrefix());
- throw new ConfigurationException("No AttributeQueryURL for interfederationIDP " + oaParam.getPublicURLPrefix(), null);
+ Logger.error("No AttributeQueryURL for interfederationIDP " + idp.getPublicURLPrefix());
+ throw new ConfigurationException("No AttributeQueryURL for interfederationIDP " + idp.getPublicURLPrefix(), null);
}
//build attributQuery request
@@ -321,7 +323,7 @@ public class AuthenticationDataBuilder implements MOAIDAuthConstants {
}
//parse response information to authData
- buildAuthDataFormInterfederationResponse(authdata, session, extractor, oaParam);
+ buildAuthDataFormInterfederationResponse(authdata, session, extractor, oaParam, req);
} catch (SOAPException e) {
throw new BuildException("builder.06", null, e);
@@ -348,7 +350,8 @@ public class AuthenticationDataBuilder implements MOAIDAuthConstants {
AuthenticationData authData,
AuthenticationSession session,
AssertionAttributeExtractor extractor,
- IOAAuthParameters oaParam)
+ IOAAuthParameters oaParam,
+ IRequest req)
throws BuildException, AssertionAttributeExtractorExeption {
Logger.debug("Build AuthData from assertion starts ....");
@@ -358,14 +361,35 @@ public class AuthenticationDataBuilder implements MOAIDAuthConstants {
authData.setFamilyName(extractor.getSingleAttributeValue(PVPConstants.PRINCIPAL_NAME_NAME));
authData.setGivenName(extractor.getSingleAttributeValue(PVPConstants.GIVEN_NAME_NAME));
authData.setDateOfBirth(extractor.getSingleAttributeValue(PVPConstants.BIRTHDATE_NAME));
- authData.setBPKType(extractor.getSingleAttributeValue(PVPConstants.EID_SECTOR_FOR_IDENTIFIER_NAME));
authData.setCcc(extractor.getSingleAttributeValue(PVPConstants.EID_ISSUING_NATION_NAME));
authData.setBkuURL(extractor.getSingleAttributeValue(PVPConstants.EID_CCS_URL_NAME));
authData.setIdentificationValue(extractor.getSingleAttributeValue(PVPConstants.EID_SOURCE_PIN_NAME));
authData.setIdentificationType(extractor.getSingleAttributeValue(PVPConstants.EID_SOURCE_PIN_TYPE_NAME));
+
+ if (extractor.containsAttribute(PVPConstants.EID_SECTOR_FOR_IDENTIFIER_NAME)) {
+ String bpkType = extractor.getSingleAttributeValue(PVPConstants.EID_SECTOR_FOR_IDENTIFIER_NAME);
+ if (bpkType.startsWith(Constants.URN_PREFIX_CDID) &&
+ !bpkType.substring(Constants.URN_PREFIX_CDID.length(),
+ Constants.URN_PREFIX_CDID.length() + 1).equals("+")) {
+ Logger.warn("Receive uncorrect encoded bBKType attribute " + bpkType + " Starting attribute value correction ... ");
+ bpkType = Constants.URN_PREFIX_CDID + "+" + bpkType.substring(Constants.URN_PREFIX_CDID.length() + 1);
+
+ }
+
+ authData.setBPKType(bpkType);
+ }
+
if (extractor.containsAttribute(PVPConstants.BPK_NAME)) {
String pvpbPK = extractor.getSingleAttributeValue(PVPConstants.BPK_NAME);
+
+ if (pvpbPK.startsWith("bPK:")) {
+ Logger.warn("Attribute " + PVPConstants.BPK_NAME
+ + " contains a not standardize prefix! Staring attribute value correction process ...");
+ pvpbPK = pvpbPK.substring("bPK:".length());
+
+ }
+
String[] spitted = pvpbPK.split(":");
authData.setBPK(spitted[1]);
if (MiscUtil.isEmpty(authData.getBPKType())) {
@@ -513,7 +537,7 @@ public class AuthenticationDataBuilder implements MOAIDAuthConstants {
}
//build OA specific bPK/wbPK information
- buildOAspecificbPK(oaParam, authData,
+ buildOAspecificbPK(req, oaParam, authData,
authData.getIdentificationValue(),
authData.getIdentificationType());
@@ -521,7 +545,7 @@ public class AuthenticationDataBuilder implements MOAIDAuthConstants {
if (MiscUtil.isEmpty(authData.getBPK())) {
Logger.debug("Calcutlate bPK from baseID");
- buildOAspecificbPK(oaParam, authData,
+ buildOAspecificbPK(req, oaParam, authData,
authData.getIdentificationValue(),
authData.getIdentificationType());
@@ -536,7 +560,7 @@ public class AuthenticationDataBuilder implements MOAIDAuthConstants {
} else {
Logger.debug("Found PVP QAA level. QAA mapping process starts ... ");
- String mappedQAA = PVPtoSTORKMapper.getInstance().mapQAALevel(qaaLevel);
+ String mappedQAA = PVPtoSTORKMapper.getInstance().mapToQAALevel(qaaLevel);
if (MiscUtil.isNotEmpty(mappedQAA))
authData.setQAALevel(mappedQAA);
@@ -744,6 +768,12 @@ public class AuthenticationDataBuilder implements MOAIDAuthConstants {
}
}
+ //set PVP OU attribute
+ if (extractor.containsAttribute(PVPConstants.OU_NAME)) {
+ authData.setPvpAttribute_OU(extractor.getSingleAttributeValue(PVPConstants.OU_NAME));
+ Logger.debug("Found PVP 'OU' attribute in response -> " + authData.getPvpAttribute_OU());
+
+ }
//set STORK attributes
if (extractor.containsAttribute(PVPConstants.EID_STORK_TOKEN_NAME)) {
@@ -761,8 +791,19 @@ public class AuthenticationDataBuilder implements MOAIDAuthConstants {
authData.setSsoSession(true);
authData.setInterfederatedSSOSession(true);
- if (extractor.getFullAssertion().getConditions() != null && extractor.getFullAssertion().getConditions().getNotOnOrAfter() != null)
+ if (extractor.getFullAssertion().getAuthnStatements() != null
+ && extractor.getFullAssertion().getAuthnStatements().size() > 0) {
+ for (AuthnStatement el : extractor.getFullAssertion().getAuthnStatements()) {
+ if (el.getSessionNotOnOrAfter() != null) {
+ authData.setSsoSessionValidTo(el.getSessionNotOnOrAfter().toDate());
+ break;
+ }
+ }
+
+ } else {
authData.setSsoSessionValidTo(extractor.getFullAssertion().getConditions().getNotOnOrAfter().toDate());
+
+ }
//only for SAML1
if (PVPConstants.STORK_QAA_1_4.equals(authData.getQAALevel()))
@@ -805,7 +846,7 @@ public class AuthenticationDataBuilder implements MOAIDAuthConstants {
}
private static void buildAuthDataFormMOASession(AuthenticationData authData, AuthenticationSession session,
- IOAAuthParameters oaParam) throws BuildException, ConfigurationException {
+ IOAAuthParameters oaParam, IRequest protocolRequest) throws BuildException, ConfigurationException {
IdentityLink identityLink = session.getIdentityLink();
@@ -919,7 +960,7 @@ public class AuthenticationDataBuilder implements MOAIDAuthConstants {
Logger.trace("Authenticated User is OW: " + mandate.getOWbPK());
} else {
- buildOAspecificbPK(oaParam, authData,
+ buildOAspecificbPK(protocolRequest, oaParam, authData,
identityLink.getIdentificationValue(),
identityLink.getIdentificationType());
@@ -951,7 +992,13 @@ public class AuthenticationDataBuilder implements MOAIDAuthConstants {
//resign IDL
IdentityLinkReSigner identitylinkresigner = IdentityLinkReSigner.getInstance();
Element resignedilAssertion;
- resignedilAssertion = identitylinkresigner.resignIdentityLink(businessServiceIdl.getSamlAssertion());
+
+ AuthConfigurationProvider config = AuthConfigurationProvider.getInstance();
+ if (config.isIdentityLinkResigning()) {
+ resignedilAssertion = identitylinkresigner.resignIdentityLink(businessServiceIdl.getSamlAssertion(), config.getIdentityLinkResigningKey());
+ } else {
+ resignedilAssertion = businessServiceIdl.getSamlAssertion();
+ }
IdentityLinkAssertionParser resignedIDLParser = new IdentityLinkAssertionParser(resignedilAssertion);
IdentityLink resignedIDL = resignedIDLParser.parseIdentityLink();
@@ -963,7 +1010,7 @@ public class AuthenticationDataBuilder implements MOAIDAuthConstants {
}
- private static void buildOAspecificbPK(IOAAuthParameters oaParam, AuthenticationData authData, String baseID, String baseIDType) throws BuildException {
+ private static void buildOAspecificbPK(IRequest protocolRequest, IOAAuthParameters oaParam, AuthenticationData authData, String baseID, String baseIDType) throws BuildException {
if (oaParam.getBusinessService()) {
//since we have foreigner, wbPK is not calculated in BKU
@@ -984,9 +1031,15 @@ public class AuthenticationDataBuilder implements MOAIDAuthConstants {
if (baseIDType.equals(Constants.URN_PREFIX_BASEID)) {
// only compute bPK if online application is a public service and we have the Stammzahl
- String bpkBase64 = new BPKBuilder().buildBPK(baseID, oaParam.getTarget());
+ String target = null;
+ if (protocolRequest instanceof SAML1RequestImpl)
+ target = protocolRequest.getTarget();
+ else
+ target = oaParam.getTarget();
+
+ String bpkBase64 = new BPKBuilder().buildBPK(baseID, target);
authData.setBPK(bpkBase64);
- authData.setBPKType(Constants.URN_PREFIX_CDID + "+" + oaParam.getTarget());
+ authData.setBPKType(Constants.URN_PREFIX_CDID + "+" + target);
}
Logger.trace("Authenticate user with bPK " + authData.getBPK());
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/parser/IdentityLinkAssertionParser.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/parser/IdentityLinkAssertionParser.java
index e2802c1d2..a5783bfb7 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/parser/IdentityLinkAssertionParser.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/parser/IdentityLinkAssertionParser.java
@@ -106,7 +106,7 @@ public class IdentityLinkAssertionParser {
+ PDATA
+ "Person";
/** Xpath expression to the PersonData GivenName element */
- private static final String PERSON_GIVEN_NAME_XPATH =
+ public static final String PERSON_GIVEN_NAME_XPATH =
PERSON_XPATH
+ "/"
+ PDATA
@@ -114,7 +114,7 @@ public class IdentityLinkAssertionParser {
+ PDATA
+ "GivenName";
/** Xpath expression to the PersonData FamilyName element */
- private static final String PERSON_FAMILY_NAME_XPATH =
+ public static final String PERSON_FAMILY_NAME_XPATH =
PERSON_XPATH
+ "/"
+ PDATA
@@ -122,7 +122,7 @@ public class IdentityLinkAssertionParser {
+ PDATA
+ "FamilyName";
/** Xpath expression to the PersonData DateOfBirth element */
- private static final String PERSON_DATE_OF_BIRTH_XPATH =
+ public static final String PERSON_DATE_OF_BIRTH_XPATH =
PERSON_XPATH
+ "/"
+ PDATA
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/parser/StartAuthentificationParameterParser.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/parser/StartAuthentificationParameterParser.java
index 1bc3702e4..a123569d5 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/parser/StartAuthentificationParameterParser.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/parser/StartAuthentificationParameterParser.java
@@ -132,12 +132,13 @@ public class StartAuthentificationParameterParser implements MOAIDAuthConstants{
String targetFriendlyNameConfig = oaParam.getTargetFriendlyName();
if (StringUtils.isEmpty(targetConfig)
-// || (module.equals(SAML1Protocol.PATH) &&
-// !StringUtils.isEmpty(target))
+ || (module.equals(SAML1Protocol.PATH) &&
+ !StringUtils.isEmpty(target))
) {
- // no target attribut is given in OA config
- // target is used from request
- // check parameter
+ //INFO: ONLY SAML1 legacy mode
+ // if SAML1 is used and target attribute is given in request
+ // use requested target
+ // check target parameter
if (!ParamValidatorUtils.isValidTarget(target)) {
Logger.error("Selected target is invalid. Using target: " + target);
throw new WrongParametersException("StartAuthentication", PARAM_TARGET, "auth.12");
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/GenerateIFrameTemplateServlet.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/GenerateIFrameTemplateServlet.java
index bc8a01e41..ad4776a45 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/GenerateIFrameTemplateServlet.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/GenerateIFrameTemplateServlet.java
@@ -42,6 +42,11 @@ import at.gv.egovernment.moa.id.commons.db.dao.config.TemplateType;
import at.gv.egovernment.moa.id.commons.db.ex.MOADatabaseException;
import at.gv.egovernment.moa.id.config.auth.AuthConfigurationProvider;
import at.gv.egovernment.moa.id.config.auth.OAAuthParameter;
+
+import at.gv.egovernment.moa.id.moduls.IRequest;
+import at.gv.egovernment.moa.id.moduls.RequestStorage;
+import at.gv.egovernment.moa.id.protocols.saml1.SAML1Protocol;
+
import at.gv.egovernment.moa.id.process.ExecutionContextImpl;
import at.gv.egovernment.moa.id.process.ProcessInstance;
import at.gv.egovernment.moa.id.process.api.ExecutionContext;
@@ -101,11 +106,15 @@ public class GenerateIFrameTemplateServlet extends AuthServlet {
else {
- //load Parameters from config
- String target = oaParam.getTarget();
-
-
-
+ //get Target from config or from request in case of SAML 1
+ String target = null;
+ IRequest pendingReq = RequestStorage.getPendingRequest(pendingRequestID);
+ if (MiscUtil.isNotEmpty(pendingReq.getTarget()) &&
+ pendingReq.requestedModule().equals(SAML1Protocol.PATH))
+ target = pendingReq.getTarget();
+ else
+ target = oaParam.getTarget();
+
String bkuURL = oaParam.getBKUURL(bkuid);
if (MiscUtil.isEmpty(bkuURL)) {
Logger.info("No OA specific BKU defined. Use BKU from default configuration");
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/PEPSConnectorServlet.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/PEPSConnectorServlet.java
index e45418b4b..7357818c8 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/PEPSConnectorServlet.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/PEPSConnectorServlet.java
@@ -48,6 +48,8 @@ import org.apache.velocity.Template;
import org.apache.velocity.VelocityContext;
import org.apache.velocity.app.VelocityEngine;
import org.opensaml.saml2.core.StatusCode;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
import at.gv.egovernment.moa.id.auth.AuthenticationServer;
import at.gv.egovernment.moa.id.auth.builder.DataURLBuilder;
@@ -55,18 +57,23 @@ import at.gv.egovernment.moa.id.auth.data.AuthenticationSession;
import at.gv.egovernment.moa.id.auth.data.IdentityLink;
import at.gv.egovernment.moa.id.auth.exception.AuthenticationException;
import at.gv.egovernment.moa.id.auth.exception.MOAIDException;
+import at.gv.egovernment.moa.id.auth.parser.IdentityLinkAssertionParser;
import at.gv.egovernment.moa.id.auth.stork.STORKException;
import at.gv.egovernment.moa.id.auth.stork.STORKResponseProcessor;
import at.gv.egovernment.moa.id.commons.db.ConfigurationDBUtils;
+import at.gv.egovernment.moa.id.config.ConfigurationException;
import at.gv.egovernment.moa.id.config.auth.AuthConfigurationProvider;
import at.gv.egovernment.moa.id.config.auth.OAAuthParameter;
import at.gv.egovernment.moa.id.moduls.ModulUtils;
import at.gv.egovernment.moa.id.protocols.pvp2x.PVPConstants;
import at.gv.egovernment.moa.id.storage.AuthenticationSessionStoreage;
import at.gv.egovernment.moa.id.util.HTTPUtils;
+import at.gv.egovernment.moa.id.util.IdentityLinkReSigner;
import at.gv.egovernment.moa.id.util.VelocityProvider;
import at.gv.egovernment.moa.logging.Logger;
+import at.gv.egovernment.moa.util.DOMUtils;
import at.gv.egovernment.moa.util.StringUtils;
+import at.gv.egovernment.moa.util.XPathUtils;
import at.gv.util.xsd.xmldsig.SignatureType;
import at.gv.util.xsd.xmldsig.X509DataType;
import eu.stork.oasisdss.api.ApiUtils;
@@ -111,15 +118,26 @@ public class PEPSConnectorServlet extends AuthServlet {
public PEPSConnectorServlet()
{
super();
- Properties props = new Properties();
+
try {
- props.load(DatabaseConnectorMySQLImpl.class.getResourceAsStream("docservice.properties"));
- dtlUrl = props.getProperty("docservice.url");
- } catch (IOException e) {
+ AuthConfigurationProvider authConfigurationProvider = AuthConfigurationProvider.getInstance();
+ dtlUrl = authConfigurationProvider.getDocumentServiceUrl();
+ Logger.info ("PEPSConnectorServlet, using dtlUrl:"+dtlUrl);
+ } catch (Exception e) {
dtlUrl = "http://testvidp.buergerkarte.at/DocumentService/DocumentService";
- Logger.error("Loading DTL config failed, using default value:"+dtlUrl);
e.printStackTrace();
- }
+ Logger.error("Loading documentservice url failed, using default value:"+dtlUrl);
+ }
+
+// Properties props = new Properties();
+// try {
+// props.load(DatabaseConnectorMySQLImpl.class.getResourceAsStream("docservice.properties"));
+// dtlUrl = props.getProperty("docservice.url");
+// } catch (IOException e) {
+// dtlUrl = "http://testvidp.buergerkarte.at/DocumentService/DocumentService";
+// Logger.error("Loading DTL config failed, using default value:"+dtlUrl);
+// e.printStackTrace();
+// }
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
@@ -247,7 +265,56 @@ public class PEPSConnectorServlet extends AuthServlet {
Logger.error("Could not find any preceeding STORK AuthnRequest to this MOA session: " + moaSessionID);
throw new MOAIDException("stork.07", null);
}
-
+
+ OAAuthParameter oaParam = AuthConfigurationProvider.getInstance().getOnlineApplicationParameter(moaSession.getPublicOAURLPrefix());
+ if (oaParam == null)
+ throw new AuthenticationException("auth.00", new Object[] { moaSession.getPublicOAURLPrefix() });
+ //================== Check QAA level start ====================
+ int reqQaa = -1;
+ int authQaa = -1;
+ String authQaaStr = null;
+ try {
+ reqQaa = storkAuthnRequest.getQaa();
+
+ //TODO: found better solution, but QAA Level in response could be not supported yet
+ try {
+
+ authQaaStr = authnResponse.getAssertions().get(0).
+ getAuthnStatements().get(0).getAuthnContext().
+ getAuthnContextClassRef().getAuthnContextClassRef();
+ moaSession.setQAALevel(authQaaStr);
+
+ } catch (Throwable e) {
+ Logger.warn("STORK QAA-Level is not found in AuthnResponse. Set QAA Level to requested level");
+ moaSession.setQAALevel(PVPConstants.STORK_QAA_PREFIX + oaParam.getQaaLevel());
+ authQaaStr = PVPConstants.STORK_QAA_PREFIX + oaParam.getQaaLevel();
+ }
+ if(authQaaStr != null)//Check value only if set
+ {
+ authQaa = Integer.valueOf(authQaaStr.substring(PVPConstants.STORK_QAA_PREFIX.length()));
+// authQaa = Integer.valueOf(authQaaStr);
+ if (reqQaa > authQaa) {
+ Logger.warn("Requested QAA level does not match to authenticated QAA level");
+ throw new MOAIDException("stork.21", new Object[]{reqQaa, authQaa});
+
+ }
+ }
+ } catch (MOAIDException e) {
+ throw e;
+
+ } catch (Exception e) {
+ if (Logger.isDebugEnabled())
+ Logger.warn("STORK QAA Level evaluation error", e);
+
+ else
+ Logger.warn("STORK QAA Level evaluation error (ErrorMessage="
+ + e.getMessage() + ")");
+
+ throw new MOAIDException("stork.21", new Object[]{reqQaa, authQaa});
+
+ }
+ //================== Check QAA level end ====================
+
Logger.debug("Found a preceeding STORK AuthnRequest to this MOA session: " + moaSessionID);
////////////// incorporate gender from parameters if not in stork response
@@ -288,28 +355,41 @@ public class PEPSConnectorServlet extends AuthServlet {
SignResponse dssSignResponse = (SignResponse) ApiUtils.unmarshal(new StreamSource(new java.io.StringReader(signatureInfo)));
// fetch signed doc
- DataSource ds = LightweightSourceResolver.getDataSource(dssSignResponse);
+ DataSource ds = null;
+ try{
+ ds = LightweightSourceResolver.getDataSource(dssSignResponse);
+ }catch(Exception e)
+ {
+ e.printStackTrace();
+ }
if(ds == null){
- throw new ApiUtilsException("No datasource found in response");
- }
-
- InputStream incoming = ds.getInputStream();
- citizenSignature = IOUtils.toString(incoming);
- incoming.close();
-
- Logger.debug("citizenSignature:"+citizenSignature);
- if(isDocumentServiceUsed(citizenSignature)==true)
+ //Normal DocumentServices return a http-page, but the SI DocumentService returns HTTP error 500
+ //which results in an exception and ds==null
+
+ //try to load document from documentservice
+ citizenSignature = loadDocumentFromDocumentService(dssSignResponse);
+ //throw new ApiUtilsException("No datasource found in response");
+ }
+ else
{
- Logger.debug("Loading document from DocumentService.");
- String url = getDtlUrlFromResponse(dssSignResponse);
- //get Transferrequest
- String transferRequest = getDocTransferRequest(dssSignResponse.getDocUI(), url);
- //Load document from DocujmentService
- byte[] data = getDocumentFromDtl(transferRequest, url);
- citizenSignature = new String(data, "UTF-8");
- Logger.debug("Overridung citizenSignature with:"+citizenSignature);
+ InputStream incoming = ds.getInputStream();
+ citizenSignature = IOUtils.toString(incoming);
+ incoming.close();
+
+ Logger.debug("citizenSignature:"+citizenSignature);
+ if(isDocumentServiceUsed(citizenSignature)==true)
+ {
+ citizenSignature = loadDocumentFromDocumentService(dssSignResponse);
+ // Logger.debug("Loading document from DocumentService.");
+ // String url = getDtlUrlFromResponse(dssSignResponse);
+ // //get Transferrequest
+ // String transferRequest = getDocTransferRequest(dssSignResponse.getDocUI(), url);
+ // //Load document from DocumentService
+ // byte[] data = getDocumentFromDtl(transferRequest, url);
+ // citizenSignature = new String(data, "UTF-8");
+ // Logger.debug("Overridung citizenSignature with:"+citizenSignature);
+ }
}
-
JAXBContext ctx = JAXBContext.newInstance(SignatureType.class.getPackage().getName());
SignatureType root = ((JAXBElement<SignatureType>) ctx.createUnmarshaller().unmarshal(IOUtils.toInputStream(citizenSignature))).getValue();
@@ -346,9 +426,9 @@ public class PEPSConnectorServlet extends AuthServlet {
// Logger.error("could not retrieve moa session");
// throw new AuthenticationException("auth.01", null);
// }
- OAAuthParameter oaParam = AuthConfigurationProvider.getInstance().getOnlineApplicationParameter(moaSession.getPublicOAURLPrefix());
- if (oaParam == null)
- throw new AuthenticationException("auth.00", new Object[] { moaSession.getPublicOAURLPrefix() });
+// OAAuthParameter oaParam = AuthConfigurationProvider.getInstance().getOnlineApplicationParameter(moaSession.getPublicOAURLPrefix());
+// if (oaParam == null)
+// throw new AuthenticationException("auth.00", new Object[] { moaSession.getPublicOAURLPrefix() });
// retrieve target
//TODO: check in case of SSO!!!
@@ -363,14 +443,61 @@ public class PEPSConnectorServlet extends AuthServlet {
targetType = AuthenticationSession.TARGET_PREFIX_ + oaParam.getTarget();
}
- Logger.debug("Starting connecting SZR Gateway");
- //contact SZR Gateway
IdentityLink identityLink = null;
try {
- identityLink = STORKResponseProcessor.connectToSZRGateway(authnResponse.getPersonalAttributeList(),
+ AuthConfigurationProvider config = AuthConfigurationProvider.getInstance();
+ if(config.isStorkFakeIdLActive() && config.getStorkFakeIdLCountries().contains(storkAuthnRequest.getCitizenCountryCode())) {
+ // create fake IdL
+ // - fetch IdL template from resources
+ InputStream s = PEPSConnectorServlet.class.getResourceAsStream("/resources/xmldata/fakeIdL_IdL_template.xml");
+ Element idlTemplate = DOMUtils.parseXmlValidating(s);
+
+ identityLink = new IdentityLinkAssertionParser(idlTemplate).parseIdentityLink();
+
+ // replace data
+ Element idlassertion = identityLink.getSamlAssertion();
+ // - set bpk/wpbk;
+ Node prIdentification = XPathUtils.selectSingleNode(idlassertion, IdentityLinkAssertionParser.PERSON_IDENT_VALUE_XPATH);
+ if(!STORKResponseProcessor.hasAttribute("eIdentifier", attributeList))
+ throw new STORKException("eIdentifier is missing");
+ String eIdentifier = STORKResponseProcessor.getAttributeValue("eIdentifier", attributeList, false);
+ prIdentification.getFirstChild().setNodeValue(eIdentifier);
+
+ // - set last name
+ Node prFamilyName = XPathUtils.selectSingleNode(idlassertion, IdentityLinkAssertionParser.PERSON_FAMILY_NAME_XPATH);
+ if(!STORKResponseProcessor.hasAttribute("surname", attributeList))
+ throw new STORKException("surname is missing");
+ String familyName = STORKResponseProcessor.getAttributeValue("surname", attributeList, false);
+ prFamilyName.getFirstChild().setNodeValue(familyName);
+
+ // - set first name
+ Node prGivenName = XPathUtils.selectSingleNode(idlassertion, IdentityLinkAssertionParser.PERSON_GIVEN_NAME_XPATH);
+ if(!STORKResponseProcessor.hasAttribute("givenName", attributeList))
+ throw new STORKException("givenName is missing");
+ String givenName = STORKResponseProcessor.getAttributeValue("givenName", attributeList, false);
+ prGivenName.getFirstChild().setNodeValue(givenName);
+
+ // - set date of birth
+ Node prDateOfBirth = XPathUtils.selectSingleNode(idlassertion, IdentityLinkAssertionParser.PERSON_DATE_OF_BIRTH_XPATH);
+ if(!STORKResponseProcessor.hasAttribute("dateOfBirth", attributeList))
+ throw new STORKException("dateOfBirth is missing");
+ String dateOfBirth = STORKResponseProcessor.getAttributeValue("dateOfBirth", attributeList, false);
+ prDateOfBirth.getFirstChild().setNodeValue(dateOfBirth);
+
+ identityLink = new IdentityLinkAssertionParser(idlassertion).parseIdentityLink();
+
+ //resign IDL
+ IdentityLinkReSigner identitylinkresigner = IdentityLinkReSigner.getInstance();
+ Element resignedilAssertion = identitylinkresigner.resignIdentityLink(identityLink.getSamlAssertion(), config.getStorkFakeIdLResigningKey());
+ identityLink = new IdentityLinkAssertionParser(resignedilAssertion).parseIdentityLink();
+ } else {
+ //contact SZR Gateway
+ Logger.debug("Starting connecting SZR Gateway");
+ identityLink = STORKResponseProcessor.connectToSZRGateway(authnResponse.getPersonalAttributeList(),
oaParam.getFriendlyName(),
targetType, null,
oaParam.getMandateProfiles(), citizenSignature);
+ }
} catch (STORKException e) {
// this is really nasty but we work against the system here. We are supposed to get the gender attribute from
// stork. If we do not, we cannot register the person in the ERnP - we have to have the
@@ -427,18 +554,18 @@ public class PEPSConnectorServlet extends AuthServlet {
// stork did the authentication step
moaSession.setAuthenticated(true);
- //TODO: found better solution, but QAA Level in response could be not supported yet
- try {
-
- moaSession.setQAALevel(authnResponse.getAssertions().get(0).
- getAuthnStatements().get(0).getAuthnContext().
- getAuthnContextClassRef().getAuthnContextClassRef());
-
- } catch (Throwable e) {
- Logger.warn("STORK QAA-Level is not found in AuthnResponse. Set QAA Level to requested level");
- moaSession.setQAALevel(PVPConstants.STORK_QAA_PREFIX + oaParam.getQaaLevel());
-
- }
+// //TODO: found better solution, but QAA Level in response could be not supported yet
+// try {
+//
+// moaSession.setQAALevel(authnResponse.getAssertions().get(0).
+// getAuthnStatements().get(0).getAuthnContext().
+// getAuthnContextClassRef().getAuthnContextClassRef());
+//
+// } catch (Throwable e) {
+// Logger.warn("STORK QAA-Level is not found in AuthnResponse. Set QAA Level to requested level");
+// moaSession.setQAALevel(PVPConstants.STORK_QAA_PREFIX + oaParam.getQaaLevel());
+//
+// }
//session is implicit stored in changeSessionID!!!!
String newMOASessionID = AuthenticationSessionStoreage.changeSessionID(moaSession);
@@ -476,11 +603,28 @@ public class PEPSConnectorServlet extends AuthServlet {
}
+ private String loadDocumentFromDocumentService(SignResponse dssSignResponse) throws Exception
+ {
+ Logger.debug("Loading document from DocumentService.");
+ String url = getDtlUrlFromResponse(dssSignResponse);
+ Logger.debug("Loading document from DocumentService, url:"+url);
+ //get Transferrequest
+ String transferRequest = getDocTransferRequest(dssSignResponse.getDocUI(), url);
+ //Load document from DocumentService
+ byte[] data = getDocumentFromDtl(transferRequest, url);
+ String citizenSignature = new String(data, "UTF-8");
+ Logger.debug("Overridung citizenSignature with:"+citizenSignature);
+ return citizenSignature;
+ }
private boolean isDocumentServiceUsed(String citizenSignature) //TODo add better check
{
if(citizenSignature.contains("<table border=\"0\"><tr><td>Service Name:</td><td>{http://stork.eu}DocumentService</td></tr><tr><td>Port Name:</td><td>{http://stork.eu}DocumentServicePort</td></tr></table>"))
+ {
+ Logger.trace("isDocumentServiceUsed => true");
return true;
+ }
+ Logger.trace("isDocumentServiceUsed => false");
return false;
}
@@ -517,6 +661,7 @@ public class PEPSConnectorServlet extends AuthServlet {
URL url = null;
try
{
+ Logger.debug("getDocumentFromDtl, dtlUrl:'"+dtlUrl+"' eDtlUrl:'"+eDtlUrl+"'");
url = new URL(dtlUrl);
QName qname = new QName("http://stork.eu",
"DocumentService");
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/stork/STORKResponseProcessor.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/stork/STORKResponseProcessor.java
index 7113dcf70..ea1526ff0 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/stork/STORKResponseProcessor.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/stork/STORKResponseProcessor.java
@@ -102,7 +102,7 @@ public class STORKResponseProcessor {
private static String getAttributeValue(String attributeName, IPersonalAttributeList attributeList) throws STORKException {
return getAttributeValue(attributeName, attributeList, true);
}
- private static String getAttributeValue(String attributeName, IPersonalAttributeList attributeList, boolean throwException) throws STORKException {
+ public static String getAttributeValue(String attributeName, IPersonalAttributeList attributeList, boolean throwException) throws STORKException {
try {
String result = attributeList.get(attributeName).getValue().get(0);
Logger.trace(attributeName + " : " + result);
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/validator/parep/client/szrgw/SZRGWClient.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/validator/parep/client/szrgw/SZRGWClient.java
index e1cd59c26..61b26b59a 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/validator/parep/client/szrgw/SZRGWClient.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/validator/parep/client/szrgw/SZRGWClient.java
@@ -65,6 +65,7 @@ import org.w3c.dom.NodeList;
import org.w3c.dom.Text;
import at.gv.egovernment.moa.id.auth.validator.parep.ParepUtils;
+import at.gv.egovernment.moa.id.commons.utils.HttpClientWithProxySupport;
import at.gv.egovernment.moa.util.Constants;
import at.gv.egovernment.moa.util.DOMUtils;
@@ -137,7 +138,7 @@ public class SZRGWClient {
if (address == null) {
throw new NullPointerException("Address (SZR-gateway ServiceURL) must not be null.");
}
- HttpClient client = new HttpClient();
+ HttpClient client = HttpClientWithProxySupport.getHttpClient();
PostMethod method = new PostMethod(address);
method.setRequestHeader("SOAPAction", "");
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/auth/AuthConfigurationProvider.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/auth/AuthConfigurationProvider.java
index 0dfd2236f..c746c0888 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/auth/AuthConfigurationProvider.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/auth/AuthConfigurationProvider.java
@@ -53,6 +53,7 @@ import java.io.IOException;
import java.math.BigInteger;
import java.net.MalformedURLException;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
@@ -1008,6 +1009,39 @@ public class AuthConfigurationProvider extends ConfigurationProvider {
return null;
}
+ /**
+ * Checks if is fakeIdL is activated.
+ *
+ * @return true, if fake IdLs are available for stork
+ */
+ public boolean isStorkFakeIdLActive() {
+ String prop = props.getProperty("stork.fakeIdL.active", "false");
+ return Boolean.valueOf(prop);
+ }
+
+ /**
+ * Gets the countries which will receive a fake IdL
+ *
+ * @return the countries
+ */
+ public List<String> getStorkFakeIdLCountries() {
+ String prop = props.getProperty("stork.fakeIdL.countries", "");
+ return Arrays.asList(prop.replaceAll(" ", "").split(","));
+ }
+
+ /**
+ * Gets the resigning key (group) for the stork fake IdL.
+ *
+ * @return the resigning key
+ */
+ public String getStorkFakeIdLResigningKey() {
+ String prop = props.getProperty("stork.fakeIdL.keygroup");
+ if (MiscUtil.isNotEmpty(prop))
+ return prop;
+ else
+ return null;
+ }
+
public boolean isMonitoringActive() {
String prop = props.getProperty("configuration.monitoring.active", "false");
return Boolean.valueOf(prop);
@@ -1048,8 +1082,21 @@ public class AuthConfigurationProvider extends ConfigurationProvider {
return !Boolean.valueOf(prop);
}
+
+ //Load document service url from moa properties
+ public String getDocumentServiceUrl() {
+ String prop = props.getProperty("stork.documentservice.url", "false");
+ return prop;
+ }
+
+
+ public boolean isPVPSchemaValidationActive() {
+ String prop = props.getProperty("protocols.pvp2.schemavalidation", "true");
+ return Boolean.valueOf(prop);
+ }
+
/**
- * Retruns the STORK Configuration
+ * Returns the STORK Configuration
* @return STORK Configuration
* @throws ConfigurationException
*/
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/data/AuthenticationData.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/data/AuthenticationData.java
index 65c413ef9..05b008515 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/data/AuthenticationData.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/data/AuthenticationData.java
@@ -133,7 +133,9 @@ public class AuthenticationData implements IAuthData, Serializable {
private String authBlock = null;
private List<String> encbPKList = null;
+ //ISA 1.18 attributes
private List<AuthenticationRole> roles = null;
+ private String pvpAttribute_OU = null;
private boolean useMandate = false;
private MISMandate mandate = null;
@@ -707,6 +709,7 @@ public class AuthenticationData implements IAuthData, Serializable {
return roles;
}
+ //ISA 1.18 attributes
/**
* @param roles the roles to set
*/
@@ -716,26 +719,31 @@ public class AuthenticationData implements IAuthData, Serializable {
this.roles.add(role);
}
+
+ /**
+ * @return the pvpAttribute_OU
+ */
+ public String getPvpAttribute_OU() {
+ return pvpAttribute_OU;
+ }
+
+ /**
+ * @param pvpAttribute_OU the pvpAttribute_OU to set
+ */
+ public void setPvpAttribute_OU(String pvpAttribute_OU) {
+ this.pvpAttribute_OU = pvpAttribute_OU;
+ }
/* (non-Javadoc)
* @see at.gv.egovernment.moa.id.data.IAuthData#isBusinessService()
*/
@Override
public boolean isBusinessService() {
- // TODO Auto-generated method stub
return this.businessService;
}
public void setIsBusinessService(boolean flag) {
this.businessService = flag;
- }
-
-
-
-
-
-
-
-
+ }
}
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/data/AuthenticationRoleFactory.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/data/AuthenticationRoleFactory.java
index 8915b2442..b3b29f6c5 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/data/AuthenticationRoleFactory.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/data/AuthenticationRoleFactory.java
@@ -26,6 +26,7 @@ import java.util.Arrays;
import java.util.List;
import at.gv.egovernment.moa.logging.Logger;
+import at.gv.egovernment.moa.util.MiscUtil;
/**
* @author tlenz
@@ -51,23 +52,29 @@ public class AuthenticationRoleFactory {
List<String> param = Arrays.asList(params.split(","));
String test = new String();
for (String el : param) {
- test = test.concat(el);
- if (!test.endsWith("\\") ||
- (test.endsWith("\\\\") && !test.endsWith("\\\\\\")) ) {
- String[] keyValue = test.split("=");
- if (keyValue.length < 2) {
- role.addParameter(keyValue[0].trim(), "");
- Logger.debug("Add authentication roleparameter with key=" + keyValue[0].trim());
+ if (MiscUtil.isNotEmpty(el)) {
+ test = test.concat(el);
+ if (!test.endsWith("\\") ||
+ (test.endsWith("\\\\") && !test.endsWith("\\\\\\")) ) {
+ String[] keyValue = test.split("=");
+ if (keyValue.length < 2) {
+ role.addParameter(keyValue[0].trim(), "");
+ Logger.debug("Add authentication roleparameter with key=" + keyValue[0].trim());
- } else {
- role.addParameter(keyValue[0].trim(), keyValue[1].trim());
- Logger.debug("Add authentication roleparameter with key=" + keyValue[0].trim()
- + " value=" + keyValue[1].trim());
+ } else {
+ role.addParameter(keyValue[0].trim(), keyValue[1].trim());
+ Logger.debug("Add authentication roleparameter with key=" + keyValue[0].trim()
+ + " value=" + keyValue[1].trim());
- }
+ }
- test = new String();
- }
+ test = new String();
+
+ } else {
+ test = test.substring(0, test.length()-1).concat(",");
+
+ }
+ }
}
}
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/data/IAuthData.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/data/IAuthData.java
index ebbf62ce7..ccc90a031 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/data/IAuthData.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/data/IAuthData.java
@@ -69,7 +69,9 @@ public interface IAuthData {
IdentityLink getIdentityLink();
byte[] getSignerCertificate();
String getAuthBlock();
-
+
+ //ISA 1.18 attributes
+ String getPvpAttribute_OU();
List<AuthenticationRole> getAuthenticationRoles();
boolean isPublicAuthority();
@@ -90,5 +92,6 @@ public interface IAuthData {
String getCcc();
STORKAuthnRequest getStorkAuthnRequest();
String getStorkAuthnResponse();
- IPersonalAttributeList getStorkAttributes();
+ IPersonalAttributeList getStorkAttributes();
+
}
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/moduls/AuthenticationManager.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/moduls/AuthenticationManager.java
index b239fbb1d..49f3df25c 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/moduls/AuthenticationManager.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/moduls/AuthenticationManager.java
@@ -77,6 +77,8 @@ import at.gv.egovernment.moa.id.config.auth.AuthConfigurationProvider;
import at.gv.egovernment.moa.id.config.auth.OAAuthParameter;
import at.gv.egovernment.moa.id.data.SLOInformationContainer;
import at.gv.egovernment.moa.id.data.SLOInformationImpl;
+import at.gv.egovernment.moa.id.protocols.pvp2x.PVPConstants;
+
import at.gv.egovernment.moa.id.process.ExecutionContextImpl;
import at.gv.egovernment.moa.id.process.ProcessEngine;
import at.gv.egovernment.moa.id.process.ProcessExecutionException;
@@ -91,9 +93,11 @@ import at.gv.egovernment.moa.id.protocols.pvp2x.messages.MOARequest;
import at.gv.egovernment.moa.id.protocols.pvp2x.metadata.MOAMetadataProvider;
import at.gv.egovernment.moa.id.protocols.pvp2x.utils.MOASAMLSOAPClient;
import at.gv.egovernment.moa.id.protocols.pvp2x.utils.SAML2Utils;
+import at.gv.egovernment.moa.id.protocols.stork2.MOASTORKRequest;
import at.gv.egovernment.moa.id.storage.AssertionStorage;
import at.gv.egovernment.moa.id.storage.AuthenticationSessionStoreage;
import at.gv.egovernment.moa.id.util.MOAIDMessageProvider;
+import at.gv.egovernment.moa.id.util.PVPtoSTORKMapper;
import at.gv.egovernment.moa.id.util.ParamValidatorUtils;
import at.gv.egovernment.moa.id.util.Random;
import at.gv.egovernment.moa.logging.Logger;
@@ -384,6 +388,7 @@ public class AuthenticationManager implements MOAIDAuthConstants {
//get IDP metadata
try {
OAAuthParameter idp = AuthConfigurationProvider.getInstance().getOnlineApplicationParameter(target.getRequestedIDP());
+ OAAuthParameter sp = AuthConfigurationProvider.getInstance().getOnlineApplicationParameter(target.getOAURL());
if (!idp.isInderfederationIDP() || !idp.isInboundSSOInterfederationAllowed()) {
Logger.info("Requested interfederation IDP " + target.getRequestedIDP() + " is not valid for interfederation.");
@@ -392,7 +397,7 @@ public class AuthenticationManager implements MOAIDAuthConstants {
return;
}
-
+
EntityDescriptor idpEntity = MOAMetadataProvider.getInstance().
getEntityDescriptor(target.getRequestedIDP());
@@ -412,7 +417,7 @@ public class AuthenticationManager implements MOAIDAuthConstants {
redirectEndpoint == null )
redirectEndpoint = sss;
}
-
+
if (redirectEndpoint != null) {
AuthnRequest authReq = SAML2Utils
@@ -425,16 +430,10 @@ public class AuthenticationManager implements MOAIDAuthConstants {
authReq.setAssertionConsumerServiceIndex(0);
authReq.setIssueInstant(new DateTime());
- Subject subject = SAML2Utils.createSAMLObject(Subject.class);
- NameID name = SAML2Utils.createSAMLObject(NameID.class);
- Issuer issuer = SAML2Utils.createSAMLObject(Issuer.class);
-
+ Issuer issuer = SAML2Utils.createSAMLObject(Issuer.class);
String serviceURL = PVPConfiguration.getInstance().getIDPPublicPath();
- name.setValue(serviceURL);
issuer.setValue(serviceURL);
- subject.setNameID(name);
- authReq.setSubject(subject);
issuer.setFormat(NameIDType.ENTITY);
authReq.setIssuer(issuer);
NameIDPolicy policy = SAML2Utils
@@ -449,13 +448,55 @@ public class AuthenticationManager implements MOAIDAuthConstants {
SAML2Utils.createSAMLObject(RequestedAuthnContext.class);
AuthnContextClassRef authnClassRef =
- SAML2Utils.createSAMLObject(AuthnContextClassRef.class);
- authnClassRef.setAuthnContextClassRef("http://www.stork.gov.eu/1.0/citizenQAALevel/4");
+ SAML2Utils.createSAMLObject(AuthnContextClassRef.class);
+
+ if (sp != null && sp.isSTORKPVPGateway()){
+ //use PVP SecClass instead of STORK QAA level
+ String secClass = null;
+ if (target instanceof MOASTORKRequest) {
+
+ try {
+ MOASTORKRequest storkReq = (MOASTORKRequest) target;
+ secClass = PVPtoSTORKMapper.getInstance().mapToSecClass(
+ PVPConstants.STORK_QAA_PREFIX + storkReq.getStorkAuthnRequest().getQaa());
+
+ } catch (Exception e) {
+ Logger.warn("STORK-QAA level can not read from STORK request. Use default QAA 4", e);
+
+ }
+ }
+
+ if (MiscUtil.isNotEmpty(secClass))
+ authnClassRef.setAuthnContextClassRef(secClass);
+ else
+ authnClassRef.setAuthnContextClassRef("http://www.ref.gv.at/ns/names/agiz/pvp/secclass/0-3");
+
+ } else {
+ if (target instanceof MOASTORKRequest) {
+ //use requested QAA level from STORK request
+ try {
+ MOASTORKRequest storkReq = (MOASTORKRequest) target;
+ authnClassRef.setAuthnContextClassRef(
+ PVPConstants.STORK_QAA_PREFIX + storkReq.getStorkAuthnRequest().getQaa());
+ Logger.debug("Use STORK-QAA level " + authnClassRef.getAuthnContextClassRef()
+ + " from STORK request");
+
+ } catch (Exception e) {
+ Logger.warn("STORK-QAA level can not read from STORK request. Use default QAA 4", e);
+
+ }
+
+ }
+
+ if (MiscUtil.isEmpty(authnClassRef.getAuthnContextClassRef()))
+ authnClassRef.setAuthnContextClassRef("http://www.stork.gov.eu/1.0/citizenQAALevel/4");
+
+ }
+
reqAuthContext.setComparison(AuthnContextComparisonTypeEnumeration.MINIMUM);
reqAuthContext.getAuthnContextClassRefs().add(authnClassRef);
authReq.setRequestedAuthnContext(reqAuthContext);
-
-
+
IEncoder binding = null;
if (redirectEndpoint.getBinding().equals(
SAMLConstants.SAML2_REDIRECT_BINDING_URI)) {
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/SingleLogOutAction.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/SingleLogOutAction.java
index b22941216..aa154b84b 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/SingleLogOutAction.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/SingleLogOutAction.java
@@ -135,8 +135,10 @@ public class SingleLogOutAction implements IAction {
if (MiscUtil.isEmpty(ssoID)) {
Logger.warn("Can not find active Session. Single LogOut not possible!");
SingleLogoutService sloService = SingleLogOutBuilder.getResponseSLODescriptor(pvpReq);
- LogoutResponse message = SingleLogOutBuilder.buildSLOErrorResponse(sloService, pvpReq, StatusCode.RESPONDER_URI);
- SingleLogOutBuilder.sendFrontChannelSLOMessage(sloService, message, httpReq, httpResp, samlReq.getRelayState());
+ //LogoutResponse message = SingleLogOutBuilder.buildSLOErrorResponse(sloService, pvpReq, StatusCode.RESPONDER_URI);
+ LogoutResponse message = SingleLogOutBuilder.buildSLOResponseMessage(sloService, pvpReq, null);
+ Logger.info("Sending SLO success message to requester ...");
+ SingleLogOutBuilder.sendFrontChannelSLOMessage(sloService, message, httpReq, httpResp, samlReq.getRelayState());
return null;
} else {
@@ -147,7 +149,9 @@ public class SingleLogOutAction implements IAction {
} catch (MOADatabaseException e) {
Logger.warn("Can not find active Session. Single LogOut not possible!");
SingleLogoutService sloService = SingleLogOutBuilder.getResponseSLODescriptor(pvpReq);
- LogoutResponse message = SingleLogOutBuilder.buildSLOErrorResponse(sloService, pvpReq, StatusCode.RESPONDER_URI);
+ //LogoutResponse message = SingleLogOutBuilder.buildSLOErrorResponse(sloService, pvpReq, StatusCode.RESPONDER_URI);
+ LogoutResponse message = SingleLogOutBuilder.buildSLOResponseMessage(sloService, pvpReq, null);
+ Logger.info("Sending SLO success message to requester ...");
SingleLogOutBuilder.sendFrontChannelSLOMessage(sloService, message, httpReq, httpResp, samlReq.getRelayState());
return null;
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/SingleLogOutBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/SingleLogOutBuilder.java
index 01139d95c..50f42d928 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/SingleLogOutBuilder.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/SingleLogOutBuilder.java
@@ -43,6 +43,7 @@ import org.opensaml.saml2.core.StatusCode;
import org.opensaml.saml2.core.StatusMessage;
import org.opensaml.saml2.core.StatusResponseType;
import org.opensaml.saml2.metadata.EntityDescriptor;
+import org.opensaml.saml2.metadata.IDPSSODescriptor;
import org.opensaml.saml2.metadata.SPSSODescriptor;
import org.opensaml.saml2.metadata.SSODescriptor;
import org.opensaml.saml2.metadata.SingleLogoutService;
@@ -348,17 +349,29 @@ public class SingleLogOutBuilder {
public static SingleLogoutService getResponseSLODescriptor(PVPTargetConfiguration spRequest) throws NoMetadataInformationException, NOSLOServiceDescriptorException {
MOARequest moaReq = (MOARequest) spRequest.getRequest();
EntityDescriptor metadata = moaReq.getEntityMetadata();
- SPSSODescriptor spsso = metadata.getSPSSODescriptor(SAMLConstants.SAML20P_NS);
+ SSODescriptor ssodesc = metadata.getSPSSODescriptor(SAMLConstants.SAML20P_NS);
+
+ if (ssodesc == null) {
+ Logger.debug("No PVP SPSSO descriptor found --> search IDPSSO descriptor");
+ ssodesc = metadata.getIDPSSODescriptor(SAMLConstants.SAML20P_NS);
+
+ }
+
+ if (ssodesc == null) {
+ Logger.error("Found no SLO ServiceDescriptor in Metadata");
+ throw new NOSLOServiceDescriptorException("NO SLO ServiceDescriptor", null);
+ }
+
SingleLogoutService sloService = null;
- for (SingleLogoutService el : spsso.getSingleLogoutServices()) {
+ for (SingleLogoutService el : ssodesc.getSingleLogoutServices()) {
if (el.getBinding().equals(spRequest.getBinding()))
sloService = el;
}
if (sloService == null) {
- if (spsso.getSingleLogoutServices().size() != 0)
- sloService = spsso.getSingleLogoutServices().get(0);
+ if (ssodesc.getSingleLogoutServices().size() != 0)
+ sloService = ssodesc.getSingleLogoutServices().get(0);
else {
Logger.error("Found no SLO ServiceDescriptor in Metadata");
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/MandateProfRepDescAttributeBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/MandateProfRepDescAttributeBuilder.java
index 4c981cb24..1059e324e 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/MandateProfRepDescAttributeBuilder.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/MandateProfRepDescAttributeBuilder.java
@@ -22,10 +22,14 @@
*******************************************************************************/
package at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes;
+import org.w3c.dom.Element;
+
+import at.gv.e_government.reference.namespace.mandates._20040701_.Mandate;
import at.gv.egovernment.moa.id.config.auth.OAAuthParameter;
import at.gv.egovernment.moa.id.data.IAuthData;
import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.AttributeException;
import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.NoMandateDataAttributeException;
+import at.gv.egovernment.moa.id.util.MandateBuilder;
import at.gv.egovernment.moa.id.util.client.mis.simple.MISMandate;
import at.gv.egovernment.moa.util.MiscUtil;
@@ -37,23 +41,37 @@ public class MandateProfRepDescAttributeBuilder implements IPVPAttributeBuilder
public <ATT> ATT build(OAAuthParameter oaParam, IAuthData authData,
IAttributeGenerator<ATT> g) throws AttributeException {
- if(authData.isUseMandate()) {
- MISMandate mandate = authData.getMISMandate();
-
+ if(authData.isUseMandate()) {
+ Element mandate = authData.getMandate();
+ if (mandate == null) {
+ throw new NoMandateDataAttributeException();
+ }
- if(mandate == null) {
+ Mandate mandateObject = MandateBuilder.buildMandate(authData.getMandate());
+ if (mandateObject == null) {
throw new NoMandateDataAttributeException();
}
+
+ String text = null;
+ if (MiscUtil.isNotEmpty(mandateObject.getAnnotation())) {
+ text = mandateObject.getAnnotation();
+
+ } else {
+ MISMandate misMandate = authData.getMISMandate();
- String text = mandate.getTextualDescriptionOfOID();
+ if(misMandate == null) {
+ throw new NoMandateDataAttributeException();
+ }
- if(MiscUtil.isEmpty(text)) {
- return null;
-
- } else
- return g.buildStringAttribute(MANDATE_PROF_REP_DESC_FRIENDLY_NAME,
- MANDATE_PROF_REP_DESC_NAME, text);
+ text = misMandate.getTextualDescriptionOfOID();
+ if(MiscUtil.isEmpty(text)) {
+ return null;
+
+ } else
+ return g.buildStringAttribute(MANDATE_PROF_REP_DESC_FRIENDLY_NAME,
+ MANDATE_PROF_REP_DESC_NAME, text);
+ }
}
return null;
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/exceptions/SchemaValidationException.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/exceptions/SchemaValidationException.java
new file mode 100644
index 000000000..fc4ed1f28
--- /dev/null
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/exceptions/SchemaValidationException.java
@@ -0,0 +1,52 @@
+/*
+ * Copyright 2014 Federal Chancellery Austria
+ * MOA-ID has been developed in a cooperation between BRZ, the Federal
+ * Chancellery Austria - ICT staff unit, and Graz University of Technology.
+ *
+ * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by
+ * the European Commission - subsequent versions of the EUPL (the "Licence");
+ * You may not use this work except in compliance with the Licence.
+ * You may obtain a copy of the Licence at:
+ * http://www.osor.eu/eupl/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the Licence is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the Licence for the specific language governing permissions and
+ * limitations under the Licence.
+ *
+ * This product combines work with different licenses. See the "NOTICE" text
+ * file for details on the various modules and licenses.
+ * The "NOTICE" text file is part of the distribution. Any derivative works
+ * that you distribute must include a readable copy of the "NOTICE" text file.
+ */
+package at.gv.egovernment.moa.id.protocols.pvp2x.exceptions;
+
+/**
+ * @author tlenz
+ *
+ */
+public class SchemaValidationException extends PVP2Exception {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * @param messageId
+ * @param parameters
+ */
+ public SchemaValidationException(String messageId, Object[] parameters) {
+ super(messageId, parameters);
+ }
+
+ /**
+ * @param messageId
+ * @param parameters
+ */
+ public SchemaValidationException(String messageId, Object[] parameters, Throwable e) {
+ super(messageId, parameters, e);
+ }
+
+}
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/metadata/MOAMetadataProvider.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/metadata/MOAMetadataProvider.java
index cba64e080..12afa14bc 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/metadata/MOAMetadataProvider.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/metadata/MOAMetadataProvider.java
@@ -57,6 +57,7 @@ import at.gv.egovernment.moa.id.config.auth.AuthConfigurationProvider;
import at.gv.egovernment.moa.id.protocols.pvp2x.PVPConstants;
import at.gv.egovernment.moa.id.protocols.pvp2x.verification.metadata.InterfederatedIDPPublicServiceFilter;
import at.gv.egovernment.moa.id.protocols.pvp2x.verification.metadata.MetadataFilterChain;
+import at.gv.egovernment.moa.id.protocols.pvp2x.verification.metadata.SchemaValidationFilter;
import at.gv.egovernment.moa.logging.Logger;
import at.gv.egovernment.moa.util.MiscUtil;
@@ -324,6 +325,7 @@ public class MOAMetadataProvider implements MetadataProvider {
private MetadataFilterChain buildMetadataFilterChain(OnlineApplication oa, String metadataURL, byte[] certificate) throws CertificateException {
MetadataFilterChain filterChain = new MetadataFilterChain(metadataURL, certificate);
+ filterChain.getFilters().add(new SchemaValidationFilter());
if (oa.isIsInterfederationIDP() != null && oa.isIsInterfederationIDP()) {
Logger.info("Online-Application is an interfederated IDP. Add addional Metadata policies");
@@ -374,6 +376,8 @@ public class MOAMetadataProvider implements MetadataProvider {
httpProvider.setMetadataFilter(filter);
httpProvider.initialize();
+ httpProvider.setRequireValidMetadata(true);
+
return httpProvider;
} catch (Throwable e) {
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/utils/AssertionAttributeExtractor.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/utils/AssertionAttributeExtractor.java
index f0373e214..26b3bfbd1 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/utils/AssertionAttributeExtractor.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/utils/AssertionAttributeExtractor.java
@@ -54,8 +54,7 @@ public class AssertionAttributeExtractor {
private final List<String> minimalAttributeNameList = Arrays.asList(
PVPConstants.PRINCIPAL_NAME_NAME,
- PVPConstants.GIVEN_NAME_NAME,
- PVPConstants.BIRTHDATE_NAME);
+ PVPConstants.GIVEN_NAME_NAME);
public AssertionAttributeExtractor(StatusResponseType samlResponse) throws AssertionAttributeExtractorExeption {
@@ -119,16 +118,21 @@ public class AssertionAttributeExtractor {
//first check if a bPK or an encrypted bPK is available
if (attributs.containsKey(PVPConstants.ENC_BPK_LIST_NAME) ||
- (attributs.containsKey(PVPConstants.BPK_NAME) && attributs.containsKey(PVPConstants.EID_SECTOR_FOR_IDENTIFIER_NAME))) {
+ (attributs.containsKey(PVPConstants.BPK_NAME))) {
boolean flag = true;
for (String attr : attributeNameList) {
- if (!attributs.containsKey(attr))
+ if (!attributs.containsKey(attr)) {
flag = false;
+ Logger.debug("Assertion contains no Attribute " + attr);
+
+ }
+
}
return flag;
- }
+ }
+ Logger.debug("Assertion contains no bPK or encryptedbPK.");
return false;
}
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/verification/SAMLVerificationEngine.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/verification/SAMLVerificationEngine.java
index 4ba93f8fe..257f9dac4 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/verification/SAMLVerificationEngine.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/verification/SAMLVerificationEngine.java
@@ -25,14 +25,20 @@ package at.gv.egovernment.moa.id.protocols.pvp2x.verification;
import java.util.ArrayList;
import java.util.List;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.validation.Schema;
+import javax.xml.validation.Validator;
+
import org.joda.time.DateTime;
import org.opensaml.common.xml.SAMLConstants;
+import org.opensaml.common.xml.SAMLSchemaBuilder;
import org.opensaml.saml2.core.Conditions;
import org.opensaml.saml2.core.EncryptedAssertion;
import org.opensaml.saml2.core.RequestAbstractType;
import org.opensaml.saml2.core.Response;
import org.opensaml.saml2.core.StatusCode;
import org.opensaml.saml2.core.StatusResponseType;
+import org.opensaml.saml2.core.validator.AuthnRequestSchemaValidator;
import org.opensaml.saml2.encryption.Decrypter;
import org.opensaml.saml2.encryption.EncryptedElementTypeEncryptedKeyResolver;
import org.opensaml.saml2.metadata.IDPSSODescriptor;
@@ -51,11 +57,14 @@ import org.opensaml.xml.security.keyinfo.StaticKeyInfoCredentialResolver;
import org.opensaml.xml.security.x509.X509Credential;
import org.opensaml.xml.signature.SignatureTrustEngine;
import org.opensaml.xml.validation.ValidationException;
+import org.w3c.dom.Element;
+import org.xml.sax.SAXException;
import at.gv.egovernment.moa.id.auth.exception.InvalidProtocolRequestException;
import at.gv.egovernment.moa.id.config.ConfigurationException;
import at.gv.egovernment.moa.id.protocols.pvp2x.config.PVPConfiguration;
import at.gv.egovernment.moa.id.protocols.pvp2x.exceptions.AssertionValidationExeption;
+import at.gv.egovernment.moa.id.protocols.pvp2x.exceptions.SchemaValidationException;
import at.gv.egovernment.moa.id.protocols.pvp2x.messages.InboundMessage;
import at.gv.egovernment.moa.id.protocols.pvp2x.messages.MOARequest;
import at.gv.egovernment.moa.id.protocols.pvp2x.messages.MOAResponse;
@@ -81,9 +90,15 @@ public class SAMLVerificationEngine {
SAMLSignatureProfileValidator profileValidator = new SAMLSignatureProfileValidator();
try {
profileValidator.validate(samlObj.getSignature());
+ performSchemaValidation(samlObj.getDOM());
+
} catch (ValidationException e) {
- // Indicates signature did not conform to SAML Signature profile
- e.printStackTrace();
+ Logger.warn("Signature is not conform to SAML signature profile", e);
+ throw new InvalidProtocolRequestException("pvp2.21", new Object[] {});
+
+ } catch (SchemaValidationException e) {
+ throw new InvalidProtocolRequestException("pvp2.22", new Object[] {e.getMessage()});
+
}
CriteriaSet criteriaSet = new CriteriaSet();
@@ -103,12 +118,17 @@ public class SAMLVerificationEngine {
public void verifyRequest(RequestAbstractType samlObj, SignatureTrustEngine sigTrustEngine ) throws org.opensaml.xml.security.SecurityException, Exception {
SAMLSignatureProfileValidator profileValidator = new SAMLSignatureProfileValidator();
-
try {
- profileValidator.validate(samlObj.getSignature());
+ profileValidator.validate(samlObj.getSignature());
+ performSchemaValidation(samlObj.getDOM());
+
} catch (ValidationException e) {
- // Indicates signature did not conform to SAML Signature profile
- e.printStackTrace();
+ Logger.warn("Signature is not conform to SAML signature profile", e);
+ throw new InvalidProtocolRequestException("pvp2.21", new Object[] {});
+
+ } catch (SchemaValidationException e) {
+ throw new InvalidProtocolRequestException("pvp2.22", new Object[] {e.getMessage()});
+
}
CriteriaSet criteriaSet = new CriteriaSet();
@@ -173,16 +193,27 @@ public class SAMLVerificationEngine {
List<org.opensaml.saml2.core.Assertion> validatedassertions = new ArrayList<org.opensaml.saml2.core.Assertion>();
for (org.opensaml.saml2.core.Assertion saml2assertion : saml2assertions) {
- Conditions conditions = saml2assertion.getConditions();
- DateTime notbefore = conditions.getNotBefore();
+ try {
+ performSchemaValidation(saml2assertion.getDOM());
+
+ Conditions conditions = saml2assertion.getConditions();
+ DateTime notbefore = conditions.getNotBefore().minusMinutes(5);
DateTime notafter = conditions.getNotOnOrAfter();
if ( notbefore.isAfterNow() || notafter.isBeforeNow() ) {
- Logger.warn("PVP2 Assertion is out of Date");
+ Logger.warn("PVP2 Assertion is out of Date. "
+ + "{ Current : " + new DateTime()
+ + " NotBefore: " + notbefore
+ + " NotAfter : " + notafter
+ + " }");;
- } else {
- validatedassertions.add(saml2assertion);
+ } else {
+ validatedassertions.add(saml2assertion);
+
+ }
+
+ } catch (SchemaValidationException e) {
- }
+ }
}
if (validatedassertions.isEmpty()) {
@@ -213,4 +244,35 @@ public class SAMLVerificationEngine {
throw new AssertionValidationExeption("pvp.12", null, e);
}
}
+
+ private static void performSchemaValidation(Element source) throws SchemaValidationException {
+
+ String err = null;
+ try {
+ Schema test = SAMLSchemaBuilder.getSAML11Schema();
+ Validator val = test.newValidator();
+ val.validate(new DOMSource(source));
+ Logger.debug("Schema validation check done OK");
+ return;
+
+ } catch (SAXException e) {
+ err = e.getMessage();
+ if (Logger.isDebugEnabled() || Logger.isTraceEnabled())
+ Logger.warn("Schema validation FAILED with exception:", e);
+ else
+ Logger.warn("Schema validation FAILED with message: "+ e.getMessage());
+
+ } catch (Exception e) {
+ err = e.getMessage();
+ if (Logger.isDebugEnabled() || Logger.isTraceEnabled())
+ Logger.warn("Schema validation FAILED with exception:", e);
+ else
+ Logger.warn("Schema validation FAILED with message: "+ e.getMessage());
+
+ }
+
+ throw new SchemaValidationException("pvp2.22", new Object[]{err});
+
+ }
+
}
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/verification/metadata/InterfederatedIDPPublicServiceFilter.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/verification/metadata/InterfederatedIDPPublicServiceFilter.java
index 3d608fd6d..4d9b97a52 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/verification/metadata/InterfederatedIDPPublicServiceFilter.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/verification/metadata/InterfederatedIDPPublicServiceFilter.java
@@ -26,7 +26,6 @@ import org.opensaml.saml2.metadata.provider.FilterException;
import org.opensaml.saml2.metadata.provider.MetadataFilter;
import org.opensaml.xml.XMLObject;
-import at.gv.egovernment.moa.id.commons.db.dao.config.InterfederationIDPType;
import at.gv.egovernment.moa.id.commons.validation.ValidationHelper;
import at.gv.egovernment.moa.logging.Logger;
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/verification/metadata/SchemaValidationFilter.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/verification/metadata/SchemaValidationFilter.java
new file mode 100644
index 000000000..382adb108
--- /dev/null
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/verification/metadata/SchemaValidationFilter.java
@@ -0,0 +1,110 @@
+/*
+ * Copyright 2014 Federal Chancellery Austria
+ * MOA-ID has been developed in a cooperation between BRZ, the Federal
+ * Chancellery Austria - ICT staff unit, and Graz University of Technology.
+ *
+ * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by
+ * the European Commission - subsequent versions of the EUPL (the "Licence");
+ * You may not use this work except in compliance with the Licence.
+ * You may obtain a copy of the Licence at:
+ * http://www.osor.eu/eupl/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the Licence is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the Licence for the specific language governing permissions and
+ * limitations under the Licence.
+ *
+ * This product combines work with different licenses. See the "NOTICE" text
+ * file for details on the various modules and licenses.
+ * The "NOTICE" text file is part of the distribution. Any derivative works
+ * that you distribute must include a readable copy of the "NOTICE" text file.
+ */
+package at.gv.egovernment.moa.id.protocols.pvp2x.verification.metadata;
+
+import java.io.IOException;
+
+import org.opensaml.saml2.metadata.provider.FilterException;
+import org.opensaml.saml2.metadata.provider.MetadataFilter;
+import org.opensaml.xml.XMLObject;
+
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.validation.Schema;
+import javax.xml.validation.Validator;
+
+import org.opensaml.common.xml.SAMLSchemaBuilder;
+
+import org.xml.sax.SAXException;
+
+import at.gv.egovernment.moa.id.config.ConfigurationException;
+import at.gv.egovernment.moa.id.config.auth.AuthConfigurationProvider;
+import at.gv.egovernment.moa.logging.Logger;
+
+/**
+ * @author tlenz
+ *
+ */
+public class SchemaValidationFilter implements MetadataFilter {
+
+ private boolean isActive = true;
+
+ public SchemaValidationFilter() {
+ try {
+ isActive = AuthConfigurationProvider.getInstance().isPVPSchemaValidationActive();
+
+ } catch (ConfigurationException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ *
+ */
+ public SchemaValidationFilter(boolean useSchemaValidation) {
+ this.isActive = useSchemaValidation;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.opensaml.saml2.metadata.provider.MetadataFilter#doFilter(org.opensaml.xml.XMLObject)
+ */
+ @Override
+ public void doFilter(XMLObject arg0) throws FilterException {
+
+ String errString = null;
+
+ if (isActive) {
+ try {
+ Schema test = SAMLSchemaBuilder.getSAML11Schema();
+ Validator val = test.newValidator();
+ DOMSource source = new DOMSource(arg0.getDOM());
+ val.validate(source);
+ Logger.info("Metadata Schema validation check done OK");
+ return;
+
+ } catch (SAXException e) {
+ if (Logger.isDebugEnabled() || Logger.isTraceEnabled())
+ Logger.warn("Metadata Schema validation FAILED with exception:", e);
+ else
+ Logger.warn("Metadata Schema validation FAILED with message: "+ e.getMessage());
+
+ errString = e.getMessage();
+
+ } catch (Exception e) {
+ if (Logger.isDebugEnabled() || Logger.isTraceEnabled())
+ Logger.warn("Metadata Schema validation FAILED with exception:", e);
+ else
+ Logger.warn("Metadata Schema validation FAILED with message: "+ e.getMessage());
+
+ errString = e.getMessage();
+
+ }
+
+ throw new FilterException("Metadata Schema validation FAILED with message: "+ errString);
+
+ } else
+ Logger.info("Metadata Schema validation check is DEACTIVATED!");
+
+ }
+
+}
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/saml1/GetArtifactAction.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/saml1/GetArtifactAction.java
index 67f780b3a..4cdd1db01 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/saml1/GetArtifactAction.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/saml1/GetArtifactAction.java
@@ -83,7 +83,7 @@ public class GetArtifactAction implements IAction {
String url = AuthConfigurationProvider.getInstance().getPublicURLPrefix() + "/RedirectServlet";
url = addURLParameter(url, RedirectServlet.REDIRCT_PARAM_URL, URLEncoder.encode(oaURL, "UTF-8"));
if (!oaParam.getBusinessService())
- url = addURLParameter(url, PARAM_TARGET, URLEncoder.encode(oaParam.getTarget(), "UTF-8"));
+ url = addURLParameter(url, PARAM_TARGET, URLEncoder.encode(req.getTarget(), "UTF-8"));
url = addURLParameter(url, PARAM_SAMLARTIFACT, URLEncoder.encode(samlArtifactBase64, "UTF-8"));
url = httpResp.encodeRedirectURL(url);
@@ -95,7 +95,7 @@ public class GetArtifactAction implements IAction {
String redirectURL = oaURL;
if (!oaParam.getBusinessService()) {
redirectURL = addURLParameter(redirectURL, PARAM_TARGET,
- URLEncoder.encode(oaParam.getTarget(), "UTF-8"));
+ URLEncoder.encode(req.getTarget(), "UTF-8"));
}
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/saml1/SAML1AuthenticationServer.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/saml1/SAML1AuthenticationServer.java
index 65e520cc3..c8a480cac 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/saml1/SAML1AuthenticationServer.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/saml1/SAML1AuthenticationServer.java
@@ -64,6 +64,7 @@ import at.gv.egovernment.moa.logging.Logger;
import at.gv.egovernment.moa.util.Base64Utils;
import at.gv.egovernment.moa.util.Constants;
import at.gv.egovernment.moa.util.DOMUtils;
+import at.gv.egovernment.moa.util.MiscUtil;
import at.gv.egovernment.moa.util.StringUtils;
import at.gv.util.xsd.persondata.IdentificationType;
import at.gv.util.xsd.persondata.IdentificationType.Value;
@@ -222,8 +223,14 @@ public class SAML1AuthenticationServer extends AuthenticationServer {
Value value = new Value();
id.setValue(value );
- id.setType(Constants.URN_PREFIX_BASEID);
- value.setValue("");
+ id.setType(authData.getIdentificationType());
+ //add baseID if it is requested and available
+ if ( MiscUtil.isNotEmpty(authData.getIdentificationValue()) &&
+ saml1parameter.isProvideIdentityLink() )
+ value.setValue(authData.getIdentificationValue());
+ else
+ value.setValue("");
+
familyName.setValue(authData.getFamilyName());
familyName.setPrimary("undefined");
name.getGivenName().add(authData.getGivenName());
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/saml1/SAML1Protocol.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/saml1/SAML1Protocol.java
index 8f7f17e2e..9934c339d 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/saml1/SAML1Protocol.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/saml1/SAML1Protocol.java
@@ -132,7 +132,7 @@ public class SAML1Protocol implements IModulInfo, MOAIDAuthConstants {
if (!ParamValidatorUtils.isValidOA(oaURL))
throw new WrongParametersException("StartAuthentication", PARAM_OA,
"auth.12");
-
+
config.setOAURL(oaURL);
Logger.info("Dispatch SAML1 Request: OAURL=" + oaURL);
@@ -156,8 +156,13 @@ public class SAML1Protocol implements IModulInfo, MOAIDAuthConstants {
new Object[] { null });
}
- config.setSourceID(sourceID);
- config.setTarget(oaParam.getTarget());
+ config.setSourceID(sourceID);
+ if (MiscUtil.isNotEmpty(target))
+ config.setTarget(target);
+
+ else
+ config.setTarget(oaParam.getTarget());
+
return config;
}
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/AttributeCollector.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/AttributeCollector.java
index e3b9992aa..1e6cf6910 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/AttributeCollector.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/AttributeCollector.java
@@ -45,7 +45,7 @@ import at.gv.egovernment.moa.id.storage.AssertionStorage;
import at.gv.egovernment.moa.logging.Logger;
import eu.stork.peps.auth.commons.*;
import eu.stork.peps.auth.engine.STORKSAMLEngine;
-import eu.stork.peps.complex.attributes.AttributeStatusType;
+import eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._1_0.assertion.AttributeStatusType;
import eu.stork.peps.exceptions.STORKSAMLEngineException;
import org.opensaml.common.impl.SecureRandomIdentifierGenerator;
@@ -121,7 +121,7 @@ public class AttributeCollector implements IAction {
if (authnResponse.getPersonalAttributeList().size() > 0) {
Logger.info("Response from external attribute provider contains " + authnResponse.getPersonalAttributeList().size() + " attributes.");
- addOrUpdateAll(container.getResponse().getPersonalAttributeList(), authnResponse.getPersonalAttributeList());
+ container.getResponse().setPersonalAttributeList(addOrUpdateAll(container.getResponse().getPersonalAttributeList(), authnResponse.getPersonalAttributeList()));
}
}
@@ -157,7 +157,7 @@ public class AttributeCollector implements IAction {
// - insert the embedded attribute(s) into the container
if (null != newAttributes)
- addOrUpdateAll(container.getResponse().getPersonalAttributeList(), newAttributes);
+ container.getResponse().setPersonalAttributeList(addOrUpdateAll(container.getResponse().getPersonalAttributeList(), newAttributes));
// see if we need some more attributes
SLOInformationImpl sloInfo = (SLOInformationImpl) processRequest(container, httpReq, httpResp, authData, oaParam);
@@ -203,7 +203,8 @@ public class AttributeCollector implements IAction {
IPersonalAttributeList aquiredAttributes = new PersonalAttributeList();
currentAttribute.setStatus(AttributeStatusType.NOT_AVAILABLE.value());
aquiredAttributes.add((PersonalAttribute) currentAttribute.clone());
- addOrUpdateAll(container.getResponse().getPersonalAttributeList(), aquiredAttributes);
+ container.getResponse().setPersonalAttributeList(
+ addOrUpdateAll(container.getResponse().getPersonalAttributeList(), aquiredAttributes));
// - check if we can find a suitable AttributeProvider Plugin
Iterator<AttributeProvider> attibuteProvidersInterator = AttributeProviderFactory.getConfiguredPlugins(oaParam.getStorkAPs());
@@ -247,7 +248,7 @@ public class AttributeCollector implements IAction {
Logger.error("We have no suitable plugin for obtaining the attribute '" + currentAttribute.getName() + "'");
} else
// else, update any existing attributes
- addOrUpdateAll(container.getResponse().getPersonalAttributeList(), aquiredAttributes);
+ container.getResponse().setPersonalAttributeList(addOrUpdateAll(container.getResponse().getPersonalAttributeList(), aquiredAttributes));
}
Logger.info("collecting attributes done");
@@ -296,15 +297,21 @@ public class AttributeCollector implements IAction {
*
* @param target the target
* @param source the source
+ * @return
* @throws MOAIDException
*/
- private void addOrUpdateAll(IPersonalAttributeList target, IPersonalAttributeList source) throws MOAIDException {
+ private PersonalAttributeList addOrUpdateAll(IPersonalAttributeList target, IPersonalAttributeList source) throws MOAIDException {
+
+ PersonalAttributeList updatedList = new PersonalAttributeList();
+ for (PersonalAttribute el : target)
+ updatedList.add(el);
+
Logger.debug("Updating " + source.size() + " attributes...");
for (PersonalAttribute current : source) {
Logger.debug("treating " + current.getName());
// check if we need to update the current pa
- if (target.containsKey(current.getName())) {
+ if (updatedList.containsKey(current.getName())) {
PersonalAttribute existing = target.get(current.getName());
if(!(existing.isEmptyValue() && existing.isEmptyComplexValue()))
if(!(existing.getValue().equals(current.getValue()) || existing.getComplexValue().equals(current.getComplexValue()))) {
@@ -312,14 +319,16 @@ public class AttributeCollector implements IAction {
throw new MOAIDException("stork.16", new Object[] {existing.getName()});
}
- target.get(current.getName()).setStatus(current.getStatus());
- target.get(current.getName()).setValue(current.getValue());
- target.get(current.getName()).setComplexValue(current.getComplexValue());
+ updatedList.get(current.getName()).setStatus(current.getStatus());
+ updatedList.get(current.getName()).setValue(current.getValue());
+ updatedList.get(current.getName()).setComplexValue(current.getComplexValue());
} else
- target.add(current);
+ updatedList.add(current);
- Logger.debug("...successfully treated " + current.getName());
+ Logger.debug("...successfully treated " + current.getName());
}
+
+ return updatedList;
}
/* (non-Javadoc)
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/ConsentEvaluator.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/ConsentEvaluator.java
index de7d5d6dd..2c5728798 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/ConsentEvaluator.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/ConsentEvaluator.java
@@ -41,7 +41,7 @@ import eu.stork.peps.auth.commons.PEPSUtil;
import eu.stork.peps.auth.commons.PersonalAttribute;
import eu.stork.peps.auth.commons.STORKAuthnResponse;
import eu.stork.peps.auth.engine.STORKSAMLEngine;
-import eu.stork.peps.complex.attributes.AttributeStatusType;
+import eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._1_0.assertion.AttributeStatusType;
import eu.stork.peps.exceptions.STORKSAMLEngineException;
import org.apache.velocity.Template;
import org.apache.velocity.VelocityContext;
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/CorporateBodyMandateContainer.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/CorporateBodyMandateContainer.java
index 3e16db7d2..acbf1678a 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/CorporateBodyMandateContainer.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/CorporateBodyMandateContainer.java
@@ -90,6 +90,7 @@ public class CorporateBodyMandateContainer extends MandateContainer {
}
public void setCorpMandatorIdentificationValue(String corpMandatorIdentificationValue) {
+ Logger.debug("Setting corpMandatorIdentificationValue to AT/" + corpMandatorIdentificationValue);
this.corpMandatorIdentificationValue = "AT/" + corpMandatorIdentificationValue;
}
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/MOAAttributeProvider.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/MOAAttributeProvider.java
index 993514ec7..3ab4ec4a1 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/MOAAttributeProvider.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/MOAAttributeProvider.java
@@ -31,8 +31,7 @@ import at.gv.egovernment.moa.logging.Logger;
import at.gv.egovernment.moa.util.MiscUtil;
import eu.stork.peps.auth.commons.PersonalAttribute;
import eu.stork.peps.auth.commons.PersonalAttributeList;
-import eu.stork.peps.auth.commons.STORKStatusCode;
-
+import eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._1_0.assertion.AttributeStatusType;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.text.DateFormat;
@@ -59,19 +58,23 @@ public class MOAAttributeProvider {
static {
Map<String, String> tempSimpleMap = new HashMap<String, String>();
tempSimpleMap.put("givenName", "getGivenName");
- tempSimpleMap.put("surname", "getFamilyName");
+ tempSimpleMap.put("surname", "getFamilyName");
+ tempSimpleMap.put("MSOrganization", "getPvpAttribute_OU");
storkAttributeSimpleMapping = Collections.unmodifiableMap(tempSimpleMap);
+
Map<String, String> tempFunctionMap = new HashMap<String, String>();
tempFunctionMap.put("eIdentifier", "geteIdentifier");
tempFunctionMap.put("ECApplicationRole","getECApplicationRole");
tempFunctionMap.put("dateOfBirth", "getFormatedDateOfBirth");
+ tempFunctionMap.put("MSOrganization", "getMSOrganization");
storkAttributeFunctionMapping = Collections.unmodifiableMap(tempFunctionMap);
+
}
public MOAAttributeProvider(IAuthData authData, MOASTORKRequest moastorkRequest) {
this.authData = authData;
this.moastorkRequest = moastorkRequest;
- Logger.debug("identity " + authData.getIdentificationType() + " " + authData.getIdentificationValue());
+
}
public void populateAttribute(PersonalAttributeList attributeList, PersonalAttribute requestedAttribute ) {
@@ -129,12 +132,11 @@ public class MOAAttributeProvider {
}
return storkRoles;
}
-
+
private String getFormatedDateOfBirth() {
if (authData.getDateOfBirth() != null) {
DateFormat fmt = new SimpleDateFormat("yyyyMMdd");
return fmt.format(authData.getDateOfBirth());
-
}
else
return null;
@@ -143,14 +145,14 @@ public class MOAAttributeProvider {
private void populateAttributeWithMethod(Method method, Object object, PersonalAttributeList attributeList, String storkAttribute, Boolean isRequired) {
try {
- Object attributeValue = method.invoke(object, new Class[]{});
+ Object attributeValue = method.invoke(object, new Class[]{}); // (Object[])
PersonalAttribute newAttribute = new PersonalAttribute();
newAttribute.setName(storkAttribute);
newAttribute.setIsRequired(isRequired);
if (attributeValue != null) {
- newAttribute.setStatus(STORKStatusCode.STATUS_AVAILABLE.name());
+ newAttribute.setStatus(AttributeStatusType.AVAILABLE.value());
Logger.info("Got attribute value: " + attributeValue);
if (attributeValue instanceof String)
@@ -163,7 +165,7 @@ public class MOAAttributeProvider {
} else {
Logger.info("Attribute " + storkAttribute + " is not available.");
- newAttribute.setStatus(STORKStatusCode.STATUS_NOT_AVAILABLE.name());
+ newAttribute.setStatus(AttributeStatusType.NOT_AVAILABLE.value());
}
@@ -175,7 +177,7 @@ public class MOAAttributeProvider {
} else {
Logger.info("Attribute " + storkAttribute + " is not available.");
- newAttribute.setStatus(STORKStatusCode.STATUS_NOT_AVAILABLE.name());
+ newAttribute.setStatus(AttributeStatusType.NOT_AVAILABLE.value());
}
} catch (InvocationTargetException e) {
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/MandateContainer.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/MandateContainer.java
index e6c58b503..9207cc2dc 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/MandateContainer.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/MandateContainer.java
@@ -54,6 +54,8 @@ public abstract class MandateContainer {
public MandateContainer(String mandate) throws XPathExpressionException, MOAIDException {
+ Logger.debug("Received mandate content for processing: " + mandate);
+
xPath = XPathFactory.newInstance().newXPath();
HashMap<String, String> prefMap = new HashMap<String, String>() {{
put(S2Constants.MANDATE_PREFIX, S2Constants.MANDATE_NS);
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/MandateRetrievalRequest.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/MandateRetrievalRequest.java
index baa91a854..ed8480ccb 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/MandateRetrievalRequest.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/MandateRetrievalRequest.java
@@ -33,13 +33,16 @@ import at.gv.egovernment.moa.id.data.IAuthData;
import at.gv.egovernment.moa.id.data.SLOInformationInterface;
import at.gv.egovernment.moa.id.moduls.IAction;
import at.gv.egovernment.moa.id.moduls.IRequest;
+import at.gv.egovernment.moa.id.protocols.pvp2x.PVPConstants;
import at.gv.egovernment.moa.logging.Logger;
import at.gv.egovernment.moa.util.Constants;
import eu.stork.peps.auth.commons.IPersonalAttributeList;
import eu.stork.peps.auth.commons.PersonalAttribute;
import eu.stork.peps.auth.commons.PersonalAttributeList;
import eu.stork.peps.auth.commons.STORKAttrQueryResponse;
-import eu.stork.peps.complex.attributes.*;
+import eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._1_0.assertion.*;
+import org.apache.commons.codec.binary.Base64;
+import org.apache.commons.codec.binary.StringUtils;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@@ -65,12 +68,21 @@ public class MandateRetrievalRequest implements IAction {
private IAuthData authData;
private MOASTORKRequest moaStorkRequest;
private IdentityLink representingIdentityLink;
+ private Integer QAALevel;
+ private byte[] originalContent;
public SLOInformationInterface processRequest(IRequest req, HttpServletRequest httpReq, HttpServletResponse httpResp, IAuthData authData) throws MOAIDException {
Logger.debug("Entering AttributeRequest for MandateProvider");
httpResp.reset();
this.representingIdentityLink = authData.getIdentityLink();
+ this.QAALevel = translateQAALevel(authData.getQAALevel());
+ // preparing original content and removing sensitive data from it
+ this.originalContent = authData.getMISMandate().getMandate(); // TODO ERROR
+ //Logger.debug("Original content " + StringUtils.newStringUtf8(authData.getMISMandate().getMandate()));
+ String originalMandate = StringUtils.newStringUtf8(authData.getMISMandate().getMandate()).replaceAll("<pd:Value>.*?==</pd:Value><pd:Type>urn:publicid:gv.at:baseid</pd:Type>","<pd:Value></pd:Value><pd:Type></pd:Type>");;
+ Logger.debug("Removing personal identification value and type from original mandate ");
+ originalContent = StringUtils.getBytesUtf8(originalMandate);
OAAuthParameter oaParam = AuthConfigurationProvider.getInstance().getOnlineApplicationParameter(req.getOAURL());
if (oaParam == null)
@@ -206,6 +218,18 @@ public class MandateRetrievalRequest implements IAction {
return null;
}
+ private Integer translateQAALevel(String qaaLevel) throws MOAIDException {
+ if (qaaLevel.equals(PVPConstants.STORK_QAA_1_1))
+ return 1;
+ if (qaaLevel.equals(PVPConstants.STORK_QAA_1_2))
+ return 2;
+ if (qaaLevel.equals(PVPConstants.STORK_QAA_1_3))
+ return 3;
+ if (qaaLevel.equals(PVPConstants.STORK_QAA_1_4))
+ return 4;
+ Logger.error("Wrong QAA Number format");
+ throw new MOAIDException("stork.16", new Object[]{});
+ }
private String geteLPIdentifier(MandateContainer mandateContainer, PersonalAttribute currentAttribute) throws MOAIDException {
RepresentationPersonType represented = getRepresented(mandateContainer, currentAttribute);
@@ -213,7 +237,7 @@ public class MandateRetrievalRequest implements IAction {
return represented.getELPIdentifier();
} else if (currentAttribute.isRequired()) {
Logger.error("Cannot provide eLPIdentifier for natural person.");
- throw new MOAIDException("stork.19", new Object[]{currentAttribute.getName()});
+ throw new MOAIDException("stork.19", new Object[]{currentAttribute.getName()}); // TODO
}
return "";
}
@@ -249,14 +273,35 @@ public class MandateRetrievalRequest implements IAction {
private String mapPowersType(MandateContainer mandateContainer) {
+ // using if for java 6 compatibility if necessary
if (mandateContainer.getAnnotation().equals("ELGABilateral")) {
return "6"; // Health Powers
} else if (mandateContainer.getAnnotation().equals("ERsB")) {
return "0"; // General Powers
} else if (mandateContainer.getAnnotation().equals("GeneralvollmachtBilateral")) {
return "0"; // General Powers
+ } else if (mandateContainer.getAnnotation().equals("ERsBMitPostvollmacht")) {
+ return "0"; // General Powers
+ } else if (mandateContainer.getAnnotation().equals("ZVR")) {
+ return "0"; // General Powers
+ } else if (mandateContainer.getAnnotation().equals("ZVRMitPostvollmacht")) {
+ return "0"; // General Powers
+ } else if (mandateContainer.getAnnotation().equals("EVB")) {
+ return "0"; // General Powers
+ } else if (mandateContainer.getAnnotation().equals("Einzelvertretungsbefugnis")) {
+ return "0"; // General Powers
+ } else if (mandateContainer.getAnnotation().equals("Prokura")) {
+ return "0"; // General Powers
+ } else if (mandateContainer.getAnnotation().equals("Notar")) {
+ return "0"; // General Powers
+ } else if (mandateContainer.getAnnotation().equals("Organwalter")) {
+ return "0"; // General Powers
+ } else if (mandateContainer.getAnnotation().equals("Rechtsanwalt")) {
+ return "0"; // General Powers
+ } else if (mandateContainer.getAnnotation().equals("Ziviltechniker")) {
+ return "0"; // General Powers
}
- return "";
+ return "9";
}
private MandateType getMandateType(MandateContainer mandateContainer, PersonalAttribute sourceAttribute) throws MOAIDException {
@@ -264,10 +309,9 @@ public class MandateRetrievalRequest implements IAction {
RepresentationPersonType representative = getRepresentative(mandateContainer, sourceAttribute);
RepresentationPersonType represented = getRepresented(mandateContainer, sourceAttribute);
MandateContentType mandateContent = getMandateContent(mandateContainer, sourceAttribute);
-
- mandateType.setRepresenting(representative);
+ mandateType.setRepresentative(representative);
mandateType.setRepresented(represented);
- mandateType.setMandateContent(mandateContent);
+ mandateType.getMandateContent().add(mandateContent);
Logger.debug("Complex attribute extracted: " + sourceAttribute.getName());
return mandateType;
}
@@ -275,7 +319,8 @@ public class MandateRetrievalRequest implements IAction {
private String getLegalName(MandateContainer mandateContainer, PersonalAttribute sourceAttribute) throws MOAIDException {
RepresentationPersonType represented = getRepresented(mandateContainer, sourceAttribute);
if (mandateContainer instanceof CorporateBodyMandateContainer) {
- return represented.getName();
+ represented.getLegalName();
+ //return represented.getName();
} else if (sourceAttribute.isRequired()) {
Logger.error("Cannot provide legalName for natural person.");
throw new MOAIDException("stork.19", new Object[]{sourceAttribute.getName()});
@@ -487,10 +532,10 @@ public class MandateRetrievalRequest implements IAction {
if (mandateContainer instanceof CorporateBodyMandateContainer) {
CorporateBodyMandateContainer corporateBodyMandateContainer = (CorporateBodyMandateContainer) mandateContainer;
represented.setELPIdentifier(corporateBodyMandateContainer.getCorpMandatorIdentificationValue());
- represented.setName(corporateBodyMandateContainer.getCorpMandatorFullName());
- represented.setAddress("");
- represented.setCanonicalAddress(new CanonicalAddressType());
- represented.setType(getCompanyType(corporateBodyMandateContainer.corpMandatorFullName, corporateBodyMandateContainer.corpMandatorIdentificationType, sourceAttribute));
+ represented.setLegalName(corporateBodyMandateContainer.getCorpMandatorFullName());
+ represented.setTextRegisteredAddress(null);
+ represented.setCanonicalRegisteredAddress(new CanonicalAddressType());
+ represented.setLegalForm(getCompanyType(corporateBodyMandateContainer.corpMandatorFullName, corporateBodyMandateContainer.corpMandatorIdentificationType, sourceAttribute));
} else if (mandateContainer instanceof PhyPersonMandateContainer) {
PhyPersonMandateContainer phyPersonMandateContainer = (PhyPersonMandateContainer) mandateContainer;
represented.setEIdentifier(getRepresentedStorkeIdentifier(mandateContainer));
@@ -510,18 +555,22 @@ public class MandateRetrievalRequest implements IAction {
try {
XMLGregorianCalendar validFrom = DatatypeFactory.newInstance().newXMLGregorianCalendar(mandateContainer.getMandateValidFrom());
XMLGregorianCalendar validTo = DatatypeFactory.newInstance().newXMLGregorianCalendar(mandateContainer.getMandateValidTo());
- mandateContent.setValidFrom(validFrom);
- mandateContent.setValidTo(validTo);
+ TimeRestrictionType timeRestriction = new TimeRestrictionType();
+ timeRestriction.setValidFrom(validFrom);
+ timeRestriction.setValidTo(validTo);
+ mandateContent.setTimeRestriction(timeRestriction);
} catch (DatatypeConfigurationException dte) {
Logger.error("Error converting date from mandate: " + mandateContainer.getMandateValidFrom() + ", " + mandateContainer.getMandateValidTo());
throw new MOAIDException("stork.20", new Object[]{});
}
-
- mandateContent.setTransactionLimit(BigInteger.valueOf(0)); // TODO
- mandateContent.setTransactionLimitCurrency("");// TODO
- mandateContent.setIsJoint("0");
- mandateContent.setIschained(false);
- mandateContent.setTypePower(mapPowersType(mandateContainer));
+ mandateContent.setAQAA(this.QAALevel);
+ mandateContent.setOriginalMandate(originalContent);
+ mandateContent.setOriginalMandateType("application/xml");
+ TransactionLimitRestrictionType transactionLimit = new TransactionLimitRestrictionType();
+ mandateContent.setTransactionLimit(transactionLimit);
+ mandateContent.setIsJoint("");
+ mandateContent.setIsChained(false);
+ mandateContent.setTypeOfPower(mapPowersType(mandateContainer)); // TODO check
Logger.debug("Complex attribute extracted: " + sourceAttribute.getName());
return mandateContent;
}
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/STORKPVPUtilits.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/STORKPVPUtilits.java
index d923eccde..123d32af4 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/STORKPVPUtilits.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/STORKPVPUtilits.java
@@ -32,7 +32,7 @@ import java.util.List;
public class STORKPVPUtilits {
public static final List<String> attributesRequirePVPAuthentication =
- Arrays.asList("ECApplicationRole");
+ Arrays.asList("ECApplicationRole", "MSOrganization");
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/attributeproviders/EHvdAttributeProviderPlugin.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/attributeproviders/EHvdAttributeProviderPlugin.java
index 761460971..bd1576020 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/attributeproviders/EHvdAttributeProviderPlugin.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/attributeproviders/EHvdAttributeProviderPlugin.java
@@ -52,8 +52,9 @@ import at.gv.egovernment.moa.logging.Logger;
import eu.stork.peps.auth.commons.IPersonalAttributeList;
import eu.stork.peps.auth.commons.PersonalAttribute;
import eu.stork.peps.auth.commons.PersonalAttributeList;
-import eu.stork.peps.complex.attributes.IsHealthCareProfessionalType;
-import eu.stork.peps.complex.attributes.ObjectFactory;
+import eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._1_0.assertion.AttributeStatusType;
+import eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._1_0.assertion.IsHealthCareProfessionalType;
+import eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._1_0.assertion.ObjectFactory;
/**
* Fetches the attribute IsHealthcareProfessional from the BAGDAD SOAP service
@@ -67,7 +68,7 @@ public class EHvdAttributeProviderPlugin extends AttributeProvider {
* Instantiates a new e hvd attribute provider plugin.
*
* @param url the service url
- * @param attributes
+ * @param supportedAttributes
*/
public EHvdAttributeProviderPlugin(String url, String supportedAttributes) {
super(supportedAttributes);
@@ -183,7 +184,7 @@ public class EHvdAttributeProviderPlugin extends AttributeProvider {
if (collection.get("IsHealthcareProfessional").equals("false") || !collection.get("Type").equals("Medical doctor")) {
// the citizen is no HCP
- acquiredAttribute = new PersonalAttribute("isHealthCareProfessional", false, new ArrayList<String>(), "NotAvailable");
+ acquiredAttribute = new PersonalAttribute("isHealthCareProfessional", false, new ArrayList<String>(), AttributeStatusType.NOT_AVAILABLE.value());
} else {
// go on and parse the data
IsHealthCareProfessionalType result = new IsHealthCareProfessionalType();
@@ -193,7 +194,7 @@ public class EHvdAttributeProviderPlugin extends AttributeProvider {
result.setTypeOfHCP("physician");
result.setNameOfOrganisation(collection.get("NameOfOrganisation"));
- result.setTypeOfOrganisation("Unknown");
+ //result.setTypeOfOrganisation("Unknown"); // TODO used in previous version, check what to do with this
result.setAQAA(4);
@@ -206,7 +207,7 @@ public class EHvdAttributeProviderPlugin extends AttributeProvider {
ArrayList<String> value = new ArrayList<String>();
value.add(stringWriter.toString());
- acquiredAttribute = new PersonalAttribute("isHealthCareProfessional", false, value, "Available");
+ acquiredAttribute = new PersonalAttribute("isHealthCareProfessional", false, value, AttributeStatusType.AVAILABLE.value());
}
// pack and return the result
@@ -216,7 +217,7 @@ public class EHvdAttributeProviderPlugin extends AttributeProvider {
// add stork id for verification
ArrayList<String> value = new ArrayList<String>();
value.add(new BPKBuilder().buildStorkeIdentifier(authData.getIdentityLink(), moastorkRequest.getSpCountry()));
- result.add(new PersonalAttribute("eIdentifier", false, value, "Available"));
+ result.add(new PersonalAttribute("eIdentifier", false, value, AttributeStatusType.AVAILABLE.value()));
return result;
} catch (Exception e) {
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/attributeproviders/EHvdAttribute_deprecatedProviderPlugin.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/attributeproviders/EHvdAttribute_deprecatedProviderPlugin.java
index 2000ef928..a16603beb 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/attributeproviders/EHvdAttribute_deprecatedProviderPlugin.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/attributeproviders/EHvdAttribute_deprecatedProviderPlugin.java
@@ -52,9 +52,11 @@ import at.gv.egovernment.moa.logging.Logger;
import eu.stork.peps.auth.commons.IPersonalAttributeList;
import eu.stork.peps.auth.commons.PersonalAttribute;
import eu.stork.peps.auth.commons.PersonalAttributeList;
-import eu.stork.peps.complex.attributes.IsHealthCareProfessionalDeprecatedType;
-import eu.stork.peps.complex.attributes.IsHealthCareProfessionalType;
-import eu.stork.peps.complex.attributes.ObjectFactory;
+import eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._1_0.assertion.AttributeStatusType;
+import eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._1_0.assertion.IsHealthCareProfessionalDeprecatedType;
+import eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._1_0.assertion.IsHealthCareProfessionalType; // IsHealthCareProfessionalDeprecatedType;
+//import eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._1_0.assertion. _1_0.assertion.IsHealthCareProfessionalType;
+import eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._1_0.assertion.ObjectFactory;
/**
* Fetches the attribute IsHealthcareProfessional from the BAGDAD SOAP service
@@ -68,7 +70,7 @@ public class EHvdAttribute_deprecatedProviderPlugin extends AttributeProvider {
* Instantiates a new e hvd attribute provider plugin.
*
* @param url the service url
- * @param attributes
+ * @param supportedAttributes
*/
public EHvdAttribute_deprecatedProviderPlugin(String url, String supportedAttributes) {
super(supportedAttributes);
@@ -184,7 +186,7 @@ public class EHvdAttribute_deprecatedProviderPlugin extends AttributeProvider {
if (collection.get("IsHealthcareProfessional").equals("false")) {
// the citizen is no HCP
- acquiredAttribute = new PersonalAttribute("isHealthCareProfessional", false, new ArrayList<String>(), "NotAvailable");
+ acquiredAttribute = new PersonalAttribute("isHealthCareProfessional", false, new ArrayList<String>(), AttributeStatusType.NOT_AVAILABLE.value());
} else {
// go on and parse the data
IsHealthCareProfessionalDeprecatedType result = new IsHealthCareProfessionalDeprecatedType();
@@ -202,16 +204,16 @@ public class EHvdAttribute_deprecatedProviderPlugin extends AttributeProvider {
result.setAQAA(4);
- final Marshaller m = JAXBContext.newInstance(IsHealthCareProfessionalType.class).createMarshaller();
+ final Marshaller m = JAXBContext.newInstance(IsHealthCareProfessionalDeprecatedType.class).createMarshaller();
m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
StringWriter stringWriter = new StringWriter();
- m.marshal(new ObjectFactory().createIsHealthCareProfessional(result), stringWriter);
+ m.marshal(new ObjectFactory().createIsHealthCareProfessionalDeprecated(result), stringWriter);
ArrayList<String> value = new ArrayList<String>();
value.add(stringWriter.toString());
- acquiredAttribute = new PersonalAttribute("isHealthCareProfessional", false, value, "Available");
+ acquiredAttribute = new PersonalAttribute("isHealthCareProfessional", false, value, AttributeStatusType.AVAILABLE.value());
}
// pack and return the result
@@ -221,7 +223,7 @@ public class EHvdAttribute_deprecatedProviderPlugin extends AttributeProvider {
// add stork id for verification
ArrayList<String> value = new ArrayList<String>();
value.add(new BPKBuilder().buildStorkeIdentifier(authData.getIdentityLink(), moastorkRequest.getSpCountry()));
- result.add(new PersonalAttribute("eIdentifier", false, value, "Available"));
+ result.add(new PersonalAttribute("eIdentifier", false, value, AttributeStatusType.AVAILABLE.value()));
return result;
} catch (Exception e) {
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/attributeproviders/PVPAuthenticationProvider.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/attributeproviders/PVPAuthenticationProvider.java
index 96aa55bcf..7f06c604b 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/attributeproviders/PVPAuthenticationProvider.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/attributeproviders/PVPAuthenticationProvider.java
@@ -80,7 +80,7 @@ public class PVPAuthenticationProvider extends AttributeProvider {
this.moastorkRequest = moastorkRequest;
// break if we cannot handle the requested attribute
- if (!attributes.contains(attribute.getName())) {
+ if (!getSupportedAttributeNames().contains(attribute.getName())) {
Logger.info("Attribute " + attribute.getName() + " not supported by the provider: " + getAttrProviderName());
throw new UnsupportedAttributeException();
@@ -193,33 +193,34 @@ public class PVPAuthenticationProvider extends AttributeProvider {
public IPersonalAttributeList parse(HttpServletRequest httpReq)
throws UnsupportedAttributeException, MOAIDException {
- Logger.info(this.getClass().getSimpleName() + " tries to extract SAMLResponse out of HTTP Request");
+ throw new UnsupportedAttributeException();
- //extract STORK Response from HTTP Request
- //Decodes SAML Response
- byte[] decSamlToken;
- try {
- decSamlToken = PEPSUtil.decodeSAMLToken(httpReq.getParameter("SAMLResponse"));
- } catch(NullPointerException e) {
- throw new UnsupportedAttributeException();
- }
-
- //Get SAMLEngine instance
- STORKSAMLEngine engine = STORKSAMLEngine.getInstance("VIDP");
-
- STORKAuthnResponse authnResponse = null;
- try {
- //validate SAML Token
- Logger.debug("Starting validation of SAML response");
- authnResponse = engine.validateSTORKAuthnResponse(decSamlToken, (String) httpReq.getRemoteHost());
- Logger.info("SAML response successfully verified!");
-
- }catch(STORKSAMLEngineException e){
- Logger.error("Failed to verify STORK SAML Response", e);
- throw new MOAIDException("stork.05", null);
- }
-
- return authnResponse.getPersonalAttributeList();
+// Logger.info(this.getClass().getSimpleName() + " tries to extract SAMLResponse out of HTTP Request");
+// //extract STORK Response from HTTP Request
+// //Decodes SAML Response
+// byte[] decSamlToken;
+// try {
+// decSamlToken = PEPSUtil.decodeSAMLToken(httpReq.getParameter("SAMLResponse"));
+// } catch(NullPointerException e) {
+// throw new UnsupportedAttributeException();
+// }
+//
+// //Get SAMLEngine instance
+// STORKSAMLEngine engine = STORKSAMLEngine.getInstance("VIDP");
+//
+// STORKAuthnResponse authnResponse = null;
+// try {
+// //validate SAML Token
+// Logger.debug("Starting validation of SAML response");
+// authnResponse = engine.validateSTORKAuthnResponse(decSamlToken, (String) httpReq.getRemoteHost());
+// Logger.info("SAML response successfully verified!");
+//
+// }catch(STORKSAMLEngineException e){
+// Logger.error("Failed to verify STORK SAML Response", e);
+// throw new MOAIDException("stork.05", null);
+// }
+//
+// return authnResponse.getPersonalAttributeList();
}
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/attributeproviders/SignedDocAttributeRequestProvider.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/attributeproviders/SignedDocAttributeRequestProvider.java
index 124b91e8b..bb3d8b1fd 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/attributeproviders/SignedDocAttributeRequestProvider.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/attributeproviders/SignedDocAttributeRequestProvider.java
@@ -46,6 +46,7 @@ import javax.xml.ws.Service;
import javax.xml.ws.soap.SOAPBinding;
import javax.xml.ws.BindingProvider;
+import eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._1_0.assertion.AttributeStatusType;
import org.apache.commons.codec.binary.Base64;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang.NotImplementedException;
@@ -55,6 +56,7 @@ import org.apache.velocity.app.VelocityEngine;
import org.bouncycastle.util.encoders.UrlBase64;
import at.gv.egovernment.moa.id.auth.exception.MOAIDException;
+import at.gv.egovernment.moa.id.config.auth.AuthConfigurationProvider;
import at.gv.egovernment.moa.id.config.auth.OAAuthParameter;
import at.gv.egovernment.moa.id.data.IAuthData;
import at.gv.egovernment.moa.id.protocols.stork2.ExternalAttributeRequestRequiredException;
@@ -107,15 +109,25 @@ public class SignedDocAttributeRequestProvider extends AttributeProvider {
super(attributes);
this.oasisDssWebFormURL = oasisDssWebFormURL;
- Properties props = new Properties();
try {
- props.load(DatabaseConnectorMySQLImpl.class.getResourceAsStream("docservice.properties"));
- dtlUrl = props.getProperty("docservice.url");
- } catch (IOException e) {
+ AuthConfigurationProvider authConfigurationProvider = AuthConfigurationProvider.getInstance();
+ dtlUrl = authConfigurationProvider.getDocumentServiceUrl();
+ Logger.info ("SignedDocAttributeRequestProvider, using dtlUrl:"+dtlUrl);
+ } catch (Exception e) {
dtlUrl = "http://testvidp.buergerkarte.at/DocumentService/DocumentService";
- Logger.error("Loading DTL config failed, using default value:"+dtlUrl);
e.printStackTrace();
- }
+ Logger.error("Loading documentservice url failed, using default value:"+dtlUrl);
+ }
+
+// Properties props = new Properties();
+// try {
+// props.load(DatabaseConnectorMySQLImpl.class.getResourceAsStream("docservice.properties"));
+// dtlUrl = props.getProperty("docservice.url");
+// } catch (IOException e) {
+// dtlUrl = "http://testvidp.buergerkarte.at/DocumentService/DocumentService";
+// Logger.error("Loading DTL config failed, using default value:"+dtlUrl);
+// e.printStackTrace();
+// }
}
/*
@@ -207,7 +219,16 @@ public class SignedDocAttributeRequestProvider extends AttributeProvider {
// set the url in the SignResponse
DocumentWithSignature documentWithSignature = new DocumentWithSignature();
DocumentType value = new DocumentType();
- value.setDocumentURL(dtlUrl);
+ if(dtlUrl.endsWith("?wsdl"))
+ {
+ String tmp = dtlUrl.replace("?wsdl", "");
+ Logger.debug("DocumentUrl ends with ? wsdl, using "+tmp+" instead.");
+ value.setDocumentURL(tmp);
+ }
+ else
+ {
+ value.setDocumentURL(dtlUrl);
+ }
documentWithSignature.setDocument(value);
if(signResponse.getOptionalOutputs()!=null)
{
@@ -296,7 +317,7 @@ public class SignedDocAttributeRequestProvider extends AttributeProvider {
Logger.debug("Assembling signedDoc attribute");
PersonalAttribute signedDocAttribute = new PersonalAttribute("signedDoc", false, values,
- "Available");
+ AttributeStatusType.AVAILABLE.value());
// pack and return the result
PersonalAttributeList result = new PersonalAttributeList();
@@ -355,7 +376,13 @@ public class SignedDocAttributeRequestProvider extends AttributeProvider {
byte[] data = getDocumentFromDtl(docRequest, dtlURL);//dtlUrl
//load doc from DTL
- Logger.debug("data:"+data);
+ Logger.debug("data:"+data+" "+data.length);
+ try{
+ Logger.trace("data:"+new String(data,"UTF-8"));
+ }catch(Exception e)
+ {
+ Logger.trace("data: creating String failed:"+e);
+ }
String mime = getDocumentMimeFromDtl(docId, dtlURL);//dtlUrl
Logger.debug("mime:"+mime);
@@ -366,11 +393,28 @@ public class SignedDocAttributeRequestProvider extends AttributeProvider {
IncludeObject.class);
signRequest.getOptionalInputs().getAny().removeAll(includeObjects);
+ String documentId = null;
+ Object objDoc = signRequest.getInputDocuments().getDocumentOrTransformedDataOrDocumentHash().get(0);
+ if (objDoc != null && objDoc instanceof DocumentType)
+ {
+ DocumentType document = (DocumentType)objDoc;
+ documentId = document.getID();
+ }
DocumentType document = new DocumentType();
- Base64Data b64data = new Base64Data();
- b64data.setValue(data);
- b64data.setMimeType(mime);
- document.setBase64Data(b64data);
+ if(documentId != null)
+ document.setID(documentId);
+ if(signRequest.getProfile().toLowerCase().contains("xades"))
+ {
+ document.setBase64XML(data);
+ }
+ else
+ {
+ Base64Data b64data = new Base64Data();
+ b64data.setValue(data);
+ b64data.setMimeType(mime);
+ document.setBase64Data(b64data);
+ }
+
signRequest.setInputDocuments(ApiUtils.createInputDocuments(document));
//override old signRequestString
@@ -379,6 +423,7 @@ public class SignedDocAttributeRequestProvider extends AttributeProvider {
IOUtils.copy(istr, writer, "UTF-8");
signRequestString = writer.toString();
Logger.info("Signrequest overwritten");
+ Logger.debug("Signrequest overwritten:"+signRequestString);
} catch (Exception e) {
e.printStackTrace();
throw new Exception("Could not marshall sign request", e);
@@ -469,6 +514,7 @@ public class SignedDocAttributeRequestProvider extends AttributeProvider {
URL url = null;
try
{
+ Logger.debug("getDocumentFromDtl:"+dtlUrl);
url = new URL(dtlUrl);
QName qname = new QName("http://stork.eu",
"DocumentService");
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/IdentityLinkReSigner.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/IdentityLinkReSigner.java
index 090bea486..520b81b17 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/IdentityLinkReSigner.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/IdentityLinkReSigner.java
@@ -71,13 +71,9 @@ public class IdentityLinkReSigner {
return instance;
}
- public Element resignIdentityLink(Element idl) throws MOAIDException {
+ public Element resignIdentityLink(Element idl, String keyGroupId) throws MOAIDException {
try {
- AuthConfigurationProvider config = AuthConfigurationProvider.getInstance();
-
- if (config.isIdentityLinkResigning()) {
-
if (idl == null) {
Logger.warn("IdentityLink is empty");
return null;
@@ -91,7 +87,6 @@ public class IdentityLinkReSigner {
SPSSFactory spssFac = SPSSFactory.getInstance();
- String keyGroupId = config.getIdentityLinkResigningKey();
if (MiscUtil.isEmpty(keyGroupId)) {
Logger.warn("No IdentityLink reSigning-Key definded");
throw new MOAIDException("config.19", new Object[]{});
@@ -166,9 +161,6 @@ public class IdentityLinkReSigner {
Logger.warn("Allgemeiner Fehler beim Aufruf von MOA-SS: Unbekannter ResponseType von MOA-SS");
throw new MOAIDException("builder.05", new Object[]{});
}
-
- } else
- return idl;
} catch (ConfigurationException e) {
Logger.warn("Configuration can not be loaded", e);
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/PVPtoSTORKMapper.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/PVPtoSTORKMapper.java
index 0ea03e29d..5ef9494f4 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/PVPtoSTORKMapper.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/PVPtoSTORKMapper.java
@@ -36,6 +36,7 @@ import at.gv.egovernment.moa.util.MiscUtil;
public class PVPtoSTORKMapper {
private static final String PVP_SECCLASS_PREFIX = "http://www.ref.gv.at/ns/names/agiz/pvp/";
+ private static final String STORK_QAA_PREFIX = "http://www.stork.gov.eu/1.0/";
private static final String MAPPING_RESOURCE =
"resources/properties/pvp-stork_mapping.properties";
@@ -67,12 +68,31 @@ public class PVPtoSTORKMapper {
}
+ /**Map a STORK QAA level to PVP SecClass
+ *
+ * @param STORK-QAA level
+ * @return PVP SecClass pvpQAALevel
+ */
+ public String mapToSecClass(String storkQAALevel) {
+ if (mapping != null) {
+ String input = storkQAALevel.substring(STORK_QAA_PREFIX.length());
+ String mappedQAA = mapping.getProperty(input);
+ if (MiscUtil.isNotEmpty(mappedQAA)) {
+ Logger.info("Map STORK-QAA " + storkQAALevel + " to PVP SecClass " + mappedQAA);
+ return mappedQAA;
+
+ }
+ }
+ Logger.warn("No mapping for STORK-QAA " + storkQAALevel +" !");
+ return null;
+ }
+
/**Map a PVP SecClass to STORK QAA level
*
* @param PVP SecClass pvpQAALevel
* @return STORK-QAA level
*/
- public String mapQAALevel(String pvpQAALevel) {
+ public String mapToQAALevel(String pvpQAALevel) {
if (mapping != null) {
String input = pvpQAALevel.substring(PVP_SECCLASS_PREFIX.length());
String mappedQAA = mapping.getProperty(input);
@@ -93,13 +113,16 @@ public class PVPtoSTORKMapper {
*/
public String map(AuthenticationRole el) {
if (mapping != null) {
- String ecRole = mapping.getProperty(el.getRawRoleString());
+ //String ecRole = mapping.getProperty(el.getRawRoleString());
+ String ecRole = mapping.getProperty(el.getRoleName());
if (MiscUtil.isNotEmpty(ecRole)) {
- Logger.info("Map PVPRole " + el.getRawRoleString() + " to ECRole " + ecRole);
+ //Logger.info("Map PVPRole " + el.getRawRoleString() + " to ECRole " + ecRole);
+ Logger.info("Map PVPRole " + el.getRoleName() + " to ECRole " + ecRole);
return ecRole;
}
}
- Logger.warn("NO mapping for PVPRole "+ el.getRawRoleString() + " !");
+ //Logger.warn("NO mapping for PVPRole "+ el.getRawRoleString() + " !");
+ Logger.warn("NO mapping for PVPRole "+ el.getRoleName() + " !");
return null;
}
}
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/client/mis/simple/MISMandate.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/client/mis/simple/MISMandate.java
index 20cabaf4d..1edb8d1f3 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/client/mis/simple/MISMandate.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/client/mis/simple/MISMandate.java
@@ -66,6 +66,9 @@ public class MISMandate implements Serializable{
final static public String OID_ORGANWALTER = "1.2.40.0.10.3.4";
final static private String TEXT_ORGANWALTER = "Organwalter";
+ final static public String OID_ELGA_OMBUTSSTELLE = "1.2.40.0.34.3.1.3";
+ final static public String OID_ELGA_OMBUTSSTELLE_TEST = "1.2.40.0.34.3.1.2.99.9";
+ final static private String TEXT_ELGA_OMBUTSSTELLE = "ELGA-Ombudsstelle";
private String oid = null;
private byte[] mandate = null;
@@ -102,7 +105,10 @@ public class MISMandate implements Serializable{
return TEXT_ZIVILTECHNIKER;
if (this.oid.equalsIgnoreCase(OID_ORGANWALTER))
return TEXT_ORGANWALTER;
-
+ if (this.oid.equalsIgnoreCase(OID_ELGA_OMBUTSSTELLE)
+ || this.oid.equalsIgnoreCase(OID_ELGA_OMBUTSSTELLE_TEST))
+ return TEXT_ELGA_OMBUTSSTELLE;
+
return "Keine textuelle Beschreibung für OID " + oid;
} else {
diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/client/mis/simple/MISSimpleClient.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/client/mis/simple/MISSimpleClient.java
index 15b2a89b5..24c96a78f 100644
--- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/client/mis/simple/MISSimpleClient.java
+++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/util/client/mis/simple/MISSimpleClient.java
@@ -56,6 +56,7 @@ import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.TransformerException;
import org.apache.commons.codec.binary.Base64;
+import org.apache.commons.httpclient.HostConfiguration;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.methods.StringRequestEntity;
@@ -70,6 +71,7 @@ import org.xml.sax.SAXException;
import at.gv.egovernment.moa.id.auth.exception.MISSimpleClientException;
import at.gv.egovernment.moa.id.auth.validator.parep.client.szrgw.SZRGWSecureSocketFactory;
+import at.gv.egovernment.moa.id.commons.utils.HttpClientWithProxySupport;
import at.gv.egovernment.moa.logging.Logger;
import at.gv.egovernment.moa.util.DOMUtils;
import at.gv.egovernment.moa.util.StringUtils;
@@ -300,7 +302,7 @@ public class MISSimpleClient {
throw new NullPointerException("Argument request must not be null.");
}
try {
- HttpClient httpclient = new HttpClient();
+ HttpClient httpclient = HttpClientWithProxySupport.getHttpClient();
PostMethod post = new PostMethod(webServiceURL);
StringRequestEntity re = new StringRequestEntity(DOMUtils.serializeNode(packIntoSOAP(request)),"text/xml", "UTF-8");
post.setRequestEntity(re);
diff --git a/id/server/idserverlib/src/main/resources/resources/properties/pvp-stork_mapping.properties b/id/server/idserverlib/src/main/resources/resources/properties/pvp-stork_mapping.properties
index 63745f826..ca12fada4 100644
--- a/id/server/idserverlib/src/main/resources/resources/properties/pvp-stork_mapping.properties
+++ b/id/server/idserverlib/src/main/resources/resources/properties/pvp-stork_mapping.properties
@@ -1,9 +1,31 @@
##PVP role mapping
viewer=CIRCABC/viewer
CIRCABC-viewer=CIRCABC/viewer
+CIRCABC-DIRECTOR=CIRCABC/DIRECTOR
+CIRCABC-SECRETARY=CIRCABC/SECRETARY
+CIRCABC-MEMBER=CIRCABC/MEMBER
-##PVP SecClass mapping
+ecas-demo-EUROPEAN_COMMISSION=ecas-demo/EUROPEAN_COMMISSION
+ecas-demo-EXTERNAL_INTRAMUROS=ecas-demo/EXTERNAL_INTRAMUROS
+ecas-demo-INTERNET=ecas-demo/INTERNET
+ecas-demo-LIVENEWS=ecas-demo/LIVENEWS
+
+DIGIT-EUROPEAN_COMMISSION=DIGIT/EUROPEAN_COMMISSION
+DIGIT-EXTERNAL_INTRAMUROS=DIGIT/EXTERNAL_INTRAMUROS
+DIGIT-INTERNET=DIGIT/INTERNET
+DIGIT-LIVENEWS=DIGIT/LIVENEWS
+
+
+
+
+##PVP SecClass to STORK-QAA mapping
secclass/0=http://www.stork.gov.eu/1.0/citizenQAALevel/1
secclass/0-1=http://www.stork.gov.eu/1.0/citizenQAALevel/2
-secclass/0-2=http://www.stork.gov.eu/1.0/citizenQAALevel/3
-secclass/0-3=http://www.stork.gov.eu/1.0/citizenQAALevel/4 \ No newline at end of file
+secclass/0-2=http://www.stork.gov.eu/1.0/citizenQAALevel/4
+secclass/0-3=http://www.stork.gov.eu/1.0/citizenQAALevel/4
+
+##STORK-QAA to PVP SecClass mapping
+citizenQAALevel/1=http://www.ref.gv.at/ns/names/agiz/pvp/secclass/0
+citizenQAALevel/2=http://www.ref.gv.at/ns/names/agiz/pvp/secclass/0-1
+citizenQAALevel/3=http://www.ref.gv.at/ns/names/agiz/pvp/secclass/0-2
+citizenQAALevel/4=http://www.ref.gv.at/ns/names/agiz/pvp/secclass/0-2 \ No newline at end of file
diff --git a/id/server/idserverlib/src/main/resources/resources/xmldata/fakeIdL_IdL_template.xml b/id/server/idserverlib/src/main/resources/resources/xmldata/fakeIdL_IdL_template.xml
new file mode 100644
index 000000000..09084a34f
--- /dev/null
+++ b/id/server/idserverlib/src/main/resources/resources/xmldata/fakeIdL_IdL_template.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?><saml:Assertion xmlns:saml="urn:oasis:names:tc:SAML:1.0:assertion" xmlns:ecdsa="http://www.w3.org/2001/04/xmldsig-more#" xmlns:pr="http://reference.e-government.gv.at/namespace/persondata/20020228#" xmlns:si="http://www.w3.org/2001/XMLSchema-instance" AssertionID="szr.bmi.gv.at-AssertionID13456264458587874" IssueInstant="2012-08-22T11:07:25+01:00" Issuer="http://portal.bmi.gv.at/ref/szr/issuer" MajorVersion="1" MinorVersion="0" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#">
+ <saml:AttributeStatement>
+ <saml:Subject>
+ <saml:SubjectConfirmation>
+ <saml:ConfirmationMethod>urn:oasis:names:tc:SAML:1.0:cm:sender-vouches</saml:ConfirmationMethod>
+ <saml:SubjectConfirmationData>
+ <pr:Person si:type="pr:PhysicalPersonType"><pr:Identification><pr:Value>wJO/bvDJjUysG0yARn7I6w==</pr:Value><pr:Type>urn:publicid:gv.at:baseid</pr:Type></pr:Identification><pr:Name><pr:GivenName>XXXRúùd</pr:GivenName><pr:FamilyName primary="undefined">XXXVàn Nisteĺrooy</pr:FamilyName></pr:Name><pr:DateOfBirth>1969-02-13</pr:DateOfBirth></pr:Person>
+ </saml:SubjectConfirmationData>
+ </saml:SubjectConfirmation>
+ </saml:Subject>
+ <saml:Attribute AttributeName="CitizenPublicKey" AttributeNamespace="urn:publicid:gv.at:namespaces:identitylink:1.2"><saml:AttributeValue><ecdsa:ECDSAKeyValue><ecdsa:DomainParameters><ecdsa:NamedCurve URN="urn:oid:1.2.840.10045.3.1.7"/></ecdsa:DomainParameters><ecdsa:PublicKey><ecdsa:X Value="22280299907126338788314199678167217078072953115254374209747379168424021905237" si:type="ecdsa:PrimeFieldElemType"/><ecdsa:Y Value="40387096985250872237992703378062984723606079359080588656963239072881568409170" si:type="ecdsa:PrimeFieldElemType"/></ecdsa:PublicKey></ecdsa:ECDSAKeyValue></saml:AttributeValue></saml:Attribute><saml:Attribute AttributeName="CitizenPublicKey" AttributeNamespace="urn:publicid:gv.at:namespaces:identitylink:1.2"><saml:AttributeValue><dsig:RSAKeyValue><dsig:Modulus>4Y4FL09VhczsfYQgFPuycP8quJNZBAAu1R1rFXNodI2711B6BTMjAGQn6xuFWfd3/nyFav/MLTr/
+t2VazvANS4TRFxJAcWyIx7xbxCdzZr6gJ+FCmq4g5JPrQvt50v3JX+wKSYft1gHBOWlDn90Ia4Gm
+P8MVuze21T+VVKM6ZklmS6d5PT1er/uYQFydGErmJ17xlSQG6Fi5xuftopBDyJxG1tL1KIebpLFg
+gaM2EyuB1HxH8/+Mfqa4UgeqIH65</dsig:Modulus><dsig:Exponent>AQAB</dsig:Exponent></dsig:RSAKeyValue></saml:AttributeValue></saml:Attribute></saml:AttributeStatement>
+ <dsig:Signature>
+ <dsig:SignedInfo>
+ <dsig:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
+ <dsig:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
+ <dsig:Reference URI="">
+ <dsig:Transforms>
+ <dsig:Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116">
+ <dsig:XPath>not(ancestor-or-self::pr:Identification)</dsig:XPath>
+ </dsig:Transform>
+ <dsig:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
+ </dsig:Transforms>
+ <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
+ <dsig:DigestValue>KEQEPY2O3Z3IRaISSSoRZVPzsHE=</dsig:DigestValue>
+ </dsig:Reference>
+ <dsig:Reference Type="http://www.w3.org/2000/09/xmldsig#Manifest" URI="#manifest">
+ <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
+ <dsig:DigestValue>gzGhjH1kdmPcPbgen0xojNIoJLk=</dsig:DigestValue>
+ </dsig:Reference>
+ </dsig:SignedInfo>
+ <dsig:SignatureValue>
+ 06wqWHgplwpu3N5HMhzb6QC5NkXMO1z4N4oc1L6eDqwZlvFJ9X1XGW//QqviKO9oog3il7IzdfJwnjygR4trgGCIqx+JYCDHJCrG9l8zlxlSW0ZqfsygGXthutcQ1aeUpfO6jYuhnWOUywa8BgzukRtWT+AOJBQZPRYTb8IBmey+uAwlhFLni94eMOd81l+efCvkWi3jRajwsG8ZOaNxSZT3aEV5vj+32Aqtx2MPEVzQWtIA7GqZi+EzcdSdHQvHhg7UB+8kqbU70ENAJbEMTANFZYvLOJ0Om9KfDtPf/+R2TvTc360fNo9RnPl04pHPhCIjcGZhFZorBpUhXFwd2Q==
+ </dsig:SignatureValue><dsig:KeyInfo><dsig:X509Data><dsig:X509Certificate>MIIF3TCCBMWgAwIBAgIDByniMA0GCSqGSIb3DQEBBQUAMIGfMQswCQYDVQQGEwJBVDFIMEYGA1UECgw/QS1UcnVzdCBHZXMuIGYuIFNpY2hlcmhlaXRzc3lzdGVtZSBpbSBlbGVrdHIuIERhdGVudmVya2VociBHbWJIMSIwIAYDVQQLDBlhLXNpZ24tY29ycG9yYXRlLWxpZ2h0LTAyMSIwIAYDVQQDDBlhLXNpZ24tY29ycG9yYXRlLWxpZ2h0LTAyMB4XDTEwMDcyODExMzY0M1oXDTE1MDcyODExMzY0M1owgbYxCzAJBgNVBAYTAkFUMR4wHAYDVQQKDBVEYXRlbnNjaHV0emtvbW1pc3Npb24xIjAgBgNVBAsMGVN0YW1temFobHJlZ2lzdGVyYmVob2VyZGUxLjAsBgNVBAMMJVNpZ25hdHVyc2VydmljZSBEYXRlbnNjaHV0emtvbW1pc3Npb24xFTATBgNVBAUTDDMyNTkyODMyMzk5ODEcMBoGCSqGSIb3DQEJARYNZHNrQGRzay5ndi5hdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAN+dBSEBGj2jUXIK1Mp3lVxc/Za+pJMiyKrX3G1ZxgX/ikx7D9scsPYMt473LlAWl9cmCbHbJK+PV2XNNdURLMUCIX+4vUNs2MHeDTQtX8BXjJFpwJYSoaRJQ39FVS/1r5sWcra9Hhdm7w5Gtx/2ukyDX0kdkxawkhP4EQEzi/SI+Fugn+WqgQ1nAdlbxb/dcBw5w1h9b3lmuwUf4z3ooQWUD2DgA/kKd1KejNR43mLUsmvSzevPxT9zs78pOR1OacB7IszTVJPXeOEaaNZHnnB/UeO3g8LEV/3OkXcUgcMkbIIiaBHlll71Pq0COj9kqjXoe7OrRjLY5i3KwOpa6TMCAwEAAaOCAgcwggIDMBMGA1UdIwQMMAqACEkcWDpP6A0DMH8GCCsGAQUFBwEBBHMwcTAnBggrBgEFBQcwAYYbaHR0cDovL29jc3AuYS10cnVzdC5hdC9vY3NwMEYGCCsGAQUFBzAChjpodHRwOi8vd3d3LmEtdHJ1c3QuYXQvY2VydHMvYS1zaWduLWNvcnBvcmF0ZS1saWdodC0wMmEuY3J0MFQGA1UdIARNMEswSQYGKigAEQESMD8wPQYIKwYBBQUHAgEWMWh0dHA6Ly93d3cuYS10cnVzdC5hdC9kb2NzL2NwL2Etc2lnbi1BbXRzc2lnbmF0dXIwgZ4GA1UdHwSBljCBkzCBkKCBjaCBioaBh2xkYXA6Ly9sZGFwLmEtdHJ1c3QuYXQvb3U9YS1zaWduLWNvcnBvcmF0ZS1saWdodC0wMixvPUEtVHJ1c3QsYz1BVD9jZXJ0aWZpY2F0ZXJldm9jYXRpb25saXN0P2Jhc2U/b2JqZWN0Y2xhc3M9ZWlkQ2VydGlmaWNhdGlvbkF1dGhvcml0eTARBgNVHQ4ECgQITAgOnhr0tbowDgYDVR0PAQH/BAQDAgSwMCAGA1UdEQQZMBeBFW1hcmN1cy5oaWxkQGRzay5ndi5hdDAJBgNVHRMEAjAAMA4GByooAAoBBwEEAwEB/zAUBgcqKAAKAQEBBAkMB0JTQi1EU0swDQYJKoZIhvcNAQEFBQADggEBAHTklnvPCH/bJSOlIPbLUEkSGuFHsektSZ8Vr22x/Yv7EzsxoQrJIiz2mQ2gQqFuExdWYxvsowjiSbiis9iUf1c0zscvDS3mIZxGs4M89XHsjHnIyb+Fuwnamw65QrFvM1tNB1ZMjxJ3x+YmHLHdtT3BEBcr3/NCRHd2S0HoBspNz9HVgJaZY1llR7poKBvnAc4g1i+QTvyVb00PtKxR9Lw/9ABInX/1pzpxqrPy7Ib2OP8z6dd3WHmIsCiSHUaj0Dxwwln6fYJjhxZ141SnbovlCLYtrsZLXoi9ljIqX4xO0PwMI2RfNc9cXxTRrRS6rEOvX7PpvgXiDXhp592Yyp4=</dsig:X509Certificate></dsig:X509Data></dsig:KeyInfo>
+ <dsig:Object>
+ <dsig:Manifest Id="manifest">
+ <dsig:Reference URI="">
+ <dsig:Transforms>
+ <dsig:Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116">
+ <dsig:XPath>not(ancestor-or-self::dsig:Signature)</dsig:XPath>
+ </dsig:Transform>
+ </dsig:Transforms>
+ <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
+ <dsig:DigestValue>8e7RjLnA4Mgltq5ruIJzheKGxu0=</dsig:DigestValue>
+ </dsig:Reference>
+ </dsig:Manifest>
+ </dsig:Object>
+ </dsig:Signature>
+</saml:Assertion> \ No newline at end of file
diff --git a/id/server/idserverlib/src/test/java/test/tlenz/simpletest.java b/id/server/idserverlib/src/test/java/test/tlenz/simpletest.java
index ec908f78b..549eb4f2b 100644
--- a/id/server/idserverlib/src/test/java/test/tlenz/simpletest.java
+++ b/id/server/idserverlib/src/test/java/test/tlenz/simpletest.java
@@ -1,3 +1,8 @@
+package test.tlenz;
+
+import at.gv.egovernment.moa.id.data.AuthenticationRole;
+import at.gv.egovernment.moa.id.data.AuthenticationRoleFactory;
+
/*******************************************************************************
* Copyright 2014 Federal Chancellery Austria
* MOA-ID has been developed in a cooperation between BRZ, the Federal
@@ -38,12 +43,19 @@
//import at.gv.egovernment.moa.id.storage.AssertionStorage;
//import at.gv.egovernment.moa.util.MiscUtil;
//
-//public class simpletest {
+public class simpletest {
//
-// public static void main(String[] args) {
+ public static void main(String[] args) {
+
+ AuthenticationRole test = AuthenticationRoleFactory.buildFormPVPole("ecas-demo-EUROPEAN_COMMISSION(key=A\\,B)");
+
+ test = AuthenticationRoleFactory.buildFormPVPole("ecas-demo-EUROPEAN_COMMISSION");
+ test = AuthenticationRoleFactory.buildFormPVPole("ecas-demo-EUROPEAN_COMMISSION(key=A)");
+ test = AuthenticationRoleFactory.buildFormPVPole("ecas-demo-EUROPEAN_COMMISSION(keyA=A,keyB=B)");
+
//
// System.setProperty("mandates.configuration", "D:/Projekte/svn/moa-id/moa-id.properties");
-// String propertiesFileLocation = System.getProperty("mandates.configuration");
+// String propertiesFileLocation = Systm.getProperty("mandates.configuration");
//
// MiscUtil.assertNotNull(propertiesFileLocation, "propertiesFileName");
// File propertiesFile = new File(propertiesFileLocation);
@@ -95,5 +107,5 @@
//
//
//
-// }
-//}
+ }
+}
diff --git a/id/server/moa-id-commons/pom.xml b/id/server/moa-id-commons/pom.xml
index 8f2fbd628..c504a7f0c 100644
--- a/id/server/moa-id-commons/pom.xml
+++ b/id/server/moa-id-commons/pom.xml
@@ -46,17 +46,17 @@
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
- <version>4.3.6.Final</version>
+ <version>4.3.8.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-c3p0</artifactId>
- <version>4.3.6.Final</version>
+ <version>4.3.8.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
- <version>4.3.6.Final</version>
+ <version>4.3.8.Final</version>
</dependency>
<dependency>
@@ -64,10 +64,14 @@
<artifactId>commons-lang3</artifactId>
<version>3.3.2</version>
</dependency>
- <dependency>
+ <dependency>
<groupId>commons-httpclient</groupId>
<artifactId>commons-httpclient</artifactId>
</dependency>
+<!-- <dependency>
+ <groupId>org.apache.httpcomponents</groupId>
+ <artifactId>httpclient</artifactId>
+ </dependency> -->
<dependency>
<groupId>MOA</groupId>
<artifactId>moa-common</artifactId>
@@ -118,7 +122,7 @@
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
- <version>5.1.33</version>
+ <version>5.1.34</version>
</dependency>
</dependencies>
diff --git a/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/db/ConfigurationDBRead.java b/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/db/ConfigurationDBRead.java
index a3f445fcf..6efdd6223 100644
--- a/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/db/ConfigurationDBRead.java
+++ b/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/db/ConfigurationDBRead.java
@@ -152,7 +152,7 @@ public class ConfigurationDBRead {
if (result.size() == 0) {
Logger.trace("No entries found. Create fresh instance.");
- return new MOAIDConfiguration();
+ return null;
}
return (MOAIDConfiguration) result.get(0);
diff --git a/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/utils/HttpClientWithProxySupport.java b/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/utils/HttpClientWithProxySupport.java
new file mode 100644
index 000000000..733c03bf0
--- /dev/null
+++ b/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/utils/HttpClientWithProxySupport.java
@@ -0,0 +1,61 @@
+/*
+ * Copyright 2014 Federal Chancellery Austria
+ * MOA-ID has been developed in a cooperation between BRZ, the Federal
+ * Chancellery Austria - ICT staff unit, and Graz University of Technology.
+ *
+ * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by
+ * the European Commission - subsequent versions of the EUPL (the "Licence");
+ * You may not use this work except in compliance with the Licence.
+ * You may obtain a copy of the Licence at:
+ * http://www.osor.eu/eupl/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the Licence is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the Licence for the specific language governing permissions and
+ * limitations under the Licence.
+ *
+ * This product combines work with different licenses. See the "NOTICE" text
+ * file for details on the various modules and licenses.
+ * The "NOTICE" text file is part of the distribution. Any derivative works
+ * that you distribute must include a readable copy of the "NOTICE" text file.
+ */
+package at.gv.egovernment.moa.id.commons.utils;
+
+import org.apache.commons.httpclient.HttpClient;
+import org.apache.commons.httpclient.UsernamePasswordCredentials;
+import org.apache.commons.httpclient.auth.AuthScope;
+
+import at.gv.egovernment.moa.logging.Logger;
+import at.gv.egovernment.moa.util.MiscUtil;
+
+/**
+ * @author tlenz
+ *
+ */
+public class HttpClientWithProxySupport {
+
+ public static HttpClient getHttpClient() {
+ HttpClient client = new HttpClient();
+
+ String host = System.getProperty("http.proxyHost"); //$NON-NLS-1$
+ String port = System.getProperty("http.proxyPort"); //$NON-NLS-1$
+ if (MiscUtil.isNotEmpty(host) &&
+ MiscUtil.isNotEmpty(port)) {
+ int p = Integer.parseInt(port);
+ client.getHostConfiguration().setProxy(host, p);
+ Logger.info("Initial HTTPClient with proxy usage. " +
+ "ProxyHost=" + host +
+ " ProxyPort=" + port);
+
+ String user = System.getProperty("http.proxyUser"); //$NON-NLS-1$
+ String pass = System.getProperty("http.proxyPassword"); //$NON-NLS-1$
+ if (MiscUtil.isNotEmpty(user) && pass != null) {
+ client.getState().setProxyCredentials(new AuthScope(host, p),
+ new UsernamePasswordCredentials(user, pass));
+
+ }
+ }
+ return client;
+ }
+}
diff --git a/id/server/moa-id-commons/src/main/java/org/apache/commons/httpclient/MOAHttpClient.java b/id/server/moa-id-commons/src/main/java/org/apache/commons/httpclient/MOAHttpClient.java
index e4aa6a284..758209193 100644
--- a/id/server/moa-id-commons/src/main/java/org/apache/commons/httpclient/MOAHttpClient.java
+++ b/id/server/moa-id-commons/src/main/java/org/apache/commons/httpclient/MOAHttpClient.java
@@ -26,15 +26,8 @@ import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
-import org.apache.commons.httpclient.HostConfiguration;
-import org.apache.commons.httpclient.HttpClient;
-import org.apache.commons.httpclient.HttpException;
-import org.apache.commons.httpclient.HttpMethod;
-import org.apache.commons.httpclient.HttpMethodDirector;
-import org.apache.commons.httpclient.HttpState;
-import org.apache.commons.httpclient.URI;
import org.apache.commons.httpclient.protocol.Protocol;
-import org.apache.commons.httpclient.protocol.SecureProtocolSocketFactory;
+import org.apache.commons.httpclient.protocol.ProtocolSocketFactory;
import at.gv.egovernment.moa.id.commons.ex.MOAHttpProtocolSocketFactoryException;
@@ -47,7 +40,7 @@ import at.gv.egovernment.moa.id.commons.ex.MOAHttpProtocolSocketFactoryException
public class MOAHttpClient extends HttpClient {
- public void setCustomSSLTrustStore(String metadataURL, SecureProtocolSocketFactory protoSocketFactory) throws MOAHttpProtocolSocketFactoryException, MalformedURLException {
+ public void setCustomSSLTrustStore(String metadataURL, ProtocolSocketFactory protoSocketFactory) throws MOAHttpProtocolSocketFactoryException, MalformedURLException {
;
URL url = new URL(metadataURL);
diff --git a/id/server/stork2-commons/pom.xml b/id/server/stork2-commons/pom.xml
index 369e3fa6d..dc9c22515 100644
--- a/id/server/stork2-commons/pom.xml
+++ b/id/server/stork2-commons/pom.xml
@@ -130,6 +130,7 @@
<configuration>
<source>1.7</source>
<target>1.7</target>
+ <encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
diff --git a/id/server/stork2-commons/src/main/config/embedded/pepsUtil.properties b/id/server/stork2-commons/src/main/config/embedded/pepsUtil.properties
index ae811dda7..acc79a8c9 100644
--- a/id/server/stork2-commons/src/main/config/embedded/pepsUtil.properties
+++ b/id/server/stork2-commons/src/main/config/embedded/pepsUtil.properties
@@ -33,6 +33,7 @@ max.localAddr.size=300
max.localName.size=300
max.apepsUrl.size=300
max.apeps.callbackUrl.size=300
+max.spCountryCode.size=5
dtl.url=http://localhost:8080/DocumentService/DocumentService
@@ -249,21 +250,24 @@ spepsSAMLResponse.code=200010
spepsSAMLResponse.message=error.gen.speps.saml
-invalid.apepsRedirectUrl.code=001001
+invalid.apepsRedirectUrl.code=204001
invalid.apepsRedirectUrl.message=invalid.apeps.redirectUrl
-apepsSAMLRequest.code=001002
+apepsSAMLRequest.code=204002
apepsSAMLRequest.message=invalid.apeps.saml.request
-apepsSAMLResponse.code=001003
+apepsSAMLResponse.code=204003
apepsSAMLResponse.message=invalid.apeps.saml.response
-invalid.apepsCallbackUrl.code=001004
+invalid.apepsCallbackUrl.code=204004
invalid.apepsCallbackUrl.message=invalid.apeps.callback.url
-colleagueAttributeRequest.invalidSAML.code=001005
+colleagueAttributeRequest.invalidSAML.code=204005
colleagueAttributeRequest.invalidSAML.message=invalid.attr.request.saml
+colleagueAttributeRequest.invalidCountryCode.code=204006
+colleagueAttributeRequest.invalidCountryCode.message=invalid.attr.country.code
+
#Hash Digests
hashDigest.className=org.bouncycastle.crypto.digests.SHA512Digest
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/auth/commons/Linker.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/auth/commons/Linker.java
index 6e7c891da..94882de77 100644
--- a/id/server/stork2-commons/src/main/java/eu/stork/peps/auth/commons/Linker.java
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/auth/commons/Linker.java
@@ -145,7 +145,10 @@ public final class Linker implements Serializable {
//Assertion storage
this.assertions.put(source, attrResponse);
-
+ // previously: getTotalPersonalAttributeList() in both cases
+ if ( source.getSourceType()==AttributeSource.SOURCE_REMOTE_COUNTRY )
+ this.attributeProvidersMap.put(source, attrResponse.getTotalPersonalAttributeList());
+ else
this.attributeProvidersMap.put(source, attrResponse.getPersonalAttributeList());
//this.attributeProvidersMap.put(source, attrResponse.getTotalPersonalAttributeList());
}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/auth/commons/PEPSErrors.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/auth/commons/PEPSErrors.java
index 5da9ba494..f2493db4e 100644
--- a/id/server/stork2-commons/src/main/java/eu/stork/peps/auth/commons/PEPSErrors.java
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/auth/commons/PEPSErrors.java
@@ -325,8 +325,13 @@ public enum PEPSErrors {
/**
* Represents the 'colleagueAttributeRequest.invalidSAML' constant error identifier.
*/
- COLLEAGUE_ATTR_REQ_INVALID_SAML("colleagueAttributeRequest.invalidSAML");
-
+ COLLEAGUE_ATTR_REQ_INVALID_SAML("colleagueAttributeRequest.invalidSAML"),
+
+ /**
+ * Represents the 'invalid.attr.country.code' constant error identifier.
+ */
+ INVALID_COUNTRY_CODE("invalid.attr.country.code");
+
/**
* Represents the constant's value.
*/
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/auth/commons/PEPSParameters.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/auth/commons/PEPSParameters.java
index 15c2ae552..dd534499d 100644
--- a/id/server/stork2-commons/src/main/java/eu/stork/peps/auth/commons/PEPSParameters.java
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/auth/commons/PEPSParameters.java
@@ -407,10 +407,17 @@ public enum PEPSParameters {
* Represents the 'spCountry' constant value.
*/
SPCOUNTRY("spCountry"),
+
/**
* Represents the 'spInstitution' constant value.
*/
SPINSTITUTION("spInstitution"),
+
+ /**
+ * Represents the 'spCountryCode' constant value.
+ */
+ SP_COUNTRY_CODE("spCountryCode"),
+
/**
* Represents the 'storkAttribute.number' parameter constant.
*/
@@ -598,7 +605,12 @@ public enum PEPSParameters {
/**
* Represents the 'complexAttrListOpt' parameter constant.
*/
- COMPLEX_ATTR_LIST_OPT("complexAttrListOpt");
+ COMPLEX_ATTR_LIST_OPT("complexAttrListOpt"),
+ /**
+ * Represents the 'idPDerivedAttrList' parameter constant.
+ */
+
+ IDP_DERIVED_ATTR_LIST("idPDerivedAttrList");
/**
* Represents the constant's value.
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/auth/commons/STORKAttrQueryResponse.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/auth/commons/STORKAttrQueryResponse.java
index 1974f4f66..276b26a03 100644
--- a/id/server/stork2-commons/src/main/java/eu/stork/peps/auth/commons/STORKAttrQueryResponse.java
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/auth/commons/STORKAttrQueryResponse.java
@@ -38,7 +38,7 @@ public class STORKAttrQueryResponse implements Serializable {
private String subStatusCode;
/** Audience restriction. */
- private transient String audienceRest;
+ private String audienceRest;
/** Error message. */
private String message;
@@ -65,7 +65,7 @@ public class STORKAttrQueryResponse implements Serializable {
private List<Assertion> assertions;
/** The complete list from all assertions **/
- private transient IPersonalAttributeList totalAttributeList = new PersonalAttributeList();
+ private IPersonalAttributeList totalAttributeList = new PersonalAttributeList();
/** All personal attribute lists **/
private List<IPersonalAttributeList> attributeLists;
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/auth/commons/STORKAuthnResponse.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/auth/commons/STORKAuthnResponse.java
index c4a3e2b6c..62a5343ec 100644
--- a/id/server/stork2-commons/src/main/java/eu/stork/peps/auth/commons/STORKAuthnResponse.java
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/auth/commons/STORKAuthnResponse.java
@@ -47,7 +47,7 @@ public final class STORKAuthnResponse implements Serializable {
private String subStatusCode;
/** Audience restriction. */
- private transient String audienceRest;
+ private String audienceRest;
/** Error message. */
private String message;
@@ -74,7 +74,7 @@ public final class STORKAuthnResponse implements Serializable {
private List<Assertion> assertions;
/** The complete list from all assertions **/
- private transient IPersonalAttributeList totalAttributeList = new PersonalAttributeList();
+ private IPersonalAttributeList totalAttributeList = new PersonalAttributeList();
/** All personal attribute lists **/
private List<IPersonalAttributeList> attributeLists;
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/IsHCPType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/IsHCPType.java
deleted file mode 100644
index 17e315d2d..000000000
--- a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/IsHCPType.java
+++ /dev/null
@@ -1,145 +0,0 @@
-//
-// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
-// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
-// Any modifications to this file will be lost upon recompilation of the source schema.
-// Generated on: 2014.02.17 at 10:36:59 AM GMT
-//
-
-
-package eu.stork.peps.complex.attributes;
-
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlType;
-
-
-/**
- * <p>Java class for isHCPType complex type.
- *
- * <p>The following schema fragment specifies the expected content contained within this class.
- *
- * <pre>
- * &lt;complexType name="isHCPType">
- * &lt;complexContent>
- * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * &lt;sequence>
- * &lt;element name="nameOfOrganisation" type="{http://www.w3.org/2001/XMLSchema}string"/>
- * &lt;element name="HCPType" type="{urn:eu:stork:names:tc:STORK:1.0:assertion}HCPType"/>
- * &lt;element name="specialisation" type="{urn:eu:stork:names:tc:STORK:1.0:assertion}specialisationType"/>
- * &lt;element name="AQAA" type="{urn:eu:stork:names:tc:STORK:1.0:assertion}QualityAuthenticationAssuranceLevelType"/>
- * &lt;/sequence>
- * &lt;/restriction>
- * &lt;/complexContent>
- * &lt;/complexType>
- * </pre>
- *
- *
- */
-@XmlAccessorType(XmlAccessType.FIELD)
-@XmlType(name = "isHCPType", propOrder = {
- "nameOfOrganisation",
- "hcpType",
- "specialisation",
- "aqaa"
-})
-public class IsHCPType {
-
- @XmlElement(required = true)
- protected String nameOfOrganisation;
- @XmlElement(name = "HCPType", required = true)
- protected String hcpType;
- @XmlElement(required = true)
- protected String specialisation;
- @XmlElement(name = "AQAA")
- protected int aqaa;
-
- /**
- * Gets the value of the nameOfOrganisation property.
- *
- * @return
- * possible object is
- * {@link String }
- *
- */
- public String getNameOfOrganisation() {
- return nameOfOrganisation;
- }
-
- /**
- * Sets the value of the nameOfOrganisation property.
- *
- * @param value
- * allowed object is
- * {@link String }
- *
- */
- public void setNameOfOrganisation(String value) {
- this.nameOfOrganisation = value;
- }
-
- /**
- * Gets the value of the hcpType property.
- *
- * @return
- * possible object is
- * {@link String }
- *
- */
- public String getHCPType() {
- return hcpType;
- }
-
- /**
- * Sets the value of the hcpType property.
- *
- * @param value
- * allowed object is
- * {@link String }
- *
- */
- public void setHCPType(String value) {
- this.hcpType = value;
- }
-
- /**
- * Gets the value of the specialisation property.
- *
- * @return
- * possible object is
- * {@link String }
- *
- */
- public String getSpecialisation() {
- return specialisation;
- }
-
- /**
- * Sets the value of the specialisation property.
- *
- * @param value
- * allowed object is
- * {@link String }
- *
- */
- public void setSpecialisation(String value) {
- this.specialisation = value;
- }
-
- /**
- * Gets the value of the aqaa property.
- *
- */
- public int getAQAA() {
- return aqaa;
- }
-
- /**
- * Sets the value of the aqaa property.
- *
- */
- public void setAQAA(int value) {
- this.aqaa = value;
- }
-
-}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/MandateContentType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/MandateContentType.java
deleted file mode 100644
index 84ce2727b..000000000
--- a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/MandateContentType.java
+++ /dev/null
@@ -1,233 +0,0 @@
-//
-// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
-// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
-// Any modifications to this file will be lost upon recompilation of the source schema.
-// Generated on: 2014.02.17 at 10:36:59 AM GMT
-//
-
-
-package eu.stork.peps.complex.attributes;
-
-import java.math.BigInteger;
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlSchemaType;
-import javax.xml.bind.annotation.XmlType;
-import javax.xml.datatype.XMLGregorianCalendar;
-
-
-/**
- * <p>Java class for mandateContentType complex type.
- *
- * <p>The following schema fragment specifies the expected content contained within this class.
- *
- * <pre>
- * &lt;complexType name="mandateContentType">
- * &lt;complexContent>
- * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * &lt;sequence>
- * &lt;element name="validFrom" type="{http://www.w3.org/2001/XMLSchema}date"/>
- * &lt;element name="validTo" type="{http://www.w3.org/2001/XMLSchema}date"/>
- * &lt;element name="transactionLimit" type="{http://www.w3.org/2001/XMLSchema}integer"/>
- * &lt;element name="transactionLimitCurrency" type="{urn:eu:stork:names:tc:STORK:1.0:assertion}currencyType"/>
- * &lt;element name="isJoint" type="{http://www.w3.org/2001/XMLSchema}string"/>
- * &lt;element name="ischained" type="{http://www.w3.org/2001/XMLSchema}boolean"/>
- * &lt;element name="typePower" type="{http://www.w3.org/2001/XMLSchema}string"/>
- * &lt;/sequence>
- * &lt;/restriction>
- * &lt;/complexContent>
- * &lt;/complexType>
- * </pre>
- *
- *
- */
-@XmlAccessorType(XmlAccessType.FIELD)
-@XmlType(name = "mandateContentType", propOrder = {
- "validFrom",
- "validTo",
- "transactionLimit",
- "transactionLimitCurrency",
- "isJoint",
- "ischained",
- "typePower"
-})
-public class MandateContentType {
-
- @XmlElement(required = true)
- @XmlSchemaType(name = "date")
- protected XMLGregorianCalendar validFrom;
- @XmlElement(required = true)
- @XmlSchemaType(name = "date")
- protected XMLGregorianCalendar validTo;
- @XmlElement(required = true)
- protected BigInteger transactionLimit;
- @XmlElement(required = true)
- protected String transactionLimitCurrency;
- @XmlElement(required = true)
- protected String isJoint;
- protected boolean ischained;
- @XmlElement(required = true)
- protected String typePower;
-
- /**
- * Gets the value of the validFrom property.
- *
- * @return
- * possible object is
- * {@link XMLGregorianCalendar }
- *
- */
- public XMLGregorianCalendar getValidFrom() {
- return validFrom;
- }
-
- /**
- * Sets the value of the validFrom property.
- *
- * @param value
- * allowed object is
- * {@link XMLGregorianCalendar }
- *
- */
- public void setValidFrom(XMLGregorianCalendar value) {
- this.validFrom = value;
- }
-
- /**
- * Gets the value of the validTo property.
- *
- * @return
- * possible object is
- * {@link XMLGregorianCalendar }
- *
- */
- public XMLGregorianCalendar getValidTo() {
- return validTo;
- }
-
- /**
- * Sets the value of the validTo property.
- *
- * @param value
- * allowed object is
- * {@link XMLGregorianCalendar }
- *
- */
- public void setValidTo(XMLGregorianCalendar value) {
- this.validTo = value;
- }
-
- /**
- * Gets the value of the transactionLimit property.
- *
- * @return
- * possible object is
- * {@link BigInteger }
- *
- */
- public BigInteger getTransactionLimit() {
- return transactionLimit;
- }
-
- /**
- * Sets the value of the transactionLimit property.
- *
- * @param value
- * allowed object is
- * {@link BigInteger }
- *
- */
- public void setTransactionLimit(BigInteger value) {
- this.transactionLimit = value;
- }
-
- /**
- * Gets the value of the transactionLimitCurrency property.
- *
- * @return
- * possible object is
- * {@link String }
- *
- */
- public String getTransactionLimitCurrency() {
- return transactionLimitCurrency;
- }
-
- /**
- * Sets the value of the transactionLimitCurrency property.
- *
- * @param value
- * allowed object is
- * {@link String }
- *
- */
- public void setTransactionLimitCurrency(String value) {
- this.transactionLimitCurrency = value;
- }
-
- /**
- * Gets the value of the isJoint property.
- *
- * @return
- * possible object is
- * {@link String }
- *
- */
- public String getIsJoint() {
- return isJoint;
- }
-
- /**
- * Sets the value of the isJoint property.
- *
- * @param value
- * allowed object is
- * {@link String }
- *
- */
- public void setIsJoint(String value) {
- this.isJoint = value;
- }
-
- /**
- * Gets the value of the ischained property.
- *
- */
- public boolean isIschained() {
- return ischained;
- }
-
- /**
- * Sets the value of the ischained property.
- *
- */
- public void setIschained(boolean value) {
- this.ischained = value;
- }
-
- /**
- * Gets the value of the typePower property.
- *
- * @return
- * possible object is
- * {@link String }
- *
- */
- public String getTypePower() {
- return typePower;
- }
-
- /**
- * Sets the value of the typePower property.
- *
- * @param value
- * allowed object is
- * {@link String }
- *
- */
- public void setTypePower(String value) {
- this.typePower = value;
- }
-
-}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/AdditionalInformationType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/AdditionalInformationType.java
new file mode 100644
index 000000000..21a15820b
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/AdditionalInformationType.java
@@ -0,0 +1,99 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.crue.academic.xsd.language.diplomasupplement;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * Additional information
+ *
+ * <p>Java class for AdditionalInformationType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="AdditionalInformationType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="SpecificInformation" type="{urn:crue:academic:xsd:language:diplomasupplement}RichTextTagType" minOccurs="0"/>
+ * &lt;element name="OtherSources" type="{urn:crue:academic:xsd:language:diplomasupplement}RichTextTagType" minOccurs="0"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "AdditionalInformationType", propOrder = {
+ "specificInformation",
+ "otherSources"
+})
+public class AdditionalInformationType {
+
+ @XmlElement(name = "SpecificInformation")
+ protected RichTextTagType specificInformation;
+ @XmlElement(name = "OtherSources")
+ protected RichTextTagType otherSources;
+
+ /**
+ * Gets the value of the specificInformation property.
+ *
+ * @return
+ * possible object is
+ * {@link RichTextTagType }
+ *
+ */
+ public RichTextTagType getSpecificInformation() {
+ return specificInformation;
+ }
+
+ /**
+ * Sets the value of the specificInformation property.
+ *
+ * @param value
+ * allowed object is
+ * {@link RichTextTagType }
+ *
+ */
+ public void setSpecificInformation(RichTextTagType value) {
+ this.specificInformation = value;
+ }
+
+ /**
+ * Gets the value of the otherSources property.
+ *
+ * @return
+ * possible object is
+ * {@link RichTextTagType }
+ *
+ */
+ public RichTextTagType getOtherSources() {
+ return otherSources;
+ }
+
+ /**
+ * Sets the value of the otherSources property.
+ *
+ * @param value
+ * allowed object is
+ * {@link RichTextTagType }
+ *
+ */
+ public void setOtherSources(RichTextTagType value) {
+ this.otherSources = value;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/AddressType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/AddressType.java
new file mode 100644
index 000000000..044801564
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/AddressType.java
@@ -0,0 +1,281 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.crue.academic.xsd.language.diplomasupplement;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlValue;
+
+
+/**
+ * Address
+ *
+ * <p>Java class for AddressType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="AddressType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="Line" type="{urn:crue:academic:xsd:language:diplomasupplement}PlainTextType" maxOccurs="unbounded"/>
+ * &lt;element name="City" type="{urn:crue:academic:xsd:language:diplomasupplement}PlainTextType"/>
+ * &lt;element name="StateOrRegion" type="{urn:crue:academic:xsd:language:diplomasupplement}PlainTextType"/>
+ * &lt;element name="PostalCode" type="{urn:crue:academic:xsd:language:diplomasupplement}PlainTextType"/>
+ * &lt;element name="Country">
+ * &lt;complexType>
+ * &lt;simpleContent>
+ * &lt;extension base="&lt;urn:crue:academic:xsd:language:diplomasupplement>PlainTextType">
+ * &lt;attribute name="country" use="required" type="{urn:crue:academic:xsd:language:diplomasupplement}CountryType" />
+ * &lt;/extension>
+ * &lt;/simpleContent>
+ * &lt;/complexType>
+ * &lt;/element>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "AddressType", propOrder = {
+ "line",
+ "city",
+ "stateOrRegion",
+ "postalCode",
+ "country"
+})
+public class AddressType {
+
+ @XmlElement(name = "Line", required = true)
+ protected List<String> line;
+ @XmlElement(name = "City", required = true)
+ protected String city;
+ @XmlElement(name = "StateOrRegion", required = true)
+ protected String stateOrRegion;
+ @XmlElement(name = "PostalCode", required = true)
+ protected String postalCode;
+ @XmlElement(name = "Country", required = true)
+ protected AddressType.Country country;
+
+ /**
+ * Gets the value of the line property.
+ *
+ * <p>
+ * 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 <CODE>set</CODE> method for the line property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getLine().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link String }
+ *
+ *
+ */
+ public List<String> getLine() {
+ if (line == null) {
+ line = new ArrayList<String>();
+ }
+ return this.line;
+ }
+
+ /**
+ * Gets the value of the city property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getCity() {
+ return city;
+ }
+
+ /**
+ * Sets the value of the city property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setCity(String value) {
+ this.city = value;
+ }
+
+ /**
+ * Gets the value of the stateOrRegion property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getStateOrRegion() {
+ return stateOrRegion;
+ }
+
+ /**
+ * Sets the value of the stateOrRegion property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setStateOrRegion(String value) {
+ this.stateOrRegion = value;
+ }
+
+ /**
+ * Gets the value of the postalCode property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getPostalCode() {
+ return postalCode;
+ }
+
+ /**
+ * Sets the value of the postalCode property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setPostalCode(String value) {
+ this.postalCode = value;
+ }
+
+ /**
+ * Gets the value of the country property.
+ *
+ * @return
+ * possible object is
+ * {@link AddressType.Country }
+ *
+ */
+ public AddressType.Country getCountry() {
+ return country;
+ }
+
+ /**
+ * Sets the value of the country property.
+ *
+ * @param value
+ * allowed object is
+ * {@link AddressType.Country }
+ *
+ */
+ public void setCountry(AddressType.Country value) {
+ this.country = value;
+ }
+
+
+ /**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType>
+ * &lt;simpleContent>
+ * &lt;extension base="&lt;urn:crue:academic:xsd:language:diplomasupplement>PlainTextType">
+ * &lt;attribute name="country" use="required" type="{urn:crue:academic:xsd:language:diplomasupplement}CountryType" />
+ * &lt;/extension>
+ * &lt;/simpleContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+ @XmlAccessorType(XmlAccessType.FIELD)
+ @XmlType(name = "", propOrder = {
+ "value"
+ })
+ public static class Country {
+
+ @XmlValue
+ protected String value;
+ @XmlAttribute(name = "country", required = true)
+ protected CountryType country;
+
+ /**
+ * Plain text constraint
+ *
+ * Non empty text
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getValue() {
+ return value;
+ }
+
+ /**
+ * Sets the value of the value property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setValue(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Gets the value of the country property.
+ *
+ * @return
+ * possible object is
+ * {@link CountryType }
+ *
+ */
+ public CountryType getCountry() {
+ return country;
+ }
+
+ /**
+ * Sets the value of the country property.
+ *
+ * @param value
+ * allowed object is
+ * {@link CountryType }
+ *
+ */
+ public void setCountry(CountryType value) {
+ this.country = value;
+ }
+
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/AttachedFileDataType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/AttachedFileDataType.java
new file mode 100644
index 000000000..d30d97334
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/AttachedFileDataType.java
@@ -0,0 +1,125 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.crue.academic.xsd.language.diplomasupplement;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * Data file
+ *
+ * <p>Java class for AttachedFileDataType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="AttachedFileDataType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="Description" type="{urn:crue:academic:xsd:language:diplomasupplement}PlainTextType"/>
+ * &lt;element name="Mime" type="{urn:crue:academic:xsd:language:diplomasupplement}MimeType"/>
+ * &lt;element name="Data" type="{http://www.w3.org/2001/XMLSchema}base64Binary"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "AttachedFileDataType", propOrder = {
+ "description",
+ "mime",
+ "data"
+})
+public class AttachedFileDataType {
+
+ @XmlElement(name = "Description", required = true)
+ protected String description;
+ @XmlElement(name = "Mime", required = true)
+ protected MimeType mime;
+ @XmlElement(name = "Data", required = true)
+ protected byte[] data;
+
+ /**
+ * Gets the value of the description property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getDescription() {
+ return description;
+ }
+
+ /**
+ * Sets the value of the description property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setDescription(String value) {
+ this.description = value;
+ }
+
+ /**
+ * Gets the value of the mime property.
+ *
+ * @return
+ * possible object is
+ * {@link MimeType }
+ *
+ */
+ public MimeType getMime() {
+ return mime;
+ }
+
+ /**
+ * Sets the value of the mime property.
+ *
+ * @param value
+ * allowed object is
+ * {@link MimeType }
+ *
+ */
+ public void setMime(MimeType value) {
+ this.mime = value;
+ }
+
+ /**
+ * Gets the value of the data property.
+ *
+ * @return
+ * possible object is
+ * byte[]
+ */
+ public byte[] getData() {
+ return data;
+ }
+
+ /**
+ * Sets the value of the data property.
+ *
+ * @param value
+ * allowed object is
+ * byte[]
+ */
+ public void setData(byte[] value) {
+ this.data = value;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/AttachedFileURLType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/AttachedFileURLType.java
new file mode 100644
index 000000000..3e49c0053
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/AttachedFileURLType.java
@@ -0,0 +1,127 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.crue.academic.xsd.language.diplomasupplement;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * URL reference to the file
+ *
+ * <p>Java class for AttachedFileURLType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="AttachedFileURLType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="Description" type="{urn:crue:academic:xsd:language:diplomasupplement}PlainTextType"/>
+ * &lt;element name="Mime" type="{urn:crue:academic:xsd:language:diplomasupplement}MimeType"/>
+ * &lt;element name="URL" type="{urn:crue:academic:xsd:language:diplomasupplement}URLType"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "AttachedFileURLType", propOrder = {
+ "description",
+ "mime",
+ "url"
+})
+public class AttachedFileURLType {
+
+ @XmlElement(name = "Description", required = true)
+ protected String description;
+ @XmlElement(name = "Mime", required = true)
+ protected MimeType mime;
+ @XmlElement(name = "URL", required = true)
+ protected String url;
+
+ /**
+ * Gets the value of the description property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getDescription() {
+ return description;
+ }
+
+ /**
+ * Sets the value of the description property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setDescription(String value) {
+ this.description = value;
+ }
+
+ /**
+ * Gets the value of the mime property.
+ *
+ * @return
+ * possible object is
+ * {@link MimeType }
+ *
+ */
+ public MimeType getMime() {
+ return mime;
+ }
+
+ /**
+ * Sets the value of the mime property.
+ *
+ * @param value
+ * allowed object is
+ * {@link MimeType }
+ *
+ */
+ public void setMime(MimeType value) {
+ this.mime = value;
+ }
+
+ /**
+ * Gets the value of the url property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getURL() {
+ return url;
+ }
+
+ /**
+ * Sets the value of the url property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setURL(String value) {
+ this.url = value;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/AttachedImageDataType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/AttachedImageDataType.java
new file mode 100644
index 000000000..4e66627a4
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/AttachedImageDataType.java
@@ -0,0 +1,125 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.crue.academic.xsd.language.diplomasupplement;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * Image data file
+ *
+ * <p>Java class for AttachedImageDataType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="AttachedImageDataType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="Description" type="{urn:crue:academic:xsd:language:diplomasupplement}PlainTextType"/>
+ * &lt;element name="Mime" type="{urn:crue:academic:xsd:language:diplomasupplement}ImageMimeType"/>
+ * &lt;element name="Data" type="{http://www.w3.org/2001/XMLSchema}base64Binary"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "AttachedImageDataType", propOrder = {
+ "description",
+ "mime",
+ "data"
+})
+public class AttachedImageDataType {
+
+ @XmlElement(name = "Description", required = true)
+ protected String description;
+ @XmlElement(name = "Mime", required = true)
+ protected ImageMimeType mime;
+ @XmlElement(name = "Data", required = true)
+ protected byte[] data;
+
+ /**
+ * Gets the value of the description property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getDescription() {
+ return description;
+ }
+
+ /**
+ * Sets the value of the description property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setDescription(String value) {
+ this.description = value;
+ }
+
+ /**
+ * Gets the value of the mime property.
+ *
+ * @return
+ * possible object is
+ * {@link ImageMimeType }
+ *
+ */
+ public ImageMimeType getMime() {
+ return mime;
+ }
+
+ /**
+ * Sets the value of the mime property.
+ *
+ * @param value
+ * allowed object is
+ * {@link ImageMimeType }
+ *
+ */
+ public void setMime(ImageMimeType value) {
+ this.mime = value;
+ }
+
+ /**
+ * Gets the value of the data property.
+ *
+ * @return
+ * possible object is
+ * byte[]
+ */
+ public byte[] getData() {
+ return data;
+ }
+
+ /**
+ * Sets the value of the data property.
+ *
+ * @param value
+ * allowed object is
+ * byte[]
+ */
+ public void setData(byte[] value) {
+ this.data = value;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/AttachedImageURLType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/AttachedImageURLType.java
new file mode 100644
index 000000000..76dffaa4a
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/AttachedImageURLType.java
@@ -0,0 +1,127 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.crue.academic.xsd.language.diplomasupplement;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * URL reference to the image file
+ *
+ * <p>Java class for AttachedImageURLType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="AttachedImageURLType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="Description" type="{urn:crue:academic:xsd:language:diplomasupplement}PlainTextType"/>
+ * &lt;element name="Mime" type="{urn:crue:academic:xsd:language:diplomasupplement}ImageMimeType"/>
+ * &lt;element name="URL" type="{urn:crue:academic:xsd:language:diplomasupplement}URLType"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "AttachedImageURLType", propOrder = {
+ "description",
+ "mime",
+ "url"
+})
+public class AttachedImageURLType {
+
+ @XmlElement(name = "Description", required = true)
+ protected String description;
+ @XmlElement(name = "Mime", required = true)
+ protected ImageMimeType mime;
+ @XmlElement(name = "URL", required = true)
+ protected String url;
+
+ /**
+ * Gets the value of the description property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getDescription() {
+ return description;
+ }
+
+ /**
+ * Sets the value of the description property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setDescription(String value) {
+ this.description = value;
+ }
+
+ /**
+ * Gets the value of the mime property.
+ *
+ * @return
+ * possible object is
+ * {@link ImageMimeType }
+ *
+ */
+ public ImageMimeType getMime() {
+ return mime;
+ }
+
+ /**
+ * Sets the value of the mime property.
+ *
+ * @param value
+ * allowed object is
+ * {@link ImageMimeType }
+ *
+ */
+ public void setMime(ImageMimeType value) {
+ this.mime = value;
+ }
+
+ /**
+ * Gets the value of the url property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getURL() {
+ return url;
+ }
+
+ /**
+ * Sets the value of the url property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setURL(String value) {
+ this.url = value;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/AttachedType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/AttachedType.java
new file mode 100644
index 000000000..ba693c9a0
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/AttachedType.java
@@ -0,0 +1,190 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.crue.academic.xsd.language.diplomasupplement;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlID;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+
+
+/**
+ * Attachment resource
+ *
+ * <p>Java class for AttachedType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="AttachedType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;choice>
+ * &lt;element name="FileData" type="{urn:crue:academic:xsd:language:diplomasupplement}AttachedFileDataType"/>
+ * &lt;element name="FileURI" type="{urn:crue:academic:xsd:language:diplomasupplement}AttachedFileURLType"/>
+ * &lt;element name="ImageData" type="{urn:crue:academic:xsd:language:diplomasupplement}AttachedImageDataType"/>
+ * &lt;element name="ImageURI" type="{urn:crue:academic:xsd:language:diplomasupplement}AttachedImageURLType"/>
+ * &lt;/choice>
+ * &lt;attribute name="attachedID" use="required" type="{http://www.w3.org/2001/XMLSchema}ID" />
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "AttachedType", propOrder = {
+ "fileData",
+ "fileURI",
+ "imageData",
+ "imageURI"
+})
+public class AttachedType {
+
+ @XmlElement(name = "FileData")
+ protected AttachedFileDataType fileData;
+ @XmlElement(name = "FileURI")
+ protected AttachedFileURLType fileURI;
+ @XmlElement(name = "ImageData")
+ protected AttachedImageDataType imageData;
+ @XmlElement(name = "ImageURI")
+ protected AttachedImageURLType imageURI;
+ @XmlAttribute(name = "attachedID", required = true)
+ @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+ @XmlID
+ @XmlSchemaType(name = "ID")
+ protected String attachedID;
+
+ /**
+ * Gets the value of the fileData property.
+ *
+ * @return
+ * possible object is
+ * {@link AttachedFileDataType }
+ *
+ */
+ public AttachedFileDataType getFileData() {
+ return fileData;
+ }
+
+ /**
+ * Sets the value of the fileData property.
+ *
+ * @param value
+ * allowed object is
+ * {@link AttachedFileDataType }
+ *
+ */
+ public void setFileData(AttachedFileDataType value) {
+ this.fileData = value;
+ }
+
+ /**
+ * Gets the value of the fileURI property.
+ *
+ * @return
+ * possible object is
+ * {@link AttachedFileURLType }
+ *
+ */
+ public AttachedFileURLType getFileURI() {
+ return fileURI;
+ }
+
+ /**
+ * Sets the value of the fileURI property.
+ *
+ * @param value
+ * allowed object is
+ * {@link AttachedFileURLType }
+ *
+ */
+ public void setFileURI(AttachedFileURLType value) {
+ this.fileURI = value;
+ }
+
+ /**
+ * Gets the value of the imageData property.
+ *
+ * @return
+ * possible object is
+ * {@link AttachedImageDataType }
+ *
+ */
+ public AttachedImageDataType getImageData() {
+ return imageData;
+ }
+
+ /**
+ * Sets the value of the imageData property.
+ *
+ * @param value
+ * allowed object is
+ * {@link AttachedImageDataType }
+ *
+ */
+ public void setImageData(AttachedImageDataType value) {
+ this.imageData = value;
+ }
+
+ /**
+ * Gets the value of the imageURI property.
+ *
+ * @return
+ * possible object is
+ * {@link AttachedImageURLType }
+ *
+ */
+ public AttachedImageURLType getImageURI() {
+ return imageURI;
+ }
+
+ /**
+ * Sets the value of the imageURI property.
+ *
+ * @param value
+ * allowed object is
+ * {@link AttachedImageURLType }
+ *
+ */
+ public void setImageURI(AttachedImageURLType value) {
+ this.imageURI = value;
+ }
+
+ /**
+ * Gets the value of the attachedID property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getAttachedID() {
+ return attachedID;
+ }
+
+ /**
+ * Sets the value of the attachedID property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setAttachedID(String value) {
+ this.attachedID = value;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/AttachmentsType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/AttachmentsType.java
new file mode 100644
index 000000000..a646bd390
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/AttachmentsType.java
@@ -0,0 +1,78 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.crue.academic.xsd.language.diplomasupplement;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * Attachments resources
+ *
+ * <p>Java class for AttachmentsType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="AttachmentsType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="Attached" type="{urn:crue:academic:xsd:language:diplomasupplement}AttachedType" maxOccurs="unbounded"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "AttachmentsType", propOrder = {
+ "attached"
+})
+public class AttachmentsType {
+
+ @XmlElement(name = "Attached", required = true)
+ protected List<AttachedType> attached;
+
+ /**
+ * Gets the value of the attached property.
+ *
+ * <p>
+ * 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 <CODE>set</CODE> method for the attached property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getAttached().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link AttachedType }
+ *
+ *
+ */
+ public List<AttachedType> getAttached() {
+ if (attached == null) {
+ attached = new ArrayList<AttachedType>();
+ }
+ return this.attached;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/CertificationOfTheSupplementType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/CertificationOfTheSupplementType.java
new file mode 100644
index 000000000..2d053514b
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/CertificationOfTheSupplementType.java
@@ -0,0 +1,128 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.crue.academic.xsd.language.diplomasupplement;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.datatype.XMLGregorianCalendar;
+
+
+/**
+ * Certification of the Supplement
+ *
+ * <p>Java class for CertificationOfTheSupplementType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="CertificationOfTheSupplementType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="CertificationDate" type="{urn:crue:academic:xsd:language:diplomasupplement}DateType"/>
+ * &lt;element name="OfficialsCertifying" type="{urn:crue:academic:xsd:language:diplomasupplement}OfficialsCertifyingType"/>
+ * &lt;element name="OfficialStamp" type="{urn:crue:academic:xsd:language:diplomasupplement}OfficialStampType" minOccurs="0"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CertificationOfTheSupplementType", propOrder = {
+ "certificationDate",
+ "officialsCertifying",
+ "officialStamp"
+})
+public class CertificationOfTheSupplementType {
+
+ @XmlElement(name = "CertificationDate", required = true)
+ protected XMLGregorianCalendar certificationDate;
+ @XmlElement(name = "OfficialsCertifying", required = true)
+ protected OfficialsCertifyingType officialsCertifying;
+ @XmlElement(name = "OfficialStamp")
+ protected OfficialStampType officialStamp;
+
+ /**
+ * Gets the value of the certificationDate property.
+ *
+ * @return
+ * possible object is
+ * {@link XMLGregorianCalendar }
+ *
+ */
+ public XMLGregorianCalendar getCertificationDate() {
+ return certificationDate;
+ }
+
+ /**
+ * Sets the value of the certificationDate property.
+ *
+ * @param value
+ * allowed object is
+ * {@link XMLGregorianCalendar }
+ *
+ */
+ public void setCertificationDate(XMLGregorianCalendar value) {
+ this.certificationDate = value;
+ }
+
+ /**
+ * Gets the value of the officialsCertifying property.
+ *
+ * @return
+ * possible object is
+ * {@link OfficialsCertifyingType }
+ *
+ */
+ public OfficialsCertifyingType getOfficialsCertifying() {
+ return officialsCertifying;
+ }
+
+ /**
+ * Sets the value of the officialsCertifying property.
+ *
+ * @param value
+ * allowed object is
+ * {@link OfficialsCertifyingType }
+ *
+ */
+ public void setOfficialsCertifying(OfficialsCertifyingType value) {
+ this.officialsCertifying = value;
+ }
+
+ /**
+ * Gets the value of the officialStamp property.
+ *
+ * @return
+ * possible object is
+ * {@link OfficialStampType }
+ *
+ */
+ public OfficialStampType getOfficialStamp() {
+ return officialStamp;
+ }
+
+ /**
+ * Sets the value of the officialStamp property.
+ *
+ * @param value
+ * allowed object is
+ * {@link OfficialStampType }
+ *
+ */
+ public void setOfficialStamp(OfficialStampType value) {
+ this.officialStamp = value;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/ContactInformationType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/ContactInformationType.java
new file mode 100644
index 000000000..2ad8c81ec
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/ContactInformationType.java
@@ -0,0 +1,172 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.crue.academic.xsd.language.diplomasupplement;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * Contact information
+ *
+ * <p>Java class for ContactInformationType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="ContactInformationType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="Address" type="{urn:crue:academic:xsd:language:diplomasupplement}AddressType"/>
+ * &lt;element name="PhoneNumber" type="{urn:crue:academic:xsd:language:diplomasupplement}PlainTextType" maxOccurs="unbounded" minOccurs="0"/>
+ * &lt;element name="Email" type="{urn:crue:academic:xsd:language:diplomasupplement}EmailAddressType" maxOccurs="unbounded" minOccurs="0"/>
+ * &lt;element name="WebSite" type="{urn:crue:academic:xsd:language:diplomasupplement}URLType" maxOccurs="unbounded" minOccurs="0"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "ContactInformationType", propOrder = {
+ "address",
+ "phoneNumber",
+ "email",
+ "webSite"
+})
+public class ContactInformationType {
+
+ @XmlElement(name = "Address", required = true)
+ protected AddressType address;
+ @XmlElement(name = "PhoneNumber")
+ protected List<String> phoneNumber;
+ @XmlElement(name = "Email")
+ protected List<String> email;
+ @XmlElement(name = "WebSite")
+ protected List<String> webSite;
+
+ /**
+ * Gets the value of the address property.
+ *
+ * @return
+ * possible object is
+ * {@link AddressType }
+ *
+ */
+ public AddressType getAddress() {
+ return address;
+ }
+
+ /**
+ * Sets the value of the address property.
+ *
+ * @param value
+ * allowed object is
+ * {@link AddressType }
+ *
+ */
+ public void setAddress(AddressType value) {
+ this.address = value;
+ }
+
+ /**
+ * Gets the value of the phoneNumber property.
+ *
+ * <p>
+ * 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 <CODE>set</CODE> method for the phoneNumber property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getPhoneNumber().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link String }
+ *
+ *
+ */
+ public List<String> getPhoneNumber() {
+ if (phoneNumber == null) {
+ phoneNumber = new ArrayList<String>();
+ }
+ return this.phoneNumber;
+ }
+
+ /**
+ * Gets the value of the email property.
+ *
+ * <p>
+ * 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 <CODE>set</CODE> method for the email property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getEmail().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link String }
+ *
+ *
+ */
+ public List<String> getEmail() {
+ if (email == null) {
+ email = new ArrayList<String>();
+ }
+ return this.email;
+ }
+
+ /**
+ * Gets the value of the webSite property.
+ *
+ * <p>
+ * 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 <CODE>set</CODE> method for the webSite property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getWebSite().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link String }
+ *
+ *
+ */
+ public List<String> getWebSite() {
+ if (webSite == null) {
+ webSite = new ArrayList<String>();
+ }
+ return this.webSite;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/CountryType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/CountryType.java
new file mode 100644
index 000000000..5ace3fcb6
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/CountryType.java
@@ -0,0 +1,1420 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.crue.academic.xsd.language.diplomasupplement;
+
+import javax.xml.bind.annotation.XmlEnum;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for CountryType.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * <p>
+ * <pre>
+ * &lt;simpleType name="CountryType">
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ * &lt;enumeration value="AD"/>
+ * &lt;enumeration value="AE"/>
+ * &lt;enumeration value="AF"/>
+ * &lt;enumeration value="AG"/>
+ * &lt;enumeration value="AL"/>
+ * &lt;enumeration value="AM"/>
+ * &lt;enumeration value="AO"/>
+ * &lt;enumeration value="AR"/>
+ * &lt;enumeration value="AT"/>
+ * &lt;enumeration value="AU"/>
+ * &lt;enumeration value="AZ"/>
+ * &lt;enumeration value="BA"/>
+ * &lt;enumeration value="BB"/>
+ * &lt;enumeration value="BD"/>
+ * &lt;enumeration value="BE"/>
+ * &lt;enumeration value="BF"/>
+ * &lt;enumeration value="BG"/>
+ * &lt;enumeration value="BH"/>
+ * &lt;enumeration value="BI"/>
+ * &lt;enumeration value="BJ"/>
+ * &lt;enumeration value="BN"/>
+ * &lt;enumeration value="BO"/>
+ * &lt;enumeration value="BR"/>
+ * &lt;enumeration value="BS"/>
+ * &lt;enumeration value="BT"/>
+ * &lt;enumeration value="BW"/>
+ * &lt;enumeration value="BY"/>
+ * &lt;enumeration value="BZ"/>
+ * &lt;enumeration value="CA"/>
+ * &lt;enumeration value="CD"/>
+ * &lt;enumeration value="CF"/>
+ * &lt;enumeration value="CG"/>
+ * &lt;enumeration value="CH"/>
+ * &lt;enumeration value="CI"/>
+ * &lt;enumeration value="CL"/>
+ * &lt;enumeration value="CM"/>
+ * &lt;enumeration value="CN"/>
+ * &lt;enumeration value="CO"/>
+ * &lt;enumeration value="CR"/>
+ * &lt;enumeration value="CU"/>
+ * &lt;enumeration value="CV"/>
+ * &lt;enumeration value="CY"/>
+ * &lt;enumeration value="CZ"/>
+ * &lt;enumeration value="DE"/>
+ * &lt;enumeration value="DJ"/>
+ * &lt;enumeration value="DK"/>
+ * &lt;enumeration value="DM"/>
+ * &lt;enumeration value="DO"/>
+ * &lt;enumeration value="DZ"/>
+ * &lt;enumeration value="EC"/>
+ * &lt;enumeration value="EE"/>
+ * &lt;enumeration value="EG"/>
+ * &lt;enumeration value="ER"/>
+ * &lt;enumeration value="ES"/>
+ * &lt;enumeration value="ET"/>
+ * &lt;enumeration value="FI"/>
+ * &lt;enumeration value="FJ"/>
+ * &lt;enumeration value="FM"/>
+ * &lt;enumeration value="FR"/>
+ * &lt;enumeration value="GA"/>
+ * &lt;enumeration value="GB"/>
+ * &lt;enumeration value="GD"/>
+ * &lt;enumeration value="GE"/>
+ * &lt;enumeration value="GH"/>
+ * &lt;enumeration value="GL"/>
+ * &lt;enumeration value="GM"/>
+ * &lt;enumeration value="GN"/>
+ * &lt;enumeration value="GQ"/>
+ * &lt;enumeration value="GR"/>
+ * &lt;enumeration value="GT"/>
+ * &lt;enumeration value="GW"/>
+ * &lt;enumeration value="GY"/>
+ * &lt;enumeration value="HN"/>
+ * &lt;enumeration value="HR"/>
+ * &lt;enumeration value="HT"/>
+ * &lt;enumeration value="HU"/>
+ * &lt;enumeration value="ID"/>
+ * &lt;enumeration value="IE"/>
+ * &lt;enumeration value="IL"/>
+ * &lt;enumeration value="IN"/>
+ * &lt;enumeration value="IQ"/>
+ * &lt;enumeration value="IR"/>
+ * &lt;enumeration value="IS"/>
+ * &lt;enumeration value="IT"/>
+ * &lt;enumeration value="JM"/>
+ * &lt;enumeration value="JO"/>
+ * &lt;enumeration value="JP"/>
+ * &lt;enumeration value="KE"/>
+ * &lt;enumeration value="KG"/>
+ * &lt;enumeration value="KH"/>
+ * &lt;enumeration value="KI"/>
+ * &lt;enumeration value="KM"/>
+ * &lt;enumeration value="KN"/>
+ * &lt;enumeration value="KP"/>
+ * &lt;enumeration value="KR"/>
+ * &lt;enumeration value="KW"/>
+ * &lt;enumeration value="KZ"/>
+ * &lt;enumeration value="LA"/>
+ * &lt;enumeration value="LB"/>
+ * &lt;enumeration value="LC"/>
+ * &lt;enumeration value="LI"/>
+ * &lt;enumeration value="LK"/>
+ * &lt;enumeration value="LR"/>
+ * &lt;enumeration value="LS"/>
+ * &lt;enumeration value="LT"/>
+ * &lt;enumeration value="LU"/>
+ * &lt;enumeration value="LV"/>
+ * &lt;enumeration value="LY"/>
+ * &lt;enumeration value="MA"/>
+ * &lt;enumeration value="MC"/>
+ * &lt;enumeration value="MD"/>
+ * &lt;enumeration value="ME"/>
+ * &lt;enumeration value="MG"/>
+ * &lt;enumeration value="MH"/>
+ * &lt;enumeration value="MK"/>
+ * &lt;enumeration value="ML"/>
+ * &lt;enumeration value="MM"/>
+ * &lt;enumeration value="MN"/>
+ * &lt;enumeration value="MR"/>
+ * &lt;enumeration value="MT"/>
+ * &lt;enumeration value="MU"/>
+ * &lt;enumeration value="MV"/>
+ * &lt;enumeration value="MW"/>
+ * &lt;enumeration value="MX"/>
+ * &lt;enumeration value="MY"/>
+ * &lt;enumeration value="MZ"/>
+ * &lt;enumeration value="NA"/>
+ * &lt;enumeration value="NE"/>
+ * &lt;enumeration value="NG"/>
+ * &lt;enumeration value="NI"/>
+ * &lt;enumeration value="NL"/>
+ * &lt;enumeration value="NO"/>
+ * &lt;enumeration value="NP"/>
+ * &lt;enumeration value="NR"/>
+ * &lt;enumeration value="NU"/>
+ * &lt;enumeration value="NZ"/>
+ * &lt;enumeration value="OM"/>
+ * &lt;enumeration value="PA"/>
+ * &lt;enumeration value="PE"/>
+ * &lt;enumeration value="PG"/>
+ * &lt;enumeration value="PH"/>
+ * &lt;enumeration value="PK"/>
+ * &lt;enumeration value="PL"/>
+ * &lt;enumeration value="PR"/>
+ * &lt;enumeration value="PS"/>
+ * &lt;enumeration value="PT"/>
+ * &lt;enumeration value="PW"/>
+ * &lt;enumeration value="PY"/>
+ * &lt;enumeration value="QA"/>
+ * &lt;enumeration value="RO"/>
+ * &lt;enumeration value="RS"/>
+ * &lt;enumeration value="RU"/>
+ * &lt;enumeration value="RW"/>
+ * &lt;enumeration value="SA"/>
+ * &lt;enumeration value="SB"/>
+ * &lt;enumeration value="SC"/>
+ * &lt;enumeration value="SD"/>
+ * &lt;enumeration value="SE"/>
+ * &lt;enumeration value="SG"/>
+ * &lt;enumeration value="SI"/>
+ * &lt;enumeration value="SK"/>
+ * &lt;enumeration value="SL"/>
+ * &lt;enumeration value="SM"/>
+ * &lt;enumeration value="SN"/>
+ * &lt;enumeration value="SO"/>
+ * &lt;enumeration value="SR"/>
+ * &lt;enumeration value="ST"/>
+ * &lt;enumeration value="SV"/>
+ * &lt;enumeration value="SY"/>
+ * &lt;enumeration value="SZ"/>
+ * &lt;enumeration value="TD"/>
+ * &lt;enumeration value="TG"/>
+ * &lt;enumeration value="TH"/>
+ * &lt;enumeration value="TJ"/>
+ * &lt;enumeration value="TL"/>
+ * &lt;enumeration value="TM"/>
+ * &lt;enumeration value="TN"/>
+ * &lt;enumeration value="TO"/>
+ * &lt;enumeration value="TR"/>
+ * &lt;enumeration value="TT"/>
+ * &lt;enumeration value="TV"/>
+ * &lt;enumeration value="TZ"/>
+ * &lt;enumeration value="UA"/>
+ * &lt;enumeration value="UG"/>
+ * &lt;enumeration value="US"/>
+ * &lt;enumeration value="UY"/>
+ * &lt;enumeration value="UZ"/>
+ * &lt;enumeration value="VA"/>
+ * &lt;enumeration value="VC"/>
+ * &lt;enumeration value="VE"/>
+ * &lt;enumeration value="VN"/>
+ * &lt;enumeration value="VU"/>
+ * &lt;enumeration value="WS"/>
+ * &lt;enumeration value="YE"/>
+ * &lt;enumeration value="ZA"/>
+ * &lt;enumeration value="ZM"/>
+ * &lt;enumeration value="ZW"/>
+ * &lt;/restriction>
+ * &lt;/simpleType>
+ * </pre>
+ *
+ */
+@XmlType(name = "CountryType")
+@XmlEnum
+public enum CountryType {
+
+
+ /**
+ * Andorra
+ *
+ */
+ AD,
+
+ /**
+ * United Arab Emirates
+ *
+ */
+ AE,
+
+ /**
+ * Afghanistan
+ *
+ */
+ AF,
+
+ /**
+ * Antigua and Barbuda
+ *
+ */
+ AG,
+
+ /**
+ * Albania
+ *
+ */
+ AL,
+
+ /**
+ * Armenia
+ *
+ */
+ AM,
+
+ /**
+ * Angola
+ *
+ */
+ AO,
+
+ /**
+ * Argentina
+ *
+ */
+ AR,
+
+ /**
+ * Austria
+ *
+ */
+ AT,
+
+ /**
+ * Australia
+ *
+ */
+ AU,
+
+ /**
+ * Azerbaijan
+ *
+ */
+ AZ,
+
+ /**
+ * Bosnia and Herzegovina
+ *
+ */
+ BA,
+
+ /**
+ * Barbados
+ *
+ */
+ BB,
+
+ /**
+ * Bangladesh
+ *
+ */
+ BD,
+
+ /**
+ * Belgium
+ *
+ */
+ BE,
+
+ /**
+ * Burkina Faso
+ *
+ */
+ BF,
+
+ /**
+ * Bulgaria
+ *
+ */
+ BG,
+
+ /**
+ * Bahrain
+ *
+ */
+ BH,
+
+ /**
+ * Burundi
+ *
+ */
+ BI,
+
+ /**
+ * Benin
+ *
+ */
+ BJ,
+
+ /**
+ * Brunei Darussalam
+ *
+ */
+ BN,
+
+ /**
+ * Bolivia
+ *
+ */
+ BO,
+
+ /**
+ * Brazil
+ *
+ */
+ BR,
+
+ /**
+ * Bahamas
+ *
+ */
+ BS,
+
+ /**
+ * Bhutan
+ *
+ */
+ BT,
+
+ /**
+ * Botswana
+ *
+ */
+ BW,
+
+ /**
+ * Belarus
+ *
+ */
+ BY,
+
+ /**
+ * Belize
+ *
+ */
+ BZ,
+
+ /**
+ * Canada
+ *
+ */
+ CA,
+
+ /**
+ * Congo, Democratic Republic of the
+ *
+ */
+ CD,
+
+ /**
+ * Central African Republic
+ *
+ */
+ CF,
+
+ /**
+ * Congo, Republic of the
+ *
+ */
+ CG,
+
+ /**
+ * Switzerland
+ *
+ */
+ CH,
+
+ /**
+ * Cote d/Ivoire
+ *
+ */
+ CI,
+
+ /**
+ * Chile
+ *
+ */
+ CL,
+
+ /**
+ * Cameroon
+ *
+ */
+ CM,
+
+ /**
+ * China
+ *
+ */
+ CN,
+
+ /**
+ * Colombia
+ *
+ */
+ CO,
+
+ /**
+ * Costa Rica
+ *
+ */
+ CR,
+
+ /**
+ * Cuba
+ *
+ */
+ CU,
+
+ /**
+ * Cape Verde
+ *
+ */
+ CV,
+
+ /**
+ * Cyprus
+ *
+ */
+ CY,
+
+ /**
+ * Czech Republic
+ *
+ */
+ CZ,
+
+ /**
+ * Germany
+ *
+ */
+ DE,
+
+ /**
+ * Djibouti
+ *
+ */
+ DJ,
+
+ /**
+ * Denmark
+ *
+ */
+ DK,
+
+ /**
+ * Dominica
+ *
+ */
+ DM,
+
+ /**
+ * Dominican Republic
+ *
+ */
+ DO,
+
+ /**
+ * Algeria
+ *
+ */
+ DZ,
+
+ /**
+ * Ecuador
+ *
+ */
+ EC,
+
+ /**
+ * Estonia
+ *
+ */
+ EE,
+
+ /**
+ * Egypt
+ *
+ */
+ EG,
+
+ /**
+ * Eritrea
+ *
+ */
+ ER,
+
+ /**
+ * Spain
+ *
+ */
+ ES,
+
+ /**
+ * Ethiopia
+ *
+ */
+ ET,
+
+ /**
+ * Finland
+ *
+ */
+ FI,
+
+ /**
+ * Fiji
+ *
+ */
+ FJ,
+
+ /**
+ * Federated States of Micronesia
+ *
+ */
+ FM,
+
+ /**
+ * France
+ *
+ */
+ FR,
+
+ /**
+ * Gabon
+ *
+ */
+ GA,
+
+ /**
+ * United Kingdom
+ *
+ */
+ GB,
+
+ /**
+ * Grenada
+ *
+ */
+ GD,
+
+ /**
+ * Georgia
+ *
+ */
+ GE,
+
+ /**
+ * Ghana
+ *
+ */
+ GH,
+
+ /**
+ * Greenland
+ *
+ */
+ GL,
+
+ /**
+ * Gambia
+ *
+ */
+ GM,
+
+ /**
+ * Guinea
+ *
+ */
+ GN,
+
+ /**
+ * Equatorial Guinea
+ *
+ */
+ GQ,
+
+ /**
+ * Greece
+ *
+ */
+ GR,
+
+ /**
+ * Guatemala
+ *
+ */
+ GT,
+
+ /**
+ * Guinea-Bissau
+ *
+ */
+ GW,
+
+ /**
+ * Guyana
+ *
+ */
+ GY,
+
+ /**
+ * Honduras
+ *
+ */
+ HN,
+
+ /**
+ * Croatia
+ *
+ */
+ HR,
+
+ /**
+ * Haiti
+ *
+ */
+ HT,
+
+ /**
+ * Hungary
+ *
+ */
+ HU,
+
+ /**
+ * Indonesia
+ *
+ */
+ ID,
+
+ /**
+ * Ireland
+ *
+ */
+ IE,
+
+ /**
+ * Israel
+ *
+ */
+ IL,
+
+ /**
+ * India
+ *
+ */
+ IN,
+
+ /**
+ * Iraq
+ *
+ */
+ IQ,
+
+ /**
+ * Iran
+ *
+ */
+ IR,
+
+ /**
+ * Iceland
+ *
+ */
+ IS,
+
+ /**
+ * Italy
+ *
+ */
+ IT,
+
+ /**
+ * Jamaica
+ *
+ */
+ JM,
+
+ /**
+ * Jordan
+ *
+ */
+ JO,
+
+ /**
+ * Japan
+ *
+ */
+ JP,
+
+ /**
+ * Kenya
+ *
+ */
+ KE,
+
+ /**
+ * Kyrgyzstan
+ *
+ */
+ KG,
+
+ /**
+ * Cambodia
+ *
+ */
+ KH,
+
+ /**
+ * Kiribati
+ *
+ */
+ KI,
+
+ /**
+ * Comoros
+ *
+ */
+ KM,
+
+ /**
+ * Saint Kitts and Nevis
+ *
+ */
+ KN,
+
+ /**
+ * Korea, Democratic People/s Republic
+ *
+ */
+ KP,
+
+ /**
+ * Korea, Republic of
+ *
+ */
+ KR,
+
+ /**
+ * Kuwait
+ *
+ */
+ KW,
+
+ /**
+ * Kazakstan
+ *
+ */
+ KZ,
+
+ /**
+ * Lao People/s Democratic Republic
+ *
+ */
+ LA,
+
+ /**
+ * Lebanon
+ *
+ */
+ LB,
+
+ /**
+ * Saint Lucia
+ *
+ */
+ LC,
+
+ /**
+ * Liechtenstein
+ *
+ */
+ LI,
+
+ /**
+ * Sri Lanka
+ *
+ */
+ LK,
+
+ /**
+ * Liberia
+ *
+ */
+ LR,
+
+ /**
+ * Lesotho
+ *
+ */
+ LS,
+
+ /**
+ * Lithuania
+ *
+ */
+ LT,
+
+ /**
+ * Luxembourg
+ *
+ */
+ LU,
+
+ /**
+ * Latvia
+ *
+ */
+ LV,
+
+ /**
+ * Libyan Arab Jamahiriya
+ *
+ */
+ LY,
+
+ /**
+ * Morocco
+ *
+ */
+ MA,
+
+ /**
+ * Monaco
+ *
+ */
+ MC,
+
+ /**
+ * Moldova, Republic of
+ *
+ */
+ MD,
+
+ /**
+ * Montenegro
+ *
+ */
+ ME,
+
+ /**
+ * Madagascar
+ *
+ */
+ MG,
+
+ /**
+ * Marshall Islands
+ *
+ */
+ MH,
+
+ /**
+ * Macedonia, the former Yugoslav Republic of
+ *
+ */
+ MK,
+
+ /**
+ * Mali
+ *
+ */
+ ML,
+
+ /**
+ * Myanmar
+ *
+ */
+ MM,
+
+ /**
+ * Mongolia
+ *
+ */
+ MN,
+
+ /**
+ * Mauritania
+ *
+ */
+ MR,
+
+ /**
+ * Malta
+ *
+ */
+ MT,
+
+ /**
+ * Mauritius
+ *
+ */
+ MU,
+
+ /**
+ * Maldives
+ *
+ */
+ MV,
+
+ /**
+ * Malawi
+ *
+ */
+ MW,
+
+ /**
+ * Mexico
+ *
+ */
+ MX,
+
+ /**
+ * Malaysia
+ *
+ */
+ MY,
+
+ /**
+ * Mozambique
+ *
+ */
+ MZ,
+
+ /**
+ * Namibia
+ *
+ */
+ NA,
+
+ /**
+ * Niger
+ *
+ */
+ NE,
+
+ /**
+ * Nigeria
+ *
+ */
+ NG,
+
+ /**
+ * Nicaragua
+ *
+ */
+ NI,
+
+ /**
+ * Netherlands
+ *
+ */
+ NL,
+
+ /**
+ * Norway
+ *
+ */
+ NO,
+
+ /**
+ * Nepal
+ *
+ */
+ NP,
+
+ /**
+ * Nauru
+ *
+ */
+ NR,
+
+ /**
+ * Niue
+ *
+ */
+ NU,
+
+ /**
+ * New Zealand
+ *
+ */
+ NZ,
+
+ /**
+ * Oman
+ *
+ */
+ OM,
+
+ /**
+ * Panama
+ *
+ */
+ PA,
+
+ /**
+ * Peru
+ *
+ */
+ PE,
+
+ /**
+ * Papua New Guinea
+ *
+ */
+ PG,
+
+ /**
+ * Philippines
+ *
+ */
+ PH,
+
+ /**
+ * Pakistan
+ *
+ */
+ PK,
+
+ /**
+ * Poland
+ *
+ */
+ PL,
+
+ /**
+ * Puerto Rico
+ *
+ */
+ PR,
+
+ /**
+ * Palestinian Territory, Occupied
+ *
+ */
+ PS,
+
+ /**
+ * Portugal
+ *
+ */
+ PT,
+
+ /**
+ * Palau
+ *
+ */
+ PW,
+
+ /**
+ * Paraguay
+ *
+ */
+ PY,
+
+ /**
+ * Qatar
+ *
+ */
+ QA,
+
+ /**
+ * Romania
+ *
+ */
+ RO,
+
+ /**
+ * Serbia
+ *
+ */
+ RS,
+
+ /**
+ * Russian Federation
+ *
+ */
+ RU,
+
+ /**
+ * Rwanda
+ *
+ */
+ RW,
+
+ /**
+ * Saudi Arabia
+ *
+ */
+ SA,
+
+ /**
+ * Solomon Islands
+ *
+ */
+ SB,
+
+ /**
+ * Seychelles
+ *
+ */
+ SC,
+
+ /**
+ * Sudan
+ *
+ */
+ SD,
+
+ /**
+ * Sweden
+ *
+ */
+ SE,
+
+ /**
+ * Singapore
+ *
+ */
+ SG,
+
+ /**
+ * Slovenia
+ *
+ */
+ SI,
+
+ /**
+ * Slovakia
+ *
+ */
+ SK,
+
+ /**
+ * Sierra Leone
+ *
+ */
+ SL,
+
+ /**
+ * San Marino
+ *
+ */
+ SM,
+
+ /**
+ * Senegal
+ *
+ */
+ SN,
+
+ /**
+ * Somalia
+ *
+ */
+ SO,
+
+ /**
+ * Suriname
+ *
+ */
+ SR,
+
+ /**
+ * Sao Tome and Principe
+ *
+ */
+ ST,
+
+ /**
+ * El Salvador
+ *
+ */
+ SV,
+
+ /**
+ * Syrian Arab Republic
+ *
+ */
+ SY,
+
+ /**
+ * Swaziland
+ *
+ */
+ SZ,
+
+ /**
+ * Chad
+ *
+ */
+ TD,
+
+ /**
+ * Togo
+ *
+ */
+ TG,
+
+ /**
+ * Thailand
+ *
+ */
+ TH,
+
+ /**
+ * Tajikistan
+ *
+ */
+ TJ,
+
+ /**
+ * Timor-Leste
+ *
+ */
+ TL,
+
+ /**
+ * Turkmenistan
+ *
+ */
+ TM,
+
+ /**
+ * Tunisia
+ *
+ */
+ TN,
+
+ /**
+ * Tonga
+ *
+ */
+ TO,
+
+ /**
+ * Turkey
+ *
+ */
+ TR,
+
+ /**
+ * Trindidad and Tobago
+ *
+ */
+ TT,
+
+ /**
+ * Tuvalu
+ *
+ */
+ TV,
+
+ /**
+ * Tanzania, United republic of
+ *
+ */
+ TZ,
+
+ /**
+ * Ukraina
+ *
+ */
+ UA,
+
+ /**
+ * Uganda
+ *
+ */
+ UG,
+
+ /**
+ * United States
+ *
+ */
+ US,
+
+ /**
+ * Uruguay
+ *
+ */
+ UY,
+
+ /**
+ * Uzbekistan
+ *
+ */
+ UZ,
+
+ /**
+ * Holy See (Vatican City State)
+ *
+ */
+ VA,
+
+ /**
+ * Saint Vincent and the Granadines
+ *
+ */
+ VC,
+
+ /**
+ * Venezuela
+ *
+ */
+ VE,
+
+ /**
+ * Viet Nam
+ *
+ */
+ VN,
+
+ /**
+ * Vanuatu
+ *
+ */
+ VU,
+
+ /**
+ * Samoa
+ *
+ */
+ WS,
+
+ /**
+ * Yemen
+ *
+ */
+ YE,
+
+ /**
+ * South Africa
+ *
+ */
+ ZA,
+
+ /**
+ * Zambia
+ *
+ */
+ ZM,
+
+ /**
+ * Zimbabwe
+ *
+ */
+ ZW;
+
+ public String value() {
+ return name();
+ }
+
+ public static CountryType fromValue(String v) {
+ return valueOf(v);
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/CourseStructureDiagramType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/CourseStructureDiagramType.java
new file mode 100644
index 000000000..35041350c
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/CourseStructureDiagramType.java
@@ -0,0 +1,99 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.crue.academic.xsd.language.diplomasupplement;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * Course structure diagram
+ *
+ * <p>Java class for CourseStructureDiagramType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="CourseStructureDiagramType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="CoursesGroups" type="{urn:crue:academic:xsd:language:diplomasupplement}CoursesGroupsType"/>
+ * &lt;element name="CoursesUnits" type="{urn:crue:academic:xsd:language:diplomasupplement}CoursesUnitsType" minOccurs="0"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CourseStructureDiagramType", propOrder = {
+ "coursesGroups",
+ "coursesUnits"
+})
+public class CourseStructureDiagramType {
+
+ @XmlElement(name = "CoursesGroups", required = true)
+ protected CoursesGroupsType coursesGroups;
+ @XmlElement(name = "CoursesUnits")
+ protected CoursesUnitsType coursesUnits;
+
+ /**
+ * Gets the value of the coursesGroups property.
+ *
+ * @return
+ * possible object is
+ * {@link CoursesGroupsType }
+ *
+ */
+ public CoursesGroupsType getCoursesGroups() {
+ return coursesGroups;
+ }
+
+ /**
+ * Sets the value of the coursesGroups property.
+ *
+ * @param value
+ * allowed object is
+ * {@link CoursesGroupsType }
+ *
+ */
+ public void setCoursesGroups(CoursesGroupsType value) {
+ this.coursesGroups = value;
+ }
+
+ /**
+ * Gets the value of the coursesUnits property.
+ *
+ * @return
+ * possible object is
+ * {@link CoursesUnitsType }
+ *
+ */
+ public CoursesUnitsType getCoursesUnits() {
+ return coursesUnits;
+ }
+
+ /**
+ * Sets the value of the coursesUnits property.
+ *
+ * @param value
+ * allowed object is
+ * {@link CoursesUnitsType }
+ *
+ */
+ public void setCoursesUnits(CoursesUnitsType value) {
+ this.coursesUnits = value;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/CourseUnitLanguageOfInstructionType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/CourseUnitLanguageOfInstructionType.java
new file mode 100644
index 000000000..4542085b6
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/CourseUnitLanguageOfInstructionType.java
@@ -0,0 +1,98 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.crue.academic.xsd.language.diplomasupplement;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlValue;
+
+
+/**
+ * Language of instruction
+ *
+ * <p>Java class for CourseUnitLanguageOfInstructionType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="CourseUnitLanguageOfInstructionType">
+ * &lt;simpleContent>
+ * &lt;extension base="&lt;urn:crue:academic:xsd:language:diplomasupplement>PlainTextType">
+ * &lt;attribute name="language" use="required" type="{urn:crue:academic:xsd:language:diplomasupplement}LanguageType" />
+ * &lt;/extension>
+ * &lt;/simpleContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CourseUnitLanguageOfInstructionType", propOrder = {
+ "value"
+})
+public class CourseUnitLanguageOfInstructionType {
+
+ @XmlValue
+ protected String value;
+ @XmlAttribute(name = "language", required = true)
+ protected LanguageType language;
+
+ /**
+ * Plain text constraint
+ *
+ * Non empty text
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getValue() {
+ return value;
+ }
+
+ /**
+ * Sets the value of the value property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setValue(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Gets the value of the language property.
+ *
+ * @return
+ * possible object is
+ * {@link LanguageType }
+ *
+ */
+ public LanguageType getLanguage() {
+ return language;
+ }
+
+ /**
+ * Sets the value of the language property.
+ *
+ * @param value
+ * allowed object is
+ * {@link LanguageType }
+ *
+ */
+ public void setLanguage(LanguageType value) {
+ this.language = value;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/CourseUnitLanguagesOfInstructionType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/CourseUnitLanguagesOfInstructionType.java
new file mode 100644
index 000000000..bfc905a75
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/CourseUnitLanguagesOfInstructionType.java
@@ -0,0 +1,78 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.crue.academic.xsd.language.diplomasupplement;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * Language of instruction
+ *
+ * <p>Java class for CourseUnitLanguagesOfInstructionType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="CourseUnitLanguagesOfInstructionType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="Language" type="{urn:crue:academic:xsd:language:diplomasupplement}CourseUnitLanguageOfInstructionType" maxOccurs="unbounded"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CourseUnitLanguagesOfInstructionType", propOrder = {
+ "language"
+})
+public class CourseUnitLanguagesOfInstructionType {
+
+ @XmlElement(name = "Language", required = true)
+ protected List<CourseUnitLanguageOfInstructionType> language;
+
+ /**
+ * Gets the value of the language property.
+ *
+ * <p>
+ * 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 <CODE>set</CODE> method for the language property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getLanguage().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link CourseUnitLanguageOfInstructionType }
+ *
+ *
+ */
+ public List<CourseUnitLanguageOfInstructionType> getLanguage() {
+ if (language == null) {
+ language = new ArrayList<CourseUnitLanguageOfInstructionType>();
+ }
+ return this.language;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/CourseUnitStudentPerformanceType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/CourseUnitStudentPerformanceType.java
new file mode 100644
index 000000000..344d49990
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/CourseUnitStudentPerformanceType.java
@@ -0,0 +1,99 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.crue.academic.xsd.language.diplomasupplement;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * Student performance
+ *
+ * <p>Java class for CourseUnitStudentPerformanceType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="CourseUnitStudentPerformanceType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="LocalGrade" type="{urn:crue:academic:xsd:language:diplomasupplement}LocalGradeType"/>
+ * &lt;element name="ECTSGrade" type="{urn:crue:academic:xsd:language:diplomasupplement}ECTSGradingScaleType" minOccurs="0"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CourseUnitStudentPerformanceType", propOrder = {
+ "localGrade",
+ "ectsGrade"
+})
+public class CourseUnitStudentPerformanceType {
+
+ @XmlElement(name = "LocalGrade", required = true)
+ protected LocalGradeType localGrade;
+ @XmlElement(name = "ECTSGrade")
+ protected ECTSGradingScaleType ectsGrade;
+
+ /**
+ * Gets the value of the localGrade property.
+ *
+ * @return
+ * possible object is
+ * {@link LocalGradeType }
+ *
+ */
+ public LocalGradeType getLocalGrade() {
+ return localGrade;
+ }
+
+ /**
+ * Sets the value of the localGrade property.
+ *
+ * @param value
+ * allowed object is
+ * {@link LocalGradeType }
+ *
+ */
+ public void setLocalGrade(LocalGradeType value) {
+ this.localGrade = value;
+ }
+
+ /**
+ * Gets the value of the ectsGrade property.
+ *
+ * @return
+ * possible object is
+ * {@link ECTSGradingScaleType }
+ *
+ */
+ public ECTSGradingScaleType getECTSGrade() {
+ return ectsGrade;
+ }
+
+ /**
+ * Sets the value of the ectsGrade property.
+ *
+ * @param value
+ * allowed object is
+ * {@link ECTSGradingScaleType }
+ *
+ */
+ public void setECTSGrade(ECTSGradingScaleType value) {
+ this.ectsGrade = value;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/CourseUnitType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/CourseUnitType.java
new file mode 100644
index 000000000..fe0d62b0b
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/CourseUnitType.java
@@ -0,0 +1,1131 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.crue.academic.xsd.language.diplomasupplement;
+
+import java.math.BigDecimal;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlValue;
+
+
+/**
+ * Course unit
+ *
+ * <p>Java class for CourseUnitType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="CourseUnitType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="Code" type="{urn:crue:academic:xsd:language:diplomasupplement}PlainTextType"/>
+ * &lt;element name="ScientificArea" type="{urn:crue:academic:xsd:language:diplomasupplement}PlainTextType" minOccurs="0"/>
+ * &lt;element name="Title" type="{urn:crue:academic:xsd:language:diplomasupplement}PlainTextType"/>
+ * &lt;element name="Theme" type="{urn:crue:academic:xsd:language:diplomasupplement}PlainTextType" minOccurs="0"/>
+ * &lt;element name="Type">
+ * &lt;complexType>
+ * &lt;simpleContent>
+ * &lt;extension base="&lt;urn:crue:academic:xsd:language:diplomasupplement>PlainTextType">
+ * &lt;attribute name="type" type="{urn:crue:academic:xsd:language:diplomasupplement}CourseUnitTypeType" />
+ * &lt;/extension>
+ * &lt;/simpleContent>
+ * &lt;/complexType>
+ * &lt;/element>
+ * &lt;element name="YearOfStudy" minOccurs="0">
+ * &lt;complexType>
+ * &lt;simpleContent>
+ * &lt;extension base="&lt;urn:crue:academic:xsd:language:diplomasupplement>PlainTextType">
+ * &lt;attribute name="year" use="required" type="{urn:crue:academic:xsd:language:diplomasupplement}PositiveDecimalType" />
+ * &lt;/extension>
+ * &lt;/simpleContent>
+ * &lt;/complexType>
+ * &lt;/element>
+ * &lt;element name="Level" minOccurs="0">
+ * &lt;complexType>
+ * &lt;simpleContent>
+ * &lt;extension base="&lt;urn:crue:academic:xsd:language:diplomasupplement>PlainTextType">
+ * &lt;attribute name="eheaFramework" use="required" type="{urn:crue:academic:xsd:language:diplomasupplement}EHEAFrameworkType" />
+ * &lt;/extension>
+ * &lt;/simpleContent>
+ * &lt;/complexType>
+ * &lt;/element>
+ * &lt;element name="ECTSCredits" type="{urn:crue:academic:xsd:language:diplomasupplement}PositiveDecimalType" minOccurs="0"/>
+ * &lt;element name="LocalCredits" type="{urn:crue:academic:xsd:language:diplomasupplement}PositiveDecimalType" minOccurs="0"/>
+ * &lt;element name="Hours" type="{urn:crue:academic:xsd:language:diplomasupplement}PositiveDecimalType" minOccurs="0"/>
+ * &lt;element name="LanguagesOfInstruction" type="{urn:crue:academic:xsd:language:diplomasupplement}CourseUnitLanguagesOfInstructionType" minOccurs="0"/>
+ * &lt;element name="ModeOfDelivery" minOccurs="0">
+ * &lt;complexType>
+ * &lt;simpleContent>
+ * &lt;extension base="&lt;urn:crue:academic:xsd:language:diplomasupplement>PlainTextType">
+ * &lt;attribute name="modeOfDelivery" use="required" type="{urn:crue:academic:xsd:language:diplomasupplement}ModeOfDeliveryType" />
+ * &lt;/extension>
+ * &lt;/simpleContent>
+ * &lt;/complexType>
+ * &lt;/element>
+ * &lt;element name="WorkPlacements" type="{urn:crue:academic:xsd:language:diplomasupplement}CourseUnitWorkPlacementsType" minOccurs="0"/>
+ * &lt;element name="StudentPerformance" type="{urn:crue:academic:xsd:language:diplomasupplement}CourseUnitStudentPerformanceType" minOccurs="0"/>
+ * &lt;element name="NameOfLecturers" type="{urn:crue:academic:xsd:language:diplomasupplement}RichTextTagType" minOccurs="0"/>
+ * &lt;element name="LearningOutcomes" type="{urn:crue:academic:xsd:language:diplomasupplement}RichTextTagType" minOccurs="0"/>
+ * &lt;element name="PrerequisitesAndCorequisites" type="{urn:crue:academic:xsd:language:diplomasupplement}RichTextTagType" minOccurs="0"/>
+ * &lt;element name="RecomendedOptionalProgrammeComponents" type="{urn:crue:academic:xsd:language:diplomasupplement}RichTextTagType" minOccurs="0"/>
+ * &lt;element name="CourseContents" type="{urn:crue:academic:xsd:language:diplomasupplement}RichTextTagType" minOccurs="0"/>
+ * &lt;element name="RecomendedOrRequiredReading" type="{urn:crue:academic:xsd:language:diplomasupplement}RichTextTagType" minOccurs="0"/>
+ * &lt;element name="PlanedLearningActivitiesAndTeachingMethod" type="{urn:crue:academic:xsd:language:diplomasupplement}RichTextTagType" minOccurs="0"/>
+ * &lt;element name="AssesmentMethodsAndCriteria" type="{urn:crue:academic:xsd:language:diplomasupplement}RichTextTagType" minOccurs="0"/>
+ * &lt;element name="Observations" type="{urn:crue:academic:xsd:language:diplomasupplement}RichTextTagType" minOccurs="0"/>
+ * &lt;/sequence>
+ * &lt;attribute name="groupID" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
+ * &lt;attribute name="institutionAdministeringStudiesID" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
+ * &lt;attribute name="isRequiredByTheProgramme" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CourseUnitType", propOrder = {
+ "code",
+ "scientificArea",
+ "title",
+ "theme",
+ "type",
+ "yearOfStudy",
+ "level",
+ "ectsCredits",
+ "localCredits",
+ "hours",
+ "languagesOfInstruction",
+ "modeOfDelivery",
+ "workPlacements",
+ "studentPerformance",
+ "nameOfLecturers",
+ "learningOutcomes",
+ "prerequisitesAndCorequisites",
+ "recomendedOptionalProgrammeComponents",
+ "courseContents",
+ "recomendedOrRequiredReading",
+ "planedLearningActivitiesAndTeachingMethod",
+ "assesmentMethodsAndCriteria",
+ "observations"
+})
+public class CourseUnitType {
+
+ @XmlElement(name = "Code", required = true)
+ protected String code;
+ @XmlElement(name = "ScientificArea")
+ protected String scientificArea;
+ @XmlElement(name = "Title", required = true)
+ protected String title;
+ @XmlElement(name = "Theme")
+ protected String theme;
+ @XmlElement(name = "Type", required = true)
+ protected CourseUnitType.Type type;
+ @XmlElement(name = "YearOfStudy")
+ protected CourseUnitType.YearOfStudy yearOfStudy;
+ @XmlElement(name = "Level")
+ protected CourseUnitType.Level level;
+ @XmlElement(name = "ECTSCredits")
+ protected BigDecimal ectsCredits;
+ @XmlElement(name = "LocalCredits")
+ protected BigDecimal localCredits;
+ @XmlElement(name = "Hours")
+ protected BigDecimal hours;
+ @XmlElement(name = "LanguagesOfInstruction")
+ protected CourseUnitLanguagesOfInstructionType languagesOfInstruction;
+ @XmlElement(name = "ModeOfDelivery")
+ protected CourseUnitType.ModeOfDelivery modeOfDelivery;
+ @XmlElement(name = "WorkPlacements")
+ protected CourseUnitWorkPlacementsType workPlacements;
+ @XmlElement(name = "StudentPerformance")
+ protected CourseUnitStudentPerformanceType studentPerformance;
+ @XmlElement(name = "NameOfLecturers")
+ protected RichTextTagType nameOfLecturers;
+ @XmlElement(name = "LearningOutcomes")
+ protected RichTextTagType learningOutcomes;
+ @XmlElement(name = "PrerequisitesAndCorequisites")
+ protected RichTextTagType prerequisitesAndCorequisites;
+ @XmlElement(name = "RecomendedOptionalProgrammeComponents")
+ protected RichTextTagType recomendedOptionalProgrammeComponents;
+ @XmlElement(name = "CourseContents")
+ protected RichTextTagType courseContents;
+ @XmlElement(name = "RecomendedOrRequiredReading")
+ protected RichTextTagType recomendedOrRequiredReading;
+ @XmlElement(name = "PlanedLearningActivitiesAndTeachingMethod")
+ protected RichTextTagType planedLearningActivitiesAndTeachingMethod;
+ @XmlElement(name = "AssesmentMethodsAndCriteria")
+ protected RichTextTagType assesmentMethodsAndCriteria;
+ @XmlElement(name = "Observations")
+ protected RichTextTagType observations;
+ @XmlAttribute(name = "groupID", required = true)
+ protected String groupID;
+ @XmlAttribute(name = "institutionAdministeringStudiesID", required = true)
+ protected String institutionAdministeringStudiesID;
+ @XmlAttribute(name = "isRequiredByTheProgramme")
+ protected Boolean isRequiredByTheProgramme;
+
+ /**
+ * Gets the value of the code property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getCode() {
+ return code;
+ }
+
+ /**
+ * Sets the value of the code property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setCode(String value) {
+ this.code = value;
+ }
+
+ /**
+ * Gets the value of the scientificArea property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getScientificArea() {
+ return scientificArea;
+ }
+
+ /**
+ * Sets the value of the scientificArea property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setScientificArea(String value) {
+ this.scientificArea = value;
+ }
+
+ /**
+ * Gets the value of the title property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getTitle() {
+ return title;
+ }
+
+ /**
+ * Sets the value of the title property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setTitle(String value) {
+ this.title = value;
+ }
+
+ /**
+ * Gets the value of the theme property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getTheme() {
+ return theme;
+ }
+
+ /**
+ * Sets the value of the theme property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setTheme(String value) {
+ this.theme = value;
+ }
+
+ /**
+ * Gets the value of the type property.
+ *
+ * @return
+ * possible object is
+ * {@link CourseUnitType.Type }
+ *
+ */
+ public CourseUnitType.Type getType() {
+ return type;
+ }
+
+ /**
+ * Sets the value of the type property.
+ *
+ * @param value
+ * allowed object is
+ * {@link CourseUnitType.Type }
+ *
+ */
+ public void setType(CourseUnitType.Type value) {
+ this.type = value;
+ }
+
+ /**
+ * Gets the value of the yearOfStudy property.
+ *
+ * @return
+ * possible object is
+ * {@link CourseUnitType.YearOfStudy }
+ *
+ */
+ public CourseUnitType.YearOfStudy getYearOfStudy() {
+ return yearOfStudy;
+ }
+
+ /**
+ * Sets the value of the yearOfStudy property.
+ *
+ * @param value
+ * allowed object is
+ * {@link CourseUnitType.YearOfStudy }
+ *
+ */
+ public void setYearOfStudy(CourseUnitType.YearOfStudy value) {
+ this.yearOfStudy = value;
+ }
+
+ /**
+ * Gets the value of the level property.
+ *
+ * @return
+ * possible object is
+ * {@link CourseUnitType.Level }
+ *
+ */
+ public CourseUnitType.Level getLevel() {
+ return level;
+ }
+
+ /**
+ * Sets the value of the level property.
+ *
+ * @param value
+ * allowed object is
+ * {@link CourseUnitType.Level }
+ *
+ */
+ public void setLevel(CourseUnitType.Level value) {
+ this.level = value;
+ }
+
+ /**
+ * Gets the value of the ectsCredits property.
+ *
+ * @return
+ * possible object is
+ * {@link BigDecimal }
+ *
+ */
+ public BigDecimal getECTSCredits() {
+ return ectsCredits;
+ }
+
+ /**
+ * Sets the value of the ectsCredits property.
+ *
+ * @param value
+ * allowed object is
+ * {@link BigDecimal }
+ *
+ */
+ public void setECTSCredits(BigDecimal value) {
+ this.ectsCredits = value;
+ }
+
+ /**
+ * Gets the value of the localCredits property.
+ *
+ * @return
+ * possible object is
+ * {@link BigDecimal }
+ *
+ */
+ public BigDecimal getLocalCredits() {
+ return localCredits;
+ }
+
+ /**
+ * Sets the value of the localCredits property.
+ *
+ * @param value
+ * allowed object is
+ * {@link BigDecimal }
+ *
+ */
+ public void setLocalCredits(BigDecimal value) {
+ this.localCredits = value;
+ }
+
+ /**
+ * Gets the value of the hours property.
+ *
+ * @return
+ * possible object is
+ * {@link BigDecimal }
+ *
+ */
+ public BigDecimal getHours() {
+ return hours;
+ }
+
+ /**
+ * Sets the value of the hours property.
+ *
+ * @param value
+ * allowed object is
+ * {@link BigDecimal }
+ *
+ */
+ public void setHours(BigDecimal value) {
+ this.hours = value;
+ }
+
+ /**
+ * Gets the value of the languagesOfInstruction property.
+ *
+ * @return
+ * possible object is
+ * {@link CourseUnitLanguagesOfInstructionType }
+ *
+ */
+ public CourseUnitLanguagesOfInstructionType getLanguagesOfInstruction() {
+ return languagesOfInstruction;
+ }
+
+ /**
+ * Sets the value of the languagesOfInstruction property.
+ *
+ * @param value
+ * allowed object is
+ * {@link CourseUnitLanguagesOfInstructionType }
+ *
+ */
+ public void setLanguagesOfInstruction(CourseUnitLanguagesOfInstructionType value) {
+ this.languagesOfInstruction = value;
+ }
+
+ /**
+ * Gets the value of the modeOfDelivery property.
+ *
+ * @return
+ * possible object is
+ * {@link CourseUnitType.ModeOfDelivery }
+ *
+ */
+ public CourseUnitType.ModeOfDelivery getModeOfDelivery() {
+ return modeOfDelivery;
+ }
+
+ /**
+ * Sets the value of the modeOfDelivery property.
+ *
+ * @param value
+ * allowed object is
+ * {@link CourseUnitType.ModeOfDelivery }
+ *
+ */
+ public void setModeOfDelivery(CourseUnitType.ModeOfDelivery value) {
+ this.modeOfDelivery = value;
+ }
+
+ /**
+ * Gets the value of the workPlacements property.
+ *
+ * @return
+ * possible object is
+ * {@link CourseUnitWorkPlacementsType }
+ *
+ */
+ public CourseUnitWorkPlacementsType getWorkPlacements() {
+ return workPlacements;
+ }
+
+ /**
+ * Sets the value of the workPlacements property.
+ *
+ * @param value
+ * allowed object is
+ * {@link CourseUnitWorkPlacementsType }
+ *
+ */
+ public void setWorkPlacements(CourseUnitWorkPlacementsType value) {
+ this.workPlacements = value;
+ }
+
+ /**
+ * Gets the value of the studentPerformance property.
+ *
+ * @return
+ * possible object is
+ * {@link CourseUnitStudentPerformanceType }
+ *
+ */
+ public CourseUnitStudentPerformanceType getStudentPerformance() {
+ return studentPerformance;
+ }
+
+ /**
+ * Sets the value of the studentPerformance property.
+ *
+ * @param value
+ * allowed object is
+ * {@link CourseUnitStudentPerformanceType }
+ *
+ */
+ public void setStudentPerformance(CourseUnitStudentPerformanceType value) {
+ this.studentPerformance = value;
+ }
+
+ /**
+ * Gets the value of the nameOfLecturers property.
+ *
+ * @return
+ * possible object is
+ * {@link RichTextTagType }
+ *
+ */
+ public RichTextTagType getNameOfLecturers() {
+ return nameOfLecturers;
+ }
+
+ /**
+ * Sets the value of the nameOfLecturers property.
+ *
+ * @param value
+ * allowed object is
+ * {@link RichTextTagType }
+ *
+ */
+ public void setNameOfLecturers(RichTextTagType value) {
+ this.nameOfLecturers = value;
+ }
+
+ /**
+ * Gets the value of the learningOutcomes property.
+ *
+ * @return
+ * possible object is
+ * {@link RichTextTagType }
+ *
+ */
+ public RichTextTagType getLearningOutcomes() {
+ return learningOutcomes;
+ }
+
+ /**
+ * Sets the value of the learningOutcomes property.
+ *
+ * @param value
+ * allowed object is
+ * {@link RichTextTagType }
+ *
+ */
+ public void setLearningOutcomes(RichTextTagType value) {
+ this.learningOutcomes = value;
+ }
+
+ /**
+ * Gets the value of the prerequisitesAndCorequisites property.
+ *
+ * @return
+ * possible object is
+ * {@link RichTextTagType }
+ *
+ */
+ public RichTextTagType getPrerequisitesAndCorequisites() {
+ return prerequisitesAndCorequisites;
+ }
+
+ /**
+ * Sets the value of the prerequisitesAndCorequisites property.
+ *
+ * @param value
+ * allowed object is
+ * {@link RichTextTagType }
+ *
+ */
+ public void setPrerequisitesAndCorequisites(RichTextTagType value) {
+ this.prerequisitesAndCorequisites = value;
+ }
+
+ /**
+ * Gets the value of the recomendedOptionalProgrammeComponents property.
+ *
+ * @return
+ * possible object is
+ * {@link RichTextTagType }
+ *
+ */
+ public RichTextTagType getRecomendedOptionalProgrammeComponents() {
+ return recomendedOptionalProgrammeComponents;
+ }
+
+ /**
+ * Sets the value of the recomendedOptionalProgrammeComponents property.
+ *
+ * @param value
+ * allowed object is
+ * {@link RichTextTagType }
+ *
+ */
+ public void setRecomendedOptionalProgrammeComponents(RichTextTagType value) {
+ this.recomendedOptionalProgrammeComponents = value;
+ }
+
+ /**
+ * Gets the value of the courseContents property.
+ *
+ * @return
+ * possible object is
+ * {@link RichTextTagType }
+ *
+ */
+ public RichTextTagType getCourseContents() {
+ return courseContents;
+ }
+
+ /**
+ * Sets the value of the courseContents property.
+ *
+ * @param value
+ * allowed object is
+ * {@link RichTextTagType }
+ *
+ */
+ public void setCourseContents(RichTextTagType value) {
+ this.courseContents = value;
+ }
+
+ /**
+ * Gets the value of the recomendedOrRequiredReading property.
+ *
+ * @return
+ * possible object is
+ * {@link RichTextTagType }
+ *
+ */
+ public RichTextTagType getRecomendedOrRequiredReading() {
+ return recomendedOrRequiredReading;
+ }
+
+ /**
+ * Sets the value of the recomendedOrRequiredReading property.
+ *
+ * @param value
+ * allowed object is
+ * {@link RichTextTagType }
+ *
+ */
+ public void setRecomendedOrRequiredReading(RichTextTagType value) {
+ this.recomendedOrRequiredReading = value;
+ }
+
+ /**
+ * Gets the value of the planedLearningActivitiesAndTeachingMethod property.
+ *
+ * @return
+ * possible object is
+ * {@link RichTextTagType }
+ *
+ */
+ public RichTextTagType getPlanedLearningActivitiesAndTeachingMethod() {
+ return planedLearningActivitiesAndTeachingMethod;
+ }
+
+ /**
+ * Sets the value of the planedLearningActivitiesAndTeachingMethod property.
+ *
+ * @param value
+ * allowed object is
+ * {@link RichTextTagType }
+ *
+ */
+ public void setPlanedLearningActivitiesAndTeachingMethod(RichTextTagType value) {
+ this.planedLearningActivitiesAndTeachingMethod = value;
+ }
+
+ /**
+ * Gets the value of the assesmentMethodsAndCriteria property.
+ *
+ * @return
+ * possible object is
+ * {@link RichTextTagType }
+ *
+ */
+ public RichTextTagType getAssesmentMethodsAndCriteria() {
+ return assesmentMethodsAndCriteria;
+ }
+
+ /**
+ * Sets the value of the assesmentMethodsAndCriteria property.
+ *
+ * @param value
+ * allowed object is
+ * {@link RichTextTagType }
+ *
+ */
+ public void setAssesmentMethodsAndCriteria(RichTextTagType value) {
+ this.assesmentMethodsAndCriteria = value;
+ }
+
+ /**
+ * Gets the value of the observations property.
+ *
+ * @return
+ * possible object is
+ * {@link RichTextTagType }
+ *
+ */
+ public RichTextTagType getObservations() {
+ return observations;
+ }
+
+ /**
+ * Sets the value of the observations property.
+ *
+ * @param value
+ * allowed object is
+ * {@link RichTextTagType }
+ *
+ */
+ public void setObservations(RichTextTagType value) {
+ this.observations = value;
+ }
+
+ /**
+ * Gets the value of the groupID property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getGroupID() {
+ return groupID;
+ }
+
+ /**
+ * Sets the value of the groupID property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setGroupID(String value) {
+ this.groupID = value;
+ }
+
+ /**
+ * Gets the value of the institutionAdministeringStudiesID property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getInstitutionAdministeringStudiesID() {
+ return institutionAdministeringStudiesID;
+ }
+
+ /**
+ * Sets the value of the institutionAdministeringStudiesID property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setInstitutionAdministeringStudiesID(String value) {
+ this.institutionAdministeringStudiesID = value;
+ }
+
+ /**
+ * Gets the value of the isRequiredByTheProgramme property.
+ *
+ * @return
+ * possible object is
+ * {@link Boolean }
+ *
+ */
+ public boolean isIsRequiredByTheProgramme() {
+ if (isRequiredByTheProgramme == null) {
+ return true;
+ } else {
+ return isRequiredByTheProgramme;
+ }
+ }
+
+ /**
+ * Sets the value of the isRequiredByTheProgramme property.
+ *
+ * @param value
+ * allowed object is
+ * {@link Boolean }
+ *
+ */
+ public void setIsRequiredByTheProgramme(Boolean value) {
+ this.isRequiredByTheProgramme = value;
+ }
+
+
+ /**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType>
+ * &lt;simpleContent>
+ * &lt;extension base="&lt;urn:crue:academic:xsd:language:diplomasupplement>PlainTextType">
+ * &lt;attribute name="eheaFramework" use="required" type="{urn:crue:academic:xsd:language:diplomasupplement}EHEAFrameworkType" />
+ * &lt;/extension>
+ * &lt;/simpleContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+ @XmlAccessorType(XmlAccessType.FIELD)
+ @XmlType(name = "", propOrder = {
+ "value"
+ })
+ public static class Level {
+
+ @XmlValue
+ protected String value;
+ @XmlAttribute(name = "eheaFramework", required = true)
+ protected EHEAFrameworkType eheaFramework;
+
+ /**
+ * Plain text constraint
+ *
+ * Non empty text
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getValue() {
+ return value;
+ }
+
+ /**
+ * Sets the value of the value property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setValue(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Gets the value of the eheaFramework property.
+ *
+ * @return
+ * possible object is
+ * {@link EHEAFrameworkType }
+ *
+ */
+ public EHEAFrameworkType getEheaFramework() {
+ return eheaFramework;
+ }
+
+ /**
+ * Sets the value of the eheaFramework property.
+ *
+ * @param value
+ * allowed object is
+ * {@link EHEAFrameworkType }
+ *
+ */
+ public void setEheaFramework(EHEAFrameworkType value) {
+ this.eheaFramework = value;
+ }
+
+ }
+
+
+ /**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType>
+ * &lt;simpleContent>
+ * &lt;extension base="&lt;urn:crue:academic:xsd:language:diplomasupplement>PlainTextType">
+ * &lt;attribute name="modeOfDelivery" use="required" type="{urn:crue:academic:xsd:language:diplomasupplement}ModeOfDeliveryType" />
+ * &lt;/extension>
+ * &lt;/simpleContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+ @XmlAccessorType(XmlAccessType.FIELD)
+ @XmlType(name = "", propOrder = {
+ "value"
+ })
+ public static class ModeOfDelivery {
+
+ @XmlValue
+ protected String value;
+ @XmlAttribute(name = "modeOfDelivery", required = true)
+ protected ModeOfDeliveryType modeOfDelivery;
+
+ /**
+ * Plain text constraint
+ *
+ * Non empty text
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getValue() {
+ return value;
+ }
+
+ /**
+ * Sets the value of the value property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setValue(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Gets the value of the modeOfDelivery property.
+ *
+ * @return
+ * possible object is
+ * {@link ModeOfDeliveryType }
+ *
+ */
+ public ModeOfDeliveryType getModeOfDelivery() {
+ return modeOfDelivery;
+ }
+
+ /**
+ * Sets the value of the modeOfDelivery property.
+ *
+ * @param value
+ * allowed object is
+ * {@link ModeOfDeliveryType }
+ *
+ */
+ public void setModeOfDelivery(ModeOfDeliveryType value) {
+ this.modeOfDelivery = value;
+ }
+
+ }
+
+
+ /**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType>
+ * &lt;simpleContent>
+ * &lt;extension base="&lt;urn:crue:academic:xsd:language:diplomasupplement>PlainTextType">
+ * &lt;attribute name="type" type="{urn:crue:academic:xsd:language:diplomasupplement}CourseUnitTypeType" />
+ * &lt;/extension>
+ * &lt;/simpleContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+ @XmlAccessorType(XmlAccessType.FIELD)
+ @XmlType(name = "", propOrder = {
+ "value"
+ })
+ public static class Type {
+
+ @XmlValue
+ protected String value;
+ @XmlAttribute(name = "type")
+ protected CourseUnitTypeType type;
+
+ /**
+ * Plain text constraint
+ *
+ * Non empty text
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getValue() {
+ return value;
+ }
+
+ /**
+ * Sets the value of the value property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setValue(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Gets the value of the type property.
+ *
+ * @return
+ * possible object is
+ * {@link CourseUnitTypeType }
+ *
+ */
+ public CourseUnitTypeType getType() {
+ return type;
+ }
+
+ /**
+ * Sets the value of the type property.
+ *
+ * @param value
+ * allowed object is
+ * {@link CourseUnitTypeType }
+ *
+ */
+ public void setType(CourseUnitTypeType value) {
+ this.type = value;
+ }
+
+ }
+
+
+ /**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType>
+ * &lt;simpleContent>
+ * &lt;extension base="&lt;urn:crue:academic:xsd:language:diplomasupplement>PlainTextType">
+ * &lt;attribute name="year" use="required" type="{urn:crue:academic:xsd:language:diplomasupplement}PositiveDecimalType" />
+ * &lt;/extension>
+ * &lt;/simpleContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+ @XmlAccessorType(XmlAccessType.FIELD)
+ @XmlType(name = "", propOrder = {
+ "value"
+ })
+ public static class YearOfStudy {
+
+ @XmlValue
+ protected String value;
+ @XmlAttribute(name = "year", required = true)
+ protected BigDecimal year;
+
+ /**
+ * Plain text constraint
+ *
+ * Non empty text
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getValue() {
+ return value;
+ }
+
+ /**
+ * Sets the value of the value property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setValue(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Gets the value of the year property.
+ *
+ * @return
+ * possible object is
+ * {@link BigDecimal }
+ *
+ */
+ public BigDecimal getYear() {
+ return year;
+ }
+
+ /**
+ * Sets the value of the year property.
+ *
+ * @param value
+ * allowed object is
+ * {@link BigDecimal }
+ *
+ */
+ public void setYear(BigDecimal value) {
+ this.year = value;
+ }
+
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/CourseUnitTypeType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/CourseUnitTypeType.java
new file mode 100644
index 000000000..bb2dd2e50
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/CourseUnitTypeType.java
@@ -0,0 +1,68 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.crue.academic.xsd.language.diplomasupplement;
+
+import javax.xml.bind.annotation.XmlEnum;
+import javax.xml.bind.annotation.XmlEnumValue;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for CourseUnitTypeType.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * <p>
+ * <pre>
+ * &lt;simpleType name="CourseUnitTypeType">
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ * &lt;enumeration value="Compulsory"/>
+ * &lt;enumeration value="Optional"/>
+ * &lt;/restriction>
+ * &lt;/simpleType>
+ * </pre>
+ *
+ */
+@XmlType(name = "CourseUnitTypeType")
+@XmlEnum
+public enum CourseUnitTypeType {
+
+
+ /**
+ * Compulsory
+ *
+ */
+ @XmlEnumValue("Compulsory")
+ COMPULSORY("Compulsory"),
+
+ /**
+ * Optional
+ *
+ */
+ @XmlEnumValue("Optional")
+ OPTIONAL("Optional");
+ private final String value;
+
+ CourseUnitTypeType(String v) {
+ value = v;
+ }
+
+ public String value() {
+ return value;
+ }
+
+ public static CourseUnitTypeType fromValue(String v) {
+ for (CourseUnitTypeType c: CourseUnitTypeType.values()) {
+ if (c.value.equals(v)) {
+ return c;
+ }
+ }
+ throw new IllegalArgumentException(v);
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/CourseUnitWorkPlacementType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/CourseUnitWorkPlacementType.java
new file mode 100644
index 000000000..eb930ec76
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/CourseUnitWorkPlacementType.java
@@ -0,0 +1,157 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.crue.academic.xsd.language.diplomasupplement;
+
+import java.math.BigDecimal;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.datatype.XMLGregorianCalendar;
+
+
+/**
+ * Course unit work placement
+ *
+ * <p>Java class for CourseUnitWorkPlacementType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="CourseUnitWorkPlacementType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="CollaboratingInstitution" type="{urn:crue:academic:xsd:language:diplomasupplement}PlainTextType"/>
+ * &lt;element name="DateFrom" type="{urn:crue:academic:xsd:language:diplomasupplement}DateType" minOccurs="0"/>
+ * &lt;element name="DateTo" type="{urn:crue:academic:xsd:language:diplomasupplement}DateType" minOccurs="0"/>
+ * &lt;element name="TrainingHours" type="{urn:crue:academic:xsd:language:diplomasupplement}PositiveDecimalType" minOccurs="0"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CourseUnitWorkPlacementType", propOrder = {
+ "collaboratingInstitution",
+ "dateFrom",
+ "dateTo",
+ "trainingHours"
+})
+public class CourseUnitWorkPlacementType {
+
+ @XmlElement(name = "CollaboratingInstitution", required = true)
+ protected String collaboratingInstitution;
+ @XmlElement(name = "DateFrom")
+ protected XMLGregorianCalendar dateFrom;
+ @XmlElement(name = "DateTo")
+ protected XMLGregorianCalendar dateTo;
+ @XmlElement(name = "TrainingHours")
+ protected BigDecimal trainingHours;
+
+ /**
+ * Gets the value of the collaboratingInstitution property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getCollaboratingInstitution() {
+ return collaboratingInstitution;
+ }
+
+ /**
+ * Sets the value of the collaboratingInstitution property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setCollaboratingInstitution(String value) {
+ this.collaboratingInstitution = value;
+ }
+
+ /**
+ * Gets the value of the dateFrom property.
+ *
+ * @return
+ * possible object is
+ * {@link XMLGregorianCalendar }
+ *
+ */
+ public XMLGregorianCalendar getDateFrom() {
+ return dateFrom;
+ }
+
+ /**
+ * Sets the value of the dateFrom property.
+ *
+ * @param value
+ * allowed object is
+ * {@link XMLGregorianCalendar }
+ *
+ */
+ public void setDateFrom(XMLGregorianCalendar value) {
+ this.dateFrom = value;
+ }
+
+ /**
+ * Gets the value of the dateTo property.
+ *
+ * @return
+ * possible object is
+ * {@link XMLGregorianCalendar }
+ *
+ */
+ public XMLGregorianCalendar getDateTo() {
+ return dateTo;
+ }
+
+ /**
+ * Sets the value of the dateTo property.
+ *
+ * @param value
+ * allowed object is
+ * {@link XMLGregorianCalendar }
+ *
+ */
+ public void setDateTo(XMLGregorianCalendar value) {
+ this.dateTo = value;
+ }
+
+ /**
+ * Gets the value of the trainingHours property.
+ *
+ * @return
+ * possible object is
+ * {@link BigDecimal }
+ *
+ */
+ public BigDecimal getTrainingHours() {
+ return trainingHours;
+ }
+
+ /**
+ * Sets the value of the trainingHours property.
+ *
+ * @param value
+ * allowed object is
+ * {@link BigDecimal }
+ *
+ */
+ public void setTrainingHours(BigDecimal value) {
+ this.trainingHours = value;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/CourseUnitWorkPlacementsType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/CourseUnitWorkPlacementsType.java
new file mode 100644
index 000000000..f8d62f1e9
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/CourseUnitWorkPlacementsType.java
@@ -0,0 +1,78 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.crue.academic.xsd.language.diplomasupplement;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * Course unit work placements
+ *
+ * <p>Java class for CourseUnitWorkPlacementsType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="CourseUnitWorkPlacementsType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="WorkPlacement" type="{urn:crue:academic:xsd:language:diplomasupplement}CourseUnitWorkPlacementType" maxOccurs="unbounded"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CourseUnitWorkPlacementsType", propOrder = {
+ "workPlacement"
+})
+public class CourseUnitWorkPlacementsType {
+
+ @XmlElement(name = "WorkPlacement", required = true)
+ protected List<CourseUnitWorkPlacementType> workPlacement;
+
+ /**
+ * Gets the value of the workPlacement property.
+ *
+ * <p>
+ * 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 <CODE>set</CODE> method for the workPlacement property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getWorkPlacement().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link CourseUnitWorkPlacementType }
+ *
+ *
+ */
+ public List<CourseUnitWorkPlacementType> getWorkPlacement() {
+ if (workPlacement == null) {
+ workPlacement = new ArrayList<CourseUnitWorkPlacementType>();
+ }
+ return this.workPlacement;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/CoursesAttendedInOtherInstitutionInMobilityProgramsType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/CoursesAttendedInOtherInstitutionInMobilityProgramsType.java
new file mode 100644
index 000000000..8d9c69b53
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/CoursesAttendedInOtherInstitutionInMobilityProgramsType.java
@@ -0,0 +1,76 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.crue.academic.xsd.language.diplomasupplement;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for CoursesAttendedInOtherInstitutionInMobilityProgramsType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="CoursesAttendedInOtherInstitutionInMobilityProgramsType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="MobilityProgramme" type="{urn:crue:academic:xsd:language:diplomasupplement}MobilityProgrammeType" maxOccurs="unbounded"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CoursesAttendedInOtherInstitutionInMobilityProgramsType", propOrder = {
+ "mobilityProgramme"
+})
+public class CoursesAttendedInOtherInstitutionInMobilityProgramsType {
+
+ @XmlElement(name = "MobilityProgramme", required = true)
+ protected List<MobilityProgrammeType> mobilityProgramme;
+
+ /**
+ * Gets the value of the mobilityProgramme property.
+ *
+ * <p>
+ * 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 <CODE>set</CODE> method for the mobilityProgramme property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getMobilityProgramme().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link MobilityProgrammeType }
+ *
+ *
+ */
+ public List<MobilityProgrammeType> getMobilityProgramme() {
+ if (mobilityProgramme == null) {
+ mobilityProgramme = new ArrayList<MobilityProgrammeType>();
+ }
+ return this.mobilityProgramme;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/CoursesGroupType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/CoursesGroupType.java
new file mode 100644
index 000000000..364fa3f85
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/CoursesGroupType.java
@@ -0,0 +1,190 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.crue.academic.xsd.language.diplomasupplement;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * Courses group
+ *
+ * <p>Java class for CoursesGroupType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="CoursesGroupType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="Name" type="{urn:crue:academic:xsd:language:diplomasupplement}PlainTextType"/>
+ * &lt;element name="HeaderInformation" type="{urn:crue:academic:xsd:language:diplomasupplement}RichTextTagType" minOccurs="0"/>
+ * &lt;element name="CoursesGroup" type="{urn:crue:academic:xsd:language:diplomasupplement}CoursesGroupType" maxOccurs="unbounded" minOccurs="0"/>
+ * &lt;element name="FooterInformation" type="{urn:crue:academic:xsd:language:diplomasupplement}RichTextTagType" minOccurs="0"/>
+ * &lt;/sequence>
+ * &lt;attribute name="groupID" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CoursesGroupType", propOrder = {
+ "name",
+ "headerInformation",
+ "coursesGroup",
+ "footerInformation"
+})
+public class CoursesGroupType {
+
+ @XmlElement(name = "Name", required = true)
+ protected String name;
+ @XmlElement(name = "HeaderInformation")
+ protected RichTextTagType headerInformation;
+ @XmlElement(name = "CoursesGroup")
+ protected List<CoursesGroupType> coursesGroup;
+ @XmlElement(name = "FooterInformation")
+ protected RichTextTagType footerInformation;
+ @XmlAttribute(name = "groupID", required = true)
+ protected String groupID;
+
+ /**
+ * Gets the value of the name property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * Sets the value of the name property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setName(String value) {
+ this.name = value;
+ }
+
+ /**
+ * Gets the value of the headerInformation property.
+ *
+ * @return
+ * possible object is
+ * {@link RichTextTagType }
+ *
+ */
+ public RichTextTagType getHeaderInformation() {
+ return headerInformation;
+ }
+
+ /**
+ * Sets the value of the headerInformation property.
+ *
+ * @param value
+ * allowed object is
+ * {@link RichTextTagType }
+ *
+ */
+ public void setHeaderInformation(RichTextTagType value) {
+ this.headerInformation = value;
+ }
+
+ /**
+ * Gets the value of the coursesGroup property.
+ *
+ * <p>
+ * 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 <CODE>set</CODE> method for the coursesGroup property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getCoursesGroup().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link CoursesGroupType }
+ *
+ *
+ */
+ public List<CoursesGroupType> getCoursesGroup() {
+ if (coursesGroup == null) {
+ coursesGroup = new ArrayList<CoursesGroupType>();
+ }
+ return this.coursesGroup;
+ }
+
+ /**
+ * Gets the value of the footerInformation property.
+ *
+ * @return
+ * possible object is
+ * {@link RichTextTagType }
+ *
+ */
+ public RichTextTagType getFooterInformation() {
+ return footerInformation;
+ }
+
+ /**
+ * Sets the value of the footerInformation property.
+ *
+ * @param value
+ * allowed object is
+ * {@link RichTextTagType }
+ *
+ */
+ public void setFooterInformation(RichTextTagType value) {
+ this.footerInformation = value;
+ }
+
+ /**
+ * Gets the value of the groupID property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getGroupID() {
+ return groupID;
+ }
+
+ /**
+ * Sets the value of the groupID property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setGroupID(String value) {
+ this.groupID = value;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/CoursesGroupsType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/CoursesGroupsType.java
new file mode 100644
index 000000000..820581335
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/CoursesGroupsType.java
@@ -0,0 +1,162 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.crue.academic.xsd.language.diplomasupplement;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * Courses groups
+ *
+ * <p>Java class for CoursesGroupsType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="CoursesGroupsType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="Name" type="{urn:crue:academic:xsd:language:diplomasupplement}PlainTextType" minOccurs="0"/>
+ * &lt;element name="HeaderInformation" type="{urn:crue:academic:xsd:language:diplomasupplement}RichTextTagType" minOccurs="0"/>
+ * &lt;element name="CoursesGroup" type="{urn:crue:academic:xsd:language:diplomasupplement}CoursesGroupType" maxOccurs="unbounded" minOccurs="0"/>
+ * &lt;element name="FooterInformation" type="{urn:crue:academic:xsd:language:diplomasupplement}RichTextTagType" minOccurs="0"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CoursesGroupsType", propOrder = {
+ "name",
+ "headerInformation",
+ "coursesGroup",
+ "footerInformation"
+})
+public class CoursesGroupsType {
+
+ @XmlElement(name = "Name")
+ protected String name;
+ @XmlElement(name = "HeaderInformation")
+ protected RichTextTagType headerInformation;
+ @XmlElement(name = "CoursesGroup")
+ protected List<CoursesGroupType> coursesGroup;
+ @XmlElement(name = "FooterInformation")
+ protected RichTextTagType footerInformation;
+
+ /**
+ * Gets the value of the name property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * Sets the value of the name property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setName(String value) {
+ this.name = value;
+ }
+
+ /**
+ * Gets the value of the headerInformation property.
+ *
+ * @return
+ * possible object is
+ * {@link RichTextTagType }
+ *
+ */
+ public RichTextTagType getHeaderInformation() {
+ return headerInformation;
+ }
+
+ /**
+ * Sets the value of the headerInformation property.
+ *
+ * @param value
+ * allowed object is
+ * {@link RichTextTagType }
+ *
+ */
+ public void setHeaderInformation(RichTextTagType value) {
+ this.headerInformation = value;
+ }
+
+ /**
+ * Gets the value of the coursesGroup property.
+ *
+ * <p>
+ * 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 <CODE>set</CODE> method for the coursesGroup property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getCoursesGroup().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link CoursesGroupType }
+ *
+ *
+ */
+ public List<CoursesGroupType> getCoursesGroup() {
+ if (coursesGroup == null) {
+ coursesGroup = new ArrayList<CoursesGroupType>();
+ }
+ return this.coursesGroup;
+ }
+
+ /**
+ * Gets the value of the footerInformation property.
+ *
+ * @return
+ * possible object is
+ * {@link RichTextTagType }
+ *
+ */
+ public RichTextTagType getFooterInformation() {
+ return footerInformation;
+ }
+
+ /**
+ * Sets the value of the footerInformation property.
+ *
+ * @param value
+ * allowed object is
+ * {@link RichTextTagType }
+ *
+ */
+ public void setFooterInformation(RichTextTagType value) {
+ this.footerInformation = value;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/CoursesUnitsType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/CoursesUnitsType.java
new file mode 100644
index 000000000..a2258cab0
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/CoursesUnitsType.java
@@ -0,0 +1,78 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.crue.academic.xsd.language.diplomasupplement;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * Course units
+ *
+ * <p>Java class for CoursesUnitsType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="CoursesUnitsType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="CourseUnit" type="{urn:crue:academic:xsd:language:diplomasupplement}CourseUnitType" maxOccurs="unbounded"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CoursesUnitsType", propOrder = {
+ "courseUnit"
+})
+public class CoursesUnitsType {
+
+ @XmlElement(name = "CourseUnit", required = true)
+ protected List<CourseUnitType> courseUnit;
+
+ /**
+ * Gets the value of the courseUnit property.
+ *
+ * <p>
+ * 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 <CODE>set</CODE> method for the courseUnit property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getCourseUnit().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link CourseUnitType }
+ *
+ *
+ */
+ public List<CourseUnitType> getCourseUnit() {
+ if (courseUnit == null) {
+ courseUnit = new ArrayList<CourseUnitType>();
+ }
+ return this.courseUnit;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/DiplomaSupplementType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/DiplomaSupplementType.java
new file mode 100644
index 000000000..b08a4fb72
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/DiplomaSupplementType.java
@@ -0,0 +1,411 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.crue.academic.xsd.language.diplomasupplement;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+import eu.stork.peps.complex.attributes.org.w3._2000._09.xmldsig.SignatureType;
+
+
+/**
+ * Diploma Supplement
+ *
+ * <p>Java class for DiplomaSupplementType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="DiplomaSupplementType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="InformationIdentifyingTheHolderOfTheQualification" type="{urn:crue:academic:xsd:language:diplomasupplement}InformationIdentifyingTheHolderOfTheQualificationType"/>
+ * &lt;element name="InformationIdentifyingTheQualification" type="{urn:crue:academic:xsd:language:diplomasupplement}InformationIdentifyingTheQualificationType"/>
+ * &lt;element name="InformationOnTheLevelOfTheQualification" type="{urn:crue:academic:xsd:language:diplomasupplement}InformationOnTheLevelOfTheQualificationType"/>
+ * &lt;element name="InformationOnTheContentsAndResultsGained" type="{urn:crue:academic:xsd:language:diplomasupplement}InformationOnTheContentsAndResultsGainedType"/>
+ * &lt;element name="InformationOnTheFunctionOfTheQualification" type="{urn:crue:academic:xsd:language:diplomasupplement}InformationOnTheFunctionOfTheQualificationType"/>
+ * &lt;element name="AdditionalInformation" type="{urn:crue:academic:xsd:language:diplomasupplement}AdditionalInformationType"/>
+ * &lt;element name="CertificationOfTheSupplement" type="{urn:crue:academic:xsd:language:diplomasupplement}CertificationOfTheSupplementType"/>
+ * &lt;element name="InformationOnTheNationalHigherEducationSystem" type="{urn:crue:academic:xsd:language:diplomasupplement}RichTextTagType"/>
+ * &lt;element name="Attachments" type="{urn:crue:academic:xsd:language:diplomasupplement}AttachmentsType" minOccurs="0"/>
+ * &lt;element name="ExtensionContent" type="{urn:crue:academic:xsd:language:diplomasupplement}ExtensionContentType" maxOccurs="unbounded" minOccurs="0"/>
+ * &lt;element ref="{http://www.w3.org/2000/09/xmldsig#}Signature" maxOccurs="unbounded" minOccurs="0"/>
+ * &lt;/sequence>
+ * &lt;attribute name="language" use="required" type="{urn:crue:academic:xsd:language:diplomasupplement}LanguageType" />
+ * &lt;attribute name="isTheOriginalLanguage" use="required" type="{http://www.w3.org/2001/XMLSchema}boolean" />
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "DiplomaSupplementType", propOrder = {
+ "informationIdentifyingTheHolderOfTheQualification",
+ "informationIdentifyingTheQualification",
+ "informationOnTheLevelOfTheQualification",
+ "informationOnTheContentsAndResultsGained",
+ "informationOnTheFunctionOfTheQualification",
+ "additionalInformation",
+ "certificationOfTheSupplement",
+ "informationOnTheNationalHigherEducationSystem",
+ "attachments",
+ "extensionContent",
+ "signature"
+})
+public class DiplomaSupplementType {
+
+ @XmlElement(name = "InformationIdentifyingTheHolderOfTheQualification", required = true)
+ protected InformationIdentifyingTheHolderOfTheQualificationType informationIdentifyingTheHolderOfTheQualification;
+ @XmlElement(name = "InformationIdentifyingTheQualification", required = true)
+ protected InformationIdentifyingTheQualificationType informationIdentifyingTheQualification;
+ @XmlElement(name = "InformationOnTheLevelOfTheQualification", required = true)
+ protected InformationOnTheLevelOfTheQualificationType informationOnTheLevelOfTheQualification;
+ @XmlElement(name = "InformationOnTheContentsAndResultsGained", required = true)
+ protected InformationOnTheContentsAndResultsGainedType informationOnTheContentsAndResultsGained;
+ @XmlElement(name = "InformationOnTheFunctionOfTheQualification", required = true)
+ protected InformationOnTheFunctionOfTheQualificationType informationOnTheFunctionOfTheQualification;
+ @XmlElement(name = "AdditionalInformation", required = true)
+ protected AdditionalInformationType additionalInformation;
+ @XmlElement(name = "CertificationOfTheSupplement", required = true)
+ protected CertificationOfTheSupplementType certificationOfTheSupplement;
+ @XmlElement(name = "InformationOnTheNationalHigherEducationSystem", required = true)
+ protected RichTextTagType informationOnTheNationalHigherEducationSystem;
+ @XmlElement(name = "Attachments")
+ protected AttachmentsType attachments;
+ @XmlElement(name = "ExtensionContent")
+ protected List<ExtensionContentType> extensionContent;
+ @XmlElement(name = "Signature", namespace = "http://www.w3.org/2000/09/xmldsig#")
+ protected List<SignatureType> signature;
+ @XmlAttribute(name = "language", required = true)
+ protected LanguageType language;
+ @XmlAttribute(name = "isTheOriginalLanguage", required = true)
+ protected boolean isTheOriginalLanguage;
+
+ /**
+ * Gets the value of the informationIdentifyingTheHolderOfTheQualification property.
+ *
+ * @return
+ * possible object is
+ * {@link InformationIdentifyingTheHolderOfTheQualificationType }
+ *
+ */
+ public InformationIdentifyingTheHolderOfTheQualificationType getInformationIdentifyingTheHolderOfTheQualification() {
+ return informationIdentifyingTheHolderOfTheQualification;
+ }
+
+ /**
+ * Sets the value of the informationIdentifyingTheHolderOfTheQualification property.
+ *
+ * @param value
+ * allowed object is
+ * {@link InformationIdentifyingTheHolderOfTheQualificationType }
+ *
+ */
+ public void setInformationIdentifyingTheHolderOfTheQualification(InformationIdentifyingTheHolderOfTheQualificationType value) {
+ this.informationIdentifyingTheHolderOfTheQualification = value;
+ }
+
+ /**
+ * Gets the value of the informationIdentifyingTheQualification property.
+ *
+ * @return
+ * possible object is
+ * {@link InformationIdentifyingTheQualificationType }
+ *
+ */
+ public InformationIdentifyingTheQualificationType getInformationIdentifyingTheQualification() {
+ return informationIdentifyingTheQualification;
+ }
+
+ /**
+ * Sets the value of the informationIdentifyingTheQualification property.
+ *
+ * @param value
+ * allowed object is
+ * {@link InformationIdentifyingTheQualificationType }
+ *
+ */
+ public void setInformationIdentifyingTheQualification(InformationIdentifyingTheQualificationType value) {
+ this.informationIdentifyingTheQualification = value;
+ }
+
+ /**
+ * Gets the value of the informationOnTheLevelOfTheQualification property.
+ *
+ * @return
+ * possible object is
+ * {@link InformationOnTheLevelOfTheQualificationType }
+ *
+ */
+ public InformationOnTheLevelOfTheQualificationType getInformationOnTheLevelOfTheQualification() {
+ return informationOnTheLevelOfTheQualification;
+ }
+
+ /**
+ * Sets the value of the informationOnTheLevelOfTheQualification property.
+ *
+ * @param value
+ * allowed object is
+ * {@link InformationOnTheLevelOfTheQualificationType }
+ *
+ */
+ public void setInformationOnTheLevelOfTheQualification(InformationOnTheLevelOfTheQualificationType value) {
+ this.informationOnTheLevelOfTheQualification = value;
+ }
+
+ /**
+ * Gets the value of the informationOnTheContentsAndResultsGained property.
+ *
+ * @return
+ * possible object is
+ * {@link InformationOnTheContentsAndResultsGainedType }
+ *
+ */
+ public InformationOnTheContentsAndResultsGainedType getInformationOnTheContentsAndResultsGained() {
+ return informationOnTheContentsAndResultsGained;
+ }
+
+ /**
+ * Sets the value of the informationOnTheContentsAndResultsGained property.
+ *
+ * @param value
+ * allowed object is
+ * {@link InformationOnTheContentsAndResultsGainedType }
+ *
+ */
+ public void setInformationOnTheContentsAndResultsGained(InformationOnTheContentsAndResultsGainedType value) {
+ this.informationOnTheContentsAndResultsGained = value;
+ }
+
+ /**
+ * Gets the value of the informationOnTheFunctionOfTheQualification property.
+ *
+ * @return
+ * possible object is
+ * {@link InformationOnTheFunctionOfTheQualificationType }
+ *
+ */
+ public InformationOnTheFunctionOfTheQualificationType getInformationOnTheFunctionOfTheQualification() {
+ return informationOnTheFunctionOfTheQualification;
+ }
+
+ /**
+ * Sets the value of the informationOnTheFunctionOfTheQualification property.
+ *
+ * @param value
+ * allowed object is
+ * {@link InformationOnTheFunctionOfTheQualificationType }
+ *
+ */
+ public void setInformationOnTheFunctionOfTheQualification(InformationOnTheFunctionOfTheQualificationType value) {
+ this.informationOnTheFunctionOfTheQualification = value;
+ }
+
+ /**
+ * Gets the value of the additionalInformation property.
+ *
+ * @return
+ * possible object is
+ * {@link AdditionalInformationType }
+ *
+ */
+ public AdditionalInformationType getAdditionalInformation() {
+ return additionalInformation;
+ }
+
+ /**
+ * Sets the value of the additionalInformation property.
+ *
+ * @param value
+ * allowed object is
+ * {@link AdditionalInformationType }
+ *
+ */
+ public void setAdditionalInformation(AdditionalInformationType value) {
+ this.additionalInformation = value;
+ }
+
+ /**
+ * Gets the value of the certificationOfTheSupplement property.
+ *
+ * @return
+ * possible object is
+ * {@link CertificationOfTheSupplementType }
+ *
+ */
+ public CertificationOfTheSupplementType getCertificationOfTheSupplement() {
+ return certificationOfTheSupplement;
+ }
+
+ /**
+ * Sets the value of the certificationOfTheSupplement property.
+ *
+ * @param value
+ * allowed object is
+ * {@link CertificationOfTheSupplementType }
+ *
+ */
+ public void setCertificationOfTheSupplement(CertificationOfTheSupplementType value) {
+ this.certificationOfTheSupplement = value;
+ }
+
+ /**
+ * Gets the value of the informationOnTheNationalHigherEducationSystem property.
+ *
+ * @return
+ * possible object is
+ * {@link RichTextTagType }
+ *
+ */
+ public RichTextTagType getInformationOnTheNationalHigherEducationSystem() {
+ return informationOnTheNationalHigherEducationSystem;
+ }
+
+ /**
+ * Sets the value of the informationOnTheNationalHigherEducationSystem property.
+ *
+ * @param value
+ * allowed object is
+ * {@link RichTextTagType }
+ *
+ */
+ public void setInformationOnTheNationalHigherEducationSystem(RichTextTagType value) {
+ this.informationOnTheNationalHigherEducationSystem = value;
+ }
+
+ /**
+ * Gets the value of the attachments property.
+ *
+ * @return
+ * possible object is
+ * {@link AttachmentsType }
+ *
+ */
+ public AttachmentsType getAttachments() {
+ return attachments;
+ }
+
+ /**
+ * Sets the value of the attachments property.
+ *
+ * @param value
+ * allowed object is
+ * {@link AttachmentsType }
+ *
+ */
+ public void setAttachments(AttachmentsType value) {
+ this.attachments = value;
+ }
+
+ /**
+ * Gets the value of the extensionContent property.
+ *
+ * <p>
+ * 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 <CODE>set</CODE> method for the extensionContent property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getExtensionContent().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link ExtensionContentType }
+ *
+ *
+ */
+ public List<ExtensionContentType> getExtensionContent() {
+ if (extensionContent == null) {
+ extensionContent = new ArrayList<ExtensionContentType>();
+ }
+ return this.extensionContent;
+ }
+
+ /**
+ * Digital signature Gets the value of the signature property.
+ *
+ * <p>
+ * 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 <CODE>set</CODE> method for the signature property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getSignature().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link SignatureType }
+ *
+ *
+ */
+ public List<SignatureType> getSignature() {
+ if (signature == null) {
+ signature = new ArrayList<SignatureType>();
+ }
+ return this.signature;
+ }
+
+ /**
+ * Gets the value of the language property.
+ *
+ * @return
+ * possible object is
+ * {@link LanguageType }
+ *
+ */
+ public LanguageType getLanguage() {
+ return language;
+ }
+
+ /**
+ * Sets the value of the language property.
+ *
+ * @param value
+ * allowed object is
+ * {@link LanguageType }
+ *
+ */
+ public void setLanguage(LanguageType value) {
+ this.language = value;
+ }
+
+ /**
+ * Gets the value of the isTheOriginalLanguage property.
+ *
+ */
+ public boolean isIsTheOriginalLanguage() {
+ return isTheOriginalLanguage;
+ }
+
+ /**
+ * Sets the value of the isTheOriginalLanguage property.
+ *
+ */
+ public void setIsTheOriginalLanguage(boolean value) {
+ this.isTheOriginalLanguage = value;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/ECTSGradingScaleType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/ECTSGradingScaleType.java
new file mode 100644
index 000000000..94be08fb8
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/ECTSGradingScaleType.java
@@ -0,0 +1,90 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.crue.academic.xsd.language.diplomasupplement;
+
+import javax.xml.bind.annotation.XmlEnum;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for ECTSGradingScaleType.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * <p>
+ * <pre>
+ * &lt;simpleType name="ECTSGradingScaleType">
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ * &lt;enumeration value="A"/>
+ * &lt;enumeration value="B"/>
+ * &lt;enumeration value="C"/>
+ * &lt;enumeration value="D"/>
+ * &lt;enumeration value="E"/>
+ * &lt;enumeration value="FX"/>
+ * &lt;enumeration value="F"/>
+ * &lt;/restriction>
+ * &lt;/simpleType>
+ * </pre>
+ *
+ */
+@XmlType(name = "ECTSGradingScaleType")
+@XmlEnum
+public enum ECTSGradingScaleType {
+
+
+ /**
+ * Top 10%
+ *
+ */
+ A,
+
+ /**
+ * Next 25%
+ *
+ */
+ B,
+
+ /**
+ * Next 30%
+ *
+ */
+ C,
+
+ /**
+ * Next 25%
+ *
+ */
+ D,
+
+ /**
+ * Lowest 10%
+ *
+ */
+ E,
+
+ /**
+ * Fail
+ *
+ */
+ FX,
+
+ /**
+ * Fail
+ *
+ */
+ F;
+
+ public String value() {
+ return name();
+ }
+
+ public static ECTSGradingScaleType fromValue(String v) {
+ return valueOf(v);
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/EHEAFrameworkType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/EHEAFrameworkType.java
new file mode 100644
index 000000000..05dbdedfe
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/EHEAFrameworkType.java
@@ -0,0 +1,76 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.crue.academic.xsd.language.diplomasupplement;
+
+import javax.xml.bind.annotation.XmlEnum;
+import javax.xml.bind.annotation.XmlEnumValue;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for EHEAFrameworkType.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * <p>
+ * <pre>
+ * &lt;simpleType name="EHEAFrameworkType">
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ * &lt;enumeration value="FirstCycle"/>
+ * &lt;enumeration value="SecondCycle"/>
+ * &lt;enumeration value="ThirdCycle"/>
+ * &lt;/restriction>
+ * &lt;/simpleType>
+ * </pre>
+ *
+ */
+@XmlType(name = "EHEAFrameworkType")
+@XmlEnum
+public enum EHEAFrameworkType {
+
+
+ /**
+ * First Cycle
+ *
+ */
+ @XmlEnumValue("FirstCycle")
+ FIRST_CYCLE("FirstCycle"),
+
+ /**
+ * Second Cycle
+ *
+ */
+ @XmlEnumValue("SecondCycle")
+ SECOND_CYCLE("SecondCycle"),
+
+ /**
+ * Third Cycle
+ *
+ */
+ @XmlEnumValue("ThirdCycle")
+ THIRD_CYCLE("ThirdCycle");
+ private final String value;
+
+ EHEAFrameworkType(String v) {
+ value = v;
+ }
+
+ public String value() {
+ return value;
+ }
+
+ public static EHEAFrameworkType fromValue(String v) {
+ for (EHEAFrameworkType c: EHEAFrameworkType.values()) {
+ if (c.value.equals(v)) {
+ return c;
+ }
+ }
+ throw new IllegalArgumentException(v);
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/ExtensionContentType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/ExtensionContentType.java
new file mode 100644
index 000000000..5eb351cf7
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/ExtensionContentType.java
@@ -0,0 +1,111 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.crue.academic.xsd.language.diplomasupplement;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlMixed;
+import javax.xml.bind.annotation.XmlType;
+import org.w3c.dom.Element;
+
+
+/**
+ * Extension content
+ *
+ * <p>Java class for ExtensionContentType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="ExtensionContentType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence maxOccurs="unbounded" minOccurs="0">
+ * &lt;any processContents='lax'/>
+ * &lt;/sequence>
+ * &lt;attribute name="id" type="{http://www.w3.org/2001/XMLSchema}string" />
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "ExtensionContentType", propOrder = {
+ "content"
+})
+public class ExtensionContentType {
+
+ @XmlMixed
+ @XmlAnyElement(lax = true)
+ protected List<Object> content;
+ @XmlAttribute(name = "id")
+ protected String id;
+
+ /**
+ * Extension content Gets the value of the content property.
+ *
+ * <p>
+ * 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 <CODE>set</CODE> method for the content property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getContent().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link Object }
+ * {@link Element }
+ * {@link String }
+ *
+ *
+ */
+ public List<Object> getContent() {
+ if (content == null) {
+ content = new ArrayList<Object>();
+ }
+ return this.content;
+ }
+
+ /**
+ * Gets the value of the id property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getId() {
+ return id;
+ }
+
+ /**
+ * Sets the value of the id property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setId(String value) {
+ this.id = value;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/FamilyNameType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/FamilyNameType.java
new file mode 100644
index 000000000..804dfc3e9
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/FamilyNameType.java
@@ -0,0 +1,78 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.crue.academic.xsd.language.diplomasupplement;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * Family name(s)
+ *
+ * <p>Java class for FamilyNameType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="FamilyNameType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="Surname" type="{urn:crue:academic:xsd:language:diplomasupplement}PlainTextType" maxOccurs="unbounded"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "FamilyNameType", propOrder = {
+ "surname"
+})
+public class FamilyNameType {
+
+ @XmlElement(name = "Surname", required = true)
+ protected List<String> surname;
+
+ /**
+ * Gets the value of the surname property.
+ *
+ * <p>
+ * 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 <CODE>set</CODE> method for the surname property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getSurname().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link String }
+ *
+ *
+ */
+ public List<String> getSurname() {
+ if (surname == null) {
+ surname = new ArrayList<String>();
+ }
+ return this.surname;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/GenderType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/GenderType.java
new file mode 100644
index 000000000..92c9dee87
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/GenderType.java
@@ -0,0 +1,68 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.crue.academic.xsd.language.diplomasupplement;
+
+import javax.xml.bind.annotation.XmlEnum;
+import javax.xml.bind.annotation.XmlEnumValue;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for GenderType.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * <p>
+ * <pre>
+ * &lt;simpleType name="GenderType">
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ * &lt;enumeration value="Female"/>
+ * &lt;enumeration value="Male"/>
+ * &lt;/restriction>
+ * &lt;/simpleType>
+ * </pre>
+ *
+ */
+@XmlType(name = "GenderType")
+@XmlEnum
+public enum GenderType {
+
+
+ /**
+ * Female
+ *
+ */
+ @XmlEnumValue("Female")
+ FEMALE("Female"),
+
+ /**
+ * Male
+ *
+ */
+ @XmlEnumValue("Male")
+ MALE("Male");
+ private final String value;
+
+ GenderType(String v) {
+ value = v;
+ }
+
+ public String value() {
+ return value;
+ }
+
+ public static GenderType fromValue(String v) {
+ for (GenderType c: GenderType.values()) {
+ if (c.value.equals(v)) {
+ return c;
+ }
+ }
+ throw new IllegalArgumentException(v);
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/GivenNameType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/GivenNameType.java
new file mode 100644
index 000000000..ac27d7149
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/GivenNameType.java
@@ -0,0 +1,78 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.crue.academic.xsd.language.diplomasupplement;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * Given name(s)
+ *
+ * <p>Java class for GivenNameType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="GivenNameType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="Name" type="{urn:crue:academic:xsd:language:diplomasupplement}PlainTextType" maxOccurs="unbounded"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "GivenNameType", propOrder = {
+ "name"
+})
+public class GivenNameType {
+
+ @XmlElement(name = "Name", required = true)
+ protected List<String> name;
+
+ /**
+ * Gets the value of the name property.
+ *
+ * <p>
+ * 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 <CODE>set</CODE> method for the name property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getName().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link String }
+ *
+ *
+ */
+ public List<String> getName() {
+ if (name == null) {
+ name = new ArrayList<String>();
+ }
+ return this.name;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/GradingSchemeAndGradeDistributionGuidanceType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/GradingSchemeAndGradeDistributionGuidanceType.java
new file mode 100644
index 000000000..ab896f7f4
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/GradingSchemeAndGradeDistributionGuidanceType.java
@@ -0,0 +1,99 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.crue.academic.xsd.language.diplomasupplement;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * Grading scheme and grade distribution guidance
+ *
+ * <p>Java class for GradingSchemeAndGradeDistributionGuidanceType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="GradingSchemeAndGradeDistributionGuidanceType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="GradingScheme" type="{urn:crue:academic:xsd:language:diplomasupplement}RichTextTagType"/>
+ * &lt;element name="GradeDistributionGuidance" type="{urn:crue:academic:xsd:language:diplomasupplement}RichTextTagType" minOccurs="0"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "GradingSchemeAndGradeDistributionGuidanceType", propOrder = {
+ "gradingScheme",
+ "gradeDistributionGuidance"
+})
+public class GradingSchemeAndGradeDistributionGuidanceType {
+
+ @XmlElement(name = "GradingScheme", required = true)
+ protected RichTextTagType gradingScheme;
+ @XmlElement(name = "GradeDistributionGuidance")
+ protected RichTextTagType gradeDistributionGuidance;
+
+ /**
+ * Gets the value of the gradingScheme property.
+ *
+ * @return
+ * possible object is
+ * {@link RichTextTagType }
+ *
+ */
+ public RichTextTagType getGradingScheme() {
+ return gradingScheme;
+ }
+
+ /**
+ * Sets the value of the gradingScheme property.
+ *
+ * @param value
+ * allowed object is
+ * {@link RichTextTagType }
+ *
+ */
+ public void setGradingScheme(RichTextTagType value) {
+ this.gradingScheme = value;
+ }
+
+ /**
+ * Gets the value of the gradeDistributionGuidance property.
+ *
+ * @return
+ * possible object is
+ * {@link RichTextTagType }
+ *
+ */
+ public RichTextTagType getGradeDistributionGuidance() {
+ return gradeDistributionGuidance;
+ }
+
+ /**
+ * Sets the value of the gradeDistributionGuidance property.
+ *
+ * @param value
+ * allowed object is
+ * {@link RichTextTagType }
+ *
+ */
+ public void setGradeDistributionGuidance(RichTextTagType value) {
+ this.gradeDistributionGuidance = value;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/ImageMimeType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/ImageMimeType.java
new file mode 100644
index 000000000..22383f975
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/ImageMimeType.java
@@ -0,0 +1,92 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.crue.academic.xsd.language.diplomasupplement;
+
+import javax.xml.bind.annotation.XmlEnum;
+import javax.xml.bind.annotation.XmlEnumValue;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for ImageMimeType.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * <p>
+ * <pre>
+ * &lt;simpleType name="ImageMimeType">
+ * &lt;restriction base="{urn:crue:academic:xsd:language:diplomasupplement}MimeType">
+ * &lt;enumeration value="image/gif"/>
+ * &lt;enumeration value="image/jpeg"/>
+ * &lt;enumeration value="image/pjpeg"/>
+ * &lt;enumeration value="image/png"/>
+ * &lt;enumeration value="image/tiff"/>
+ * &lt;/restriction>
+ * &lt;/simpleType>
+ * </pre>
+ *
+ */
+@XmlType(name = "ImageMimeType")
+@XmlEnum(MimeType.class)
+public enum ImageMimeType {
+
+
+ /**
+ * GIF image
+ *
+ */
+ @XmlEnumValue("image/gif")
+ IMAGE_GIF(MimeType.IMAGE_GIF),
+
+ /**
+ * JPEG JFIF image
+ *
+ */
+ @XmlEnumValue("image/jpeg")
+ IMAGE_JPEG(MimeType.IMAGE_JPEG),
+
+ /**
+ * JPEG JFIF image
+ *
+ */
+ @XmlEnumValue("image/pjpeg")
+ IMAGE_PJPEG(MimeType.IMAGE_PJPEG),
+
+ /**
+ * Portable Network Graphics
+ *
+ */
+ @XmlEnumValue("image/png")
+ IMAGE_PNG(MimeType.IMAGE_PNG),
+
+ /**
+ * Tag Image File Format
+ *
+ */
+ @XmlEnumValue("image/tiff")
+ IMAGE_TIFF(MimeType.IMAGE_TIFF);
+ private final MimeType value;
+
+ ImageMimeType(MimeType v) {
+ value = v;
+ }
+
+ public MimeType value() {
+ return value;
+ }
+
+ public static ImageMimeType fromValue(MimeType v) {
+ for (ImageMimeType c: ImageMimeType.values()) {
+ if (c.value.equals(v)) {
+ return c;
+ }
+ }
+ throw new IllegalArgumentException(v.toString());
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/InformationIdentifyingTheHolderOfTheQualificationType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/InformationIdentifyingTheHolderOfTheQualificationType.java
new file mode 100644
index 000000000..7f5076886
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/InformationIdentifyingTheHolderOfTheQualificationType.java
@@ -0,0 +1,420 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.crue.academic.xsd.language.diplomasupplement;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlValue;
+import javax.xml.datatype.XMLGregorianCalendar;
+
+
+/**
+ * Information identifying the holder of the qualification
+ *
+ * <p>Java class for InformationIdentifyingTheHolderOfTheQualificationType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="InformationIdentifyingTheHolderOfTheQualificationType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="FamilyName" type="{urn:crue:academic:xsd:language:diplomasupplement}FamilyNameType"/>
+ * &lt;element name="GivenName" type="{urn:crue:academic:xsd:language:diplomasupplement}GivenNameType"/>
+ * &lt;element name="DateOfBirth" type="{urn:crue:academic:xsd:language:diplomasupplement}DateType"/>
+ * &lt;element name="StudentIdentificationNumber" type="{urn:crue:academic:xsd:language:diplomasupplement}PlainTextType" minOccurs="0"/>
+ * &lt;element name="CountryOfBirth" minOccurs="0">
+ * &lt;complexType>
+ * &lt;simpleContent>
+ * &lt;extension base="&lt;urn:crue:academic:xsd:language:diplomasupplement>PlainTextType">
+ * &lt;attribute name="country" type="{urn:crue:academic:xsd:language:diplomasupplement}CountryType" />
+ * &lt;/extension>
+ * &lt;/simpleContent>
+ * &lt;/complexType>
+ * &lt;/element>
+ * &lt;element name="PlaceOfBirth" type="{urn:crue:academic:xsd:language:diplomasupplement}PlainTextType" minOccurs="0"/>
+ * &lt;element name="Gender" minOccurs="0">
+ * &lt;complexType>
+ * &lt;simpleContent>
+ * &lt;extension base="&lt;urn:crue:academic:xsd:language:diplomasupplement>PlainTextType">
+ * &lt;attribute name="gender" use="required" type="{urn:crue:academic:xsd:language:diplomasupplement}GenderType" />
+ * &lt;/extension>
+ * &lt;/simpleContent>
+ * &lt;/complexType>
+ * &lt;/element>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "InformationIdentifyingTheHolderOfTheQualificationType", propOrder = {
+ "familyName",
+ "givenName",
+ "dateOfBirth",
+ "studentIdentificationNumber",
+ "countryOfBirth",
+ "placeOfBirth",
+ "gender"
+})
+public class InformationIdentifyingTheHolderOfTheQualificationType {
+
+ @XmlElement(name = "FamilyName", required = true)
+ protected FamilyNameType familyName;
+ @XmlElement(name = "GivenName", required = true)
+ protected GivenNameType givenName;
+ @XmlElement(name = "DateOfBirth", required = true)
+ protected XMLGregorianCalendar dateOfBirth;
+ @XmlElement(name = "StudentIdentificationNumber")
+ protected String studentIdentificationNumber;
+ @XmlElement(name = "CountryOfBirth")
+ protected InformationIdentifyingTheHolderOfTheQualificationType.CountryOfBirth countryOfBirth;
+ @XmlElement(name = "PlaceOfBirth")
+ protected String placeOfBirth;
+ @XmlElement(name = "Gender")
+ protected InformationIdentifyingTheHolderOfTheQualificationType.Gender gender;
+
+ /**
+ * Gets the value of the familyName property.
+ *
+ * @return
+ * possible object is
+ * {@link FamilyNameType }
+ *
+ */
+ public FamilyNameType getFamilyName() {
+ return familyName;
+ }
+
+ /**
+ * Sets the value of the familyName property.
+ *
+ * @param value
+ * allowed object is
+ * {@link FamilyNameType }
+ *
+ */
+ public void setFamilyName(FamilyNameType value) {
+ this.familyName = value;
+ }
+
+ /**
+ * Gets the value of the givenName property.
+ *
+ * @return
+ * possible object is
+ * {@link GivenNameType }
+ *
+ */
+ public GivenNameType getGivenName() {
+ return givenName;
+ }
+
+ /**
+ * Sets the value of the givenName property.
+ *
+ * @param value
+ * allowed object is
+ * {@link GivenNameType }
+ *
+ */
+ public void setGivenName(GivenNameType value) {
+ this.givenName = value;
+ }
+
+ /**
+ * Gets the value of the dateOfBirth property.
+ *
+ * @return
+ * possible object is
+ * {@link XMLGregorianCalendar }
+ *
+ */
+ public XMLGregorianCalendar getDateOfBirth() {
+ return dateOfBirth;
+ }
+
+ /**
+ * Sets the value of the dateOfBirth property.
+ *
+ * @param value
+ * allowed object is
+ * {@link XMLGregorianCalendar }
+ *
+ */
+ public void setDateOfBirth(XMLGregorianCalendar value) {
+ this.dateOfBirth = value;
+ }
+
+ /**
+ * Gets the value of the studentIdentificationNumber property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getStudentIdentificationNumber() {
+ return studentIdentificationNumber;
+ }
+
+ /**
+ * Sets the value of the studentIdentificationNumber property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setStudentIdentificationNumber(String value) {
+ this.studentIdentificationNumber = value;
+ }
+
+ /**
+ * Gets the value of the countryOfBirth property.
+ *
+ * @return
+ * possible object is
+ * {@link InformationIdentifyingTheHolderOfTheQualificationType.CountryOfBirth }
+ *
+ */
+ public InformationIdentifyingTheHolderOfTheQualificationType.CountryOfBirth getCountryOfBirth() {
+ return countryOfBirth;
+ }
+
+ /**
+ * Sets the value of the countryOfBirth property.
+ *
+ * @param value
+ * allowed object is
+ * {@link InformationIdentifyingTheHolderOfTheQualificationType.CountryOfBirth }
+ *
+ */
+ public void setCountryOfBirth(InformationIdentifyingTheHolderOfTheQualificationType.CountryOfBirth value) {
+ this.countryOfBirth = value;
+ }
+
+ /**
+ * Gets the value of the placeOfBirth property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getPlaceOfBirth() {
+ return placeOfBirth;
+ }
+
+ /**
+ * Sets the value of the placeOfBirth property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setPlaceOfBirth(String value) {
+ this.placeOfBirth = value;
+ }
+
+ /**
+ * Gets the value of the gender property.
+ *
+ * @return
+ * possible object is
+ * {@link InformationIdentifyingTheHolderOfTheQualificationType.Gender }
+ *
+ */
+ public InformationIdentifyingTheHolderOfTheQualificationType.Gender getGender() {
+ return gender;
+ }
+
+ /**
+ * Sets the value of the gender property.
+ *
+ * @param value
+ * allowed object is
+ * {@link InformationIdentifyingTheHolderOfTheQualificationType.Gender }
+ *
+ */
+ public void setGender(InformationIdentifyingTheHolderOfTheQualificationType.Gender value) {
+ this.gender = value;
+ }
+
+
+ /**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType>
+ * &lt;simpleContent>
+ * &lt;extension base="&lt;urn:crue:academic:xsd:language:diplomasupplement>PlainTextType">
+ * &lt;attribute name="country" type="{urn:crue:academic:xsd:language:diplomasupplement}CountryType" />
+ * &lt;/extension>
+ * &lt;/simpleContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+ @XmlAccessorType(XmlAccessType.FIELD)
+ @XmlType(name = "", propOrder = {
+ "value"
+ })
+ public static class CountryOfBirth {
+
+ @XmlValue
+ protected String value;
+ @XmlAttribute(name = "country")
+ protected CountryType country;
+
+ /**
+ * Plain text constraint
+ *
+ * Non empty text
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getValue() {
+ return value;
+ }
+
+ /**
+ * Sets the value of the value property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setValue(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Gets the value of the country property.
+ *
+ * @return
+ * possible object is
+ * {@link CountryType }
+ *
+ */
+ public CountryType getCountry() {
+ return country;
+ }
+
+ /**
+ * Sets the value of the country property.
+ *
+ * @param value
+ * allowed object is
+ * {@link CountryType }
+ *
+ */
+ public void setCountry(CountryType value) {
+ this.country = value;
+ }
+
+ }
+
+
+ /**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType>
+ * &lt;simpleContent>
+ * &lt;extension base="&lt;urn:crue:academic:xsd:language:diplomasupplement>PlainTextType">
+ * &lt;attribute name="gender" use="required" type="{urn:crue:academic:xsd:language:diplomasupplement}GenderType" />
+ * &lt;/extension>
+ * &lt;/simpleContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+ @XmlAccessorType(XmlAccessType.FIELD)
+ @XmlType(name = "", propOrder = {
+ "value"
+ })
+ public static class Gender {
+
+ @XmlValue
+ protected String value;
+ @XmlAttribute(name = "gender", required = true)
+ protected GenderType gender;
+
+ /**
+ * Plain text constraint
+ *
+ * Non empty text
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getValue() {
+ return value;
+ }
+
+ /**
+ * Sets the value of the value property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setValue(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Gets the value of the gender property.
+ *
+ * @return
+ * possible object is
+ * {@link GenderType }
+ *
+ */
+ public GenderType getGender() {
+ return gender;
+ }
+
+ /**
+ * Sets the value of the gender property.
+ *
+ * @param value
+ * allowed object is
+ * {@link GenderType }
+ *
+ */
+ public void setGender(GenderType value) {
+ this.gender = value;
+ }
+
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/InformationIdentifyingTheQualificationType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/InformationIdentifyingTheQualificationType.java
new file mode 100644
index 000000000..3820c55a3
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/InformationIdentifyingTheQualificationType.java
@@ -0,0 +1,211 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.crue.academic.xsd.language.diplomasupplement;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * Information identifying the qualification
+ *
+ * <p>Java class for InformationIdentifyingTheQualificationType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="InformationIdentifyingTheQualificationType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="Qualification" type="{urn:crue:academic:xsd:language:diplomasupplement}QualificationType"/>
+ * &lt;element name="TitleConferred" type="{urn:crue:academic:xsd:language:diplomasupplement}TitleConferredType" minOccurs="0"/>
+ * &lt;element name="MainFieldsOfStudy" type="{urn:crue:academic:xsd:language:diplomasupplement}RichTextTagType"/>
+ * &lt;element name="NameAndStatusOfAwardingInstitution" type="{urn:crue:academic:xsd:language:diplomasupplement}NameAndStatusOfAwardingInstitutionType"/>
+ * &lt;element name="NameAndStatusOfInstitutionAdministeringStudies" type="{urn:crue:academic:xsd:language:diplomasupplement}NameAndStatusOfInstitutionAdministeringStudiesType"/>
+ * &lt;element name="LanguagesOfInstructionAndExamination" type="{urn:crue:academic:xsd:language:diplomasupplement}LanguagesOfInstructionAndExaminationType"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "InformationIdentifyingTheQualificationType", propOrder = {
+ "qualification",
+ "titleConferred",
+ "mainFieldsOfStudy",
+ "nameAndStatusOfAwardingInstitution",
+ "nameAndStatusOfInstitutionAdministeringStudies",
+ "languagesOfInstructionAndExamination"
+})
+public class InformationIdentifyingTheQualificationType {
+
+ @XmlElement(name = "Qualification", required = true)
+ protected QualificationType qualification;
+ @XmlElement(name = "TitleConferred")
+ protected TitleConferredType titleConferred;
+ @XmlElement(name = "MainFieldsOfStudy", required = true)
+ protected RichTextTagType mainFieldsOfStudy;
+ @XmlElement(name = "NameAndStatusOfAwardingInstitution", required = true)
+ protected NameAndStatusOfAwardingInstitutionType nameAndStatusOfAwardingInstitution;
+ @XmlElement(name = "NameAndStatusOfInstitutionAdministeringStudies", required = true)
+ protected NameAndStatusOfInstitutionAdministeringStudiesType nameAndStatusOfInstitutionAdministeringStudies;
+ @XmlElement(name = "LanguagesOfInstructionAndExamination", required = true)
+ protected LanguagesOfInstructionAndExaminationType languagesOfInstructionAndExamination;
+
+ /**
+ * Gets the value of the qualification property.
+ *
+ * @return
+ * possible object is
+ * {@link QualificationType }
+ *
+ */
+ public QualificationType getQualification() {
+ return qualification;
+ }
+
+ /**
+ * Sets the value of the qualification property.
+ *
+ * @param value
+ * allowed object is
+ * {@link QualificationType }
+ *
+ */
+ public void setQualification(QualificationType value) {
+ this.qualification = value;
+ }
+
+ /**
+ * Gets the value of the titleConferred property.
+ *
+ * @return
+ * possible object is
+ * {@link TitleConferredType }
+ *
+ */
+ public TitleConferredType getTitleConferred() {
+ return titleConferred;
+ }
+
+ /**
+ * Sets the value of the titleConferred property.
+ *
+ * @param value
+ * allowed object is
+ * {@link TitleConferredType }
+ *
+ */
+ public void setTitleConferred(TitleConferredType value) {
+ this.titleConferred = value;
+ }
+
+ /**
+ * Gets the value of the mainFieldsOfStudy property.
+ *
+ * @return
+ * possible object is
+ * {@link RichTextTagType }
+ *
+ */
+ public RichTextTagType getMainFieldsOfStudy() {
+ return mainFieldsOfStudy;
+ }
+
+ /**
+ * Sets the value of the mainFieldsOfStudy property.
+ *
+ * @param value
+ * allowed object is
+ * {@link RichTextTagType }
+ *
+ */
+ public void setMainFieldsOfStudy(RichTextTagType value) {
+ this.mainFieldsOfStudy = value;
+ }
+
+ /**
+ * Gets the value of the nameAndStatusOfAwardingInstitution property.
+ *
+ * @return
+ * possible object is
+ * {@link NameAndStatusOfAwardingInstitutionType }
+ *
+ */
+ public NameAndStatusOfAwardingInstitutionType getNameAndStatusOfAwardingInstitution() {
+ return nameAndStatusOfAwardingInstitution;
+ }
+
+ /**
+ * Sets the value of the nameAndStatusOfAwardingInstitution property.
+ *
+ * @param value
+ * allowed object is
+ * {@link NameAndStatusOfAwardingInstitutionType }
+ *
+ */
+ public void setNameAndStatusOfAwardingInstitution(NameAndStatusOfAwardingInstitutionType value) {
+ this.nameAndStatusOfAwardingInstitution = value;
+ }
+
+ /**
+ * Gets the value of the nameAndStatusOfInstitutionAdministeringStudies property.
+ *
+ * @return
+ * possible object is
+ * {@link NameAndStatusOfInstitutionAdministeringStudiesType }
+ *
+ */
+ public NameAndStatusOfInstitutionAdministeringStudiesType getNameAndStatusOfInstitutionAdministeringStudies() {
+ return nameAndStatusOfInstitutionAdministeringStudies;
+ }
+
+ /**
+ * Sets the value of the nameAndStatusOfInstitutionAdministeringStudies property.
+ *
+ * @param value
+ * allowed object is
+ * {@link NameAndStatusOfInstitutionAdministeringStudiesType }
+ *
+ */
+ public void setNameAndStatusOfInstitutionAdministeringStudies(NameAndStatusOfInstitutionAdministeringStudiesType value) {
+ this.nameAndStatusOfInstitutionAdministeringStudies = value;
+ }
+
+ /**
+ * Gets the value of the languagesOfInstructionAndExamination property.
+ *
+ * @return
+ * possible object is
+ * {@link LanguagesOfInstructionAndExaminationType }
+ *
+ */
+ public LanguagesOfInstructionAndExaminationType getLanguagesOfInstructionAndExamination() {
+ return languagesOfInstructionAndExamination;
+ }
+
+ /**
+ * Sets the value of the languagesOfInstructionAndExamination property.
+ *
+ * @param value
+ * allowed object is
+ * {@link LanguagesOfInstructionAndExaminationType }
+ *
+ */
+ public void setLanguagesOfInstructionAndExamination(LanguagesOfInstructionAndExaminationType value) {
+ this.languagesOfInstructionAndExamination = value;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/InformationOnTheContentsAndResultsGainedType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/InformationOnTheContentsAndResultsGainedType.java
new file mode 100644
index 000000000..68869c7ba
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/InformationOnTheContentsAndResultsGainedType.java
@@ -0,0 +1,245 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.crue.academic.xsd.language.diplomasupplement;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * Information on the contents and results gained
+ *
+ * <p>Java class for InformationOnTheContentsAndResultsGainedType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="InformationOnTheContentsAndResultsGainedType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="ModeOfStudy">
+ * &lt;complexType>
+ * &lt;complexContent>
+ * &lt;extension base="{urn:crue:academic:xsd:language:diplomasupplement}RichTextTagType">
+ * &lt;attribute name="modeOfStudy" use="required" type="{urn:crue:academic:xsd:language:diplomasupplement}ModeOfStudyType" />
+ * &lt;/extension>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * &lt;/element>
+ * &lt;element name="ProgrammeRequirements" type="{urn:crue:academic:xsd:language:diplomasupplement}ProgrammeRequirementsType"/>
+ * &lt;element name="ProgrammeDetails" type="{urn:crue:academic:xsd:language:diplomasupplement}ProgrammeDetailsType"/>
+ * &lt;element name="GradingSchemeAndGradeDistributionGuidance" type="{urn:crue:academic:xsd:language:diplomasupplement}GradingSchemeAndGradeDistributionGuidanceType"/>
+ * &lt;element name="OverallClassificationOfTheQualification" type="{urn:crue:academic:xsd:language:diplomasupplement}RichTextTagType"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "InformationOnTheContentsAndResultsGainedType", propOrder = {
+ "modeOfStudy",
+ "programmeRequirements",
+ "programmeDetails",
+ "gradingSchemeAndGradeDistributionGuidance",
+ "overallClassificationOfTheQualification"
+})
+public class InformationOnTheContentsAndResultsGainedType {
+
+ @XmlElement(name = "ModeOfStudy", required = true)
+ protected InformationOnTheContentsAndResultsGainedType.ModeOfStudy modeOfStudy;
+ @XmlElement(name = "ProgrammeRequirements", required = true)
+ protected ProgrammeRequirementsType programmeRequirements;
+ @XmlElement(name = "ProgrammeDetails", required = true)
+ protected ProgrammeDetailsType programmeDetails;
+ @XmlElement(name = "GradingSchemeAndGradeDistributionGuidance", required = true)
+ protected GradingSchemeAndGradeDistributionGuidanceType gradingSchemeAndGradeDistributionGuidance;
+ @XmlElement(name = "OverallClassificationOfTheQualification", required = true)
+ protected RichTextTagType overallClassificationOfTheQualification;
+
+ /**
+ * Gets the value of the modeOfStudy property.
+ *
+ * @return
+ * possible object is
+ * {@link InformationOnTheContentsAndResultsGainedType.ModeOfStudy }
+ *
+ */
+ public InformationOnTheContentsAndResultsGainedType.ModeOfStudy getModeOfStudy() {
+ return modeOfStudy;
+ }
+
+ /**
+ * Sets the value of the modeOfStudy property.
+ *
+ * @param value
+ * allowed object is
+ * {@link InformationOnTheContentsAndResultsGainedType.ModeOfStudy }
+ *
+ */
+ public void setModeOfStudy(InformationOnTheContentsAndResultsGainedType.ModeOfStudy value) {
+ this.modeOfStudy = value;
+ }
+
+ /**
+ * Gets the value of the programmeRequirements property.
+ *
+ * @return
+ * possible object is
+ * {@link ProgrammeRequirementsType }
+ *
+ */
+ public ProgrammeRequirementsType getProgrammeRequirements() {
+ return programmeRequirements;
+ }
+
+ /**
+ * Sets the value of the programmeRequirements property.
+ *
+ * @param value
+ * allowed object is
+ * {@link ProgrammeRequirementsType }
+ *
+ */
+ public void setProgrammeRequirements(ProgrammeRequirementsType value) {
+ this.programmeRequirements = value;
+ }
+
+ /**
+ * Gets the value of the programmeDetails property.
+ *
+ * @return
+ * possible object is
+ * {@link ProgrammeDetailsType }
+ *
+ */
+ public ProgrammeDetailsType getProgrammeDetails() {
+ return programmeDetails;
+ }
+
+ /**
+ * Sets the value of the programmeDetails property.
+ *
+ * @param value
+ * allowed object is
+ * {@link ProgrammeDetailsType }
+ *
+ */
+ public void setProgrammeDetails(ProgrammeDetailsType value) {
+ this.programmeDetails = value;
+ }
+
+ /**
+ * Gets the value of the gradingSchemeAndGradeDistributionGuidance property.
+ *
+ * @return
+ * possible object is
+ * {@link GradingSchemeAndGradeDistributionGuidanceType }
+ *
+ */
+ public GradingSchemeAndGradeDistributionGuidanceType getGradingSchemeAndGradeDistributionGuidance() {
+ return gradingSchemeAndGradeDistributionGuidance;
+ }
+
+ /**
+ * Sets the value of the gradingSchemeAndGradeDistributionGuidance property.
+ *
+ * @param value
+ * allowed object is
+ * {@link GradingSchemeAndGradeDistributionGuidanceType }
+ *
+ */
+ public void setGradingSchemeAndGradeDistributionGuidance(GradingSchemeAndGradeDistributionGuidanceType value) {
+ this.gradingSchemeAndGradeDistributionGuidance = value;
+ }
+
+ /**
+ * Gets the value of the overallClassificationOfTheQualification property.
+ *
+ * @return
+ * possible object is
+ * {@link RichTextTagType }
+ *
+ */
+ public RichTextTagType getOverallClassificationOfTheQualification() {
+ return overallClassificationOfTheQualification;
+ }
+
+ /**
+ * Sets the value of the overallClassificationOfTheQualification property.
+ *
+ * @param value
+ * allowed object is
+ * {@link RichTextTagType }
+ *
+ */
+ public void setOverallClassificationOfTheQualification(RichTextTagType value) {
+ this.overallClassificationOfTheQualification = value;
+ }
+
+
+ /**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType>
+ * &lt;complexContent>
+ * &lt;extension base="{urn:crue:academic:xsd:language:diplomasupplement}RichTextTagType">
+ * &lt;attribute name="modeOfStudy" use="required" type="{urn:crue:academic:xsd:language:diplomasupplement}ModeOfStudyType" />
+ * &lt;/extension>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+ @XmlAccessorType(XmlAccessType.FIELD)
+ @XmlType(name = "")
+ public static class ModeOfStudy
+ extends RichTextTagType
+ {
+
+ @XmlAttribute(name = "modeOfStudy", required = true)
+ protected ModeOfStudyType modeOfStudy;
+
+ /**
+ * Gets the value of the modeOfStudy property.
+ *
+ * @return
+ * possible object is
+ * {@link ModeOfStudyType }
+ *
+ */
+ public ModeOfStudyType getModeOfStudy() {
+ return modeOfStudy;
+ }
+
+ /**
+ * Sets the value of the modeOfStudy property.
+ *
+ * @param value
+ * allowed object is
+ * {@link ModeOfStudyType }
+ *
+ */
+ public void setModeOfStudy(ModeOfStudyType value) {
+ this.modeOfStudy = value;
+ }
+
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/InformationOnTheFunctionOfTheQualificationType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/InformationOnTheFunctionOfTheQualificationType.java
new file mode 100644
index 000000000..e16bb9b22
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/InformationOnTheFunctionOfTheQualificationType.java
@@ -0,0 +1,161 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.crue.academic.xsd.language.diplomasupplement;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * Information on the function of the qualification type
+ *
+ * <p>Java class for InformationOnTheFunctionOfTheQualificationType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="InformationOnTheFunctionOfTheQualificationType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="AccessToFurtherStudy" type="{urn:crue:academic:xsd:language:diplomasupplement}RichTextTagType"/>
+ * &lt;element name="ProfessionalStatus" minOccurs="0">
+ * &lt;complexType>
+ * &lt;complexContent>
+ * &lt;extension base="{urn:crue:academic:xsd:language:diplomasupplement}RichTextTagType">
+ * &lt;attribute name="isRegulatedProfession" type="{http://www.w3.org/2001/XMLSchema}boolean" />
+ * &lt;/extension>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * &lt;/element>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "InformationOnTheFunctionOfTheQualificationType", propOrder = {
+ "accessToFurtherStudy",
+ "professionalStatus"
+})
+public class InformationOnTheFunctionOfTheQualificationType {
+
+ @XmlElement(name = "AccessToFurtherStudy", required = true)
+ protected RichTextTagType accessToFurtherStudy;
+ @XmlElement(name = "ProfessionalStatus")
+ protected InformationOnTheFunctionOfTheQualificationType.ProfessionalStatus professionalStatus;
+
+ /**
+ * Gets the value of the accessToFurtherStudy property.
+ *
+ * @return
+ * possible object is
+ * {@link RichTextTagType }
+ *
+ */
+ public RichTextTagType getAccessToFurtherStudy() {
+ return accessToFurtherStudy;
+ }
+
+ /**
+ * Sets the value of the accessToFurtherStudy property.
+ *
+ * @param value
+ * allowed object is
+ * {@link RichTextTagType }
+ *
+ */
+ public void setAccessToFurtherStudy(RichTextTagType value) {
+ this.accessToFurtherStudy = value;
+ }
+
+ /**
+ * Gets the value of the professionalStatus property.
+ *
+ * @return
+ * possible object is
+ * {@link InformationOnTheFunctionOfTheQualificationType.ProfessionalStatus }
+ *
+ */
+ public InformationOnTheFunctionOfTheQualificationType.ProfessionalStatus getProfessionalStatus() {
+ return professionalStatus;
+ }
+
+ /**
+ * Sets the value of the professionalStatus property.
+ *
+ * @param value
+ * allowed object is
+ * {@link InformationOnTheFunctionOfTheQualificationType.ProfessionalStatus }
+ *
+ */
+ public void setProfessionalStatus(InformationOnTheFunctionOfTheQualificationType.ProfessionalStatus value) {
+ this.professionalStatus = value;
+ }
+
+
+ /**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType>
+ * &lt;complexContent>
+ * &lt;extension base="{urn:crue:academic:xsd:language:diplomasupplement}RichTextTagType">
+ * &lt;attribute name="isRegulatedProfession" type="{http://www.w3.org/2001/XMLSchema}boolean" />
+ * &lt;/extension>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+ @XmlAccessorType(XmlAccessType.FIELD)
+ @XmlType(name = "")
+ public static class ProfessionalStatus
+ extends RichTextTagType
+ {
+
+ @XmlAttribute(name = "isRegulatedProfession")
+ protected Boolean isRegulatedProfession;
+
+ /**
+ * Gets the value of the isRegulatedProfession property.
+ *
+ * @return
+ * possible object is
+ * {@link Boolean }
+ *
+ */
+ public Boolean isIsRegulatedProfession() {
+ return isRegulatedProfession;
+ }
+
+ /**
+ * Sets the value of the isRegulatedProfession property.
+ *
+ * @param value
+ * allowed object is
+ * {@link Boolean }
+ *
+ */
+ public void setIsRegulatedProfession(Boolean value) {
+ this.isRegulatedProfession = value;
+ }
+
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/InformationOnTheLevelOfTheQualificationType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/InformationOnTheLevelOfTheQualificationType.java
new file mode 100644
index 000000000..796130137
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/InformationOnTheLevelOfTheQualificationType.java
@@ -0,0 +1,391 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.crue.academic.xsd.language.diplomasupplement;
+
+import java.math.BigDecimal;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * Information on the level of the qualification
+ *
+ * <p>Java class for InformationOnTheLevelOfTheQualificationType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="InformationOnTheLevelOfTheQualificationType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="Level">
+ * &lt;complexType>
+ * &lt;complexContent>
+ * &lt;extension base="{urn:crue:academic:xsd:language:diplomasupplement}RichTextTagType">
+ * &lt;attribute name="isced1997" type="{urn:crue:academic:xsd:language:diplomasupplement}ISCED1997Type" />
+ * &lt;attribute name="isced2011" type="{urn:crue:academic:xsd:language:diplomasupplement}ISCED2011Type" />
+ * &lt;attribute name="eheaFramework" type="{urn:crue:academic:xsd:language:diplomasupplement}EHEAFrameworkType" />
+ * &lt;attribute name="nfq" type="{urn:crue:academic:xsd:language:diplomasupplement}NFQType" />
+ * &lt;/extension>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * &lt;/element>
+ * &lt;element name="OfficialLengthOfProgramme">
+ * &lt;complexType>
+ * &lt;complexContent>
+ * &lt;extension base="{urn:crue:academic:xsd:language:diplomasupplement}RichTextTagType">
+ * &lt;attribute name="ectsCredits" type="{urn:crue:academic:xsd:language:diplomasupplement}PositiveDecimalType" />
+ * &lt;attribute name="years" use="required" type="{urn:crue:academic:xsd:language:diplomasupplement}PositiveDecimalType" />
+ * &lt;attribute name="semesters" type="{urn:crue:academic:xsd:language:diplomasupplement}PositiveIntegerType" />
+ * &lt;/extension>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * &lt;/element>
+ * &lt;element name="AccessRequirements" type="{urn:crue:academic:xsd:language:diplomasupplement}RichTextTagType"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "InformationOnTheLevelOfTheQualificationType", propOrder = {
+ "level",
+ "officialLengthOfProgramme",
+ "accessRequirements"
+})
+public class InformationOnTheLevelOfTheQualificationType {
+
+ @XmlElement(name = "Level", required = true)
+ protected InformationOnTheLevelOfTheQualificationType.Level level;
+ @XmlElement(name = "OfficialLengthOfProgramme", required = true)
+ protected InformationOnTheLevelOfTheQualificationType.OfficialLengthOfProgramme officialLengthOfProgramme;
+ @XmlElement(name = "AccessRequirements", required = true)
+ protected RichTextTagType accessRequirements;
+
+ /**
+ * Gets the value of the level property.
+ *
+ * @return
+ * possible object is
+ * {@link InformationOnTheLevelOfTheQualificationType.Level }
+ *
+ */
+ public InformationOnTheLevelOfTheQualificationType.Level getLevel() {
+ return level;
+ }
+
+ /**
+ * Sets the value of the level property.
+ *
+ * @param value
+ * allowed object is
+ * {@link InformationOnTheLevelOfTheQualificationType.Level }
+ *
+ */
+ public void setLevel(InformationOnTheLevelOfTheQualificationType.Level value) {
+ this.level = value;
+ }
+
+ /**
+ * Gets the value of the officialLengthOfProgramme property.
+ *
+ * @return
+ * possible object is
+ * {@link InformationOnTheLevelOfTheQualificationType.OfficialLengthOfProgramme }
+ *
+ */
+ public InformationOnTheLevelOfTheQualificationType.OfficialLengthOfProgramme getOfficialLengthOfProgramme() {
+ return officialLengthOfProgramme;
+ }
+
+ /**
+ * Sets the value of the officialLengthOfProgramme property.
+ *
+ * @param value
+ * allowed object is
+ * {@link InformationOnTheLevelOfTheQualificationType.OfficialLengthOfProgramme }
+ *
+ */
+ public void setOfficialLengthOfProgramme(InformationOnTheLevelOfTheQualificationType.OfficialLengthOfProgramme value) {
+ this.officialLengthOfProgramme = value;
+ }
+
+ /**
+ * Gets the value of the accessRequirements property.
+ *
+ * @return
+ * possible object is
+ * {@link RichTextTagType }
+ *
+ */
+ public RichTextTagType getAccessRequirements() {
+ return accessRequirements;
+ }
+
+ /**
+ * Sets the value of the accessRequirements property.
+ *
+ * @param value
+ * allowed object is
+ * {@link RichTextTagType }
+ *
+ */
+ public void setAccessRequirements(RichTextTagType value) {
+ this.accessRequirements = value;
+ }
+
+
+ /**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType>
+ * &lt;complexContent>
+ * &lt;extension base="{urn:crue:academic:xsd:language:diplomasupplement}RichTextTagType">
+ * &lt;attribute name="isced1997" type="{urn:crue:academic:xsd:language:diplomasupplement}ISCED1997Type" />
+ * &lt;attribute name="isced2011" type="{urn:crue:academic:xsd:language:diplomasupplement}ISCED2011Type" />
+ * &lt;attribute name="eheaFramework" type="{urn:crue:academic:xsd:language:diplomasupplement}EHEAFrameworkType" />
+ * &lt;attribute name="nfq" type="{urn:crue:academic:xsd:language:diplomasupplement}NFQType" />
+ * &lt;/extension>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+ @XmlAccessorType(XmlAccessType.FIELD)
+ @XmlType(name = "")
+ public static class Level
+ extends RichTextTagType
+ {
+
+ @XmlAttribute(name = "isced1997")
+ protected String isced1997;
+ @XmlAttribute(name = "isced2011")
+ protected String isced2011;
+ @XmlAttribute(name = "eheaFramework")
+ protected EHEAFrameworkType eheaFramework;
+ @XmlAttribute(name = "nfq")
+ protected String nfq;
+
+ /**
+ * Gets the value of the isced1997 property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getIsced1997() {
+ return isced1997;
+ }
+
+ /**
+ * Sets the value of the isced1997 property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setIsced1997(String value) {
+ this.isced1997 = value;
+ }
+
+ /**
+ * Gets the value of the isced2011 property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getIsced2011() {
+ return isced2011;
+ }
+
+ /**
+ * Sets the value of the isced2011 property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setIsced2011(String value) {
+ this.isced2011 = value;
+ }
+
+ /**
+ * Gets the value of the eheaFramework property.
+ *
+ * @return
+ * possible object is
+ * {@link EHEAFrameworkType }
+ *
+ */
+ public EHEAFrameworkType getEheaFramework() {
+ return eheaFramework;
+ }
+
+ /**
+ * Sets the value of the eheaFramework property.
+ *
+ * @param value
+ * allowed object is
+ * {@link EHEAFrameworkType }
+ *
+ */
+ public void setEheaFramework(EHEAFrameworkType value) {
+ this.eheaFramework = value;
+ }
+
+ /**
+ * Gets the value of the nfq property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getNfq() {
+ return nfq;
+ }
+
+ /**
+ * Sets the value of the nfq property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setNfq(String value) {
+ this.nfq = value;
+ }
+
+ }
+
+
+ /**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType>
+ * &lt;complexContent>
+ * &lt;extension base="{urn:crue:academic:xsd:language:diplomasupplement}RichTextTagType">
+ * &lt;attribute name="ectsCredits" type="{urn:crue:academic:xsd:language:diplomasupplement}PositiveDecimalType" />
+ * &lt;attribute name="years" use="required" type="{urn:crue:academic:xsd:language:diplomasupplement}PositiveDecimalType" />
+ * &lt;attribute name="semesters" type="{urn:crue:academic:xsd:language:diplomasupplement}PositiveIntegerType" />
+ * &lt;/extension>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+ @XmlAccessorType(XmlAccessType.FIELD)
+ @XmlType(name = "")
+ public static class OfficialLengthOfProgramme
+ extends RichTextTagType
+ {
+
+ @XmlAttribute(name = "ectsCredits")
+ protected BigDecimal ectsCredits;
+ @XmlAttribute(name = "years", required = true)
+ protected BigDecimal years;
+ @XmlAttribute(name = "semesters")
+ protected Integer semesters;
+
+ /**
+ * Gets the value of the ectsCredits property.
+ *
+ * @return
+ * possible object is
+ * {@link BigDecimal }
+ *
+ */
+ public BigDecimal getEctsCredits() {
+ return ectsCredits;
+ }
+
+ /**
+ * Sets the value of the ectsCredits property.
+ *
+ * @param value
+ * allowed object is
+ * {@link BigDecimal }
+ *
+ */
+ public void setEctsCredits(BigDecimal value) {
+ this.ectsCredits = value;
+ }
+
+ /**
+ * Gets the value of the years property.
+ *
+ * @return
+ * possible object is
+ * {@link BigDecimal }
+ *
+ */
+ public BigDecimal getYears() {
+ return years;
+ }
+
+ /**
+ * Sets the value of the years property.
+ *
+ * @param value
+ * allowed object is
+ * {@link BigDecimal }
+ *
+ */
+ public void setYears(BigDecimal value) {
+ this.years = value;
+ }
+
+ /**
+ * Gets the value of the semesters property.
+ *
+ * @return
+ * possible object is
+ * {@link Integer }
+ *
+ */
+ public Integer getSemesters() {
+ return semesters;
+ }
+
+ /**
+ * Sets the value of the semesters property.
+ *
+ * @param value
+ * allowed object is
+ * {@link Integer }
+ *
+ */
+ public void setSemesters(Integer value) {
+ this.semesters = value;
+ }
+
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/InstitutionType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/InstitutionType.java
new file mode 100644
index 000000000..c19db9312
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/InstitutionType.java
@@ -0,0 +1,454 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.crue.academic.xsd.language.diplomasupplement;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlIDREF;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlSeeAlso;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlValue;
+
+
+/**
+ * Name and status of the institution
+ *
+ * <p>Java class for InstitutionType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="InstitutionType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="Name" type="{urn:crue:academic:xsd:language:diplomasupplement}PlainTextType"/>
+ * &lt;element name="Status" type="{urn:crue:academic:xsd:language:diplomasupplement}PlainTextType"/>
+ * &lt;element name="Country">
+ * &lt;complexType>
+ * &lt;simpleContent>
+ * &lt;extension base="&lt;urn:crue:academic:xsd:language:diplomasupplement>PlainTextType">
+ * &lt;attribute name="country" use="required" type="{urn:crue:academic:xsd:language:diplomasupplement}CountryType" />
+ * &lt;/extension>
+ * &lt;/simpleContent>
+ * &lt;/complexType>
+ * &lt;/element>
+ * &lt;element name="AdditionalInformation" type="{urn:crue:academic:xsd:language:diplomasupplement}RichTextTagType" minOccurs="0"/>
+ * &lt;element name="ContactInformation" type="{urn:crue:academic:xsd:language:diplomasupplement}ContactInformationType" minOccurs="0"/>
+ * &lt;element name="AttachedImageRef" minOccurs="0">
+ * &lt;complexType>
+ * &lt;simpleContent>
+ * &lt;extension base="&lt;urn:crue:academic:xsd:language:diplomasupplement>PlainTextType">
+ * &lt;attribute name="attachedID" use="required" type="{http://www.w3.org/2001/XMLSchema}IDREF" />
+ * &lt;/extension>
+ * &lt;/simpleContent>
+ * &lt;/complexType>
+ * &lt;/element>
+ * &lt;/sequence>
+ * &lt;attribute name="nationalID" type="{urn:crue:academic:xsd:language:diplomasupplement}PlainTextType" />
+ * &lt;attribute name="erasmusID" type="{urn:crue:academic:xsd:language:diplomasupplement}PlainTextType" />
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "InstitutionType", propOrder = {
+ "name",
+ "status",
+ "country",
+ "additionalInformation",
+ "contactInformation",
+ "attachedImageRef"
+})
+@XmlSeeAlso({
+ eu.stork.peps.complex.attributes.crue.academic.xsd.language.diplomasupplement.NameAndStatusOfAwardingInstitutionType.AwardingInstitution.class,
+ eu.stork.peps.complex.attributes.crue.academic.xsd.language.diplomasupplement.NameAndStatusOfInstitutionAdministeringStudiesType.InstitutionAdministeringStudies.class
+})
+public class InstitutionType {
+
+ @XmlElement(name = "Name", required = true)
+ protected String name;
+ @XmlElement(name = "Status", required = true)
+ protected String status;
+ @XmlElement(name = "Country", required = true)
+ protected InstitutionType.Country country;
+ @XmlElement(name = "AdditionalInformation")
+ protected RichTextTagType additionalInformation;
+ @XmlElement(name = "ContactInformation")
+ protected ContactInformationType contactInformation;
+ @XmlElement(name = "AttachedImageRef")
+ protected InstitutionType.AttachedImageRef attachedImageRef;
+ @XmlAttribute(name = "nationalID")
+ protected String nationalID;
+ @XmlAttribute(name = "erasmusID")
+ protected String erasmusID;
+
+ /**
+ * Gets the value of the name property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * Sets the value of the name property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setName(String value) {
+ this.name = value;
+ }
+
+ /**
+ * Gets the value of the status property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getStatus() {
+ return status;
+ }
+
+ /**
+ * Sets the value of the status property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setStatus(String value) {
+ this.status = value;
+ }
+
+ /**
+ * Gets the value of the country property.
+ *
+ * @return
+ * possible object is
+ * {@link InstitutionType.Country }
+ *
+ */
+ public InstitutionType.Country getCountry() {
+ return country;
+ }
+
+ /**
+ * Sets the value of the country property.
+ *
+ * @param value
+ * allowed object is
+ * {@link InstitutionType.Country }
+ *
+ */
+ public void setCountry(InstitutionType.Country value) {
+ this.country = value;
+ }
+
+ /**
+ * Gets the value of the additionalInformation property.
+ *
+ * @return
+ * possible object is
+ * {@link RichTextTagType }
+ *
+ */
+ public RichTextTagType getAdditionalInformation() {
+ return additionalInformation;
+ }
+
+ /**
+ * Sets the value of the additionalInformation property.
+ *
+ * @param value
+ * allowed object is
+ * {@link RichTextTagType }
+ *
+ */
+ public void setAdditionalInformation(RichTextTagType value) {
+ this.additionalInformation = value;
+ }
+
+ /**
+ * Gets the value of the contactInformation property.
+ *
+ * @return
+ * possible object is
+ * {@link ContactInformationType }
+ *
+ */
+ public ContactInformationType getContactInformation() {
+ return contactInformation;
+ }
+
+ /**
+ * Sets the value of the contactInformation property.
+ *
+ * @param value
+ * allowed object is
+ * {@link ContactInformationType }
+ *
+ */
+ public void setContactInformation(ContactInformationType value) {
+ this.contactInformation = value;
+ }
+
+ /**
+ * Gets the value of the attachedImageRef property.
+ *
+ * @return
+ * possible object is
+ * {@link InstitutionType.AttachedImageRef }
+ *
+ */
+ public InstitutionType.AttachedImageRef getAttachedImageRef() {
+ return attachedImageRef;
+ }
+
+ /**
+ * Sets the value of the attachedImageRef property.
+ *
+ * @param value
+ * allowed object is
+ * {@link InstitutionType.AttachedImageRef }
+ *
+ */
+ public void setAttachedImageRef(InstitutionType.AttachedImageRef value) {
+ this.attachedImageRef = value;
+ }
+
+ /**
+ * Gets the value of the nationalID property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getNationalID() {
+ return nationalID;
+ }
+
+ /**
+ * Sets the value of the nationalID property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setNationalID(String value) {
+ this.nationalID = value;
+ }
+
+ /**
+ * Gets the value of the erasmusID property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getErasmusID() {
+ return erasmusID;
+ }
+
+ /**
+ * Sets the value of the erasmusID property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setErasmusID(String value) {
+ this.erasmusID = value;
+ }
+
+
+ /**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType>
+ * &lt;simpleContent>
+ * &lt;extension base="&lt;urn:crue:academic:xsd:language:diplomasupplement>PlainTextType">
+ * &lt;attribute name="attachedID" use="required" type="{http://www.w3.org/2001/XMLSchema}IDREF" />
+ * &lt;/extension>
+ * &lt;/simpleContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+ @XmlAccessorType(XmlAccessType.FIELD)
+ @XmlType(name = "", propOrder = {
+ "value"
+ })
+ public static class AttachedImageRef {
+
+ @XmlValue
+ protected String value;
+ @XmlAttribute(name = "attachedID", required = true)
+ @XmlIDREF
+ @XmlSchemaType(name = "IDREF")
+ protected Object attachedID;
+
+ /**
+ * Plain text constraint
+ *
+ * Non empty text
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getValue() {
+ return value;
+ }
+
+ /**
+ * Sets the value of the value property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setValue(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Gets the value of the attachedID property.
+ *
+ * @return
+ * possible object is
+ * {@link Object }
+ *
+ */
+ public Object getAttachedID() {
+ return attachedID;
+ }
+
+ /**
+ * Sets the value of the attachedID property.
+ *
+ * @param value
+ * allowed object is
+ * {@link Object }
+ *
+ */
+ public void setAttachedID(Object value) {
+ this.attachedID = value;
+ }
+
+ }
+
+
+ /**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType>
+ * &lt;simpleContent>
+ * &lt;extension base="&lt;urn:crue:academic:xsd:language:diplomasupplement>PlainTextType">
+ * &lt;attribute name="country" use="required" type="{urn:crue:academic:xsd:language:diplomasupplement}CountryType" />
+ * &lt;/extension>
+ * &lt;/simpleContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+ @XmlAccessorType(XmlAccessType.FIELD)
+ @XmlType(name = "", propOrder = {
+ "value"
+ })
+ public static class Country {
+
+ @XmlValue
+ protected String value;
+ @XmlAttribute(name = "country", required = true)
+ protected CountryType country;
+
+ /**
+ * Plain text constraint
+ *
+ * Non empty text
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getValue() {
+ return value;
+ }
+
+ /**
+ * Sets the value of the value property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setValue(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Gets the value of the country property.
+ *
+ * @return
+ * possible object is
+ * {@link CountryType }
+ *
+ */
+ public CountryType getCountry() {
+ return country;
+ }
+
+ /**
+ * Sets the value of the country property.
+ *
+ * @param value
+ * allowed object is
+ * {@link CountryType }
+ *
+ */
+ public void setCountry(CountryType value) {
+ this.country = value;
+ }
+
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/LanguageType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/LanguageType.java
new file mode 100644
index 000000000..7cbc99872
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/LanguageType.java
@@ -0,0 +1,836 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.crue.academic.xsd.language.diplomasupplement;
+
+import javax.xml.bind.annotation.XmlEnum;
+import javax.xml.bind.annotation.XmlEnumValue;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for LanguageType.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * <p>
+ * <pre>
+ * &lt;simpleType name="LanguageType">
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ * &lt;enumeration value="ab"/>
+ * &lt;enumeration value="af"/>
+ * &lt;enumeration value="an"/>
+ * &lt;enumeration value="ar"/>
+ * &lt;enumeration value="as"/>
+ * &lt;enumeration value="az"/>
+ * &lt;enumeration value="be"/>
+ * &lt;enumeration value="bg"/>
+ * &lt;enumeration value="bn"/>
+ * &lt;enumeration value="bo"/>
+ * &lt;enumeration value="br"/>
+ * &lt;enumeration value="bs"/>
+ * &lt;enumeration value="ca"/>
+ * &lt;enumeration value="ce"/>
+ * &lt;enumeration value="co"/>
+ * &lt;enumeration value="cs"/>
+ * &lt;enumeration value="cy"/>
+ * &lt;enumeration value="da"/>
+ * &lt;enumeration value="de"/>
+ * &lt;enumeration value="el"/>
+ * &lt;enumeration value="en"/>
+ * &lt;enumeration value="es"/>
+ * &lt;enumeration value="et"/>
+ * &lt;enumeration value="eu"/>
+ * &lt;enumeration value="fa"/>
+ * &lt;enumeration value="fi"/>
+ * &lt;enumeration value="fj"/>
+ * &lt;enumeration value="fo"/>
+ * &lt;enumeration value="fr"/>
+ * &lt;enumeration value="fy"/>
+ * &lt;enumeration value="ga"/>
+ * &lt;enumeration value="gd"/>
+ * &lt;enumeration value="gl"/>
+ * &lt;enumeration value="gv"/>
+ * &lt;enumeration value="grc"/>
+ * &lt;enumeration value="gsw"/>
+ * &lt;enumeration value="he"/>
+ * &lt;enumeration value="hi"/>
+ * &lt;enumeration value="hr"/>
+ * &lt;enumeration value="ht"/>
+ * &lt;enumeration value="hu"/>
+ * &lt;enumeration value="hy"/>
+ * &lt;enumeration value="id"/>
+ * &lt;enumeration value="is"/>
+ * &lt;enumeration value="it"/>
+ * &lt;enumeration value="ja"/>
+ * &lt;enumeration value="jv"/>
+ * &lt;enumeration value="ka"/>
+ * &lt;enumeration value="kg"/>
+ * &lt;enumeration value="ko"/>
+ * &lt;enumeration value="ku"/>
+ * &lt;enumeration value="kw"/>
+ * &lt;enumeration value="ky"/>
+ * &lt;enumeration value="lb"/>
+ * &lt;enumeration value="li"/>
+ * &lt;enumeration value="ln"/>
+ * &lt;enumeration value="lt"/>
+ * &lt;enumeration value="lv"/>
+ * &lt;enumeration value="mg"/>
+ * &lt;enumeration value="mk"/>
+ * &lt;enumeration value="mn"/>
+ * &lt;enumeration value="mo"/>
+ * &lt;enumeration value="ms"/>
+ * &lt;enumeration value="mt"/>
+ * &lt;enumeration value="my"/>
+ * &lt;enumeration value="nb"/>
+ * &lt;enumeration value="ne"/>
+ * &lt;enumeration value="nl"/>
+ * &lt;enumeration value="nn"/>
+ * &lt;enumeration value="no"/>
+ * &lt;enumeration value="pl"/>
+ * &lt;enumeration value="pt"/>
+ * &lt;enumeration value="rm"/>
+ * &lt;enumeration value="ro"/>
+ * &lt;enumeration value="ru"/>
+ * &lt;enumeration value="sc"/>
+ * &lt;enumeration value="se"/>
+ * &lt;enumeration value="sk"/>
+ * &lt;enumeration value="sl"/>
+ * &lt;enumeration value="so"/>
+ * &lt;enumeration value="sq"/>
+ * &lt;enumeration value="sr"/>
+ * &lt;enumeration value="sv"/>
+ * &lt;enumeration value="sw"/>
+ * &lt;enumeration value="tk"/>
+ * &lt;enumeration value="tr"/>
+ * &lt;enumeration value="ty"/>
+ * &lt;enumeration value="uk"/>
+ * &lt;enumeration value="ur"/>
+ * &lt;enumeration value="uz"/>
+ * &lt;enumeration value="vi"/>
+ * &lt;enumeration value="yi"/>
+ * &lt;enumeration value="zh"/>
+ * &lt;enumeration value="cu"/>
+ * &lt;enumeration value="eo"/>
+ * &lt;enumeration value="la"/>
+ * &lt;enumeration value="oc"/>
+ * &lt;enumeration value="vo"/>
+ * &lt;/restriction>
+ * &lt;/simpleType>
+ * </pre>
+ *
+ */
+@XmlType(name = "LanguageType")
+@XmlEnum
+public enum LanguageType {
+
+
+ /**
+ * Abkhazian
+ *
+ */
+ @XmlEnumValue("ab")
+ AB("ab"),
+
+ /**
+ * Afrikaans
+ *
+ */
+ @XmlEnumValue("af")
+ AF("af"),
+
+ /**
+ * Aragonese
+ *
+ */
+ @XmlEnumValue("an")
+ AN("an"),
+
+ /**
+ * Arabic
+ *
+ */
+ @XmlEnumValue("ar")
+ AR("ar"),
+
+ /**
+ * Assamese
+ *
+ */
+ @XmlEnumValue("as")
+ AS("as"),
+
+ /**
+ * Azerbaijani
+ *
+ */
+ @XmlEnumValue("az")
+ AZ("az"),
+
+ /**
+ * Belarusian
+ *
+ */
+ @XmlEnumValue("be")
+ BE("be"),
+
+ /**
+ * Bulgarian
+ *
+ */
+ @XmlEnumValue("bg")
+ BG("bg"),
+
+ /**
+ * Bengali
+ *
+ */
+ @XmlEnumValue("bn")
+ BN("bn"),
+
+ /**
+ * Tibetan
+ *
+ */
+ @XmlEnumValue("bo")
+ BO("bo"),
+
+ /**
+ * Breton
+ *
+ */
+ @XmlEnumValue("br")
+ BR("br"),
+
+ /**
+ * Bosnian
+ *
+ */
+ @XmlEnumValue("bs")
+ BS("bs"),
+
+ /**
+ * Catalan / Valencian
+ *
+ */
+ @XmlEnumValue("ca")
+ CA("ca"),
+
+ /**
+ * Chechen
+ *
+ */
+ @XmlEnumValue("ce")
+ CE("ce"),
+
+ /**
+ * Corsican
+ *
+ */
+ @XmlEnumValue("co")
+ CO("co"),
+
+ /**
+ * Czech
+ *
+ */
+ @XmlEnumValue("cs")
+ CS("cs"),
+
+ /**
+ * Welsh
+ *
+ */
+ @XmlEnumValue("cy")
+ CY("cy"),
+
+ /**
+ * Danish
+ *
+ */
+ @XmlEnumValue("da")
+ DA("da"),
+
+ /**
+ * German
+ *
+ */
+ @XmlEnumValue("de")
+ DE("de"),
+
+ /**
+ * Greek
+ *
+ */
+ @XmlEnumValue("el")
+ EL("el"),
+
+ /**
+ * English
+ *
+ */
+ @XmlEnumValue("en")
+ EN("en"),
+
+ /**
+ * Spanish / Castilian
+ *
+ */
+ @XmlEnumValue("es")
+ ES("es"),
+
+ /**
+ * Estonian
+ *
+ */
+ @XmlEnumValue("et")
+ ET("et"),
+
+ /**
+ * Basque
+ *
+ */
+ @XmlEnumValue("eu")
+ EU("eu"),
+
+ /**
+ * Persian
+ *
+ */
+ @XmlEnumValue("fa")
+ FA("fa"),
+
+ /**
+ * Finnish
+ *
+ */
+ @XmlEnumValue("fi")
+ FI("fi"),
+
+ /**
+ * Fijian
+ *
+ */
+ @XmlEnumValue("fj")
+ FJ("fj"),
+
+ /**
+ * Faroese
+ *
+ */
+ @XmlEnumValue("fo")
+ FO("fo"),
+
+ /**
+ * French
+ *
+ */
+ @XmlEnumValue("fr")
+ FR("fr"),
+
+ /**
+ * Western Frisian
+ *
+ */
+ @XmlEnumValue("fy")
+ FY("fy"),
+
+ /**
+ * Irish
+ *
+ */
+ @XmlEnumValue("ga")
+ GA("ga"),
+
+ /**
+ * Gaelic / Scottish Gaelic
+ *
+ */
+ @XmlEnumValue("gd")
+ GD("gd"),
+
+ /**
+ * Galician
+ *
+ */
+ @XmlEnumValue("gl")
+ GL("gl"),
+
+ /**
+ * Manx
+ *
+ */
+ @XmlEnumValue("gv")
+ GV("gv"),
+
+ /**
+ * Ancient Greek
+ *
+ */
+ @XmlEnumValue("grc")
+ GRC("grc"),
+
+ /**
+ * Alemanic; Swiss German
+ *
+ */
+ @XmlEnumValue("gsw")
+ GSW("gsw"),
+
+ /**
+ * Hebrew
+ *
+ */
+ @XmlEnumValue("he")
+ HE("he"),
+
+ /**
+ * Hindi
+ *
+ */
+ @XmlEnumValue("hi")
+ HI("hi"),
+
+ /**
+ * Croatian
+ *
+ */
+ @XmlEnumValue("hr")
+ HR("hr"),
+
+ /**
+ * Haitian; Haitian Creole
+ *
+ */
+ @XmlEnumValue("ht")
+ HT("ht"),
+
+ /**
+ * Hungarian
+ *
+ */
+ @XmlEnumValue("hu")
+ HU("hu"),
+
+ /**
+ * Armenian
+ *
+ */
+ @XmlEnumValue("hy")
+ HY("hy"),
+
+ /**
+ * Indonesian
+ *
+ */
+ @XmlEnumValue("id")
+ ID("id"),
+
+ /**
+ * Icelandic
+ *
+ */
+ @XmlEnumValue("is")
+ IS("is"),
+
+ /**
+ * Italian
+ *
+ */
+ @XmlEnumValue("it")
+ IT("it"),
+
+ /**
+ * Japanese
+ *
+ */
+ @XmlEnumValue("ja")
+ JA("ja"),
+
+ /**
+ * Javanese
+ *
+ */
+ @XmlEnumValue("jv")
+ JV("jv"),
+
+ /**
+ * Georgian
+ *
+ */
+ @XmlEnumValue("ka")
+ KA("ka"),
+
+ /**
+ * Kongo
+ *
+ */
+ @XmlEnumValue("kg")
+ KG("kg"),
+
+ /**
+ * Korean
+ *
+ */
+ @XmlEnumValue("ko")
+ KO("ko"),
+
+ /**
+ * Kurdish
+ *
+ */
+ @XmlEnumValue("ku")
+ KU("ku"),
+
+ /**
+ * Cornish
+ *
+ */
+ @XmlEnumValue("kw")
+ KW("kw"),
+
+ /**
+ * Kirghiz
+ *
+ */
+ @XmlEnumValue("ky")
+ KY("ky"),
+
+ /**
+ * Luxembourgish; Letzeburgesch
+ *
+ */
+ @XmlEnumValue("lb")
+ LB("lb"),
+
+ /**
+ * Limburgan; Limburger; Limburgish
+ *
+ */
+ @XmlEnumValue("li")
+ LI("li"),
+
+ /**
+ * Lingala
+ *
+ */
+ @XmlEnumValue("ln")
+ LN("ln"),
+
+ /**
+ * Lithuanian
+ *
+ */
+ @XmlEnumValue("lt")
+ LT("lt"),
+
+ /**
+ * Latvian
+ *
+ */
+ @XmlEnumValue("lv")
+ LV("lv"),
+
+ /**
+ * Malagasy
+ *
+ */
+ @XmlEnumValue("mg")
+ MG("mg"),
+
+ /**
+ * Macedonian
+ *
+ */
+ @XmlEnumValue("mk")
+ MK("mk"),
+
+ /**
+ * Mongolian
+ *
+ */
+ @XmlEnumValue("mn")
+ MN("mn"),
+
+ /**
+ * Moldavian
+ *
+ */
+ @XmlEnumValue("mo")
+ MO("mo"),
+
+ /**
+ * Malay
+ *
+ */
+ @XmlEnumValue("ms")
+ MS("ms"),
+
+ /**
+ * Maltese
+ *
+ */
+ @XmlEnumValue("mt")
+ MT("mt"),
+
+ /**
+ * Burmese
+ *
+ */
+ @XmlEnumValue("my")
+ MY("my"),
+
+ /**
+ * Norwegian
+ *
+ */
+ @XmlEnumValue("nb")
+ NB("nb"),
+
+ /**
+ * Nepali
+ *
+ */
+ @XmlEnumValue("ne")
+ NE("ne"),
+
+ /**
+ * Dutch
+ *
+ */
+ @XmlEnumValue("nl")
+ NL("nl"),
+
+ /**
+ * Norwegian (Nynorsk)
+ *
+ */
+ @XmlEnumValue("nn")
+ NN("nn"),
+
+ /**
+ * Norwegian
+ *
+ */
+ @XmlEnumValue("no")
+ NO("no"),
+
+ /**
+ * Polish
+ *
+ */
+ @XmlEnumValue("pl")
+ PL("pl"),
+
+ /**
+ * Portuguese
+ *
+ */
+ @XmlEnumValue("pt")
+ PT("pt"),
+
+ /**
+ * Raeto-Romance
+ *
+ */
+ @XmlEnumValue("rm")
+ RM("rm"),
+
+ /**
+ * Romanian
+ *
+ */
+ @XmlEnumValue("ro")
+ RO("ro"),
+
+ /**
+ * Russian
+ *
+ */
+ @XmlEnumValue("ru")
+ RU("ru"),
+
+ /**
+ * Sardinian
+ *
+ */
+ @XmlEnumValue("sc")
+ SC("sc"),
+
+ /**
+ * Northern Sami
+ *
+ */
+ @XmlEnumValue("se")
+ SE("se"),
+
+ /**
+ * Slovak
+ *
+ */
+ @XmlEnumValue("sk")
+ SK("sk"),
+
+ /**
+ * Slovenian
+ *
+ */
+ @XmlEnumValue("sl")
+ SL("sl"),
+
+ /**
+ * Somali
+ *
+ */
+ @XmlEnumValue("so")
+ SO("so"),
+
+ /**
+ * Albanian
+ *
+ */
+ @XmlEnumValue("sq")
+ SQ("sq"),
+
+ /**
+ * Serbian
+ *
+ */
+ @XmlEnumValue("sr")
+ SR("sr"),
+
+ /**
+ * Swedish
+ *
+ */
+ @XmlEnumValue("sv")
+ SV("sv"),
+
+ /**
+ * Swahili
+ *
+ */
+ @XmlEnumValue("sw")
+ SW("sw"),
+
+ /**
+ * Turkmen
+ *
+ */
+ @XmlEnumValue("tk")
+ TK("tk"),
+
+ /**
+ * Turkish
+ *
+ */
+ @XmlEnumValue("tr")
+ TR("tr"),
+
+ /**
+ * Tahitian
+ *
+ */
+ @XmlEnumValue("ty")
+ TY("ty"),
+
+ /**
+ * Ukrainian
+ *
+ */
+ @XmlEnumValue("uk")
+ UK("uk"),
+
+ /**
+ * Urdu
+ *
+ */
+ @XmlEnumValue("ur")
+ UR("ur"),
+
+ /**
+ * Uzbek
+ *
+ */
+ @XmlEnumValue("uz")
+ UZ("uz"),
+
+ /**
+ * Vietnamese
+ *
+ */
+ @XmlEnumValue("vi")
+ VI("vi"),
+
+ /**
+ * Yiddish
+ *
+ */
+ @XmlEnumValue("yi")
+ YI("yi"),
+
+ /**
+ * Chinese
+ *
+ */
+ @XmlEnumValue("zh")
+ ZH("zh"),
+
+ /**
+ * Church Slavic
+ *
+ */
+ @XmlEnumValue("cu")
+ CU("cu"),
+
+ /**
+ * Esperanto
+ *
+ */
+ @XmlEnumValue("eo")
+ EO("eo"),
+
+ /**
+ * Latin
+ *
+ */
+ @XmlEnumValue("la")
+ LA("la"),
+
+ /**
+ * Occitan (post 1500);
+ *
+ */
+ @XmlEnumValue("oc")
+ OC("oc"),
+
+ /**
+ * VVola
+ *
+ */
+ @XmlEnumValue("vo")
+ VO("vo");
+ private final String value;
+
+ LanguageType(String v) {
+ value = v;
+ }
+
+ public String value() {
+ return value;
+ }
+
+ public static LanguageType fromValue(String v) {
+ for (LanguageType c: LanguageType.values()) {
+ if (c.value.equals(v)) {
+ return c;
+ }
+ }
+ throw new IllegalArgumentException(v);
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/LanguagesOfInstructionAndExaminationType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/LanguagesOfInstructionAndExaminationType.java
new file mode 100644
index 000000000..202da42b4
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/LanguagesOfInstructionAndExaminationType.java
@@ -0,0 +1,169 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.crue.academic.xsd.language.diplomasupplement;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * Language of instruction and examination
+ *
+ * <p>Java class for LanguagesOfInstructionAndExaminationType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="LanguagesOfInstructionAndExaminationType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="Language" maxOccurs="unbounded">
+ * &lt;complexType>
+ * &lt;complexContent>
+ * &lt;extension base="{urn:crue:academic:xsd:language:diplomasupplement}RichTextTagType">
+ * &lt;attribute name="language" use="required" type="{urn:crue:academic:xsd:language:diplomasupplement}LanguageType" />
+ * &lt;attribute name="percent" type="{urn:crue:academic:xsd:language:diplomasupplement}PercentType" />
+ * &lt;/extension>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * &lt;/element>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "LanguagesOfInstructionAndExaminationType", propOrder = {
+ "language"
+})
+public class LanguagesOfInstructionAndExaminationType {
+
+ @XmlElement(name = "Language", required = true)
+ protected List<LanguagesOfInstructionAndExaminationType.Language> language;
+
+ /**
+ * Gets the value of the language property.
+ *
+ * <p>
+ * 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 <CODE>set</CODE> method for the language property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getLanguage().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link LanguagesOfInstructionAndExaminationType.Language }
+ *
+ *
+ */
+ public List<LanguagesOfInstructionAndExaminationType.Language> getLanguage() {
+ if (language == null) {
+ language = new ArrayList<LanguagesOfInstructionAndExaminationType.Language>();
+ }
+ return this.language;
+ }
+
+
+ /**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType>
+ * &lt;complexContent>
+ * &lt;extension base="{urn:crue:academic:xsd:language:diplomasupplement}RichTextTagType">
+ * &lt;attribute name="language" use="required" type="{urn:crue:academic:xsd:language:diplomasupplement}LanguageType" />
+ * &lt;attribute name="percent" type="{urn:crue:academic:xsd:language:diplomasupplement}PercentType" />
+ * &lt;/extension>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+ @XmlAccessorType(XmlAccessType.FIELD)
+ @XmlType(name = "")
+ public static class Language
+ extends RichTextTagType
+ {
+
+ @XmlAttribute(name = "language", required = true)
+ protected LanguageType language;
+ @XmlAttribute(name = "percent")
+ protected BigDecimal percent;
+
+ /**
+ * Gets the value of the language property.
+ *
+ * @return
+ * possible object is
+ * {@link LanguageType }
+ *
+ */
+ public LanguageType getLanguage() {
+ return language;
+ }
+
+ /**
+ * Sets the value of the language property.
+ *
+ * @param value
+ * allowed object is
+ * {@link LanguageType }
+ *
+ */
+ public void setLanguage(LanguageType value) {
+ this.language = value;
+ }
+
+ /**
+ * Gets the value of the percent property.
+ *
+ * @return
+ * possible object is
+ * {@link BigDecimal }
+ *
+ */
+ public BigDecimal getPercent() {
+ return percent;
+ }
+
+ /**
+ * Sets the value of the percent property.
+ *
+ * @param value
+ * allowed object is
+ * {@link BigDecimal }
+ *
+ */
+ public void setPercent(BigDecimal value) {
+ this.percent = value;
+ }
+
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/LocalGradeType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/LocalGradeType.java
new file mode 100644
index 000000000..96c7b66dd
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/LocalGradeType.java
@@ -0,0 +1,247 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.crue.academic.xsd.language.diplomasupplement;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlValue;
+import javax.xml.datatype.XMLGregorianCalendar;
+
+
+/**
+ * Local grade
+ *
+ * <p>Java class for LocalGradeType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="LocalGradeType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="AcademicYear" type="{urn:crue:academic:xsd:language:diplomasupplement}AcademicYearType"/>
+ * &lt;element name="DateIssued" type="{urn:crue:academic:xsd:language:diplomasupplement}DateType" minOccurs="0"/>
+ * &lt;element name="Grade" type="{urn:crue:academic:xsd:language:diplomasupplement}PlainTextType"/>
+ * &lt;element name="Source" minOccurs="0">
+ * &lt;complexType>
+ * &lt;simpleContent>
+ * &lt;extension base="&lt;urn:crue:academic:xsd:language:diplomasupplement>PlainTextType">
+ * &lt;attribute name="source" use="required" type="{urn:crue:academic:xsd:language:diplomasupplement}SourceGradeType" />
+ * &lt;/extension>
+ * &lt;/simpleContent>
+ * &lt;/complexType>
+ * &lt;/element>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "LocalGradeType", propOrder = {
+ "academicYear",
+ "dateIssued",
+ "grade",
+ "source"
+})
+public class LocalGradeType {
+
+ @XmlElement(name = "AcademicYear", required = true)
+ protected String academicYear;
+ @XmlElement(name = "DateIssued")
+ protected XMLGregorianCalendar dateIssued;
+ @XmlElement(name = "Grade", required = true)
+ protected String grade;
+ @XmlElement(name = "Source")
+ protected LocalGradeType.Source source;
+
+ /**
+ * Gets the value of the academicYear property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getAcademicYear() {
+ return academicYear;
+ }
+
+ /**
+ * Sets the value of the academicYear property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setAcademicYear(String value) {
+ this.academicYear = value;
+ }
+
+ /**
+ * Gets the value of the dateIssued property.
+ *
+ * @return
+ * possible object is
+ * {@link XMLGregorianCalendar }
+ *
+ */
+ public XMLGregorianCalendar getDateIssued() {
+ return dateIssued;
+ }
+
+ /**
+ * Sets the value of the dateIssued property.
+ *
+ * @param value
+ * allowed object is
+ * {@link XMLGregorianCalendar }
+ *
+ */
+ public void setDateIssued(XMLGregorianCalendar value) {
+ this.dateIssued = value;
+ }
+
+ /**
+ * Gets the value of the grade property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getGrade() {
+ return grade;
+ }
+
+ /**
+ * Sets the value of the grade property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setGrade(String value) {
+ this.grade = value;
+ }
+
+ /**
+ * Gets the value of the source property.
+ *
+ * @return
+ * possible object is
+ * {@link LocalGradeType.Source }
+ *
+ */
+ public LocalGradeType.Source getSource() {
+ return source;
+ }
+
+ /**
+ * Sets the value of the source property.
+ *
+ * @param value
+ * allowed object is
+ * {@link LocalGradeType.Source }
+ *
+ */
+ public void setSource(LocalGradeType.Source value) {
+ this.source = value;
+ }
+
+
+ /**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType>
+ * &lt;simpleContent>
+ * &lt;extension base="&lt;urn:crue:academic:xsd:language:diplomasupplement>PlainTextType">
+ * &lt;attribute name="source" use="required" type="{urn:crue:academic:xsd:language:diplomasupplement}SourceGradeType" />
+ * &lt;/extension>
+ * &lt;/simpleContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+ @XmlAccessorType(XmlAccessType.FIELD)
+ @XmlType(name = "", propOrder = {
+ "value"
+ })
+ public static class Source {
+
+ @XmlValue
+ protected String value;
+ @XmlAttribute(name = "source", required = true)
+ protected SourceGradeType source;
+
+ /**
+ * Plain text constraint
+ *
+ * Non empty text
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getValue() {
+ return value;
+ }
+
+ /**
+ * Sets the value of the value property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setValue(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Gets the value of the source property.
+ *
+ * @return
+ * possible object is
+ * {@link SourceGradeType }
+ *
+ */
+ public SourceGradeType getSource() {
+ return source;
+ }
+
+ /**
+ * Sets the value of the source property.
+ *
+ * @param value
+ * allowed object is
+ * {@link SourceGradeType }
+ *
+ */
+ public void setSource(SourceGradeType value) {
+ this.source = value;
+ }
+
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/MimeType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/MimeType.java
new file mode 100644
index 000000000..a83d3bf21
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/MimeType.java
@@ -0,0 +1,108 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.crue.academic.xsd.language.diplomasupplement;
+
+import javax.xml.bind.annotation.XmlEnum;
+import javax.xml.bind.annotation.XmlEnumValue;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for MimeType.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * <p>
+ * <pre>
+ * &lt;simpleType name="MimeType">
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ * &lt;enumeration value="image/gif"/>
+ * &lt;enumeration value="image/jpeg"/>
+ * &lt;enumeration value="image/pjpeg"/>
+ * &lt;enumeration value="image/png"/>
+ * &lt;enumeration value="image/tiff"/>
+ * &lt;enumeration value="text/html"/>
+ * &lt;enumeration value="application/pdf"/>
+ * &lt;/restriction>
+ * &lt;/simpleType>
+ * </pre>
+ *
+ */
+@XmlType(name = "MimeType")
+@XmlEnum
+public enum MimeType {
+
+
+ /**
+ * GIF image
+ *
+ */
+ @XmlEnumValue("image/gif")
+ IMAGE_GIF("image/gif"),
+
+ /**
+ * JPEG JFIF image
+ *
+ */
+ @XmlEnumValue("image/jpeg")
+ IMAGE_JPEG("image/jpeg"),
+
+ /**
+ * JPEG JFIF image
+ *
+ */
+ @XmlEnumValue("image/pjpeg")
+ IMAGE_PJPEG("image/pjpeg"),
+
+ /**
+ * Portable Network Graphics
+ *
+ */
+ @XmlEnumValue("image/png")
+ IMAGE_PNG("image/png"),
+
+ /**
+ * Tag Image File Format
+ *
+ */
+ @XmlEnumValue("image/tiff")
+ IMAGE_TIFF("image/tiff"),
+
+ /**
+ * HTML
+ *
+ */
+ @XmlEnumValue("text/html")
+ TEXT_HTML("text/html"),
+
+ /**
+ * Portable Document Format
+ *
+ */
+ @XmlEnumValue("application/pdf")
+ APPLICATION_PDF("application/pdf");
+ private final String value;
+
+ MimeType(String v) {
+ value = v;
+ }
+
+ public String value() {
+ return value;
+ }
+
+ public static MimeType fromValue(String v) {
+ for (MimeType c: MimeType.values()) {
+ if (c.value.equals(v)) {
+ return c;
+ }
+ }
+ throw new IllegalArgumentException(v);
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/MobilityProgrammeCourseUnitType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/MobilityProgrammeCourseUnitType.java
new file mode 100644
index 000000000..e54f9c61a
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/MobilityProgrammeCourseUnitType.java
@@ -0,0 +1,278 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.crue.academic.xsd.language.diplomasupplement;
+
+import java.math.BigDecimal;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlValue;
+
+
+/**
+ * Mobility programme course unit
+ *
+ * <p>Java class for MobilityProgrammeCourseUnitType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="MobilityProgrammeCourseUnitType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="Code" type="{urn:crue:academic:xsd:language:diplomasupplement}PlainTextType" minOccurs="0"/>
+ * &lt;element name="Title">
+ * &lt;complexType>
+ * &lt;simpleContent>
+ * &lt;extension base="&lt;urn:crue:academic:xsd:language:diplomasupplement>PlainTextType">
+ * &lt;attribute name="language" type="{urn:crue:academic:xsd:language:diplomasupplement}LanguageType" />
+ * &lt;/extension>
+ * &lt;/simpleContent>
+ * &lt;/complexType>
+ * &lt;/element>
+ * &lt;element name="ECTSCredits" type="{urn:crue:academic:xsd:language:diplomasupplement}PositiveDecimalType" minOccurs="0"/>
+ * &lt;element name="AdditionalInformation" type="{urn:crue:academic:xsd:language:diplomasupplement}RichTextTagType" minOccurs="0"/>
+ * &lt;/sequence>
+ * &lt;attribute name="isInTheLearningAgreement" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "MobilityProgrammeCourseUnitType", propOrder = {
+ "code",
+ "title",
+ "ectsCredits",
+ "additionalInformation"
+})
+public class MobilityProgrammeCourseUnitType {
+
+ @XmlElement(name = "Code")
+ protected String code;
+ @XmlElement(name = "Title", required = true)
+ protected MobilityProgrammeCourseUnitType.Title title;
+ @XmlElement(name = "ECTSCredits")
+ protected BigDecimal ectsCredits;
+ @XmlElement(name = "AdditionalInformation")
+ protected RichTextTagType additionalInformation;
+ @XmlAttribute(name = "isInTheLearningAgreement")
+ protected Boolean isInTheLearningAgreement;
+
+ /**
+ * Gets the value of the code property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getCode() {
+ return code;
+ }
+
+ /**
+ * Sets the value of the code property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setCode(String value) {
+ this.code = value;
+ }
+
+ /**
+ * Gets the value of the title property.
+ *
+ * @return
+ * possible object is
+ * {@link MobilityProgrammeCourseUnitType.Title }
+ *
+ */
+ public MobilityProgrammeCourseUnitType.Title getTitle() {
+ return title;
+ }
+
+ /**
+ * Sets the value of the title property.
+ *
+ * @param value
+ * allowed object is
+ * {@link MobilityProgrammeCourseUnitType.Title }
+ *
+ */
+ public void setTitle(MobilityProgrammeCourseUnitType.Title value) {
+ this.title = value;
+ }
+
+ /**
+ * Gets the value of the ectsCredits property.
+ *
+ * @return
+ * possible object is
+ * {@link BigDecimal }
+ *
+ */
+ public BigDecimal getECTSCredits() {
+ return ectsCredits;
+ }
+
+ /**
+ * Sets the value of the ectsCredits property.
+ *
+ * @param value
+ * allowed object is
+ * {@link BigDecimal }
+ *
+ */
+ public void setECTSCredits(BigDecimal value) {
+ this.ectsCredits = value;
+ }
+
+ /**
+ * Gets the value of the additionalInformation property.
+ *
+ * @return
+ * possible object is
+ * {@link RichTextTagType }
+ *
+ */
+ public RichTextTagType getAdditionalInformation() {
+ return additionalInformation;
+ }
+
+ /**
+ * Sets the value of the additionalInformation property.
+ *
+ * @param value
+ * allowed object is
+ * {@link RichTextTagType }
+ *
+ */
+ public void setAdditionalInformation(RichTextTagType value) {
+ this.additionalInformation = value;
+ }
+
+ /**
+ * Gets the value of the isInTheLearningAgreement property.
+ *
+ * @return
+ * possible object is
+ * {@link Boolean }
+ *
+ */
+ public boolean isIsInTheLearningAgreement() {
+ if (isInTheLearningAgreement == null) {
+ return true;
+ } else {
+ return isInTheLearningAgreement;
+ }
+ }
+
+ /**
+ * Sets the value of the isInTheLearningAgreement property.
+ *
+ * @param value
+ * allowed object is
+ * {@link Boolean }
+ *
+ */
+ public void setIsInTheLearningAgreement(Boolean value) {
+ this.isInTheLearningAgreement = value;
+ }
+
+
+ /**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType>
+ * &lt;simpleContent>
+ * &lt;extension base="&lt;urn:crue:academic:xsd:language:diplomasupplement>PlainTextType">
+ * &lt;attribute name="language" type="{urn:crue:academic:xsd:language:diplomasupplement}LanguageType" />
+ * &lt;/extension>
+ * &lt;/simpleContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+ @XmlAccessorType(XmlAccessType.FIELD)
+ @XmlType(name = "", propOrder = {
+ "value"
+ })
+ public static class Title {
+
+ @XmlValue
+ protected String value;
+ @XmlAttribute(name = "language")
+ protected LanguageType language;
+
+ /**
+ * Plain text constraint
+ *
+ * Non empty text
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getValue() {
+ return value;
+ }
+
+ /**
+ * Sets the value of the value property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setValue(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Gets the value of the language property.
+ *
+ * @return
+ * possible object is
+ * {@link LanguageType }
+ *
+ */
+ public LanguageType getLanguage() {
+ return language;
+ }
+
+ /**
+ * Sets the value of the language property.
+ *
+ * @param value
+ * allowed object is
+ * {@link LanguageType }
+ *
+ */
+ public void setLanguage(LanguageType value) {
+ this.language = value;
+ }
+
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/MobilityProgrammeCoursesUnitsType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/MobilityProgrammeCoursesUnitsType.java
new file mode 100644
index 000000000..557c6610c
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/MobilityProgrammeCoursesUnitsType.java
@@ -0,0 +1,78 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.crue.academic.xsd.language.diplomasupplement;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * Mobility programme courses units
+ *
+ * <p>Java class for MobilityProgrammeCoursesUnitsType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="MobilityProgrammeCoursesUnitsType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="CourseUnit" type="{urn:crue:academic:xsd:language:diplomasupplement}MobilityProgrammeCourseUnitType" maxOccurs="unbounded"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "MobilityProgrammeCoursesUnitsType", propOrder = {
+ "courseUnit"
+})
+public class MobilityProgrammeCoursesUnitsType {
+
+ @XmlElement(name = "CourseUnit", required = true)
+ protected List<MobilityProgrammeCourseUnitType> courseUnit;
+
+ /**
+ * Gets the value of the courseUnit property.
+ *
+ * <p>
+ * 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 <CODE>set</CODE> method for the courseUnit property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getCourseUnit().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link MobilityProgrammeCourseUnitType }
+ *
+ *
+ */
+ public List<MobilityProgrammeCourseUnitType> getCourseUnit() {
+ if (courseUnit == null) {
+ courseUnit = new ArrayList<MobilityProgrammeCourseUnitType>();
+ }
+ return this.courseUnit;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/MobilityProgrammeType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/MobilityProgrammeType.java
new file mode 100644
index 000000000..0c91a826c
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/MobilityProgrammeType.java
@@ -0,0 +1,359 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.crue.academic.xsd.language.diplomasupplement;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlValue;
+import javax.xml.datatype.XMLGregorianCalendar;
+
+
+/**
+ * Mobility programme
+ *
+ * <p>Java class for MobilityProgrammeType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="MobilityProgrammeType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="Type" type="{urn:crue:academic:xsd:language:diplomasupplement}PlainTextType"/>
+ * &lt;element name="FieldOfStudy" type="{urn:crue:academic:xsd:language:diplomasupplement}PlainTextType" minOccurs="0"/>
+ * &lt;element name="Country">
+ * &lt;complexType>
+ * &lt;simpleContent>
+ * &lt;extension base="&lt;urn:crue:academic:xsd:language:diplomasupplement>PlainTextType">
+ * &lt;attribute name="country" use="required" type="{urn:crue:academic:xsd:language:diplomasupplement}CountryType" />
+ * &lt;/extension>
+ * &lt;/simpleContent>
+ * &lt;/complexType>
+ * &lt;/element>
+ * &lt;element name="ReceivingInstitutionName" type="{urn:crue:academic:xsd:language:diplomasupplement}PlainTextType"/>
+ * &lt;element name="AcademicYear" type="{urn:crue:academic:xsd:language:diplomasupplement}AcademicYearType"/>
+ * &lt;element name="DateFrom" type="{urn:crue:academic:xsd:language:diplomasupplement}DateType" minOccurs="0"/>
+ * &lt;element name="DateTo" type="{urn:crue:academic:xsd:language:diplomasupplement}DateType" minOccurs="0"/>
+ * &lt;element name="CoursesUnits" type="{urn:crue:academic:xsd:language:diplomasupplement}MobilityProgrammeCoursesUnitsType"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "MobilityProgrammeType", propOrder = {
+ "type",
+ "fieldOfStudy",
+ "country",
+ "receivingInstitutionName",
+ "academicYear",
+ "dateFrom",
+ "dateTo",
+ "coursesUnits"
+})
+public class MobilityProgrammeType {
+
+ @XmlElement(name = "Type", required = true)
+ protected String type;
+ @XmlElement(name = "FieldOfStudy")
+ protected String fieldOfStudy;
+ @XmlElement(name = "Country", required = true)
+ protected MobilityProgrammeType.Country country;
+ @XmlElement(name = "ReceivingInstitutionName", required = true)
+ protected String receivingInstitutionName;
+ @XmlElement(name = "AcademicYear", required = true)
+ protected String academicYear;
+ @XmlElement(name = "DateFrom")
+ protected XMLGregorianCalendar dateFrom;
+ @XmlElement(name = "DateTo")
+ protected XMLGregorianCalendar dateTo;
+ @XmlElement(name = "CoursesUnits", required = true)
+ protected MobilityProgrammeCoursesUnitsType coursesUnits;
+
+ /**
+ * Gets the value of the type property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getType() {
+ return type;
+ }
+
+ /**
+ * Sets the value of the type property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setType(String value) {
+ this.type = value;
+ }
+
+ /**
+ * Gets the value of the fieldOfStudy property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getFieldOfStudy() {
+ return fieldOfStudy;
+ }
+
+ /**
+ * Sets the value of the fieldOfStudy property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setFieldOfStudy(String value) {
+ this.fieldOfStudy = value;
+ }
+
+ /**
+ * Gets the value of the country property.
+ *
+ * @return
+ * possible object is
+ * {@link MobilityProgrammeType.Country }
+ *
+ */
+ public MobilityProgrammeType.Country getCountry() {
+ return country;
+ }
+
+ /**
+ * Sets the value of the country property.
+ *
+ * @param value
+ * allowed object is
+ * {@link MobilityProgrammeType.Country }
+ *
+ */
+ public void setCountry(MobilityProgrammeType.Country value) {
+ this.country = value;
+ }
+
+ /**
+ * Gets the value of the receivingInstitutionName property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getReceivingInstitutionName() {
+ return receivingInstitutionName;
+ }
+
+ /**
+ * Sets the value of the receivingInstitutionName property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setReceivingInstitutionName(String value) {
+ this.receivingInstitutionName = value;
+ }
+
+ /**
+ * Gets the value of the academicYear property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getAcademicYear() {
+ return academicYear;
+ }
+
+ /**
+ * Sets the value of the academicYear property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setAcademicYear(String value) {
+ this.academicYear = value;
+ }
+
+ /**
+ * Gets the value of the dateFrom property.
+ *
+ * @return
+ * possible object is
+ * {@link XMLGregorianCalendar }
+ *
+ */
+ public XMLGregorianCalendar getDateFrom() {
+ return dateFrom;
+ }
+
+ /**
+ * Sets the value of the dateFrom property.
+ *
+ * @param value
+ * allowed object is
+ * {@link XMLGregorianCalendar }
+ *
+ */
+ public void setDateFrom(XMLGregorianCalendar value) {
+ this.dateFrom = value;
+ }
+
+ /**
+ * Gets the value of the dateTo property.
+ *
+ * @return
+ * possible object is
+ * {@link XMLGregorianCalendar }
+ *
+ */
+ public XMLGregorianCalendar getDateTo() {
+ return dateTo;
+ }
+
+ /**
+ * Sets the value of the dateTo property.
+ *
+ * @param value
+ * allowed object is
+ * {@link XMLGregorianCalendar }
+ *
+ */
+ public void setDateTo(XMLGregorianCalendar value) {
+ this.dateTo = value;
+ }
+
+ /**
+ * Gets the value of the coursesUnits property.
+ *
+ * @return
+ * possible object is
+ * {@link MobilityProgrammeCoursesUnitsType }
+ *
+ */
+ public MobilityProgrammeCoursesUnitsType getCoursesUnits() {
+ return coursesUnits;
+ }
+
+ /**
+ * Sets the value of the coursesUnits property.
+ *
+ * @param value
+ * allowed object is
+ * {@link MobilityProgrammeCoursesUnitsType }
+ *
+ */
+ public void setCoursesUnits(MobilityProgrammeCoursesUnitsType value) {
+ this.coursesUnits = value;
+ }
+
+
+ /**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType>
+ * &lt;simpleContent>
+ * &lt;extension base="&lt;urn:crue:academic:xsd:language:diplomasupplement>PlainTextType">
+ * &lt;attribute name="country" use="required" type="{urn:crue:academic:xsd:language:diplomasupplement}CountryType" />
+ * &lt;/extension>
+ * &lt;/simpleContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+ @XmlAccessorType(XmlAccessType.FIELD)
+ @XmlType(name = "", propOrder = {
+ "value"
+ })
+ public static class Country {
+
+ @XmlValue
+ protected String value;
+ @XmlAttribute(name = "country", required = true)
+ protected CountryType country;
+
+ /**
+ * Plain text constraint
+ *
+ * Non empty text
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getValue() {
+ return value;
+ }
+
+ /**
+ * Sets the value of the value property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setValue(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Gets the value of the country property.
+ *
+ * @return
+ * possible object is
+ * {@link CountryType }
+ *
+ */
+ public CountryType getCountry() {
+ return country;
+ }
+
+ /**
+ * Sets the value of the country property.
+ *
+ * @param value
+ * allowed object is
+ * {@link CountryType }
+ *
+ */
+ public void setCountry(CountryType value) {
+ this.country = value;
+ }
+
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/ModeOfDeliveryType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/ModeOfDeliveryType.java
new file mode 100644
index 000000000..762ba0e99
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/ModeOfDeliveryType.java
@@ -0,0 +1,68 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.crue.academic.xsd.language.diplomasupplement;
+
+import javax.xml.bind.annotation.XmlEnum;
+import javax.xml.bind.annotation.XmlEnumValue;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for ModeOfDeliveryType.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * <p>
+ * <pre>
+ * &lt;simpleType name="ModeOfDeliveryType">
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ * &lt;enumeration value="FaceToFace"/>
+ * &lt;enumeration value="DistanceLearning"/>
+ * &lt;/restriction>
+ * &lt;/simpleType>
+ * </pre>
+ *
+ */
+@XmlType(name = "ModeOfDeliveryType")
+@XmlEnum
+public enum ModeOfDeliveryType {
+
+
+ /**
+ * Face-to-face
+ *
+ */
+ @XmlEnumValue("FaceToFace")
+ FACE_TO_FACE("FaceToFace"),
+
+ /**
+ * Distance learning
+ *
+ */
+ @XmlEnumValue("DistanceLearning")
+ DISTANCE_LEARNING("DistanceLearning");
+ private final String value;
+
+ ModeOfDeliveryType(String v) {
+ value = v;
+ }
+
+ public String value() {
+ return value;
+ }
+
+ public static ModeOfDeliveryType fromValue(String v) {
+ for (ModeOfDeliveryType c: ModeOfDeliveryType.values()) {
+ if (c.value.equals(v)) {
+ return c;
+ }
+ }
+ throw new IllegalArgumentException(v);
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/ModeOfStudyType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/ModeOfStudyType.java
new file mode 100644
index 000000000..c8f32a752
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/ModeOfStudyType.java
@@ -0,0 +1,92 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.crue.academic.xsd.language.diplomasupplement;
+
+import javax.xml.bind.annotation.XmlEnum;
+import javax.xml.bind.annotation.XmlEnumValue;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for ModeOfStudyType.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * <p>
+ * <pre>
+ * &lt;simpleType name="ModeOfStudyType">
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ * &lt;enumeration value="FullTime"/>
+ * &lt;enumeration value="ParTime"/>
+ * &lt;enumeration value="Distance"/>
+ * &lt;enumeration value="eLearning"/>
+ * &lt;enumeration value="Another"/>
+ * &lt;/restriction>
+ * &lt;/simpleType>
+ * </pre>
+ *
+ */
+@XmlType(name = "ModeOfStudyType")
+@XmlEnum
+public enum ModeOfStudyType {
+
+
+ /**
+ * Full time
+ *
+ */
+ @XmlEnumValue("FullTime")
+ FULL_TIME("FullTime"),
+
+ /**
+ * Par time
+ *
+ */
+ @XmlEnumValue("ParTime")
+ PAR_TIME("ParTime"),
+
+ /**
+ * Distance
+ *
+ */
+ @XmlEnumValue("Distance")
+ DISTANCE("Distance"),
+
+ /**
+ * eLearning
+ *
+ */
+ @XmlEnumValue("eLearning")
+ E_LEARNING("eLearning"),
+
+ /**
+ * Another
+ *
+ */
+ @XmlEnumValue("Another")
+ ANOTHER("Another");
+ private final String value;
+
+ ModeOfStudyType(String v) {
+ value = v;
+ }
+
+ public String value() {
+ return value;
+ }
+
+ public static ModeOfStudyType fromValue(String v) {
+ for (ModeOfStudyType c: ModeOfStudyType.values()) {
+ if (c.value.equals(v)) {
+ return c;
+ }
+ }
+ throw new IllegalArgumentException(v);
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/MultilingualDiplomaSupplementType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/MultilingualDiplomaSupplementType.java
new file mode 100644
index 000000000..f4bd8a5d1
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/MultilingualDiplomaSupplementType.java
@@ -0,0 +1,112 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.crue.academic.xsd.language.diplomasupplement;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+import eu.stork.peps.complex.attributes.org.w3._2000._09.xmldsig.SignatureType;
+
+
+/**
+ * Multilingual Diploma Supplement (DS)
+ *
+ * <p>Java class for MultilingualDiplomaSupplementType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="MultilingualDiplomaSupplementType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element ref="{urn:crue:academic:xsd:language:diplomasupplement}DiplomaSupplement" maxOccurs="unbounded" minOccurs="2"/>
+ * &lt;element ref="{http://www.w3.org/2000/09/xmldsig#}Signature" maxOccurs="unbounded" minOccurs="0"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "MultilingualDiplomaSupplementType", propOrder = {
+ "diplomaSupplement",
+ "signature"
+})
+public class MultilingualDiplomaSupplementType {
+
+ @XmlElement(name = "DiplomaSupplement", required = true)
+ protected List<DiplomaSupplementType> diplomaSupplement;
+ @XmlElement(name = "Signature", namespace = "http://www.w3.org/2000/09/xmldsig#")
+ protected List<SignatureType> signature;
+
+ /**
+ * Diploma Supplement Gets the value of the diplomaSupplement property.
+ *
+ * <p>
+ * 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 <CODE>set</CODE> method for the diplomaSupplement property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getDiplomaSupplement().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link DiplomaSupplementType }
+ *
+ *
+ */
+ public List<DiplomaSupplementType> getDiplomaSupplement() {
+ if (diplomaSupplement == null) {
+ diplomaSupplement = new ArrayList<DiplomaSupplementType>();
+ }
+ return this.diplomaSupplement;
+ }
+
+ /**
+ * Digital signature Gets the value of the signature property.
+ *
+ * <p>
+ * 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 <CODE>set</CODE> method for the signature property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getSignature().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link SignatureType }
+ *
+ *
+ */
+ public List<SignatureType> getSignature() {
+ if (signature == null) {
+ signature = new ArrayList<SignatureType>();
+ }
+ return this.signature;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/NameAndStatusOfAwardingInstitutionType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/NameAndStatusOfAwardingInstitutionType.java
new file mode 100644
index 000000000..063244c03
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/NameAndStatusOfAwardingInstitutionType.java
@@ -0,0 +1,140 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.crue.academic.xsd.language.diplomasupplement;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * Name and status of awarding institution
+ *
+ * <p>Java class for NameAndStatusOfAwardingInstitutionType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="NameAndStatusOfAwardingInstitutionType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="AwardingInstitution" maxOccurs="unbounded">
+ * &lt;complexType>
+ * &lt;complexContent>
+ * &lt;extension base="{urn:crue:academic:xsd:language:diplomasupplement}InstitutionType">
+ * &lt;attribute name="awardingInstitutionID" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
+ * &lt;/extension>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * &lt;/element>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "NameAndStatusOfAwardingInstitutionType", propOrder = {
+ "awardingInstitution"
+})
+public class NameAndStatusOfAwardingInstitutionType {
+
+ @XmlElement(name = "AwardingInstitution", required = true)
+ protected List<NameAndStatusOfAwardingInstitutionType.AwardingInstitution> awardingInstitution;
+
+ /**
+ * Gets the value of the awardingInstitution property.
+ *
+ * <p>
+ * 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 <CODE>set</CODE> method for the awardingInstitution property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getAwardingInstitution().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link NameAndStatusOfAwardingInstitutionType.AwardingInstitution }
+ *
+ *
+ */
+ public List<NameAndStatusOfAwardingInstitutionType.AwardingInstitution> getAwardingInstitution() {
+ if (awardingInstitution == null) {
+ awardingInstitution = new ArrayList<NameAndStatusOfAwardingInstitutionType.AwardingInstitution>();
+ }
+ return this.awardingInstitution;
+ }
+
+
+ /**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType>
+ * &lt;complexContent>
+ * &lt;extension base="{urn:crue:academic:xsd:language:diplomasupplement}InstitutionType">
+ * &lt;attribute name="awardingInstitutionID" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
+ * &lt;/extension>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+ @XmlAccessorType(XmlAccessType.FIELD)
+ @XmlType(name = "")
+ public static class AwardingInstitution
+ extends InstitutionType
+ {
+
+ @XmlAttribute(name = "awardingInstitutionID", required = true)
+ protected String awardingInstitutionID;
+
+ /**
+ * Gets the value of the awardingInstitutionID property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getAwardingInstitutionID() {
+ return awardingInstitutionID;
+ }
+
+ /**
+ * Sets the value of the awardingInstitutionID property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setAwardingInstitutionID(String value) {
+ this.awardingInstitutionID = value;
+ }
+
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/NameAndStatusOfInstitutionAdministeringStudiesType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/NameAndStatusOfInstitutionAdministeringStudiesType.java
new file mode 100644
index 000000000..3083da620
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/NameAndStatusOfInstitutionAdministeringStudiesType.java
@@ -0,0 +1,140 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.crue.academic.xsd.language.diplomasupplement;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * Name and status of institution administering studies
+ *
+ * <p>Java class for NameAndStatusOfInstitutionAdministeringStudiesType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="NameAndStatusOfInstitutionAdministeringStudiesType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="InstitutionAdministeringStudies" maxOccurs="unbounded">
+ * &lt;complexType>
+ * &lt;complexContent>
+ * &lt;extension base="{urn:crue:academic:xsd:language:diplomasupplement}InstitutionType">
+ * &lt;attribute name="institutionAdministeringStudiesID" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
+ * &lt;/extension>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * &lt;/element>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "NameAndStatusOfInstitutionAdministeringStudiesType", propOrder = {
+ "institutionAdministeringStudies"
+})
+public class NameAndStatusOfInstitutionAdministeringStudiesType {
+
+ @XmlElement(name = "InstitutionAdministeringStudies", required = true)
+ protected List<NameAndStatusOfInstitutionAdministeringStudiesType.InstitutionAdministeringStudies> institutionAdministeringStudies;
+
+ /**
+ * Gets the value of the institutionAdministeringStudies property.
+ *
+ * <p>
+ * 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 <CODE>set</CODE> method for the institutionAdministeringStudies property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getInstitutionAdministeringStudies().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link NameAndStatusOfInstitutionAdministeringStudiesType.InstitutionAdministeringStudies }
+ *
+ *
+ */
+ public List<NameAndStatusOfInstitutionAdministeringStudiesType.InstitutionAdministeringStudies> getInstitutionAdministeringStudies() {
+ if (institutionAdministeringStudies == null) {
+ institutionAdministeringStudies = new ArrayList<NameAndStatusOfInstitutionAdministeringStudiesType.InstitutionAdministeringStudies>();
+ }
+ return this.institutionAdministeringStudies;
+ }
+
+
+ /**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType>
+ * &lt;complexContent>
+ * &lt;extension base="{urn:crue:academic:xsd:language:diplomasupplement}InstitutionType">
+ * &lt;attribute name="institutionAdministeringStudiesID" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
+ * &lt;/extension>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+ @XmlAccessorType(XmlAccessType.FIELD)
+ @XmlType(name = "")
+ public static class InstitutionAdministeringStudies
+ extends InstitutionType
+ {
+
+ @XmlAttribute(name = "institutionAdministeringStudiesID", required = true)
+ protected String institutionAdministeringStudiesID;
+
+ /**
+ * Gets the value of the institutionAdministeringStudiesID property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getInstitutionAdministeringStudiesID() {
+ return institutionAdministeringStudiesID;
+ }
+
+ /**
+ * Sets the value of the institutionAdministeringStudiesID property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setInstitutionAdministeringStudiesID(String value) {
+ this.institutionAdministeringStudiesID = value;
+ }
+
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/ObjectFactory.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/ObjectFactory.java
new file mode 100644
index 000000000..b6473551b
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/ObjectFactory.java
@@ -0,0 +1,656 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.crue.academic.xsd.language.diplomasupplement;
+
+import javax.xml.bind.JAXBElement;
+import javax.xml.bind.annotation.XmlElementDecl;
+import javax.xml.bind.annotation.XmlRegistry;
+import javax.xml.namespace.QName;
+
+
+/**
+ * This object contains factory methods for each
+ * Java content interface and Java element interface
+ * generated in the crue.academic.xsd.language.diplomasupplement package.
+ * <p>An ObjectFactory allows you to programatically
+ * construct new instances of the Java representation
+ * for XML content. The Java representation of XML
+ * content can consist of schema derived interfaces
+ * and classes representing the binding of schema
+ * type definitions, element declarations and model
+ * groups. Factory methods for each of these are
+ * provided in this class.
+ *
+ */
+@XmlRegistry
+public class ObjectFactory {
+
+ private final static QName _MultilingualDiplomaSupplement_QNAME = new QName("urn:crue:academic:xsd:language:diplomasupplement", "MultilingualDiplomaSupplement");
+ private final static QName _DiplomaSupplement_QNAME = new QName("urn:crue:academic:xsd:language:diplomasupplement", "DiplomaSupplement");
+ private final static QName _RichTextTagTypeItalic_QNAME = new QName("urn:crue:academic:xsd:language:diplomasupplement", "Italic");
+ private final static QName _RichTextTagTypeBreakLine_QNAME = new QName("urn:crue:academic:xsd:language:diplomasupplement", "BreakLine");
+ private final static QName _RichTextTagTypeAttachedRef_QNAME = new QName("urn:crue:academic:xsd:language:diplomasupplement", "AttachedRef");
+ private final static QName _RichTextTagTypeUnderline_QNAME = new QName("urn:crue:academic:xsd:language:diplomasupplement", "Underline");
+ private final static QName _RichTextTagTypeBold_QNAME = new QName("urn:crue:academic:xsd:language:diplomasupplement", "Bold");
+
+ /**
+ * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: crue.academic.xsd.language.diplomasupplement
+ *
+ */
+ public ObjectFactory() {
+ }
+
+ /**
+ * Create an instance of {@link AddressType }
+ *
+ */
+ public AddressType createAddressType() {
+ return new AddressType();
+ }
+
+ /**
+ * Create an instance of {@link LanguagesOfInstructionAndExaminationType }
+ *
+ */
+ public LanguagesOfInstructionAndExaminationType createLanguagesOfInstructionAndExaminationType() {
+ return new LanguagesOfInstructionAndExaminationType();
+ }
+
+ /**
+ * Create an instance of {@link RichTextTagType }
+ *
+ */
+ public RichTextTagType createRichTextTagType() {
+ return new RichTextTagType();
+ }
+
+ /**
+ * Create an instance of {@link MobilityProgrammeType }
+ *
+ */
+ public MobilityProgrammeType createMobilityProgrammeType() {
+ return new MobilityProgrammeType();
+ }
+
+ /**
+ * Create an instance of {@link NameAndStatusOfInstitutionAdministeringStudiesType }
+ *
+ */
+ public NameAndStatusOfInstitutionAdministeringStudiesType createNameAndStatusOfInstitutionAdministeringStudiesType() {
+ return new NameAndStatusOfInstitutionAdministeringStudiesType();
+ }
+
+ /**
+ * Create an instance of {@link InstitutionType }
+ *
+ */
+ public InstitutionType createInstitutionType() {
+ return new InstitutionType();
+ }
+
+ /**
+ * Create an instance of {@link MobilityProgrammeCourseUnitType }
+ *
+ */
+ public MobilityProgrammeCourseUnitType createMobilityProgrammeCourseUnitType() {
+ return new MobilityProgrammeCourseUnitType();
+ }
+
+ /**
+ * Create an instance of {@link InformationIdentifyingTheHolderOfTheQualificationType }
+ *
+ */
+ public InformationIdentifyingTheHolderOfTheQualificationType createInformationIdentifyingTheHolderOfTheQualificationType() {
+ return new InformationIdentifyingTheHolderOfTheQualificationType();
+ }
+
+ /**
+ * Create an instance of {@link CourseUnitType }
+ *
+ */
+ public CourseUnitType createCourseUnitType() {
+ return new CourseUnitType();
+ }
+
+ /**
+ * Create an instance of {@link LocalGradeType }
+ *
+ */
+ public LocalGradeType createLocalGradeType() {
+ return new LocalGradeType();
+ }
+
+ /**
+ * Create an instance of {@link InformationOnTheContentsAndResultsGainedType }
+ *
+ */
+ public InformationOnTheContentsAndResultsGainedType createInformationOnTheContentsAndResultsGainedType() {
+ return new InformationOnTheContentsAndResultsGainedType();
+ }
+
+ /**
+ * Create an instance of {@link InformationOnTheLevelOfTheQualificationType }
+ *
+ */
+ public InformationOnTheLevelOfTheQualificationType createInformationOnTheLevelOfTheQualificationType() {
+ return new InformationOnTheLevelOfTheQualificationType();
+ }
+
+ /**
+ * Create an instance of {@link NameAndStatusOfAwardingInstitutionType }
+ *
+ */
+ public NameAndStatusOfAwardingInstitutionType createNameAndStatusOfAwardingInstitutionType() {
+ return new NameAndStatusOfAwardingInstitutionType();
+ }
+
+ /**
+ * Create an instance of {@link InformationOnTheFunctionOfTheQualificationType }
+ *
+ */
+ public InformationOnTheFunctionOfTheQualificationType createInformationOnTheFunctionOfTheQualificationType() {
+ return new InformationOnTheFunctionOfTheQualificationType();
+ }
+
+ /**
+ * Create an instance of {@link MultilingualDiplomaSupplementType }
+ *
+ */
+ public MultilingualDiplomaSupplementType createMultilingualDiplomaSupplementType() {
+ return new MultilingualDiplomaSupplementType();
+ }
+
+ /**
+ * Create an instance of {@link DiplomaSupplementType }
+ *
+ */
+ public DiplomaSupplementType createDiplomaSupplementType() {
+ return new DiplomaSupplementType();
+ }
+
+ /**
+ * Create an instance of {@link ExtensionContentType }
+ *
+ */
+ public ExtensionContentType createExtensionContentType() {
+ return new ExtensionContentType();
+ }
+
+ /**
+ * Create an instance of {@link AttachedImageURLType }
+ *
+ */
+ public AttachedImageURLType createAttachedImageURLType() {
+ return new AttachedImageURLType();
+ }
+
+ /**
+ * Create an instance of {@link CourseStructureDiagramType }
+ *
+ */
+ public CourseStructureDiagramType createCourseStructureDiagramType() {
+ return new CourseStructureDiagramType();
+ }
+
+ /**
+ * Create an instance of {@link CourseUnitWorkPlacementType }
+ *
+ */
+ public CourseUnitWorkPlacementType createCourseUnitWorkPlacementType() {
+ return new CourseUnitWorkPlacementType();
+ }
+
+ /**
+ * Create an instance of {@link InformationIdentifyingTheQualificationType }
+ *
+ */
+ public InformationIdentifyingTheQualificationType createInformationIdentifyingTheQualificationType() {
+ return new InformationIdentifyingTheQualificationType();
+ }
+
+ /**
+ * Create an instance of {@link MobilityProgrammeCoursesUnitsType }
+ *
+ */
+ public MobilityProgrammeCoursesUnitsType createMobilityProgrammeCoursesUnitsType() {
+ return new MobilityProgrammeCoursesUnitsType();
+ }
+
+ /**
+ * Create an instance of {@link QualificationType }
+ *
+ */
+ public QualificationType createQualificationType() {
+ return new QualificationType();
+ }
+
+ /**
+ * Create an instance of {@link CertificationOfTheSupplementType }
+ *
+ */
+ public CertificationOfTheSupplementType createCertificationOfTheSupplementType() {
+ return new CertificationOfTheSupplementType();
+ }
+
+ /**
+ * Create an instance of {@link AttachedFileURLType }
+ *
+ */
+ public AttachedFileURLType createAttachedFileURLType() {
+ return new AttachedFileURLType();
+ }
+
+ /**
+ * Create an instance of {@link ProgrammeRequirementsType }
+ *
+ */
+ public ProgrammeRequirementsType createProgrammeRequirementsType() {
+ return new ProgrammeRequirementsType();
+ }
+
+ /**
+ * Create an instance of {@link CourseUnitWorkPlacementsType }
+ *
+ */
+ public CourseUnitWorkPlacementsType createCourseUnitWorkPlacementsType() {
+ return new CourseUnitWorkPlacementsType();
+ }
+
+ /**
+ * Create an instance of {@link AdditionalInformationType }
+ *
+ */
+ public AdditionalInformationType createAdditionalInformationType() {
+ return new AdditionalInformationType();
+ }
+
+ /**
+ * Create an instance of {@link GradingSchemeAndGradeDistributionGuidanceType }
+ *
+ */
+ public GradingSchemeAndGradeDistributionGuidanceType createGradingSchemeAndGradeDistributionGuidanceType() {
+ return new GradingSchemeAndGradeDistributionGuidanceType();
+ }
+
+ /**
+ * Create an instance of {@link AttachmentsType }
+ *
+ */
+ public AttachmentsType createAttachmentsType() {
+ return new AttachmentsType();
+ }
+
+ /**
+ * Create an instance of {@link CourseUnitLanguageOfInstructionType }
+ *
+ */
+ public CourseUnitLanguageOfInstructionType createCourseUnitLanguageOfInstructionType() {
+ return new CourseUnitLanguageOfInstructionType();
+ }
+
+ /**
+ * Create an instance of {@link CoursesAttendedInOtherInstitutionInMobilityProgramsType }
+ *
+ */
+ public CoursesAttendedInOtherInstitutionInMobilityProgramsType createCoursesAttendedInOtherInstitutionInMobilityProgramsType() {
+ return new CoursesAttendedInOtherInstitutionInMobilityProgramsType();
+ }
+
+ /**
+ * Create an instance of {@link FamilyNameType }
+ *
+ */
+ public FamilyNameType createFamilyNameType() {
+ return new FamilyNameType();
+ }
+
+ /**
+ * Create an instance of {@link CoursesGroupsType }
+ *
+ */
+ public CoursesGroupsType createCoursesGroupsType() {
+ return new CoursesGroupsType();
+ }
+
+ /**
+ * Create an instance of {@link TitleConferredType }
+ *
+ */
+ public TitleConferredType createTitleConferredType() {
+ return new TitleConferredType();
+ }
+
+ /**
+ * Create an instance of {@link OfficialStampType }
+ *
+ */
+ public OfficialStampType createOfficialStampType() {
+ return new OfficialStampType();
+ }
+
+ /**
+ * Create an instance of {@link CourseUnitStudentPerformanceType }
+ *
+ */
+ public CourseUnitStudentPerformanceType createCourseUnitStudentPerformanceType() {
+ return new CourseUnitStudentPerformanceType();
+ }
+
+ /**
+ * Create an instance of {@link GivenNameType }
+ *
+ */
+ public GivenNameType createGivenNameType() {
+ return new GivenNameType();
+ }
+
+ /**
+ * Create an instance of {@link CoursesUnitsType }
+ *
+ */
+ public CoursesUnitsType createCoursesUnitsType() {
+ return new CoursesUnitsType();
+ }
+
+ /**
+ * Create an instance of {@link ProgrammeDetailsType }
+ *
+ */
+ public ProgrammeDetailsType createProgrammeDetailsType() {
+ return new ProgrammeDetailsType();
+ }
+
+ /**
+ * Create an instance of {@link OfficialCertifyingType }
+ *
+ */
+ public OfficialCertifyingType createOfficialCertifyingType() {
+ return new OfficialCertifyingType();
+ }
+
+ /**
+ * Create an instance of {@link CourseUnitLanguagesOfInstructionType }
+ *
+ */
+ public CourseUnitLanguagesOfInstructionType createCourseUnitLanguagesOfInstructionType() {
+ return new CourseUnitLanguagesOfInstructionType();
+ }
+
+ /**
+ * Create an instance of {@link AttachedImageDataType }
+ *
+ */
+ public AttachedImageDataType createAttachedImageDataType() {
+ return new AttachedImageDataType();
+ }
+
+ /**
+ * Create an instance of {@link AttachedType }
+ *
+ */
+ public AttachedType createAttachedType() {
+ return new AttachedType();
+ }
+
+ /**
+ * Create an instance of {@link CoursesGroupType }
+ *
+ */
+ public CoursesGroupType createCoursesGroupType() {
+ return new CoursesGroupType();
+ }
+
+ /**
+ * Create an instance of {@link AttachedFileDataType }
+ *
+ */
+ public AttachedFileDataType createAttachedFileDataType() {
+ return new AttachedFileDataType();
+ }
+
+ /**
+ * Create an instance of {@link ContactInformationType }
+ *
+ */
+ public ContactInformationType createContactInformationType() {
+ return new ContactInformationType();
+ }
+
+ /**
+ * Create an instance of {@link OfficialsCertifyingType }
+ *
+ */
+ public OfficialsCertifyingType createOfficialsCertifyingType() {
+ return new OfficialsCertifyingType();
+ }
+
+ /**
+ * Create an instance of {@link AddressType.Country }
+ *
+ */
+ public AddressType.Country createAddressTypeCountry() {
+ return new AddressType.Country();
+ }
+
+ /**
+ * Create an instance of {@link LanguagesOfInstructionAndExaminationType.Language }
+ *
+ */
+ public LanguagesOfInstructionAndExaminationType.Language createLanguagesOfInstructionAndExaminationTypeLanguage() {
+ return new LanguagesOfInstructionAndExaminationType.Language();
+ }
+
+ /**
+ * Create an instance of {@link RichTextTagType.AttachedRef }
+ *
+ */
+ public RichTextTagType.AttachedRef createRichTextTagTypeAttachedRef() {
+ return new RichTextTagType.AttachedRef();
+ }
+
+ /**
+ * Create an instance of {@link MobilityProgrammeType.Country }
+ *
+ */
+ public MobilityProgrammeType.Country createMobilityProgrammeTypeCountry() {
+ return new MobilityProgrammeType.Country();
+ }
+
+ /**
+ * Create an instance of {@link NameAndStatusOfInstitutionAdministeringStudiesType.InstitutionAdministeringStudies }
+ *
+ */
+ public NameAndStatusOfInstitutionAdministeringStudiesType.InstitutionAdministeringStudies createNameAndStatusOfInstitutionAdministeringStudiesTypeInstitutionAdministeringStudies() {
+ return new NameAndStatusOfInstitutionAdministeringStudiesType.InstitutionAdministeringStudies();
+ }
+
+ /**
+ * Create an instance of {@link InstitutionType.Country }
+ *
+ */
+ public InstitutionType.Country createInstitutionTypeCountry() {
+ return new InstitutionType.Country();
+ }
+
+ /**
+ * Create an instance of {@link InstitutionType.AttachedImageRef }
+ *
+ */
+ public InstitutionType.AttachedImageRef createInstitutionTypeAttachedImageRef() {
+ return new InstitutionType.AttachedImageRef();
+ }
+
+ /**
+ * Create an instance of {@link MobilityProgrammeCourseUnitType.Title }
+ *
+ */
+ public MobilityProgrammeCourseUnitType.Title createMobilityProgrammeCourseUnitTypeTitle() {
+ return new MobilityProgrammeCourseUnitType.Title();
+ }
+
+ /**
+ * Create an instance of {@link InformationIdentifyingTheHolderOfTheQualificationType.CountryOfBirth }
+ *
+ */
+ public InformationIdentifyingTheHolderOfTheQualificationType.CountryOfBirth createInformationIdentifyingTheHolderOfTheQualificationTypeCountryOfBirth() {
+ return new InformationIdentifyingTheHolderOfTheQualificationType.CountryOfBirth();
+ }
+
+ /**
+ * Create an instance of {@link InformationIdentifyingTheHolderOfTheQualificationType.Gender }
+ *
+ */
+ public InformationIdentifyingTheHolderOfTheQualificationType.Gender createInformationIdentifyingTheHolderOfTheQualificationTypeGender() {
+ return new InformationIdentifyingTheHolderOfTheQualificationType.Gender();
+ }
+
+ /**
+ * Create an instance of {@link CourseUnitType.Type }
+ *
+ */
+ public CourseUnitType.Type createCourseUnitTypeType() {
+ return new CourseUnitType.Type();
+ }
+
+ /**
+ * Create an instance of {@link CourseUnitType.YearOfStudy }
+ *
+ */
+ public CourseUnitType.YearOfStudy createCourseUnitTypeYearOfStudy() {
+ return new CourseUnitType.YearOfStudy();
+ }
+
+ /**
+ * Create an instance of {@link CourseUnitType.Level }
+ *
+ */
+ public CourseUnitType.Level createCourseUnitTypeLevel() {
+ return new CourseUnitType.Level();
+ }
+
+ /**
+ * Create an instance of {@link CourseUnitType.ModeOfDelivery }
+ *
+ */
+ public CourseUnitType.ModeOfDelivery createCourseUnitTypeModeOfDelivery() {
+ return new CourseUnitType.ModeOfDelivery();
+ }
+
+ /**
+ * Create an instance of {@link LocalGradeType.Source }
+ *
+ */
+ public LocalGradeType.Source createLocalGradeTypeSource() {
+ return new LocalGradeType.Source();
+ }
+
+ /**
+ * Create an instance of {@link InformationOnTheContentsAndResultsGainedType.ModeOfStudy }
+ *
+ */
+ public InformationOnTheContentsAndResultsGainedType.ModeOfStudy createInformationOnTheContentsAndResultsGainedTypeModeOfStudy() {
+ return new InformationOnTheContentsAndResultsGainedType.ModeOfStudy();
+ }
+
+ /**
+ * Create an instance of {@link InformationOnTheLevelOfTheQualificationType.Level }
+ *
+ */
+ public InformationOnTheLevelOfTheQualificationType.Level createInformationOnTheLevelOfTheQualificationTypeLevel() {
+ return new InformationOnTheLevelOfTheQualificationType.Level();
+ }
+
+ /**
+ * Create an instance of {@link InformationOnTheLevelOfTheQualificationType.OfficialLengthOfProgramme }
+ *
+ */
+ public InformationOnTheLevelOfTheQualificationType.OfficialLengthOfProgramme createInformationOnTheLevelOfTheQualificationTypeOfficialLengthOfProgramme() {
+ return new InformationOnTheLevelOfTheQualificationType.OfficialLengthOfProgramme();
+ }
+
+ /**
+ * Create an instance of {@link NameAndStatusOfAwardingInstitutionType.AwardingInstitution }
+ *
+ */
+ public NameAndStatusOfAwardingInstitutionType.AwardingInstitution createNameAndStatusOfAwardingInstitutionTypeAwardingInstitution() {
+ return new NameAndStatusOfAwardingInstitutionType.AwardingInstitution();
+ }
+
+ /**
+ * Create an instance of {@link InformationOnTheFunctionOfTheQualificationType.ProfessionalStatus }
+ *
+ */
+ public InformationOnTheFunctionOfTheQualificationType.ProfessionalStatus createInformationOnTheFunctionOfTheQualificationTypeProfessionalStatus() {
+ return new InformationOnTheFunctionOfTheQualificationType.ProfessionalStatus();
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link MultilingualDiplomaSupplementType }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "urn:crue:academic:xsd:language:diplomasupplement", name = "MultilingualDiplomaSupplement")
+ public JAXBElement<MultilingualDiplomaSupplementType> createMultilingualDiplomaSupplement(MultilingualDiplomaSupplementType value) {
+ return new JAXBElement<MultilingualDiplomaSupplementType>(_MultilingualDiplomaSupplement_QNAME, MultilingualDiplomaSupplementType.class, null, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link DiplomaSupplementType }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "urn:crue:academic:xsd:language:diplomasupplement", name = "DiplomaSupplement")
+ public JAXBElement<DiplomaSupplementType> createDiplomaSupplement(DiplomaSupplementType value) {
+ return new JAXBElement<DiplomaSupplementType>(_DiplomaSupplement_QNAME, DiplomaSupplementType.class, null, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "urn:crue:academic:xsd:language:diplomasupplement", name = "Italic", scope = RichTextTagType.class)
+ public JAXBElement<String> createRichTextTagTypeItalic(String value) {
+ return new JAXBElement<String>(_RichTextTagTypeItalic_QNAME, String.class, RichTextTagType.class, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "urn:crue:academic:xsd:language:diplomasupplement", name = "BreakLine", scope = RichTextTagType.class)
+ public JAXBElement<String> createRichTextTagTypeBreakLine(String value) {
+ return new JAXBElement<String>(_RichTextTagTypeBreakLine_QNAME, String.class, RichTextTagType.class, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link RichTextTagType.AttachedRef }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "urn:crue:academic:xsd:language:diplomasupplement", name = "AttachedRef", scope = RichTextTagType.class)
+ public JAXBElement<RichTextTagType.AttachedRef> createRichTextTagTypeAttachedRef(RichTextTagType.AttachedRef value) {
+ return new JAXBElement<RichTextTagType.AttachedRef>(_RichTextTagTypeAttachedRef_QNAME, RichTextTagType.AttachedRef.class, RichTextTagType.class, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "urn:crue:academic:xsd:language:diplomasupplement", name = "Underline", scope = RichTextTagType.class)
+ public JAXBElement<String> createRichTextTagTypeUnderline(String value) {
+ return new JAXBElement<String>(_RichTextTagTypeUnderline_QNAME, String.class, RichTextTagType.class, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "urn:crue:academic:xsd:language:diplomasupplement", name = "Bold", scope = RichTextTagType.class)
+ public JAXBElement<String> createRichTextTagTypeBold(String value) {
+ return new JAXBElement<String>(_RichTextTagTypeBold_QNAME, String.class, RichTextTagType.class, value);
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/OfficialCertifyingType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/OfficialCertifyingType.java
new file mode 100644
index 000000000..1d2cfd97e
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/OfficialCertifyingType.java
@@ -0,0 +1,155 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.crue.academic.xsd.language.diplomasupplement;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * Official certifying the DS
+ *
+ * <p>Java class for OfficialCertifyingType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="OfficialCertifyingType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="FamilyName" type="{urn:crue:academic:xsd:language:diplomasupplement}FamilyNameType"/>
+ * &lt;element name="GivenName" type="{urn:crue:academic:xsd:language:diplomasupplement}GivenNameType"/>
+ * &lt;element name="Capacity" type="{urn:crue:academic:xsd:language:diplomasupplement}PlainTextType"/>
+ * &lt;/sequence>
+ * &lt;attribute name="awardingInstitutionID" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "OfficialCertifyingType", propOrder = {
+ "familyName",
+ "givenName",
+ "capacity"
+})
+public class OfficialCertifyingType {
+
+ @XmlElement(name = "FamilyName", required = true)
+ protected FamilyNameType familyName;
+ @XmlElement(name = "GivenName", required = true)
+ protected GivenNameType givenName;
+ @XmlElement(name = "Capacity", required = true)
+ protected String capacity;
+ @XmlAttribute(name = "awardingInstitutionID", required = true)
+ protected String awardingInstitutionID;
+
+ /**
+ * Gets the value of the familyName property.
+ *
+ * @return
+ * possible object is
+ * {@link FamilyNameType }
+ *
+ */
+ public FamilyNameType getFamilyName() {
+ return familyName;
+ }
+
+ /**
+ * Sets the value of the familyName property.
+ *
+ * @param value
+ * allowed object is
+ * {@link FamilyNameType }
+ *
+ */
+ public void setFamilyName(FamilyNameType value) {
+ this.familyName = value;
+ }
+
+ /**
+ * Gets the value of the givenName property.
+ *
+ * @return
+ * possible object is
+ * {@link GivenNameType }
+ *
+ */
+ public GivenNameType getGivenName() {
+ return givenName;
+ }
+
+ /**
+ * Sets the value of the givenName property.
+ *
+ * @param value
+ * allowed object is
+ * {@link GivenNameType }
+ *
+ */
+ public void setGivenName(GivenNameType value) {
+ this.givenName = value;
+ }
+
+ /**
+ * Gets the value of the capacity property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getCapacity() {
+ return capacity;
+ }
+
+ /**
+ * Sets the value of the capacity property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setCapacity(String value) {
+ this.capacity = value;
+ }
+
+ /**
+ * Gets the value of the awardingInstitutionID property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getAwardingInstitutionID() {
+ return awardingInstitutionID;
+ }
+
+ /**
+ * Sets the value of the awardingInstitutionID property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setAwardingInstitutionID(String value) {
+ this.awardingInstitutionID = value;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/OfficialStampType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/OfficialStampType.java
new file mode 100644
index 000000000..af9007a1b
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/OfficialStampType.java
@@ -0,0 +1,99 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.crue.academic.xsd.language.diplomasupplement;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * Official stamp or seal of the institution
+ *
+ * <p>Java class for OfficialStampType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="OfficialStampType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="Description" type="{urn:crue:academic:xsd:language:diplomasupplement}PlainTextType"/>
+ * &lt;/sequence>
+ * &lt;attribute name="awardingInstitutionID" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "OfficialStampType", propOrder = {
+ "description"
+})
+public class OfficialStampType {
+
+ @XmlElement(name = "Description", required = true)
+ protected String description;
+ @XmlAttribute(name = "awardingInstitutionID", required = true)
+ protected String awardingInstitutionID;
+
+ /**
+ * Gets the value of the description property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getDescription() {
+ return description;
+ }
+
+ /**
+ * Sets the value of the description property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setDescription(String value) {
+ this.description = value;
+ }
+
+ /**
+ * Gets the value of the awardingInstitutionID property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getAwardingInstitutionID() {
+ return awardingInstitutionID;
+ }
+
+ /**
+ * Sets the value of the awardingInstitutionID property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setAwardingInstitutionID(String value) {
+ this.awardingInstitutionID = value;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/OfficialsCertifyingType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/OfficialsCertifyingType.java
new file mode 100644
index 000000000..392e8d412
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/OfficialsCertifyingType.java
@@ -0,0 +1,78 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.crue.academic.xsd.language.diplomasupplement;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * Officials certifying
+ *
+ * <p>Java class for OfficialsCertifyingType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="OfficialsCertifyingType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="OfficialCertifying" type="{urn:crue:academic:xsd:language:diplomasupplement}OfficialCertifyingType" maxOccurs="unbounded"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "OfficialsCertifyingType", propOrder = {
+ "officialCertifying"
+})
+public class OfficialsCertifyingType {
+
+ @XmlElement(name = "OfficialCertifying", required = true)
+ protected List<OfficialCertifyingType> officialCertifying;
+
+ /**
+ * Gets the value of the officialCertifying property.
+ *
+ * <p>
+ * 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 <CODE>set</CODE> method for the officialCertifying property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getOfficialCertifying().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link OfficialCertifyingType }
+ *
+ *
+ */
+ public List<OfficialCertifyingType> getOfficialCertifying() {
+ if (officialCertifying == null) {
+ officialCertifying = new ArrayList<OfficialCertifyingType>();
+ }
+ return this.officialCertifying;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/ProgrammeDetailsType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/ProgrammeDetailsType.java
new file mode 100644
index 000000000..a6e27914c
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/ProgrammeDetailsType.java
@@ -0,0 +1,99 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.crue.academic.xsd.language.diplomasupplement;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * Programme details
+ *
+ * <p>Java class for ProgrammeDetailsType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="ProgrammeDetailsType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="CourseStructureDiagram" type="{urn:crue:academic:xsd:language:diplomasupplement}CourseStructureDiagramType"/>
+ * &lt;element name="CoursesAttendedInOtherInstitutionInMobilityPrograms" type="{urn:crue:academic:xsd:language:diplomasupplement}CoursesAttendedInOtherInstitutionInMobilityProgramsType" minOccurs="0"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "ProgrammeDetailsType", propOrder = {
+ "courseStructureDiagram",
+ "coursesAttendedInOtherInstitutionInMobilityPrograms"
+})
+public class ProgrammeDetailsType {
+
+ @XmlElement(name = "CourseStructureDiagram", required = true)
+ protected CourseStructureDiagramType courseStructureDiagram;
+ @XmlElement(name = "CoursesAttendedInOtherInstitutionInMobilityPrograms")
+ protected CoursesAttendedInOtherInstitutionInMobilityProgramsType coursesAttendedInOtherInstitutionInMobilityPrograms;
+
+ /**
+ * Gets the value of the courseStructureDiagram property.
+ *
+ * @return
+ * possible object is
+ * {@link CourseStructureDiagramType }
+ *
+ */
+ public CourseStructureDiagramType getCourseStructureDiagram() {
+ return courseStructureDiagram;
+ }
+
+ /**
+ * Sets the value of the courseStructureDiagram property.
+ *
+ * @param value
+ * allowed object is
+ * {@link CourseStructureDiagramType }
+ *
+ */
+ public void setCourseStructureDiagram(CourseStructureDiagramType value) {
+ this.courseStructureDiagram = value;
+ }
+
+ /**
+ * Gets the value of the coursesAttendedInOtherInstitutionInMobilityPrograms property.
+ *
+ * @return
+ * possible object is
+ * {@link CoursesAttendedInOtherInstitutionInMobilityProgramsType }
+ *
+ */
+ public CoursesAttendedInOtherInstitutionInMobilityProgramsType getCoursesAttendedInOtherInstitutionInMobilityPrograms() {
+ return coursesAttendedInOtherInstitutionInMobilityPrograms;
+ }
+
+ /**
+ * Sets the value of the coursesAttendedInOtherInstitutionInMobilityPrograms property.
+ *
+ * @param value
+ * allowed object is
+ * {@link CoursesAttendedInOtherInstitutionInMobilityProgramsType }
+ *
+ */
+ public void setCoursesAttendedInOtherInstitutionInMobilityPrograms(CoursesAttendedInOtherInstitutionInMobilityProgramsType value) {
+ this.coursesAttendedInOtherInstitutionInMobilityPrograms = value;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/ProgrammeRequirementsType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/ProgrammeRequirementsType.java
new file mode 100644
index 000000000..e0f358aca
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/ProgrammeRequirementsType.java
@@ -0,0 +1,99 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.crue.academic.xsd.language.diplomasupplement;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * Programme requirements
+ *
+ * <p>Java class for ProgrammeRequirementsType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="ProgrammeRequirementsType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="Requirements" type="{urn:crue:academic:xsd:language:diplomasupplement}RichTextTagType"/>
+ * &lt;element name="KeyLearningOutcomes" type="{urn:crue:academic:xsd:language:diplomasupplement}RichTextTagType" minOccurs="0"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "ProgrammeRequirementsType", propOrder = {
+ "requirements",
+ "keyLearningOutcomes"
+})
+public class ProgrammeRequirementsType {
+
+ @XmlElement(name = "Requirements", required = true)
+ protected RichTextTagType requirements;
+ @XmlElement(name = "KeyLearningOutcomes")
+ protected RichTextTagType keyLearningOutcomes;
+
+ /**
+ * Gets the value of the requirements property.
+ *
+ * @return
+ * possible object is
+ * {@link RichTextTagType }
+ *
+ */
+ public RichTextTagType getRequirements() {
+ return requirements;
+ }
+
+ /**
+ * Sets the value of the requirements property.
+ *
+ * @param value
+ * allowed object is
+ * {@link RichTextTagType }
+ *
+ */
+ public void setRequirements(RichTextTagType value) {
+ this.requirements = value;
+ }
+
+ /**
+ * Gets the value of the keyLearningOutcomes property.
+ *
+ * @return
+ * possible object is
+ * {@link RichTextTagType }
+ *
+ */
+ public RichTextTagType getKeyLearningOutcomes() {
+ return keyLearningOutcomes;
+ }
+
+ /**
+ * Sets the value of the keyLearningOutcomes property.
+ *
+ * @param value
+ * allowed object is
+ * {@link RichTextTagType }
+ *
+ */
+ public void setKeyLearningOutcomes(RichTextTagType value) {
+ this.keyLearningOutcomes = value;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/QualificationType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/QualificationType.java
new file mode 100644
index 000000000..8700fcfca
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/QualificationType.java
@@ -0,0 +1,154 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.crue.academic.xsd.language.diplomasupplement;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * Qualification
+ *
+ * <p>Java class for QualificationType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="QualificationType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="Name" type="{urn:crue:academic:xsd:language:diplomasupplement}PlainTextType"/>
+ * &lt;element name="AdditionalInformation" type="{urn:crue:academic:xsd:language:diplomasupplement}RichTextTagType" minOccurs="0"/>
+ * &lt;/sequence>
+ * &lt;attribute name="localID" type="{urn:crue:academic:xsd:language:diplomasupplement}PlainTextType" />
+ * &lt;attribute name="nationalID" type="{urn:crue:academic:xsd:language:diplomasupplement}PlainTextType" />
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "QualificationType", propOrder = {
+ "name",
+ "additionalInformation"
+})
+public class QualificationType {
+
+ @XmlElement(name = "Name", required = true)
+ protected String name;
+ @XmlElement(name = "AdditionalInformation")
+ protected RichTextTagType additionalInformation;
+ @XmlAttribute(name = "localID")
+ protected String localID;
+ @XmlAttribute(name = "nationalID")
+ protected String nationalID;
+
+ /**
+ * Gets the value of the name property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * Sets the value of the name property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setName(String value) {
+ this.name = value;
+ }
+
+ /**
+ * Gets the value of the additionalInformation property.
+ *
+ * @return
+ * possible object is
+ * {@link RichTextTagType }
+ *
+ */
+ public RichTextTagType getAdditionalInformation() {
+ return additionalInformation;
+ }
+
+ /**
+ * Sets the value of the additionalInformation property.
+ *
+ * @param value
+ * allowed object is
+ * {@link RichTextTagType }
+ *
+ */
+ public void setAdditionalInformation(RichTextTagType value) {
+ this.additionalInformation = value;
+ }
+
+ /**
+ * Gets the value of the localID property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getLocalID() {
+ return localID;
+ }
+
+ /**
+ * Sets the value of the localID property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setLocalID(String value) {
+ this.localID = value;
+ }
+
+ /**
+ * Gets the value of the nationalID property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getNationalID() {
+ return nationalID;
+ }
+
+ /**
+ * Sets the value of the nationalID property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setNationalID(String value) {
+ this.nationalID = value;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/RichTextTagType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/RichTextTagType.java
new file mode 100644
index 000000000..18d44c09b
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/RichTextTagType.java
@@ -0,0 +1,201 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.crue.academic.xsd.language.diplomasupplement;
+
+import java.io.Serializable;
+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.XmlAttribute;
+import javax.xml.bind.annotation.XmlElementRef;
+import javax.xml.bind.annotation.XmlElementRefs;
+import javax.xml.bind.annotation.XmlIDREF;
+import javax.xml.bind.annotation.XmlMixed;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlSeeAlso;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlValue;
+
+
+/**
+ * Rich text tag
+ *
+ * <p>Java class for RichTextTagType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="RichTextTagType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;choice maxOccurs="unbounded" minOccurs="0">
+ * &lt;element name="Bold" type="{urn:crue:academic:xsd:language:diplomasupplement}PlainTextType"/>
+ * &lt;element name="BreakLine" type="{urn:crue:academic:xsd:language:diplomasupplement}EmptyType"/>
+ * &lt;element name="Italic" type="{urn:crue:academic:xsd:language:diplomasupplement}PlainTextType"/>
+ * &lt;element name="Underline" type="{urn:crue:academic:xsd:language:diplomasupplement}PlainTextType"/>
+ * &lt;element name="AttachedRef">
+ * &lt;complexType>
+ * &lt;simpleContent>
+ * &lt;extension base="&lt;urn:crue:academic:xsd:language:diplomasupplement>PlainTextType">
+ * &lt;attribute name="attachedID" use="required" type="{http://www.w3.org/2001/XMLSchema}IDREF" />
+ * &lt;/extension>
+ * &lt;/simpleContent>
+ * &lt;/complexType>
+ * &lt;/element>
+ * &lt;/choice>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "RichTextTagType", propOrder = {
+ "content"
+})
+@XmlSeeAlso({
+ eu.stork.peps.complex.attributes.crue.academic.xsd.language.diplomasupplement.InformationOnTheFunctionOfTheQualificationType.ProfessionalStatus.class,
+ eu.stork.peps.complex.attributes.crue.academic.xsd.language.diplomasupplement.InformationOnTheLevelOfTheQualificationType.Level.class,
+ eu.stork.peps.complex.attributes.crue.academic.xsd.language.diplomasupplement.InformationOnTheLevelOfTheQualificationType.OfficialLengthOfProgramme.class,
+ eu.stork.peps.complex.attributes.crue.academic.xsd.language.diplomasupplement.InformationOnTheContentsAndResultsGainedType.ModeOfStudy.class,
+ eu.stork.peps.complex.attributes.crue.academic.xsd.language.diplomasupplement.LanguagesOfInstructionAndExaminationType.Language.class
+})
+public class RichTextTagType {
+
+ @XmlElementRefs({
+ @XmlElementRef(name = "Underline", namespace = "urn:crue:academic:xsd:language:diplomasupplement", type = JAXBElement.class, required = false),
+ @XmlElementRef(name = "AttachedRef", namespace = "urn:crue:academic:xsd:language:diplomasupplement", type = JAXBElement.class, required = false),
+ @XmlElementRef(name = "BreakLine", namespace = "urn:crue:academic:xsd:language:diplomasupplement", type = JAXBElement.class, required = false),
+ @XmlElementRef(name = "Bold", namespace = "urn:crue:academic:xsd:language:diplomasupplement", type = JAXBElement.class, required = false),
+ @XmlElementRef(name = "Italic", namespace = "urn:crue:academic:xsd:language:diplomasupplement", type = JAXBElement.class, required = false)
+ })
+ @XmlMixed
+ protected List<Serializable> content;
+
+ /**
+ * Rich text tag Gets the value of the content property.
+ *
+ * <p>
+ * 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 <CODE>set</CODE> method for the content property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getContent().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link JAXBElement }{@code <}{@link String }{@code >}
+ * {@link String }
+ * {@link JAXBElement }{@code <}{@link RichTextTagType.AttachedRef }{@code >}
+ * {@link JAXBElement }{@code <}{@link String }{@code >}
+ * {@link JAXBElement }{@code <}{@link String }{@code >}
+ * {@link JAXBElement }{@code <}{@link String }{@code >}
+ *
+ *
+ */
+ public List<Serializable> getContent() {
+ if (content == null) {
+ content = new ArrayList<Serializable>();
+ }
+ return this.content;
+ }
+
+
+ /**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType>
+ * &lt;simpleContent>
+ * &lt;extension base="&lt;urn:crue:academic:xsd:language:diplomasupplement>PlainTextType">
+ * &lt;attribute name="attachedID" use="required" type="{http://www.w3.org/2001/XMLSchema}IDREF" />
+ * &lt;/extension>
+ * &lt;/simpleContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+ @XmlAccessorType(XmlAccessType.FIELD)
+ @XmlType(name = "", propOrder = {
+ "value"
+ })
+ public static class AttachedRef {
+
+ @XmlValue
+ protected String value;
+ @XmlAttribute(name = "attachedID", required = true)
+ @XmlIDREF
+ @XmlSchemaType(name = "IDREF")
+ protected Object attachedID;
+
+ /**
+ * Plain text constraint
+ *
+ * Non empty text
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getValue() {
+ return value;
+ }
+
+ /**
+ * Sets the value of the value property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setValue(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Gets the value of the attachedID property.
+ *
+ * @return
+ * possible object is
+ * {@link Object }
+ *
+ */
+ public Object getAttachedID() {
+ return attachedID;
+ }
+
+ /**
+ * Sets the value of the attachedID property.
+ *
+ * @param value
+ * allowed object is
+ * {@link Object }
+ *
+ */
+ public void setAttachedID(Object value) {
+ this.attachedID = value;
+ }
+
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/SourceGradeType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/SourceGradeType.java
new file mode 100644
index 000000000..be97a835f
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/SourceGradeType.java
@@ -0,0 +1,76 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.crue.academic.xsd.language.diplomasupplement;
+
+import javax.xml.bind.annotation.XmlEnum;
+import javax.xml.bind.annotation.XmlEnumValue;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for SourceGradeType.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * <p>
+ * <pre>
+ * &lt;simpleType name="SourceGradeType">
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ * &lt;enumeration value="Recognized"/>
+ * &lt;enumeration value="MobilityProgramme"/>
+ * &lt;enumeration value="Another"/>
+ * &lt;/restriction>
+ * &lt;/simpleType>
+ * </pre>
+ *
+ */
+@XmlType(name = "SourceGradeType")
+@XmlEnum
+public enum SourceGradeType {
+
+
+ /**
+ * Recognized
+ *
+ */
+ @XmlEnumValue("Recognized")
+ RECOGNIZED("Recognized"),
+
+ /**
+ * Course unit attended in mobility programme
+ *
+ */
+ @XmlEnumValue("MobilityProgramme")
+ MOBILITY_PROGRAMME("MobilityProgramme"),
+
+ /**
+ * Another
+ *
+ */
+ @XmlEnumValue("Another")
+ ANOTHER("Another");
+ private final String value;
+
+ SourceGradeType(String v) {
+ value = v;
+ }
+
+ public String value() {
+ return value;
+ }
+
+ public static SourceGradeType fromValue(String v) {
+ for (SourceGradeType c: SourceGradeType.values()) {
+ if (c.value.equals(v)) {
+ return c;
+ }
+ }
+ throw new IllegalArgumentException(v);
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/TitleConferredType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/TitleConferredType.java
new file mode 100644
index 000000000..7d06458e0
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/TitleConferredType.java
@@ -0,0 +1,71 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.crue.academic.xsd.language.diplomasupplement;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * Title conferred
+ *
+ * <p>Java class for TitleConferredType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="TitleConferredType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="Name" type="{urn:crue:academic:xsd:language:diplomasupplement}PlainTextType"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "TitleConferredType", propOrder = {
+ "name"
+})
+public class TitleConferredType {
+
+ @XmlElement(name = "Name", required = true)
+ protected String name;
+
+ /**
+ * Gets the value of the name property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * Sets the value of the name property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setName(String value) {
+ this.name = value;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/package-info.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/package-info.java
new file mode 100644
index 000000000..427159cb8
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/crue/academic/xsd/language/diplomasupplement/package-info.java
@@ -0,0 +1,9 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+@javax.xml.bind.annotation.XmlSchema(namespace = "urn:crue:academic:xsd:language:diplomasupplement", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
+package eu.stork.peps.complex.attributes.crue.academic.xsd.language.diplomasupplement;
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/AcTitleType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_1_0/assertion/AcTitleType.java
index 3c214cb7b..7877f8cee 100644
--- a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/AcTitleType.java
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_1_0/assertion/AcTitleType.java
@@ -1,89 +1,89 @@
-//
-// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
-// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
-// Any modifications to this file will be lost upon recompilation of the source schema.
-// Generated on: 2014.02.17 at 10:36:59 AM GMT
-//
-
-
-package eu.stork.peps.complex.attributes;
-
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlType;
-
-
-/**
- * <p>Java class for acTitleType complex type.
- *
- * <p>The following schema fragment specifies the expected content contained within this class.
- *
- * <pre>
- * &lt;complexType name="acTitleType">
- * &lt;complexContent>
- * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * &lt;sequence>
- * &lt;element name="titleNormalised" type="{urn:eu:stork:names:tc:STORK:1.0:assertion}titleNormalisedType"/>
- * &lt;element name="AQAA" type="{urn:eu:stork:names:tc:STORK:1.0:assertion}QualityAuthenticationAssuranceLevelType"/>
- * &lt;/sequence>
- * &lt;/restriction>
- * &lt;/complexContent>
- * &lt;/complexType>
- * </pre>
- *
- *
- */
-@XmlAccessorType(XmlAccessType.FIELD)
-@XmlType(name = "acTitleType", propOrder = {
- "titleNormalised",
- "aqaa"
-})
-public class AcTitleType {
-
- @XmlElement(required = true)
- protected String titleNormalised;
- @XmlElement(name = "AQAA")
- protected int aqaa;
-
- /**
- * Gets the value of the titleNormalised property.
- *
- * @return
- * possible object is
- * {@link String }
- *
- */
- public String getTitleNormalised() {
- return titleNormalised;
- }
-
- /**
- * Sets the value of the titleNormalised property.
- *
- * @param value
- * allowed object is
- * {@link String }
- *
- */
- public void setTitleNormalised(String value) {
- this.titleNormalised = value;
- }
-
- /**
- * Gets the value of the aqaa property.
- *
- */
- public int getAQAA() {
- return aqaa;
- }
-
- /**
- * Sets the value of the aqaa property.
- *
- */
- public void setAQAA(int value) {
- this.aqaa = value;
- }
-
-}
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._1_0.assertion;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for acTitleType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="acTitleType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="titleNormalised" type="{urn:eu:stork:names:tc:STORK:1.0:assertion}titleNormalisedType"/>
+ * &lt;element name="AQAA" type="{urn:eu:stork:names:tc:STORK:1.0:assertion}QualityAuthenticationAssuranceLevelType"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "acTitleType", propOrder = {
+ "titleNormalised",
+ "aqaa"
+})
+public class AcTitleType {
+
+ @XmlElement(required = true)
+ protected String titleNormalised;
+ @XmlElement(name = "AQAA")
+ protected int aqaa;
+
+ /**
+ * Gets the value of the titleNormalised property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getTitleNormalised() {
+ return titleNormalised;
+ }
+
+ /**
+ * Sets the value of the titleNormalised property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setTitleNormalised(String value) {
+ this.titleNormalised = value;
+ }
+
+ /**
+ * Gets the value of the aqaa property.
+ *
+ */
+ public int getAQAA() {
+ return aqaa;
+ }
+
+ /**
+ * Sets the value of the aqaa property.
+ *
+ */
+ public void setAQAA(int value) {
+ this.aqaa = value;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/AttributeStatusType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_1_0/assertion/AttributeStatusType.java
index 1a815e944..e2dd4e5e0 100644
--- a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/AttributeStatusType.java
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_1_0/assertion/AttributeStatusType.java
@@ -1,61 +1,61 @@
-//
-// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
-// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
-// Any modifications to this file will be lost upon recompilation of the source schema.
-// Generated on: 2014.02.17 at 10:36:59 AM GMT
-//
-
-
-package eu.stork.peps.complex.attributes;
-
-import javax.xml.bind.annotation.XmlEnum;
-import javax.xml.bind.annotation.XmlEnumValue;
-import javax.xml.bind.annotation.XmlType;
-
-
-/**
- * <p>Java class for AttributeStatusType.
- *
- * <p>The following schema fragment specifies the expected content contained within this class.
- * <p>
- * <pre>
- * &lt;simpleType name="AttributeStatusType">
- * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">
- * &lt;enumeration value="Available"/>
- * &lt;enumeration value="NotAvailable"/>
- * &lt;enumeration value="Withheld"/>
- * &lt;/restriction>
- * &lt;/simpleType>
- * </pre>
- *
- */
-@XmlType(name = "AttributeStatusType")
-@XmlEnum
-public enum AttributeStatusType {
-
- @XmlEnumValue("Available")
- AVAILABLE("Available"),
- @XmlEnumValue("NotAvailable")
- NOT_AVAILABLE("NotAvailable"),
- @XmlEnumValue("Withheld")
- WITHHELD("Withheld");
- private final String value;
-
- AttributeStatusType(String v) {
- value = v;
- }
-
- public String value() {
- return value;
- }
-
- public static AttributeStatusType fromValue(String v) {
- for (AttributeStatusType c: AttributeStatusType.values()) {
- if (c.value.equals(v)) {
- return c;
- }
- }
- throw new IllegalArgumentException(v);
- }
-
-}
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._1_0.assertion;
+
+import javax.xml.bind.annotation.XmlEnum;
+import javax.xml.bind.annotation.XmlEnumValue;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for AttributeStatusType.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * <p>
+ * <pre>
+ * &lt;simpleType name="AttributeStatusType">
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ * &lt;enumeration value="Available"/>
+ * &lt;enumeration value="NotAvailable"/>
+ * &lt;enumeration value="Withheld"/>
+ * &lt;/restriction>
+ * &lt;/simpleType>
+ * </pre>
+ *
+ */
+@XmlType(name = "AttributeStatusType")
+@XmlEnum
+public enum AttributeStatusType {
+
+ @XmlEnumValue("Available")
+ AVAILABLE("Available"),
+ @XmlEnumValue("NotAvailable")
+ NOT_AVAILABLE("NotAvailable"),
+ @XmlEnumValue("Withheld")
+ WITHHELD("Withheld");
+ private final String value;
+
+ AttributeStatusType(String v) {
+ value = v;
+ }
+
+ public String value() {
+ return value;
+ }
+
+ public static AttributeStatusType fromValue(String v) {
+ for (AttributeStatusType c: AttributeStatusType.values()) {
+ if (c.value.equals(v)) {
+ return c;
+ }
+ }
+ throw new IllegalArgumentException(v);
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/CanonicalAddressType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_1_0/assertion/CanonicalAddressType.java
index fa0289cfa..2c2117c14 100644
--- a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/CanonicalAddressType.java
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_1_0/assertion/CanonicalAddressType.java
@@ -1,264 +1,264 @@
-//
-// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
-// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
-// Any modifications to this file will be lost upon recompilation of the source schema.
-// Generated on: 2014.02.17 at 10:36:59 AM GMT
-//
-
-
-package eu.stork.peps.complex.attributes;
-
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlType;
-import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
-import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
-
-
-/**
- * <p>Java class for canonicalAddressType complex type.
- *
- * <p>The following schema fragment specifies the expected content contained within this class.
- *
- * <pre>
- * &lt;complexType name="canonicalAddressType">
- * &lt;complexContent>
- * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * &lt;sequence>
- * &lt;element name="countryCodeAddress" type="{urn:eu:stork:names:tc:STORK:1.0:assertion}CountryCodeType"/>
- * &lt;element name="state" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- * &lt;element name="municipalityCode" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- * &lt;element name="town" type="{http://www.w3.org/2001/XMLSchema}string"/>
- * &lt;element name="postalCode" type="{http://www.w3.org/2001/XMLSchema}string"/>
- * &lt;element name="streetName" type="{http://www.w3.org/2001/XMLSchema}string"/>
- * &lt;element name="streetNumber" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- * &lt;element name="apartmentNumber" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
- * &lt;/sequence>
- * &lt;/restriction>
- * &lt;/complexContent>
- * &lt;/complexType>
- * </pre>
- *
- *
- */
-@XmlAccessorType(XmlAccessType.FIELD)
-@XmlType(name = "canonicalAddressType", propOrder = {
- "countryCodeAddress",
- "state",
- "municipalityCode",
- "town",
- "postalCode",
- "streetName",
- "streetNumber",
- "apartmentNumber"
-})
-public class CanonicalAddressType {
-
- @XmlElement(required = true)
- @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
- protected String countryCodeAddress;
- protected String state;
- protected String municipalityCode;
- @XmlElement(required = true)
- protected String town;
- @XmlElement(required = true)
- protected String postalCode;
- @XmlElement(required = true)
- protected String streetName;
- protected String streetNumber;
- protected String apartmentNumber;
-
- /**
- * Gets the value of the countryCodeAddress property.
- *
- * @return
- * possible object is
- * {@link String }
- *
- */
- public String getCountryCodeAddress() {
- return countryCodeAddress;
- }
-
- /**
- * Sets the value of the countryCodeAddress property.
- *
- * @param value
- * allowed object is
- * {@link String }
- *
- */
- public void setCountryCodeAddress(String value) {
- this.countryCodeAddress = value;
- }
-
- /**
- * Gets the value of the state property.
- *
- * @return
- * possible object is
- * {@link String }
- *
- */
- public String getState() {
- return state;
- }
-
- /**
- * Sets the value of the state property.
- *
- * @param value
- * allowed object is
- * {@link String }
- *
- */
- public void setState(String value) {
- this.state = value;
- }
-
- /**
- * Gets the value of the municipalityCode property.
- *
- * @return
- * possible object is
- * {@link String }
- *
- */
- public String getMunicipalityCode() {
- return municipalityCode;
- }
-
- /**
- * Sets the value of the municipalityCode property.
- *
- * @param value
- * allowed object is
- * {@link String }
- *
- */
- public void setMunicipalityCode(String value) {
- this.municipalityCode = value;
- }
-
- /**
- * Gets the value of the town property.
- *
- * @return
- * possible object is
- * {@link String }
- *
- */
- public String getTown() {
- return town;
- }
-
- /**
- * Sets the value of the town property.
- *
- * @param value
- * allowed object is
- * {@link String }
- *
- */
- public void setTown(String value) {
- this.town = value;
- }
-
- /**
- * Gets the value of the postalCode property.
- *
- * @return
- * possible object is
- * {@link String }
- *
- */
- public String getPostalCode() {
- return postalCode;
- }
-
- /**
- * Sets the value of the postalCode property.
- *
- * @param value
- * allowed object is
- * {@link String }
- *
- */
- public void setPostalCode(String value) {
- this.postalCode = value;
- }
-
- /**
- * Gets the value of the streetName property.
- *
- * @return
- * possible object is
- * {@link String }
- *
- */
- public String getStreetName() {
- return streetName;
- }
-
- /**
- * Sets the value of the streetName property.
- *
- * @param value
- * allowed object is
- * {@link String }
- *
- */
- public void setStreetName(String value) {
- this.streetName = value;
- }
-
- /**
- * Gets the value of the streetNumber property.
- *
- * @return
- * possible object is
- * {@link String }
- *
- */
- public String getStreetNumber() {
- return streetNumber;
- }
-
- /**
- * Sets the value of the streetNumber property.
- *
- * @param value
- * allowed object is
- * {@link String }
- *
- */
- public void setStreetNumber(String value) {
- this.streetNumber = value;
- }
-
- /**
- * Gets the value of the apartmentNumber property.
- *
- * @return
- * possible object is
- * {@link String }
- *
- */
- public String getApartmentNumber() {
- return apartmentNumber;
- }
-
- /**
- * Sets the value of the apartmentNumber property.
- *
- * @param value
- * allowed object is
- * {@link String }
- *
- */
- public void setApartmentNumber(String value) {
- this.apartmentNumber = value;
- }
-
-}
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._1_0.assertion;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+
+
+/**
+ * <p>Java class for canonicalAddressType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="canonicalAddressType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="countryCodeAddress" type="{urn:eu:stork:names:tc:STORK:1.0:assertion}CountryCodeType"/>
+ * &lt;element name="state" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ * &lt;element name="municipalityCode" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ * &lt;element name="town" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ * &lt;element name="postalCode" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ * &lt;element name="streetName" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ * &lt;element name="streetNumber" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ * &lt;element name="apartmentNumber" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "canonicalAddressType", propOrder = {
+ "countryCodeAddress",
+ "state",
+ "municipalityCode",
+ "town",
+ "postalCode",
+ "streetName",
+ "streetNumber",
+ "apartmentNumber"
+})
+public class CanonicalAddressType {
+
+ @XmlElement(required = true)
+ @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+ protected String countryCodeAddress;
+ protected String state;
+ protected String municipalityCode;
+ @XmlElement(required = true)
+ protected String town;
+ @XmlElement(required = true)
+ protected String postalCode;
+ @XmlElement(required = true)
+ protected String streetName;
+ protected String streetNumber;
+ protected String apartmentNumber;
+
+ /**
+ * Gets the value of the countryCodeAddress property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getCountryCodeAddress() {
+ return countryCodeAddress;
+ }
+
+ /**
+ * Sets the value of the countryCodeAddress property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setCountryCodeAddress(String value) {
+ this.countryCodeAddress = value;
+ }
+
+ /**
+ * Gets the value of the state property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getState() {
+ return state;
+ }
+
+ /**
+ * Sets the value of the state property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setState(String value) {
+ this.state = value;
+ }
+
+ /**
+ * Gets the value of the municipalityCode property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getMunicipalityCode() {
+ return municipalityCode;
+ }
+
+ /**
+ * Sets the value of the municipalityCode property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setMunicipalityCode(String value) {
+ this.municipalityCode = value;
+ }
+
+ /**
+ * Gets the value of the town property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getTown() {
+ return town;
+ }
+
+ /**
+ * Sets the value of the town property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setTown(String value) {
+ this.town = value;
+ }
+
+ /**
+ * Gets the value of the postalCode property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getPostalCode() {
+ return postalCode;
+ }
+
+ /**
+ * Sets the value of the postalCode property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setPostalCode(String value) {
+ this.postalCode = value;
+ }
+
+ /**
+ * Gets the value of the streetName property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getStreetName() {
+ return streetName;
+ }
+
+ /**
+ * Sets the value of the streetName property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setStreetName(String value) {
+ this.streetName = value;
+ }
+
+ /**
+ * Gets the value of the streetNumber property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getStreetNumber() {
+ return streetNumber;
+ }
+
+ /**
+ * Sets the value of the streetNumber property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setStreetNumber(String value) {
+ this.streetNumber = value;
+ }
+
+ /**
+ * Gets the value of the apartmentNumber property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getApartmentNumber() {
+ return apartmentNumber;
+ }
+
+ /**
+ * Sets the value of the apartmentNumber property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setApartmentNumber(String value) {
+ this.apartmentNumber = value;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_1_0/assertion/CurrentStudiesType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_1_0/assertion/CurrentStudiesType.java
new file mode 100644
index 000000000..71f028cea
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_1_0/assertion/CurrentStudiesType.java
@@ -0,0 +1,198 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._1_0.assertion;
+
+import java.math.BigInteger;
+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.XmlType;
+import eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._2_0.academic.generaldiploma.GeneralDiplomaType;
+import eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._2_0.academic.generaldiploma.MultilingualGeneralDiplomaType;
+
+
+/**
+ * <p>Java class for currentStudiesType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="currentStudiesType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;choice>
+ * &lt;element ref="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}MultilingualGeneralDiploma"/>
+ * &lt;element ref="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}GeneralDiploma"/>
+ * &lt;/choice>
+ * &lt;element name="yearOfStudy" type="{http://www.w3.org/2001/XMLSchema}integer"/>
+ * &lt;element name="isEligibleForInternship" type="{http://www.w3.org/2001/XMLSchema}boolean"/>
+ * &lt;element name="AQAA" type="{urn:eu:stork:names:tc:STORK:1.0:assertion}QualityAuthenticationAssuranceLevelType"/>
+ * &lt;any minOccurs="0"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "currentStudiesType", propOrder = {
+ "multilingualGeneralDiploma",
+ "generalDiploma",
+ "yearOfStudy",
+ "isEligibleForInternship",
+ "aqaa",
+ "any"
+})
+public class CurrentStudiesType {
+
+ @XmlElement(name = "MultilingualGeneralDiploma", namespace = "urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma")
+ protected MultilingualGeneralDiplomaType multilingualGeneralDiploma;
+ @XmlElement(name = "GeneralDiploma", namespace = "urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma")
+ protected GeneralDiplomaType generalDiploma;
+ @XmlElement(required = true)
+ protected BigInteger yearOfStudy;
+ protected boolean isEligibleForInternship;
+ @XmlElement(name = "AQAA")
+ protected int aqaa;
+ @XmlAnyElement(lax = true)
+ protected Object any;
+
+ /**
+ * Gets the value of the multilingualGeneralDiploma property.
+ *
+ * @return
+ * possible object is
+ * {@link MultilingualGeneralDiplomaType }
+ *
+ */
+ public MultilingualGeneralDiplomaType getMultilingualGeneralDiploma() {
+ return multilingualGeneralDiploma;
+ }
+
+ /**
+ * Sets the value of the multilingualGeneralDiploma property.
+ *
+ * @param value
+ * allowed object is
+ * {@link MultilingualGeneralDiplomaType }
+ *
+ */
+ public void setMultilingualGeneralDiploma(MultilingualGeneralDiplomaType value) {
+ this.multilingualGeneralDiploma = value;
+ }
+
+ /**
+ * Gets the value of the generalDiploma property.
+ *
+ * @return
+ * possible object is
+ * {@link GeneralDiplomaType }
+ *
+ */
+ public GeneralDiplomaType getGeneralDiploma() {
+ return generalDiploma;
+ }
+
+ /**
+ * Sets the value of the generalDiploma property.
+ *
+ * @param value
+ * allowed object is
+ * {@link GeneralDiplomaType }
+ *
+ */
+ public void setGeneralDiploma(GeneralDiplomaType value) {
+ this.generalDiploma = value;
+ }
+
+ /**
+ * Gets the value of the yearOfStudy property.
+ *
+ * @return
+ * possible object is
+ * {@link BigInteger }
+ *
+ */
+ public BigInteger getYearOfStudy() {
+ return yearOfStudy;
+ }
+
+ /**
+ * Sets the value of the yearOfStudy property.
+ *
+ * @param value
+ * allowed object is
+ * {@link BigInteger }
+ *
+ */
+ public void setYearOfStudy(BigInteger value) {
+ this.yearOfStudy = value;
+ }
+
+ /**
+ * Gets the value of the isEligibleForInternship property.
+ *
+ */
+ public boolean isIsEligibleForInternship() {
+ return isEligibleForInternship;
+ }
+
+ /**
+ * Sets the value of the isEligibleForInternship property.
+ *
+ */
+ public void setIsEligibleForInternship(boolean value) {
+ this.isEligibleForInternship = value;
+ }
+
+ /**
+ * Gets the value of the aqaa property.
+ *
+ */
+ public int getAQAA() {
+ return aqaa;
+ }
+
+ /**
+ * Sets the value of the aqaa property.
+ *
+ */
+ public void setAQAA(int value) {
+ this.aqaa = value;
+ }
+
+ /**
+ * Gets the value of the any property.
+ *
+ * @return
+ * possible object is
+ * {@link Object }
+ *
+ */
+ public Object getAny() {
+ return any;
+ }
+
+ /**
+ * Sets the value of the any property.
+ *
+ * @param value
+ * allowed object is
+ * {@link Object }
+ *
+ */
+ public void setAny(Object value) {
+ this.any = value;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_1_0/assertion/DiplomaSupplementType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_1_0/assertion/DiplomaSupplementType.java
new file mode 100644
index 000000000..584a2e771
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_1_0/assertion/DiplomaSupplementType.java
@@ -0,0 +1,207 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._1_0.assertion;
+
+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.XmlType;
+import eu.stork.peps.complex.attributes.crue.academic.xsd.language.diplomasupplement.MultilingualDiplomaSupplementType;
+import eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._2_0.academic.generaldiploma.GeneralDiplomaType;
+import eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._2_0.academic.generaldiploma.MultilingualGeneralDiplomaType;
+
+
+/**
+ * <p>Java class for diplomaSupplementType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="diplomaSupplementType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;choice>
+ * &lt;element ref="{urn:crue:academic:xsd:language:diplomasupplement}MultilingualDiplomaSupplement"/>
+ * &lt;element ref="{urn:crue:academic:xsd:language:diplomasupplement}DiplomaSupplement"/>
+ * &lt;element ref="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}MultilingualGeneralDiploma"/>
+ * &lt;element ref="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}GeneralDiploma"/>
+ * &lt;/choice>
+ * &lt;element name="AQAA" type="{urn:eu:stork:names:tc:STORK:1.0:assertion}QualityAuthenticationAssuranceLevelType"/>
+ * &lt;any minOccurs="0"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "diplomaSupplementType", propOrder = {
+ "multilingualDiplomaSupplement",
+ "diplomaSupplement",
+ "multilingualGeneralDiploma",
+ "generalDiploma",
+ "aqaa",
+ "any"
+})
+public class DiplomaSupplementType {
+
+ @XmlElement(name = "MultilingualDiplomaSupplement", namespace = "urn:crue:academic:xsd:language:diplomasupplement")
+ protected MultilingualDiplomaSupplementType multilingualDiplomaSupplement;
+ @XmlElement(name = "DiplomaSupplement", namespace = "urn:crue:academic:xsd:language:diplomasupplement")
+ protected eu.stork.peps.complex.attributes.crue.academic.xsd.language.diplomasupplement.DiplomaSupplementType diplomaSupplement;
+ @XmlElement(name = "MultilingualGeneralDiploma", namespace = "urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma")
+ protected MultilingualGeneralDiplomaType multilingualGeneralDiploma;
+ @XmlElement(name = "GeneralDiploma", namespace = "urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma")
+ protected GeneralDiplomaType generalDiploma;
+ @XmlElement(name = "AQAA")
+ protected int aqaa;
+ @XmlAnyElement(lax = true)
+ protected Object any;
+
+ /**
+ * Gets the value of the multilingualDiplomaSupplement property.
+ *
+ * @return
+ * possible object is
+ * {@link MultilingualDiplomaSupplementType }
+ *
+ */
+ public MultilingualDiplomaSupplementType getMultilingualDiplomaSupplement() {
+ return multilingualDiplomaSupplement;
+ }
+
+ /**
+ * Sets the value of the multilingualDiplomaSupplement property.
+ *
+ * @param value
+ * allowed object is
+ * {@link MultilingualDiplomaSupplementType }
+ *
+ */
+ public void setMultilingualDiplomaSupplement(MultilingualDiplomaSupplementType value) {
+ this.multilingualDiplomaSupplement = value;
+ }
+
+ /**
+ * Gets the value of the diplomaSupplement property.
+ *
+ * @return
+ * possible object is
+ * {@link crue.academic.xsd.language.diplomasupplement.DiplomaSupplementType }
+ *
+ */
+ public eu.stork.peps.complex.attributes.crue.academic.xsd.language.diplomasupplement.DiplomaSupplementType getDiplomaSupplement() {
+ return diplomaSupplement;
+ }
+
+ /**
+ * Sets the value of the diplomaSupplement property.
+ *
+ * @param value
+ * allowed object is
+ * {@link crue.academic.xsd.language.diplomasupplement.DiplomaSupplementType }
+ *
+ */
+ public void setDiplomaSupplement(eu.stork.peps.complex.attributes.crue.academic.xsd.language.diplomasupplement.DiplomaSupplementType value) {
+ this.diplomaSupplement = value;
+ }
+
+ /**
+ * Gets the value of the multilingualGeneralDiploma property.
+ *
+ * @return
+ * possible object is
+ * {@link MultilingualGeneralDiplomaType }
+ *
+ */
+ public MultilingualGeneralDiplomaType getMultilingualGeneralDiploma() {
+ return multilingualGeneralDiploma;
+ }
+
+ /**
+ * Sets the value of the multilingualGeneralDiploma property.
+ *
+ * @param value
+ * allowed object is
+ * {@link MultilingualGeneralDiplomaType }
+ *
+ */
+ public void setMultilingualGeneralDiploma(MultilingualGeneralDiplomaType value) {
+ this.multilingualGeneralDiploma = value;
+ }
+
+ /**
+ * Gets the value of the generalDiploma property.
+ *
+ * @return
+ * possible object is
+ * {@link GeneralDiplomaType }
+ *
+ */
+ public GeneralDiplomaType getGeneralDiploma() {
+ return generalDiploma;
+ }
+
+ /**
+ * Sets the value of the generalDiploma property.
+ *
+ * @param value
+ * allowed object is
+ * {@link GeneralDiplomaType }
+ *
+ */
+ public void setGeneralDiploma(GeneralDiplomaType value) {
+ this.generalDiploma = value;
+ }
+
+ /**
+ * Gets the value of the aqaa property.
+ *
+ */
+ public int getAQAA() {
+ return aqaa;
+ }
+
+ /**
+ * Sets the value of the aqaa property.
+ *
+ */
+ public void setAQAA(int value) {
+ this.aqaa = value;
+ }
+
+ /**
+ * Gets the value of the any property.
+ *
+ * @return
+ * possible object is
+ * {@link Object }
+ *
+ */
+ public Object getAny() {
+ return any;
+ }
+
+ /**
+ * Sets the value of the any property.
+ *
+ * @param value
+ * allowed object is
+ * {@link Object }
+ *
+ */
+ public void setAny(Object value) {
+ this.any = value;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/Habilitation.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_1_0/assertion/Habilitation.java
index 3d99c9600..b0fc4d245 100644
--- a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/Habilitation.java
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_1_0/assertion/Habilitation.java
@@ -1,89 +1,89 @@
-//
-// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
-// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
-// Any modifications to this file will be lost upon recompilation of the source schema.
-// Generated on: 2014.02.17 at 10:36:59 AM GMT
-//
-
-
-package eu.stork.peps.complex.attributes;
-
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlType;
-
-
-/**
- * <p>Java class for habilitation complex type.
- *
- * <p>The following schema fragment specifies the expected content contained within this class.
- *
- * <pre>
- * &lt;complexType name="habilitation">
- * &lt;complexContent>
- * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * &lt;sequence>
- * &lt;element name="ability" type="{http://www.w3.org/2001/XMLSchema}string"/>
- * &lt;element name="AQAA" type="{urn:eu:stork:names:tc:STORK:1.0:assertion}QualityAuthenticationAssuranceLevelType"/>
- * &lt;/sequence>
- * &lt;/restriction>
- * &lt;/complexContent>
- * &lt;/complexType>
- * </pre>
- *
- *
- */
-@XmlAccessorType(XmlAccessType.FIELD)
-@XmlType(name = "habilitation", propOrder = {
- "ability",
- "aqaa"
-})
-public class Habilitation {
-
- @XmlElement(required = true)
- protected String ability;
- @XmlElement(name = "AQAA")
- protected int aqaa;
-
- /**
- * Gets the value of the ability property.
- *
- * @return
- * possible object is
- * {@link String }
- *
- */
- public String getAbility() {
- return ability;
- }
-
- /**
- * Sets the value of the ability property.
- *
- * @param value
- * allowed object is
- * {@link String }
- *
- */
- public void setAbility(String value) {
- this.ability = value;
- }
-
- /**
- * Gets the value of the aqaa property.
- *
- */
- public int getAQAA() {
- return aqaa;
- }
-
- /**
- * Sets the value of the aqaa property.
- *
- */
- public void setAQAA(int value) {
- this.aqaa = value;
- }
-
-}
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._1_0.assertion;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for habilitation complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="habilitation">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="ability" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ * &lt;element name="AQAA" type="{urn:eu:stork:names:tc:STORK:1.0:assertion}QualityAuthenticationAssuranceLevelType"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "habilitation", propOrder = {
+ "ability",
+ "aqaa"
+})
+public class Habilitation {
+
+ @XmlElement(required = true)
+ protected String ability;
+ @XmlElement(name = "AQAA")
+ protected int aqaa;
+
+ /**
+ * Gets the value of the ability property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getAbility() {
+ return ability;
+ }
+
+ /**
+ * Sets the value of the ability property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setAbility(String value) {
+ this.ability = value;
+ }
+
+ /**
+ * Gets the value of the aqaa property.
+ *
+ */
+ public int getAQAA() {
+ return aqaa;
+ }
+
+ /**
+ * Sets the value of the aqaa property.
+ *
+ */
+ public void setAQAA(int value) {
+ this.aqaa = value;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/HabilitationType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_1_0/assertion/HabilitationType.java
index 6a5cb7b00..92d600244 100644
--- a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/HabilitationType.java
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_1_0/assertion/HabilitationType.java
@@ -1,89 +1,89 @@
-//
-// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
-// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
-// Any modifications to this file will be lost upon recompilation of the source schema.
-// Generated on: 2014.02.17 at 10:36:59 AM GMT
-//
-
-
-package eu.stork.peps.complex.attributes;
-
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlType;
-
-
-/**
- * <p>Java class for habilitationType complex type.
- *
- * <p>The following schema fragment specifies the expected content contained within this class.
- *
- * <pre>
- * &lt;complexType name="habilitationType">
- * &lt;complexContent>
- * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * &lt;sequence>
- * &lt;element name="ability" type="{http://www.w3.org/2001/XMLSchema}string"/>
- * &lt;element name="AQAA" type="{urn:eu:stork:names:tc:STORK:1.0:assertion}QualityAuthenticationAssuranceLevelType"/>
- * &lt;/sequence>
- * &lt;/restriction>
- * &lt;/complexContent>
- * &lt;/complexType>
- * </pre>
- *
- *
- */
-@XmlAccessorType(XmlAccessType.FIELD)
-@XmlType(name = "habilitationType", propOrder = {
- "ability",
- "aqaa"
-})
-public class HabilitationType {
-
- @XmlElement(required = true)
- protected String ability;
- @XmlElement(name = "AQAA")
- protected int aqaa;
-
- /**
- * Gets the value of the ability property.
- *
- * @return
- * possible object is
- * {@link String }
- *
- */
- public String getAbility() {
- return ability;
- }
-
- /**
- * Sets the value of the ability property.
- *
- * @param value
- * allowed object is
- * {@link String }
- *
- */
- public void setAbility(String value) {
- this.ability = value;
- }
-
- /**
- * Gets the value of the aqaa property.
- *
- */
- public int getAQAA() {
- return aqaa;
- }
-
- /**
- * Sets the value of the aqaa property.
- *
- */
- public void setAQAA(int value) {
- this.aqaa = value;
- }
-
-}
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._1_0.assertion;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for habilitationType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="habilitationType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="ability" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ * &lt;element name="AQAA" type="{urn:eu:stork:names:tc:STORK:1.0:assertion}QualityAuthenticationAssuranceLevelType"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "habilitationType", propOrder = {
+ "ability",
+ "aqaa"
+})
+public class HabilitationType {
+
+ @XmlElement(required = true)
+ protected String ability;
+ @XmlElement(name = "AQAA")
+ protected int aqaa;
+
+ /**
+ * Gets the value of the ability property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getAbility() {
+ return ability;
+ }
+
+ /**
+ * Sets the value of the ability property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setAbility(String value) {
+ this.ability = value;
+ }
+
+ /**
+ * Gets the value of the aqaa property.
+ *
+ */
+ public int getAQAA() {
+ return aqaa;
+ }
+
+ /**
+ * Sets the value of the aqaa property.
+ *
+ */
+ public void setAQAA(int value) {
+ this.aqaa = value;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/HasAccountInBankType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_1_0/assertion/HasAccountInBankType.java
index cc09f0486..6e4edc6e0 100644
--- a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/HasAccountInBankType.java
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_1_0/assertion/HasAccountInBankType.java
@@ -1,89 +1,89 @@
-//
-// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
-// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
-// Any modifications to this file will be lost upon recompilation of the source schema.
-// Generated on: 2014.02.17 at 10:36:59 AM GMT
-//
-
-
-package eu.stork.peps.complex.attributes;
-
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlType;
-
-
-/**
- * <p>Java class for hasAccountInBankType complex type.
- *
- * <p>The following schema fragment specifies the expected content contained within this class.
- *
- * <pre>
- * &lt;complexType name="hasAccountInBankType">
- * &lt;complexContent>
- * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * &lt;sequence>
- * &lt;element name="bankName" type="{http://www.w3.org/2001/XMLSchema}string"/>
- * &lt;element name="AQAA" type="{urn:eu:stork:names:tc:STORK:1.0:assertion}QualityAuthenticationAssuranceLevelType"/>
- * &lt;/sequence>
- * &lt;/restriction>
- * &lt;/complexContent>
- * &lt;/complexType>
- * </pre>
- *
- *
- */
-@XmlAccessorType(XmlAccessType.FIELD)
-@XmlType(name = "hasAccountInBankType", propOrder = {
- "bankName",
- "aqaa"
-})
-public class HasAccountInBankType {
-
- @XmlElement(required = true)
- protected String bankName;
- @XmlElement(name = "AQAA")
- protected int aqaa;
-
- /**
- * Gets the value of the bankName property.
- *
- * @return
- * possible object is
- * {@link String }
- *
- */
- public String getBankName() {
- return bankName;
- }
-
- /**
- * Sets the value of the bankName property.
- *
- * @param value
- * allowed object is
- * {@link String }
- *
- */
- public void setBankName(String value) {
- this.bankName = value;
- }
-
- /**
- * Gets the value of the aqaa property.
- *
- */
- public int getAQAA() {
- return aqaa;
- }
-
- /**
- * Sets the value of the aqaa property.
- *
- */
- public void setAQAA(int value) {
- this.aqaa = value;
- }
-
-}
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._1_0.assertion;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for hasAccountInBankType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="hasAccountInBankType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="bankName" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ * &lt;element name="AQAA" type="{urn:eu:stork:names:tc:STORK:1.0:assertion}QualityAuthenticationAssuranceLevelType"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "hasAccountInBankType", propOrder = {
+ "bankName",
+ "aqaa"
+})
+public class HasAccountInBankType {
+
+ @XmlElement(required = true)
+ protected String bankName;
+ @XmlElement(name = "AQAA")
+ protected int aqaa;
+
+ /**
+ * Gets the value of the bankName property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getBankName() {
+ return bankName;
+ }
+
+ /**
+ * Sets the value of the bankName property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setBankName(String value) {
+ this.bankName = value;
+ }
+
+ /**
+ * Gets the value of the aqaa property.
+ *
+ */
+ public int getAQAA() {
+ return aqaa;
+ }
+
+ /**
+ * Sets the value of the aqaa property.
+ *
+ */
+ public void setAQAA(int value) {
+ this.aqaa = value;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/HasDegreeType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_1_0/assertion/HasDegreeType.java
index ea466cb18..789a527e4 100644
--- a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/HasDegreeType.java
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_1_0/assertion/HasDegreeType.java
@@ -1,174 +1,174 @@
-//
-// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
-// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
-// Any modifications to this file will be lost upon recompilation of the source schema.
-// Generated on: 2014.02.17 at 10:36:59 AM GMT
-//
-
-
-package eu.stork.peps.complex.attributes;
-
-import java.math.BigInteger;
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlType;
-
-
-/**
- * <p>Java class for hasDegreeType complex type.
- *
- * <p>The following schema fragment specifies the expected content contained within this class.
- *
- * <pre>
- * &lt;complexType name="hasDegreeType">
- * &lt;complexContent>
- * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * &lt;sequence>
- * &lt;element name="study" type="{urn:eu:stork:names:tc:STORK:1.0:assertion}studyType"/>
- * &lt;element name="level" type="{urn:eu:stork:names:tc:STORK:1.0:assertion}LevelType"/>
- * &lt;element name="yearObtained" type="{http://www.w3.org/2001/XMLSchema}integer"/>
- * &lt;element name="nameOfInstitution" type="{http://www.w3.org/2001/XMLSchema}string"/>
- * &lt;element name="AQAA" type="{urn:eu:stork:names:tc:STORK:1.0:assertion}QualityAuthenticationAssuranceLevelType"/>
- * &lt;/sequence>
- * &lt;/restriction>
- * &lt;/complexContent>
- * &lt;/complexType>
- * </pre>
- *
- *
- */
-@XmlAccessorType(XmlAccessType.FIELD)
-@XmlType(name = "hasDegreeType", propOrder = {
- "study",
- "level",
- "yearObtained",
- "nameOfInstitution",
- "aqaa"
-})
-public class HasDegreeType {
-
- @XmlElement(required = true)
- protected String study;
- @XmlElement(required = true)
- protected String level;
- @XmlElement(required = true)
- protected BigInteger yearObtained;
- @XmlElement(required = true)
- protected String nameOfInstitution;
- @XmlElement(name = "AQAA")
- protected int aqaa;
-
- /**
- * Gets the value of the study property.
- *
- * @return
- * possible object is
- * {@link String }
- *
- */
- public String getStudy() {
- return study;
- }
-
- /**
- * Sets the value of the study property.
- *
- * @param value
- * allowed object is
- * {@link String }
- *
- */
- public void setStudy(String value) {
- this.study = value;
- }
-
- /**
- * Gets the value of the level property.
- *
- * @return
- * possible object is
- * {@link String }
- *
- */
- public String getLevel() {
- return level;
- }
-
- /**
- * Sets the value of the level property.
- *
- * @param value
- * allowed object is
- * {@link String }
- *
- */
- public void setLevel(String value) {
- this.level = value;
- }
-
- /**
- * Gets the value of the yearObtained property.
- *
- * @return
- * possible object is
- * {@link BigInteger }
- *
- */
- public BigInteger getYearObtained() {
- return yearObtained;
- }
-
- /**
- * Sets the value of the yearObtained property.
- *
- * @param value
- * allowed object is
- * {@link BigInteger }
- *
- */
- public void setYearObtained(BigInteger value) {
- this.yearObtained = value;
- }
-
- /**
- * Gets the value of the nameOfInstitution property.
- *
- * @return
- * possible object is
- * {@link String }
- *
- */
- public String getNameOfInstitution() {
- return nameOfInstitution;
- }
-
- /**
- * Sets the value of the nameOfInstitution property.
- *
- * @param value
- * allowed object is
- * {@link String }
- *
- */
- public void setNameOfInstitution(String value) {
- this.nameOfInstitution = value;
- }
-
- /**
- * Gets the value of the aqaa property.
- *
- */
- public int getAQAA() {
- return aqaa;
- }
-
- /**
- * Sets the value of the aqaa property.
- *
- */
- public void setAQAA(int value) {
- this.aqaa = value;
- }
-
-}
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._1_0.assertion;
+
+import java.math.BigInteger;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for hasDegreeType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="hasDegreeType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="study" type="{urn:eu:stork:names:tc:STORK:1.0:assertion}studyType"/>
+ * &lt;element name="level" type="{urn:eu:stork:names:tc:STORK:1.0:assertion}LevelType"/>
+ * &lt;element name="yearObtained" type="{http://www.w3.org/2001/XMLSchema}integer"/>
+ * &lt;element name="nameOfInstitution" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ * &lt;element name="AQAA" type="{urn:eu:stork:names:tc:STORK:1.0:assertion}QualityAuthenticationAssuranceLevelType"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "hasDegreeType", propOrder = {
+ "study",
+ "level",
+ "yearObtained",
+ "nameOfInstitution",
+ "aqaa"
+})
+public class HasDegreeType {
+
+ @XmlElement(required = true)
+ protected String study;
+ @XmlElement(required = true)
+ protected String level;
+ @XmlElement(required = true)
+ protected BigInteger yearObtained;
+ @XmlElement(required = true)
+ protected String nameOfInstitution;
+ @XmlElement(name = "AQAA")
+ protected int aqaa;
+
+ /**
+ * Gets the value of the study property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getStudy() {
+ return study;
+ }
+
+ /**
+ * Sets the value of the study property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setStudy(String value) {
+ this.study = value;
+ }
+
+ /**
+ * Gets the value of the level property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getLevel() {
+ return level;
+ }
+
+ /**
+ * Sets the value of the level property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setLevel(String value) {
+ this.level = value;
+ }
+
+ /**
+ * Gets the value of the yearObtained property.
+ *
+ * @return
+ * possible object is
+ * {@link BigInteger }
+ *
+ */
+ public BigInteger getYearObtained() {
+ return yearObtained;
+ }
+
+ /**
+ * Sets the value of the yearObtained property.
+ *
+ * @param value
+ * allowed object is
+ * {@link BigInteger }
+ *
+ */
+ public void setYearObtained(BigInteger value) {
+ this.yearObtained = value;
+ }
+
+ /**
+ * Gets the value of the nameOfInstitution property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getNameOfInstitution() {
+ return nameOfInstitution;
+ }
+
+ /**
+ * Sets the value of the nameOfInstitution property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setNameOfInstitution(String value) {
+ this.nameOfInstitution = value;
+ }
+
+ /**
+ * Gets the value of the aqaa property.
+ *
+ */
+ public int getAQAA() {
+ return aqaa;
+ }
+
+ /**
+ * Sets the value of the aqaa property.
+ *
+ */
+ public void setAQAA(int value) {
+ this.aqaa = value;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/IsAcademicStaffType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_1_0/assertion/IsAcademicStaffType.java
index 02d9286d8..fe4422b94 100644
--- a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/IsAcademicStaffType.java
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_1_0/assertion/IsAcademicStaffType.java
@@ -1,145 +1,144 @@
-//
-// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
-// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
-// Any modifications to this file will be lost upon recompilation of the source schema.
-// Generated on: 2014.02.17 at 10:36:59 AM GMT
-//
-
-
-package eu.stork.peps.complex.attributes;
-
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlType;
-
-
-/**
- * <p>Java class for isAcademicStaffType complex type.
- *
- * <p>The following schema fragment specifies the expected content contained within this class.
- *
- * <pre>
- * &lt;complexType name="isAcademicStaffType">
- * &lt;complexContent>
- * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * &lt;sequence>
- * &lt;element name="nameOfInstitution" type="{http://www.w3.org/2001/XMLSchema}string"/>
- * &lt;element name="occupation" type="{urn:eu:stork:names:tc:STORK:1.0:assertion}occupationType"/>
- * &lt;element name="knowledgearea" type="{http://www.w3.org/2001/XMLSchema}string"/>
- * &lt;element name="AQAA" type="{urn:eu:stork:names:tc:STORK:1.0:assertion}QualityAuthenticationAssuranceLevelType"/>
- * &lt;/sequence>
- * &lt;/restriction>
- * &lt;/complexContent>
- * &lt;/complexType>
- * </pre>
- *
- *
- */
-@XmlAccessorType(XmlAccessType.FIELD)
-@XmlType(name = "isAcademicStaffType", propOrder = {
- "nameOfInstitution",
- "occupation",
- "knowledgearea",
- "aqaa"
-})
-public class IsAcademicStaffType {
-
- @XmlElement(required = true)
- protected String nameOfInstitution;
- @XmlElement(required = true)
- protected String occupation;
- @XmlElement(required = true)
- protected String knowledgearea;
- @XmlElement(name = "AQAA")
- protected int aqaa;
-
- /**
- * Gets the value of the nameOfInstitution property.
- *
- * @return
- * possible object is
- * {@link String }
- *
- */
- public String getNameOfInstitution() {
- return nameOfInstitution;
- }
-
- /**
- * Sets the value of the nameOfInstitution property.
- *
- * @param value
- * allowed object is
- * {@link String }
- *
- */
- public void setNameOfInstitution(String value) {
- this.nameOfInstitution = value;
- }
-
- /**
- * Gets the value of the occupation property.
- *
- * @return
- * possible object is
- * {@link String }
- *
- */
- public String getOccupation() {
- return occupation;
- }
-
- /**
- * Sets the value of the occupation property.
- *
- * @param value
- * allowed object is
- * {@link String }
- *
- */
- public void setOccupation(String value) {
- this.occupation = value;
- }
-
- /**
- * Gets the value of the knowledgearea property.
- *
- * @return
- * possible object is
- * {@link String }
- *
- */
- public String getKnowledgearea() {
- return knowledgearea;
- }
-
- /**
- * Sets the value of the knowledgearea property.
- *
- * @param value
- * allowed object is
- * {@link String }
- *
- */
- public void setKnowledgearea(String value) {
- this.knowledgearea = value;
- }
-
- /**
- * Gets the value of the aqaa property.
- *
- */
- public int getAQAA() {
- return aqaa;
- }
-
- /**
- * Sets the value of the aqaa property.
- *
- */
- public void setAQAA(int value) {
- this.aqaa = value;
- }
-
-}
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._1_0.assertion;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for isAcademicStaffType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="isAcademicStaffType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="nameOfInstitution" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ * &lt;element name="occupation" type="{urn:eu:stork:names:tc:STORK:1.0:assertion}occupationType"/>
+ * &lt;element name="knowledgeArea" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ * &lt;element name="AQAA" type="{urn:eu:stork:names:tc:STORK:1.0:assertion}QualityAuthenticationAssuranceLevelType"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "isAcademicStaffType", propOrder = {
+ "nameOfInstitution",
+ "occupation",
+ "knowledgeArea",
+ "aqaa"
+})
+public class IsAcademicStaffType {
+
+ @XmlElement(required = true)
+ protected String nameOfInstitution;
+ @XmlElement(required = true)
+ protected String occupation;
+ protected String knowledgeArea;
+ @XmlElement(name = "AQAA")
+ protected int aqaa;
+
+ /**
+ * Gets the value of the nameOfInstitution property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getNameOfInstitution() {
+ return nameOfInstitution;
+ }
+
+ /**
+ * Sets the value of the nameOfInstitution property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setNameOfInstitution(String value) {
+ this.nameOfInstitution = value;
+ }
+
+ /**
+ * Gets the value of the occupation property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getOccupation() {
+ return occupation;
+ }
+
+ /**
+ * Sets the value of the occupation property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setOccupation(String value) {
+ this.occupation = value;
+ }
+
+ /**
+ * Gets the value of the knowledgeArea property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getKnowledgeArea() {
+ return knowledgeArea;
+ }
+
+ /**
+ * Sets the value of the knowledgeArea property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setKnowledgeArea(String value) {
+ this.knowledgeArea = value;
+ }
+
+ /**
+ * Gets the value of the aqaa property.
+ *
+ */
+ public int getAQAA() {
+ return aqaa;
+ }
+
+ /**
+ * Sets the value of the aqaa property.
+ *
+ */
+ public void setAQAA(int value) {
+ this.aqaa = value;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/IsAdminStaffType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_1_0/assertion/IsAdminStaffType.java
index 0de16ee77..3cc073ed8 100644
--- a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/IsAdminStaffType.java
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_1_0/assertion/IsAdminStaffType.java
@@ -1,89 +1,89 @@
-//
-// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
-// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
-// Any modifications to this file will be lost upon recompilation of the source schema.
-// Generated on: 2014.02.17 at 10:36:59 AM GMT
-//
-
-
-package eu.stork.peps.complex.attributes;
-
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlType;
-
-
-/**
- * <p>Java class for isAdminStaffType complex type.
- *
- * <p>The following schema fragment specifies the expected content contained within this class.
- *
- * <pre>
- * &lt;complexType name="isAdminStaffType">
- * &lt;complexContent>
- * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * &lt;sequence>
- * &lt;element name="adminStaff" type="{http://www.w3.org/2001/XMLSchema}string"/>
- * &lt;element name="AQAA" type="{urn:eu:stork:names:tc:STORK:1.0:assertion}QualityAuthenticationAssuranceLevelType"/>
- * &lt;/sequence>
- * &lt;/restriction>
- * &lt;/complexContent>
- * &lt;/complexType>
- * </pre>
- *
- *
- */
-@XmlAccessorType(XmlAccessType.FIELD)
-@XmlType(name = "isAdminStaffType", propOrder = {
- "adminStaff",
- "aqaa"
-})
-public class IsAdminStaffType {
-
- @XmlElement(required = true)
- protected String adminStaff;
- @XmlElement(name = "AQAA")
- protected int aqaa;
-
- /**
- * Gets the value of the adminStaff property.
- *
- * @return
- * possible object is
- * {@link String }
- *
- */
- public String getAdminStaff() {
- return adminStaff;
- }
-
- /**
- * Sets the value of the adminStaff property.
- *
- * @param value
- * allowed object is
- * {@link String }
- *
- */
- public void setAdminStaff(String value) {
- this.adminStaff = value;
- }
-
- /**
- * Gets the value of the aqaa property.
- *
- */
- public int getAQAA() {
- return aqaa;
- }
-
- /**
- * Sets the value of the aqaa property.
- *
- */
- public void setAQAA(int value) {
- this.aqaa = value;
- }
-
-}
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._1_0.assertion;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for isAdminStaffType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="isAdminStaffType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="adminStaff" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ * &lt;element name="AQAA" type="{urn:eu:stork:names:tc:STORK:1.0:assertion}QualityAuthenticationAssuranceLevelType"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "isAdminStaffType", propOrder = {
+ "adminStaff",
+ "aqaa"
+})
+public class IsAdminStaffType {
+
+ @XmlElement(required = true)
+ protected String adminStaff;
+ @XmlElement(name = "AQAA")
+ protected int aqaa;
+
+ /**
+ * Gets the value of the adminStaff property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getAdminStaff() {
+ return adminStaff;
+ }
+
+ /**
+ * Sets the value of the adminStaff property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setAdminStaff(String value) {
+ this.adminStaff = value;
+ }
+
+ /**
+ * Gets the value of the aqaa property.
+ *
+ */
+ public int getAQAA() {
+ return aqaa;
+ }
+
+ /**
+ * Sets the value of the aqaa property.
+ *
+ */
+ public void setAQAA(int value) {
+ this.aqaa = value;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/IsCourseCoordinatorType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_1_0/assertion/IsCourseCoordinatorType.java
index 58caa2f22..d2151e30c 100644
--- a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/IsCourseCoordinatorType.java
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_1_0/assertion/IsCourseCoordinatorType.java
@@ -1,89 +1,89 @@
-//
-// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
-// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
-// Any modifications to this file will be lost upon recompilation of the source schema.
-// Generated on: 2014.02.17 at 10:36:59 AM GMT
-//
-
-
-package eu.stork.peps.complex.attributes;
-
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlType;
-
-
-/**
- * <p>Java class for isCourseCoordinatorType complex type.
- *
- * <p>The following schema fragment specifies the expected content contained within this class.
- *
- * <pre>
- * &lt;complexType name="isCourseCoordinatorType">
- * &lt;complexContent>
- * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * &lt;sequence>
- * &lt;element name="courseCoodinator" type="{http://www.w3.org/2001/XMLSchema}string"/>
- * &lt;element name="AQAA" type="{urn:eu:stork:names:tc:STORK:1.0:assertion}QualityAuthenticationAssuranceLevelType"/>
- * &lt;/sequence>
- * &lt;/restriction>
- * &lt;/complexContent>
- * &lt;/complexType>
- * </pre>
- *
- *
- */
-@XmlAccessorType(XmlAccessType.FIELD)
-@XmlType(name = "isCourseCoordinatorType", propOrder = {
- "courseCoodinator",
- "aqaa"
-})
-public class IsCourseCoordinatorType {
-
- @XmlElement(required = true)
- protected String courseCoodinator;
- @XmlElement(name = "AQAA")
- protected int aqaa;
-
- /**
- * Gets the value of the courseCoodinator property.
- *
- * @return
- * possible object is
- * {@link String }
- *
- */
- public String getCourseCoodinator() {
- return courseCoodinator;
- }
-
- /**
- * Sets the value of the courseCoodinator property.
- *
- * @param value
- * allowed object is
- * {@link String }
- *
- */
- public void setCourseCoodinator(String value) {
- this.courseCoodinator = value;
- }
-
- /**
- * Gets the value of the aqaa property.
- *
- */
- public int getAQAA() {
- return aqaa;
- }
-
- /**
- * Sets the value of the aqaa property.
- *
- */
- public void setAQAA(int value) {
- this.aqaa = value;
- }
-
-}
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._1_0.assertion;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for isCourseCoordinatorType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="isCourseCoordinatorType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="courseCoodinator" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ * &lt;element name="AQAA" type="{urn:eu:stork:names:tc:STORK:1.0:assertion}QualityAuthenticationAssuranceLevelType"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "isCourseCoordinatorType", propOrder = {
+ "courseCoodinator",
+ "aqaa"
+})
+public class IsCourseCoordinatorType {
+
+ @XmlElement(required = true)
+ protected String courseCoodinator;
+ @XmlElement(name = "AQAA")
+ protected int aqaa;
+
+ /**
+ * Gets the value of the courseCoodinator property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getCourseCoodinator() {
+ return courseCoodinator;
+ }
+
+ /**
+ * Sets the value of the courseCoodinator property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setCourseCoodinator(String value) {
+ this.courseCoodinator = value;
+ }
+
+ /**
+ * Gets the value of the aqaa property.
+ *
+ */
+ public int getAQAA() {
+ return aqaa;
+ }
+
+ /**
+ * Sets the value of the aqaa property.
+ *
+ */
+ public void setAQAA(int value) {
+ this.aqaa = value;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/IsHealthCareProfessionalDeprecatedType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_1_0/assertion/IsHealthCareProfessionalDeprecatedType.java
index b9798537c..711b7d68d 100644
--- a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/IsHealthCareProfessionalDeprecatedType.java
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_1_0/assertion/IsHealthCareProfessionalDeprecatedType.java
@@ -2,11 +2,11 @@
// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
// Any modifications to this file will be lost upon recompilation of the source schema.
-// Generated on: 2014.06.18 at 08:26:57 AM CEST
+// Generated on: 2014.11.27 at 06:17:01 PM CET
//
-package eu.stork.peps.complex.attributes;
+package eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._1_0.assertion;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/IsHealthCareProfessionalType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_1_0/assertion/IsHealthCareProfessionalType.java
index 1e3b4fa78..be11e4ee8 100644
--- a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/IsHealthCareProfessionalType.java
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_1_0/assertion/IsHealthCareProfessionalType.java
@@ -2,11 +2,11 @@
// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
// Any modifications to this file will be lost upon recompilation of the source schema.
-// Generated on: 2014.06.18 at 08:26:57 AM CEST
+// Generated on: 2014.11.27 at 06:17:01 PM CET
//
-package eu.stork.peps.complex.attributes;
+package eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._1_0.assertion;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/IsStudentType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_1_0/assertion/IsStudentType.java
index 6a7dc838a..e02ec9811 100644
--- a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/IsStudentType.java
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_1_0/assertion/IsStudentType.java
@@ -1,146 +1,143 @@
-//
-// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
-// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
-// Any modifications to this file will be lost upon recompilation of the source schema.
-// Generated on: 2014.02.17 at 10:36:59 AM GMT
-//
-
-
-package eu.stork.peps.complex.attributes;
-
-import java.math.BigInteger;
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlType;
-
-
-/**
- * <p>Java class for isStudentType complex type.
- *
- * <p>The following schema fragment specifies the expected content contained within this class.
- *
- * <pre>
- * &lt;complexType name="isStudentType">
- * &lt;complexContent>
- * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * &lt;sequence>
- * &lt;element ref="{urn:eu:stork:names:tc:STORK:1.0:assertion}study"/>
- * &lt;element name="nameOfInstitution" type="{http://www.w3.org/2001/XMLSchema}string"/>
- * &lt;element name="course" type="{http://www.w3.org/2001/XMLSchema}integer"/>
- * &lt;element name="AQAA" type="{urn:eu:stork:names:tc:STORK:1.0:assertion}QualityAuthenticationAssuranceLevelType"/>
- * &lt;/sequence>
- * &lt;/restriction>
- * &lt;/complexContent>
- * &lt;/complexType>
- * </pre>
- *
- *
- */
-@XmlAccessorType(XmlAccessType.FIELD)
-@XmlType(name = "isStudentType", propOrder = {
- "study",
- "nameOfInstitution",
- "course",
- "aqaa"
-})
-public class IsStudentType {
-
- @XmlElement(required = true)
- protected String study;
- @XmlElement(required = true)
- protected String nameOfInstitution;
- @XmlElement(required = true)
- protected BigInteger course;
- @XmlElement(name = "AQAA")
- protected int aqaa;
-
- /**
- * Gets the value of the study property.
- *
- * @return
- * possible object is
- * {@link String }
- *
- */
- public String getStudy() {
- return study;
- }
-
- /**
- * Sets the value of the study property.
- *
- * @param value
- * allowed object is
- * {@link String }
- *
- */
- public void setStudy(String value) {
- this.study = value;
- }
-
- /**
- * Gets the value of the nameOfInstitution property.
- *
- * @return
- * possible object is
- * {@link String }
- *
- */
- public String getNameOfInstitution() {
- return nameOfInstitution;
- }
-
- /**
- * Sets the value of the nameOfInstitution property.
- *
- * @param value
- * allowed object is
- * {@link String }
- *
- */
- public void setNameOfInstitution(String value) {
- this.nameOfInstitution = value;
- }
-
- /**
- * Gets the value of the course property.
- *
- * @return
- * possible object is
- * {@link BigInteger }
- *
- */
- public BigInteger getCourse() {
- return course;
- }
-
- /**
- * Sets the value of the course property.
- *
- * @param value
- * allowed object is
- * {@link BigInteger }
- *
- */
- public void setCourse(BigInteger value) {
- this.course = value;
- }
-
- /**
- * Gets the value of the aqaa property.
- *
- */
- public int getAQAA() {
- return aqaa;
- }
-
- /**
- * Sets the value of the aqaa property.
- *
- */
- public void setAQAA(int value) {
- this.aqaa = value;
- }
-
-}
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._1_0.assertion;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for isStudentType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="isStudentType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element ref="{urn:eu:stork:names:tc:STORK:1.0:assertion}study" minOccurs="0"/>
+ * &lt;element name="nameOfInstitution" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ * &lt;element name="course" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ * &lt;element name="AQAA" type="{urn:eu:stork:names:tc:STORK:1.0:assertion}QualityAuthenticationAssuranceLevelType"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "isStudentType", propOrder = {
+ "study",
+ "nameOfInstitution",
+ "course",
+ "aqaa"
+})
+public class IsStudentType {
+
+ protected String study;
+ @XmlElement(required = true)
+ protected String nameOfInstitution;
+ protected String course;
+ @XmlElement(name = "AQAA")
+ protected int aqaa;
+
+ /**
+ * Gets the value of the study property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getStudy() {
+ return study;
+ }
+
+ /**
+ * Sets the value of the study property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setStudy(String value) {
+ this.study = value;
+ }
+
+ /**
+ * Gets the value of the nameOfInstitution property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getNameOfInstitution() {
+ return nameOfInstitution;
+ }
+
+ /**
+ * Sets the value of the nameOfInstitution property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setNameOfInstitution(String value) {
+ this.nameOfInstitution = value;
+ }
+
+ /**
+ * Gets the value of the course property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getCourse() {
+ return course;
+ }
+
+ /**
+ * Sets the value of the course property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setCourse(String value) {
+ this.course = value;
+ }
+
+ /**
+ * Gets the value of the aqaa property.
+ *
+ */
+ public int getAQAA() {
+ return aqaa;
+ }
+
+ /**
+ * Sets the value of the aqaa property.
+ *
+ */
+ public void setAQAA(int value) {
+ this.aqaa = value;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/IsTeacherOfType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_1_0/assertion/IsTeacherOfType.java
index 810f652c1..4a1262003 100644
--- a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/IsTeacherOfType.java
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_1_0/assertion/IsTeacherOfType.java
@@ -1,145 +1,145 @@
-//
-// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
-// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
-// Any modifications to this file will be lost upon recompilation of the source schema.
-// Generated on: 2014.02.17 at 10:36:59 AM GMT
-//
-
-
-package eu.stork.peps.complex.attributes;
-
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlType;
-
-
-/**
- * <p>Java class for isTeacherOfType complex type.
- *
- * <p>The following schema fragment specifies the expected content contained within this class.
- *
- * <pre>
- * &lt;complexType name="isTeacherOfType">
- * &lt;complexContent>
- * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * &lt;sequence>
- * &lt;element name="nameOfInstitution" type="{http://www.w3.org/2001/XMLSchema}string"/>
- * &lt;element name="course" type="{http://www.w3.org/2001/XMLSchema}string"/>
- * &lt;element name="role" type="{http://www.w3.org/2001/XMLSchema}string"/>
- * &lt;element name="AQAA" type="{urn:eu:stork:names:tc:STORK:1.0:assertion}QualityAuthenticationAssuranceLevelType"/>
- * &lt;/sequence>
- * &lt;/restriction>
- * &lt;/complexContent>
- * &lt;/complexType>
- * </pre>
- *
- *
- */
-@XmlAccessorType(XmlAccessType.FIELD)
-@XmlType(name = "isTeacherOfType", propOrder = {
- "nameOfInstitution",
- "course",
- "role",
- "aqaa"
-})
-public class IsTeacherOfType {
-
- @XmlElement(required = true)
- protected String nameOfInstitution;
- @XmlElement(required = true)
- protected String course;
- @XmlElement(required = true)
- protected String role;
- @XmlElement(name = "AQAA")
- protected int aqaa;
-
- /**
- * Gets the value of the nameOfInstitution property.
- *
- * @return
- * possible object is
- * {@link String }
- *
- */
- public String getNameOfInstitution() {
- return nameOfInstitution;
- }
-
- /**
- * Sets the value of the nameOfInstitution property.
- *
- * @param value
- * allowed object is
- * {@link String }
- *
- */
- public void setNameOfInstitution(String value) {
- this.nameOfInstitution = value;
- }
-
- /**
- * Gets the value of the course property.
- *
- * @return
- * possible object is
- * {@link String }
- *
- */
- public String getCourse() {
- return course;
- }
-
- /**
- * Sets the value of the course property.
- *
- * @param value
- * allowed object is
- * {@link String }
- *
- */
- public void setCourse(String value) {
- this.course = value;
- }
-
- /**
- * Gets the value of the role property.
- *
- * @return
- * possible object is
- * {@link String }
- *
- */
- public String getRole() {
- return role;
- }
-
- /**
- * Sets the value of the role property.
- *
- * @param value
- * allowed object is
- * {@link String }
- *
- */
- public void setRole(String value) {
- this.role = value;
- }
-
- /**
- * Gets the value of the aqaa property.
- *
- */
- public int getAQAA() {
- return aqaa;
- }
-
- /**
- * Sets the value of the aqaa property.
- *
- */
- public void setAQAA(int value) {
- this.aqaa = value;
- }
-
-}
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._1_0.assertion;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for isTeacherOfType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="isTeacherOfType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="nameOfInstitution" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ * &lt;element name="course" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ * &lt;element name="role" type="{urn:eu:stork:names:tc:STORK:1.0:assertion}teacherRoleType"/>
+ * &lt;element name="AQAA" type="{urn:eu:stork:names:tc:STORK:1.0:assertion}QualityAuthenticationAssuranceLevelType"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "isTeacherOfType", propOrder = {
+ "nameOfInstitution",
+ "course",
+ "role",
+ "aqaa"
+})
+public class IsTeacherOfType {
+
+ @XmlElement(required = true)
+ protected String nameOfInstitution;
+ @XmlElement(required = true)
+ protected String course;
+ @XmlElement(required = true)
+ protected String role;
+ @XmlElement(name = "AQAA")
+ protected int aqaa;
+
+ /**
+ * Gets the value of the nameOfInstitution property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getNameOfInstitution() {
+ return nameOfInstitution;
+ }
+
+ /**
+ * Sets the value of the nameOfInstitution property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setNameOfInstitution(String value) {
+ this.nameOfInstitution = value;
+ }
+
+ /**
+ * Gets the value of the course property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getCourse() {
+ return course;
+ }
+
+ /**
+ * Sets the value of the course property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setCourse(String value) {
+ this.course = value;
+ }
+
+ /**
+ * Gets the value of the role property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getRole() {
+ return role;
+ }
+
+ /**
+ * Sets the value of the role property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setRole(String value) {
+ this.role = value;
+ }
+
+ /**
+ * Gets the value of the aqaa property.
+ *
+ */
+ public int getAQAA() {
+ return aqaa;
+ }
+
+ /**
+ * Sets the value of the aqaa property.
+ *
+ */
+ public void setAQAA(int value) {
+ this.aqaa = value;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_1_0/assertion/MandateContentType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_1_0/assertion/MandateContentType.java
new file mode 100644
index 000000000..b3386cdb5
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_1_0/assertion/MandateContentType.java
@@ -0,0 +1,309 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.10.29 at 02:15:24 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._1_0.assertion;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for mandateContentType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="mandateContentType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="typePower" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ * &lt;element name="typeOfPower" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ * &lt;element name="timeRestriction" type="{urn:eu:stork:names:tc:STORK:1.0:assertion}TimeRestrictionType"/>
+ * &lt;element name="isJoined" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ * &lt;element name="isJoint" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ * &lt;element name="isChained" type="{http://www.w3.org/2001/XMLSchema}boolean"/>
+ * &lt;element name="originalMandateType" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ * &lt;element name="originalMandate" type="{http://www.w3.org/2001/XMLSchema}base64Binary"/>
+ * &lt;element name="transactionLimit" type="{urn:eu:stork:names:tc:STORK:1.0:assertion}TransactionLimitRestrictionType"/>
+ * &lt;element name="AQAA" type="{urn:eu:stork:names:tc:STORK:1.0:assertion}QualityAuthenticationAssuranceLevelType"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "mandateContentType", propOrder = {
+ "typePower",
+ "typeOfPower",
+ "timeRestriction",
+ "transactionLimit",
+ "isJoined",
+ "isJoint",
+ "isChained",
+ "originalMandateType",
+ "originalMandate",
+ "aqaa"
+})
+public class MandateContentType {
+
+ @XmlElement(required = true)
+ protected String typePower;
+ @XmlElement(required = true)
+ protected String typeOfPower;
+ @XmlElement(required = true)
+ protected TimeRestrictionType timeRestriction;
+ @XmlElement(required = true)
+ protected String isJoined;
+ @XmlElement(required = true)
+ protected String isJoint;
+ protected boolean isChained;
+ @XmlElement(required = true)
+ protected byte[] originalMandate;
+ @XmlElement(required = true)
+ protected String originalMandateType;
+ @XmlElement(required = true)
+ protected TransactionLimitRestrictionType transactionLimit;
+ @XmlElement(name = "AQAA")
+ protected int aqaa;
+
+ /**
+ * Gets the value of the typePower property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getTypePower() {
+ return typePower;
+ }
+
+ /**
+ * Sets the value of the typePower property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setTypePower(String value) {
+ this.typePower = value;
+ this.typeOfPower = value;
+ }
+
+ /**
+ * Gets the value of the typeOfPower property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getTypeOfPower() {
+ return typeOfPower;
+ }
+
+ /**
+ * Sets the value of the typeOfPower property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setTypeOfPower(String value) {
+ this.typeOfPower = value;
+ this.typePower = value;
+ }
+
+ /**
+ * Gets the value of the timeRestriction property.
+ *
+ * @return
+ * possible object is
+ * {@link TimeRestrictionType }
+ *
+ */
+ public TimeRestrictionType getTimeRestriction() {
+ return timeRestriction;
+ }
+
+ /**
+ * Sets the value of the timeRestriction property.
+ *
+ * @param value
+ * allowed object is
+ * {@link TimeRestrictionType }
+ *
+ */
+ public void setTimeRestriction(TimeRestrictionType value) {
+ this.timeRestriction = value;
+ }
+
+ /**
+ * Gets the value of the isJoined property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getIsJoined() {
+ return isJoined;
+ }
+
+ /**
+ * Sets the value of the isJoined property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setIsJoined(String value) {
+ this.isJoined = value;
+ this.isJoint = value;
+ }
+
+ /**
+ * Gets the value of the isJoint property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getIsJoint() {
+ return isJoint;
+ }
+
+ /**
+ * Sets the value of the isJoint property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setIsJoint(String value) {
+ this.isJoint = value;
+ this.isJoined = value;
+ }
+
+ /**
+ * Gets the value of the isChained property.
+ *
+ */
+ public boolean isIsChained() {
+ return isChained;
+ }
+
+ /**
+ * Sets the value of the isChained property.
+ *
+ */
+ public void setIsChained(boolean value) {
+ this.isChained = value;
+ }
+
+ public void setIschained(boolean value){
+ setIsChained(value);
+ }
+ /**
+ * Gets the value of the originalMandate property.
+ *
+ * @return
+ * possible object is
+ * byte[]
+ */
+ public byte[] getOriginalMandate() {
+ return originalMandate;
+ }
+
+ /**
+ * Sets the value of the originalMandate property.
+ *
+ * @param value
+ * allowed object is
+ * byte[]
+ */
+ public void setOriginalMandate(byte[] value) {
+ this.originalMandate = value;
+ }
+
+ /**
+ * Gets the value of the originalMandateType property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getOriginalMandateType() {
+ return originalMandateType;
+ }
+
+ /**
+ * Sets the value of the originalMandateType property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setOriginalMandateType(String value) {
+ this.originalMandateType = value;
+ }
+
+ /**
+ * Gets the value of the transactionLimit property.
+ *
+ * @return
+ * possible object is
+ * {@link TransactionLimitRestrictionType }
+ *
+ */
+ public TransactionLimitRestrictionType getTransactionLimit() {
+ return transactionLimit;
+ }
+
+ /**
+ * Sets the value of the transactionLimit property.
+ *
+ * @param value
+ * allowed object is
+ * {@link TransactionLimitRestrictionType }
+ *
+ */
+ public void setTransactionLimit(TransactionLimitRestrictionType value) {
+ this.transactionLimit = value;
+ }
+
+ /**
+ * Gets the value of the aqaa property.
+ *
+ */
+ public int getAQAA() {
+ return aqaa;
+ }
+
+ /**
+ * Sets the value of the aqaa property.
+ *
+ */
+ public void setAQAA(int value) {
+ this.aqaa = value;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/MandateType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_1_0/assertion/MandateType.java
index 26597dc6b..5ac29e2df 100644
--- a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/MandateType.java
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_1_0/assertion/MandateType.java
@@ -1,125 +1,162 @@
-//
-// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
-// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
-// Any modifications to this file will be lost upon recompilation of the source schema.
-// Generated on: 2014.02.17 at 10:36:59 AM GMT
-//
-
-
-package eu.stork.peps.complex.attributes;
-
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlType;
-
-
-/**
- * <p>Java class for mandateType complex type.
- *
- * <p>The following schema fragment specifies the expected content contained within this class.
- *
- * <pre>
- * &lt;complexType name="mandateType">
- * &lt;complexContent>
- * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * &lt;sequence>
- * &lt;element name="represented" type="{urn:eu:stork:names:tc:STORK:1.0:assertion}representationPersonType"/>
- * &lt;element name="representing" type="{urn:eu:stork:names:tc:STORK:1.0:assertion}representationPersonType"/>
- * &lt;element name="mandateContent" type="{urn:eu:stork:names:tc:STORK:1.0:assertion}mandateContentType"/>
- * &lt;/sequence>
- * &lt;/restriction>
- * &lt;/complexContent>
- * &lt;/complexType>
- * </pre>
- *
- *
- */
-@XmlAccessorType(XmlAccessType.FIELD)
-@XmlType(name = "mandateType", propOrder = {
- "represented",
- "representing",
- "mandateContent"
-})
-public class MandateType {
-
- @XmlElement(required = true)
- protected RepresentationPersonType represented;
- @XmlElement(required = true)
- protected RepresentationPersonType representing;
- @XmlElement(required = true)
- protected MandateContentType mandateContent;
-
- /**
- * Gets the value of the represented property.
- *
- * @return
- * possible object is
- * {@link RepresentationPersonType }
- *
- */
- public RepresentationPersonType getRepresented() {
- return represented;
- }
-
- /**
- * Sets the value of the represented property.
- *
- * @param value
- * allowed object is
- * {@link RepresentationPersonType }
- *
- */
- public void setRepresented(RepresentationPersonType value) {
- this.represented = value;
- }
-
- /**
- * Gets the value of the representing property.
- *
- * @return
- * possible object is
- * {@link RepresentationPersonType }
- *
- */
- public RepresentationPersonType getRepresenting() {
- return representing;
- }
-
- /**
- * Sets the value of the representing property.
- *
- * @param value
- * allowed object is
- * {@link RepresentationPersonType }
- *
- */
- public void setRepresenting(RepresentationPersonType value) {
- this.representing = value;
- }
-
- /**
- * Gets the value of the mandateContent property.
- *
- * @return
- * possible object is
- * {@link MandateContentType }
- *
- */
- public MandateContentType getMandateContent() {
- return mandateContent;
- }
-
- /**
- * Sets the value of the mandateContent property.
- *
- * @param value
- * allowed object is
- * {@link MandateContentType }
- *
- */
- public void setMandateContent(MandateContentType value) {
- this.mandateContent = value;
- }
-
-}
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.10.09 at 10:11:43 AM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._1_0.assertion;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for mandateType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="mandateType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="represented" type="{urn:eu:stork:names:tc:STORK:1.0:assertion}representationPersonType"/>
+ * &lt;element name="representing" type="{urn:eu:stork:names:tc:STORK:1.0:assertion}representationPersonType"/>
+ * &lt;element name="representative" type="{urn:eu:stork:names:tc:STORK:1.0:assertion}representationPersonType"/>
+ * &lt;element name="mandateContent" type="{urn:eu:stork:names:tc:STORK:1.0:assertion}mandateContentType" maxOccurs="unbounded"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "mandateType", propOrder = {
+ "represented",
+ "representing",
+ "representative",
+ "mandateContent"
+})
+public class MandateType {
+
+ @XmlElement(required = true)
+ protected RepresentationPersonType represented;
+ @XmlElement(required = true)
+ protected RepresentationPersonType representing;
+ @XmlElement(required = true)
+ protected RepresentationPersonType representative;
+ @XmlElement(required = true)
+ protected List<MandateContentType> mandateContent;
+
+ /**
+ * Gets the value of the represented property.
+ *
+ * @return
+ * possible object is
+ * {@link RepresentationPersonType }
+ *
+ */
+ public RepresentationPersonType getRepresented() {
+ return represented;
+ }
+
+ /**
+ * Sets the value of the represented property.
+ *
+ * @param value
+ * allowed object is
+ * {@link RepresentationPersonType }
+ *
+ */
+ public void setRepresented(RepresentationPersonType value) {
+ this.represented = value;
+ }
+
+ /**
+ * Gets the value of the representing property.
+ *
+ * @return
+ * possible object is
+ * {@link RepresentationPersonType }
+ *
+ */
+ public RepresentationPersonType getRepresenting() {
+ return representing;
+ }
+
+ /**
+ * Sets the value of the representing property.
+ *
+ * @param value
+ * allowed object is
+ * {@link RepresentationPersonType }
+ *
+ */
+ public void setRepresenting(RepresentationPersonType value) {
+ this.representing = value;
+ this.representative = value;
+ }
+
+ /**
+ * Gets the value of the representative property.
+ *
+ * @return
+ * possible object is
+ * {@link RepresentationPersonType }
+ *
+ */
+ public RepresentationPersonType getRepresentative() {
+ return representative;
+ }
+
+ /**
+ * Sets the value of the representative property.
+ *
+ * @param value
+ * allowed object is
+ * {@link RepresentationPersonType }
+ *
+ */
+ public void setRepresentative(RepresentationPersonType value) {
+ this.representative = value;
+ this.representing = value;
+ }
+
+ /**
+ * Gets the value of the mandateContent property.
+ *
+ * <p>
+ * 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 <CODE>set</CODE> method for the mandateContent property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getMandateContent().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link MandateContentType }
+ *
+ *
+ */
+ public List<MandateContentType> getMandateContent() {
+ if (mandateContent == null) {
+ mandateContent = new ArrayList<MandateContentType>();
+ }
+ return this.mandateContent;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/ObjectFactory.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_1_0/assertion/ObjectFactory.java
index f80a4321c..f1ea05d65 100644
--- a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/ObjectFactory.java
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_1_0/assertion/ObjectFactory.java
@@ -1,443 +1,523 @@
-//
-// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
-// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
-// Any modifications to this file will be lost upon recompilation of the source schema.
-// Generated on: 2014.02.17 at 10:36:59 AM GMT
-//
-
-
-package eu.stork.peps.complex.attributes;
-
-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;
-
-
-/**
- * This object contains factory methods for each
- * Java content interface and Java element interface
- * generated in the eu.stork.peps.complex.attributes package.
- * <p>An ObjectFactory allows you to programatically
- * construct new instances of the Java representation
- * for XML content. The Java representation of XML
- * content can consist of schema derived interfaces
- * and classes representing the binding of schema
- * type definitions, element declarations and model
- * groups. Factory methods for each of these are
- * provided in this class.
- *
- */
-@XmlRegistry
-public class ObjectFactory {
-
- private final static QName _Habilitation_QNAME = new QName("urn:eu:stork:names:tc:STORK:1.0:assertion", "habilitation");
- private final static QName _HasDegree_QNAME = new QName("urn:eu:stork:names:tc:STORK:1.0:assertion", "hasDegree");
- private final static QName _SpApplication_QNAME = new QName("urn:eu:stork:names:tc:STORK:1.0:assertion", "spApplication");
- private final static QName _Specialisation_QNAME = new QName("urn:eu:stork:names:tc:STORK:1.0:assertion", "specialisation");
- private final static QName _IsStudent_QNAME = new QName("urn:eu:stork:names:tc:STORK:1.0:assertion", "isStudent");
- private final static QName _AQAA_QNAME = new QName("urn:eu:stork:names:tc:STORK:1.0:assertion", "AQAA");
- private final static QName _HCPType_QNAME = new QName("urn:eu:stork:names:tc:STORK:1.0:assertion", "HCPType");
- private final static QName _CanonicalResidenceAddress_QNAME = new QName("urn:eu:stork:names:tc:STORK:1.0:assertion", "canonicalResidenceAddress");
- private final static QName _AcTitle_QNAME = new QName("urn:eu:stork:names:tc:STORK:1.0:assertion", "acTitle");
- private final static QName _QualityAuthenticationAssuranceLevel_QNAME = new QName("urn:eu:stork:names:tc:STORK:1.0:assertion", "QualityAuthenticationAssuranceLevel");
- private final static QName _IsAcademicStaff_QNAME = new QName("urn:eu:stork:names:tc:STORK:1.0:assertion", "isAcademicStaff");
- private final static QName _IsTeacherOf_QNAME = new QName("urn:eu:stork:names:tc:STORK:1.0:assertion", "isTeacherOf");
- private final static QName _IsCourseCoordinator_QNAME = new QName("urn:eu:stork:names:tc:STORK:1.0:assertion", "isCourseCoordinator");
- private final static QName _CanonicalRegisteredAddress_QNAME = new QName("urn:eu:stork:names:tc:STORK:1.0:assertion", "canonicalRegisteredAddress");
- private final static QName _SpCountry_QNAME = new QName("urn:eu:stork:names:tc:STORK:1.0:assertion", "spCountry");
- private final static QName _IsAdminStaff_QNAME = new QName("urn:eu:stork:names:tc:STORK:1.0:assertion", "isAdminStaff");
- private final static QName _CitizenCountryCode_QNAME = new QName("urn:eu:stork:names:tc:STORK:1.0:assertion", "CitizenCountryCode");
- private final static QName _AttributeValue_QNAME = new QName("urn:eu:stork:names:tc:STORK:1.0:assertion", "AttributeValue");
- private final static QName _HasAccountInBank_QNAME = new QName("urn:eu:stork:names:tc:STORK:1.0:assertion", "hasAccountInBank");
- private final static QName _CountryCodeAddress_QNAME = new QName("urn:eu:stork:names:tc:STORK:1.0:assertion", "countryCodeAddress");
- private final static QName _Study_QNAME = new QName("urn:eu:stork:names:tc:STORK:1.0:assertion", "study");
- private final static QName _IsHealthCareProfessional_QNAME = new QName("urn:eu:stork:names:tc:STORK:1.0:assertion", "isHealthCareProfessional");
- private final static QName _Mandate_QNAME = new QName("urn:eu:stork:names:tc:STORK:1.0:assertion", "mandate");
- private final static QName _RequestedAttribute_QNAME = new QName("urn:eu:stork:names:tc:STORK:1.0:assertion", "RequestedAttribute");
- private final static QName _SpSector_QNAME = new QName("urn:eu:stork:names:tc:STORK:1.0:assertion", "spSector");
-
- /**
- * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: eu.stork.peps.complex.attributes
- *
- */
- public ObjectFactory() {
- }
-
- /**
- * Create an instance of {@link RequestedAttributeType }
- *
- */
- public RequestedAttributeType createRequestedAttributeType() {
- return new RequestedAttributeType();
- }
-
- /**
- * Create an instance of {@link MandateType }
- *
- */
- public MandateType createMandateType() {
- return new MandateType();
- }
-
- /**
- * Create an instance of {@link HasAccountInBankType }
- *
- */
- public HasAccountInBankType createHasAccountInBankType() {
- return new HasAccountInBankType();
- }
-
- /**
- * Create an instance of {@link IsHealthCareProfessionalType }
- *
- */
- public IsHealthCareProfessionalType createIsHealthCareProfessionalType() {
- return new IsHealthCareProfessionalType();
- }
-
- /**
- * Create an instance of {@link IsAdminStaffType }
- *
- */
- public IsAdminStaffType createIsAdminStaffType() {
- return new IsAdminStaffType();
- }
-
- /**
- * Create an instance of {@link CanonicalAddressType }
- *
- */
- public CanonicalAddressType createCanonicalAddressType() {
- return new CanonicalAddressType();
- }
-
- /**
- * Create an instance of {@link IsCourseCoordinatorType }
- *
- */
- public IsCourseCoordinatorType createIsCourseCoordinatorType() {
- return new IsCourseCoordinatorType();
- }
-
- /**
- * Create an instance of {@link IsAcademicStaffType }
- *
- */
- public IsAcademicStaffType createIsAcademicStaffType() {
- return new IsAcademicStaffType();
- }
-
- /**
- * Create an instance of {@link IsTeacherOfType }
- *
- */
- public IsTeacherOfType createIsTeacherOfType() {
- return new IsTeacherOfType();
- }
-
- /**
- * Create an instance of {@link AcTitleType }
- *
- */
- public AcTitleType createAcTitleType() {
- return new AcTitleType();
- }
-
- /**
- * Create an instance of {@link IsStudentType }
- *
- */
- public IsStudentType createIsStudentType() {
- return new IsStudentType();
- }
-
- /**
- * Create an instance of {@link HasDegreeType }
- *
- */
- public HasDegreeType createHasDegreeType() {
- return new HasDegreeType();
- }
-
- /**
- * Create an instance of {@link HabilitationType }
- *
- */
- public HabilitationType createHabilitationType() {
- return new HabilitationType();
- }
-
- /**
- * Create an instance of {@link MandateContentType }
- *
- */
- public MandateContentType createMandateContentType() {
- return new MandateContentType();
- }
-
- /**
- * Create an instance of {@link RepresentationPersonType }
- *
- */
- public RepresentationPersonType createRepresentationPersonType() {
- return new RepresentationPersonType();
- }
-
- /**
- * Create an instance of {@link Habilitation }
- *
- */
- public Habilitation createHabilitation() {
- return new Habilitation();
- }
-
- /**
- * Create an instance of {@link IsHCPType }
- *
- */
- public IsHCPType createIsHCPType() {
- return new IsHCPType();
- }
-
- /**
- * Create an instance of {@link JAXBElement }{@code <}{@link HabilitationType }{@code >}}
- *
- */
- @XmlElementDecl(namespace = "urn:eu:stork:names:tc:STORK:1.0:assertion", name = "habilitation")
- public JAXBElement<HabilitationType> createHabilitation(HabilitationType value) {
- return new JAXBElement<HabilitationType>(_Habilitation_QNAME, HabilitationType.class, null, value);
- }
-
- /**
- * Create an instance of {@link JAXBElement }{@code <}{@link HasDegreeType }{@code >}}
- *
- */
- @XmlElementDecl(namespace = "urn:eu:stork:names:tc:STORK:1.0:assertion", name = "hasDegree")
- public JAXBElement<HasDegreeType> createHasDegree(HasDegreeType value) {
- return new JAXBElement<HasDegreeType>(_HasDegree_QNAME, HasDegreeType.class, null, value);
- }
-
- /**
- * Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}
- *
- */
- @XmlElementDecl(namespace = "urn:eu:stork:names:tc:STORK:1.0:assertion", name = "spApplication")
- public JAXBElement<String> createSpApplication(String value) {
- return new JAXBElement<String>(_SpApplication_QNAME, String.class, null, value);
- }
-
- /**
- * Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}
- *
- */
- @XmlElementDecl(namespace = "urn:eu:stork:names:tc:STORK:1.0:assertion", name = "specialisation")
- public JAXBElement<String> createSpecialisation(String value) {
- return new JAXBElement<String>(_Specialisation_QNAME, String.class, null, value);
- }
-
- /**
- * Create an instance of {@link JAXBElement }{@code <}{@link IsStudentType }{@code >}}
- *
- */
- @XmlElementDecl(namespace = "urn:eu:stork:names:tc:STORK:1.0:assertion", name = "isStudent")
- public JAXBElement<IsStudentType> createIsStudent(IsStudentType value) {
- return new JAXBElement<IsStudentType>(_IsStudent_QNAME, IsStudentType.class, null, value);
- }
-
- /**
- * Create an instance of {@link JAXBElement }{@code <}{@link Integer }{@code >}}
- *
- */
- @XmlElementDecl(namespace = "urn:eu:stork:names:tc:STORK:1.0:assertion", name = "AQAA")
- public JAXBElement<Integer> createAQAA(Integer value) {
- return new JAXBElement<Integer>(_AQAA_QNAME, Integer.class, null, value);
- }
-
- /**
- * Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}
- *
- */
- @XmlElementDecl(namespace = "urn:eu:stork:names:tc:STORK:1.0:assertion", name = "HCPType")
- public JAXBElement<String> createHCPType(String value) {
- return new JAXBElement<String>(_HCPType_QNAME, String.class, null, value);
- }
-
- /**
- * Create an instance of {@link JAXBElement }{@code <}{@link CanonicalAddressType }{@code >}}
- *
- */
- @XmlElementDecl(namespace = "urn:eu:stork:names:tc:STORK:1.0:assertion", name = "canonicalResidenceAddress")
- public JAXBElement<CanonicalAddressType> createCanonicalResidenceAddress(CanonicalAddressType value) {
- return new JAXBElement<CanonicalAddressType>(_CanonicalResidenceAddress_QNAME, CanonicalAddressType.class, null, value);
- }
-
- /**
- * Create an instance of {@link JAXBElement }{@code <}{@link AcTitleType }{@code >}}
- *
- */
- @XmlElementDecl(namespace = "urn:eu:stork:names:tc:STORK:1.0:assertion", name = "acTitle")
- public JAXBElement<AcTitleType> createAcTitle(AcTitleType value) {
- return new JAXBElement<AcTitleType>(_AcTitle_QNAME, AcTitleType.class, null, value);
- }
-
- /**
- * Create an instance of {@link JAXBElement }{@code <}{@link Integer }{@code >}}
- *
- */
- @XmlElementDecl(namespace = "urn:eu:stork:names:tc:STORK:1.0:assertion", name = "QualityAuthenticationAssuranceLevel")
- public JAXBElement<Integer> createQualityAuthenticationAssuranceLevel(Integer value) {
- return new JAXBElement<Integer>(_QualityAuthenticationAssuranceLevel_QNAME, Integer.class, null, value);
- }
-
- /**
- * Create an instance of {@link JAXBElement }{@code <}{@link IsAcademicStaffType }{@code >}}
- *
- */
- @XmlElementDecl(namespace = "urn:eu:stork:names:tc:STORK:1.0:assertion", name = "isAcademicStaff")
- public JAXBElement<IsAcademicStaffType> createIsAcademicStaff(IsAcademicStaffType value) {
- return new JAXBElement<IsAcademicStaffType>(_IsAcademicStaff_QNAME, IsAcademicStaffType.class, null, value);
- }
-
- /**
- * Create an instance of {@link JAXBElement }{@code <}{@link IsTeacherOfType }{@code >}}
- *
- */
- @XmlElementDecl(namespace = "urn:eu:stork:names:tc:STORK:1.0:assertion", name = "isTeacherOf")
- public JAXBElement<IsTeacherOfType> createIsTeacherOf(IsTeacherOfType value) {
- return new JAXBElement<IsTeacherOfType>(_IsTeacherOf_QNAME, IsTeacherOfType.class, null, value);
- }
-
- /**
- * Create an instance of {@link JAXBElement }{@code <}{@link IsCourseCoordinatorType }{@code >}}
- *
- */
- @XmlElementDecl(namespace = "urn:eu:stork:names:tc:STORK:1.0:assertion", name = "isCourseCoordinator")
- public JAXBElement<IsCourseCoordinatorType> createIsCourseCoordinator(IsCourseCoordinatorType value) {
- return new JAXBElement<IsCourseCoordinatorType>(_IsCourseCoordinator_QNAME, IsCourseCoordinatorType.class, null, value);
- }
-
- /**
- * Create an instance of {@link JAXBElement }{@code <}{@link CanonicalAddressType }{@code >}}
- *
- */
- @XmlElementDecl(namespace = "urn:eu:stork:names:tc:STORK:1.0:assertion", name = "canonicalRegisteredAddress")
- public JAXBElement<CanonicalAddressType> createCanonicalRegisteredAddress(CanonicalAddressType value) {
- return new JAXBElement<CanonicalAddressType>(_CanonicalRegisteredAddress_QNAME, CanonicalAddressType.class, null, value);
- }
-
- /**
- * Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}
- *
- */
- @XmlElementDecl(namespace = "urn:eu:stork:names:tc:STORK:1.0:assertion", name = "spCountry")
- @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
- public JAXBElement<String> createSpCountry(String value) {
- return new JAXBElement<String>(_SpCountry_QNAME, String.class, null, value);
- }
-
- /**
- * Create an instance of {@link JAXBElement }{@code <}{@link IsAdminStaffType }{@code >}}
- *
- */
- @XmlElementDecl(namespace = "urn:eu:stork:names:tc:STORK:1.0:assertion", name = "isAdminStaff")
- public JAXBElement<IsAdminStaffType> createIsAdminStaff(IsAdminStaffType value) {
- return new JAXBElement<IsAdminStaffType>(_IsAdminStaff_QNAME, IsAdminStaffType.class, null, value);
- }
-
- /**
- * Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}
- *
- */
- @XmlElementDecl(namespace = "urn:eu:stork:names:tc:STORK:1.0:assertion", name = "CitizenCountryCode")
- @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
- public JAXBElement<String> createCitizenCountryCode(String value) {
- return new JAXBElement<String>(_CitizenCountryCode_QNAME, String.class, null, value);
- }
-
- /**
- * Create an instance of {@link JAXBElement }{@code <}{@link Object }{@code >}}
- *
- */
- @XmlElementDecl(namespace = "urn:eu:stork:names:tc:STORK:1.0:assertion", name = "AttributeValue")
- public JAXBElement<Object> createAttributeValue(Object value) {
- return new JAXBElement<Object>(_AttributeValue_QNAME, Object.class, null, value);
- }
-
- /**
- * Create an instance of {@link JAXBElement }{@code <}{@link HasAccountInBankType }{@code >}}
- *
- */
- @XmlElementDecl(namespace = "urn:eu:stork:names:tc:STORK:1.0:assertion", name = "hasAccountInBank")
- public JAXBElement<HasAccountInBankType> createHasAccountInBank(HasAccountInBankType value) {
- return new JAXBElement<HasAccountInBankType>(_HasAccountInBank_QNAME, HasAccountInBankType.class, null, value);
- }
-
- /**
- * Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}
- *
- */
- @XmlElementDecl(namespace = "urn:eu:stork:names:tc:STORK:1.0:assertion", name = "countryCodeAddress")
- @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
- public JAXBElement<String> createCountryCodeAddress(String value) {
- return new JAXBElement<String>(_CountryCodeAddress_QNAME, String.class, null, value);
- }
-
- /**
- * Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}
- *
- */
- @XmlElementDecl(namespace = "urn:eu:stork:names:tc:STORK:1.0:assertion", name = "study")
- public JAXBElement<String> createStudy(String value) {
- return new JAXBElement<String>(_Study_QNAME, String.class, null, value);
- }
-
- /**
- * Create an instance of {@link JAXBElement }{@code <}{@link IsHealthCareProfessionalType }{@code >}}
- *
- */
- @XmlElementDecl(namespace = "urn:eu:stork:names:tc:STORK:1.0:assertion", name = "isHealthCareProfessional")
- public JAXBElement<IsHealthCareProfessionalType> createIsHealthCareProfessional(IsHealthCareProfessionalType value) {
- return new JAXBElement<IsHealthCareProfessionalType>(_IsHealthCareProfessional_QNAME, IsHealthCareProfessionalType.class, null, value);
- }
-
-
- /**
- * Create an instance of {@link JAXBElement }{@code <}{@link IsHealthCareProfessionalType }{@code >}}
- *
- */
- @XmlElementDecl(namespace = "urn:eu:stork:names:tc:STORK:1.0:assertion", name = "isHealthCareProfessional")
- public JAXBElement<IsHealthCareProfessionalDeprecatedType> createIsHealthCareProfessional(IsHealthCareProfessionalDeprecatedType value) {
- return new JAXBElement<IsHealthCareProfessionalDeprecatedType>(_IsHealthCareProfessional_QNAME, IsHealthCareProfessionalDeprecatedType.class, null, value);
- }
-
- /**
- * Create an instance of {@link JAXBElement }{@code <}{@link MandateType }{@code >}}
- *
- */
- @XmlElementDecl(namespace = "urn:eu:stork:names:tc:STORK:1.0:assertion", name = "mandate")
- public JAXBElement<MandateType> createMandate(MandateType value) {
- return new JAXBElement<MandateType>(_Mandate_QNAME, MandateType.class, null, value);
- }
-
- /**
- * Create an instance of {@link JAXBElement }{@code <}{@link RequestedAttributeType }{@code >}}
- *
- */
- @XmlElementDecl(namespace = "urn:eu:stork:names:tc:STORK:1.0:assertion", name = "RequestedAttribute")
- public JAXBElement<RequestedAttributeType> createRequestedAttribute(RequestedAttributeType value) {
- return new JAXBElement<RequestedAttributeType>(_RequestedAttribute_QNAME, RequestedAttributeType.class, null, value);
- }
-
- /**
- * Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}
- *
- */
- @XmlElementDecl(namespace = "urn:eu:stork:names:tc:STORK:1.0:assertion", name = "spSector")
- public JAXBElement<String> createSpSector(String value) {
- return new JAXBElement<String>(_SpSector_QNAME, String.class, null, value);
- }
-
-}
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.11.27 at 06:25:14 PM CET
+//
+
+
+package eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._1_0.assertion;
+
+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;
+
+
+/**
+ * This object contains factory methods for each
+ * Java content interface and Java element interface
+ * generated in the eu.stork.names.tc.stork._1_0.assertion package.
+ * <p>An ObjectFactory allows you to programatically
+ * construct new instances of the Java representation
+ * for XML content. The Java representation of XML
+ * content can consist of schema derived interfaces
+ * and classes representing the binding of schema
+ * type definitions, element declarations and model
+ * groups. Factory methods for each of these are
+ * provided in this class.
+ *
+ */
+@XmlRegistry
+public class ObjectFactory {
+
+ private final static QName _Habilitation_QNAME = new QName("urn:eu:stork:names:tc:STORK:1.0:assertion", "habilitation");
+ private final static QName _SpApplication_QNAME = new QName("urn:eu:stork:names:tc:STORK:1.0:assertion", "spApplication");
+ private final static QName _Specialisation_QNAME = new QName("urn:eu:stork:names:tc:STORK:1.0:assertion", "specialisation");
+ private final static QName _AQAA_QNAME = new QName("urn:eu:stork:names:tc:STORK:1.0:assertion", "AQAA");
+ private final static QName _QualityAuthenticationAssuranceLevel_QNAME = new QName("urn:eu:stork:names:tc:STORK:1.0:assertion", "QualityAuthenticationAssuranceLevel");
+ private final static QName _IsAcademicStaff_QNAME = new QName("urn:eu:stork:names:tc:STORK:1.0:assertion", "isAcademicStaff");
+ private final static QName _MandateContent_QNAME = new QName("urn:eu:stork:names:tc:STORK:1.0:assertion", "mandateContent");
+ private final static QName _IsHealthCareProfessionalDeprecated_QNAME = new QName("urn:eu:stork:names:tc:STORK:1.0:assertion", "isHealthCareProfessional_deprecated");
+ private final static QName _CanonicalRegisteredAddress_QNAME = new QName("urn:eu:stork:names:tc:STORK:1.0:assertion", "canonicalRegisteredAddress");
+ private final static QName _SpCountry_QNAME = new QName("urn:eu:stork:names:tc:STORK:1.0:assertion", "spCountry");
+ private final static QName _IsAdminStaff_QNAME = new QName("urn:eu:stork:names:tc:STORK:1.0:assertion", "isAdminStaff");
+ private final static QName _AttributeValue_QNAME = new QName("urn:eu:stork:names:tc:STORK:1.0:assertion", "AttributeValue");
+ private final static QName _CountryCodeAddress_QNAME = new QName("urn:eu:stork:names:tc:STORK:1.0:assertion", "countryCodeAddress");
+ private final static QName _HasAccountInBank_QNAME = new QName("urn:eu:stork:names:tc:STORK:1.0:assertion", "hasAccountInBank");
+ private final static QName _CurrentStudiesSupplement_QNAME = new QName("urn:eu:stork:names:tc:STORK:1.0:assertion", "currentStudiesSupplement");
+ private final static QName _Mandate_QNAME = new QName("urn:eu:stork:names:tc:STORK:1.0:assertion", "mandate");
+ private final static QName _RequestedAttribute_QNAME = new QName("urn:eu:stork:names:tc:STORK:1.0:assertion", "RequestedAttribute");
+ private final static QName _SpSector_QNAME = new QName("urn:eu:stork:names:tc:STORK:1.0:assertion", "spSector");
+ private final static QName _HasDegree_QNAME = new QName("urn:eu:stork:names:tc:STORK:1.0:assertion", "hasDegree");
+ private final static QName _DiplomaSupplement_QNAME = new QName("urn:eu:stork:names:tc:STORK:1.0:assertion", "diplomaSupplement");
+ private final static QName _IsStudent_QNAME = new QName("urn:eu:stork:names:tc:STORK:1.0:assertion", "isStudent");
+ private final static QName _HCPType_QNAME = new QName("urn:eu:stork:names:tc:STORK:1.0:assertion", "HCPType");
+ private final static QName _RepresentationPerson_QNAME = new QName("urn:eu:stork:names:tc:STORK:1.0:assertion", "representationPerson");
+ private final static QName _CanonicalResidenceAddress_QNAME = new QName("urn:eu:stork:names:tc:STORK:1.0:assertion", "canonicalResidenceAddress");
+ private final static QName _AcTitle_QNAME = new QName("urn:eu:stork:names:tc:STORK:1.0:assertion", "acTitle");
+ private final static QName _IsTeacherOf_QNAME = new QName("urn:eu:stork:names:tc:STORK:1.0:assertion", "isTeacherOf");
+ private final static QName _IsCourseCoordinator_QNAME = new QName("urn:eu:stork:names:tc:STORK:1.0:assertion", "isCourseCoordinator");
+ private final static QName _CitizenCountryCode_QNAME = new QName("urn:eu:stork:names:tc:STORK:1.0:assertion", "CitizenCountryCode");
+ private final static QName _Study_QNAME = new QName("urn:eu:stork:names:tc:STORK:1.0:assertion", "study");
+ private final static QName _IsHealthCareProfessional_QNAME = new QName("urn:eu:stork:names:tc:STORK:1.0:assertion", "isHealthCareProfessional");
+
+ /**
+ * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: eu.stork.names.tc.stork._1_0.assertion
+ *
+ */
+ public ObjectFactory() {
+ }
+
+ /**
+ * Create an instance of {@link CurrentStudiesType }
+ *
+ */
+ public CurrentStudiesType createCurrentStudiesType() {
+ return new CurrentStudiesType();
+ }
+
+ /**
+ * Create an instance of {@link MandateType }
+ *
+ */
+ public MandateType createMandateType() {
+ return new MandateType();
+ }
+
+ /**
+ * Create an instance of {@link RequestedAttributeType }
+ *
+ */
+ public RequestedAttributeType createRequestedAttributeType() {
+ return new RequestedAttributeType();
+ }
+
+ /**
+ * Create an instance of {@link HasAccountInBankType }
+ *
+ */
+ public HasAccountInBankType createHasAccountInBankType() {
+ return new HasAccountInBankType();
+ }
+
+ /**
+ * Create an instance of {@link IsHealthCareProfessionalType }
+ *
+ */
+ public IsHealthCareProfessionalType createIsHealthCareProfessionalType() {
+ return new IsHealthCareProfessionalType();
+ }
+
+ /**
+ * Create an instance of {@link IsAdminStaffType }
+ *
+ */
+ public IsAdminStaffType createIsAdminStaffType() {
+ return new IsAdminStaffType();
+ }
+
+ /**
+ * Create an instance of {@link CanonicalAddressType }
+ *
+ */
+ public CanonicalAddressType createCanonicalAddressType() {
+ return new CanonicalAddressType();
+ }
+
+ /**
+ * Create an instance of {@link IsHealthCareProfessionalDeprecatedType }
+ *
+ */
+ public IsHealthCareProfessionalDeprecatedType createIsHealthCareProfessionalDeprecatedType() {
+ return new IsHealthCareProfessionalDeprecatedType();
+ }
+
+ /**
+ * Create an instance of {@link MandateContentType }
+ *
+ */
+ public MandateContentType createMandateContentType() {
+ return new MandateContentType();
+ }
+
+ /**
+ * Create an instance of {@link IsCourseCoordinatorType }
+ *
+ */
+ public IsCourseCoordinatorType createIsCourseCoordinatorType() {
+ return new IsCourseCoordinatorType();
+ }
+
+ /**
+ * Create an instance of {@link IsAcademicStaffType }
+ *
+ */
+ public IsAcademicStaffType createIsAcademicStaffType() {
+ return new IsAcademicStaffType();
+ }
+
+ /**
+ * Create an instance of {@link IsTeacherOfType }
+ *
+ */
+ public IsTeacherOfType createIsTeacherOfType() {
+ return new IsTeacherOfType();
+ }
+
+ /**
+ * Create an instance of {@link AcTitleType }
+ *
+ */
+ public AcTitleType createAcTitleType() {
+ return new AcTitleType();
+ }
+
+ /**
+ * Create an instance of {@link RepresentationPersonType }
+ *
+ */
+ public RepresentationPersonType createRepresentationPersonType() {
+ return new RepresentationPersonType();
+ }
+
+ /**
+ * Create an instance of {@link IsStudentType }
+ *
+ */
+ public IsStudentType createIsStudentType() {
+ return new IsStudentType();
+ }
+
+ /**
+ * Create an instance of {@link HasDegreeType }
+ *
+ */
+ public HasDegreeType createHasDegreeType() {
+ return new HasDegreeType();
+ }
+
+ /**
+ * Create an instance of {@link DiplomaSupplementType }
+ *
+ */
+ public DiplomaSupplementType createDiplomaSupplementType() {
+ return new DiplomaSupplementType();
+ }
+
+ /**
+ * Create an instance of {@link HabilitationType }
+ *
+ */
+ public HabilitationType createHabilitationType() {
+ return new HabilitationType();
+ }
+
+ /**
+ * Create an instance of {@link TimeRestrictionType }
+ *
+ */
+ public TimeRestrictionType createTimeRestrictionType() {
+ return new TimeRestrictionType();
+ }
+
+ /**
+ * Create an instance of {@link Habilitation }
+ *
+ */
+ public Habilitation createHabilitation() {
+ return new Habilitation();
+ }
+
+ /**
+ * Create an instance of {@link TransactionLimitRestrictionType }
+ *
+ */
+ public TransactionLimitRestrictionType createTransactionLimitRestrictionType() {
+ return new TransactionLimitRestrictionType();
+ }
+
+ /**
+ * Create an instance of {@link IsHCPType }
+ *
+ */
+ //public IsHCPType createIsHCPType() {
+ // return new IsHCPType();
+ //}
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link HabilitationType }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "urn:eu:stork:names:tc:STORK:1.0:assertion", name = "habilitation")
+ public JAXBElement<HabilitationType> createHabilitation(HabilitationType value) {
+ return new JAXBElement<HabilitationType>(_Habilitation_QNAME, HabilitationType.class, null, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "urn:eu:stork:names:tc:STORK:1.0:assertion", name = "spApplication")
+ public JAXBElement<String> createSpApplication(String value) {
+ return new JAXBElement<String>(_SpApplication_QNAME, String.class, null, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "urn:eu:stork:names:tc:STORK:1.0:assertion", name = "specialisation")
+ public JAXBElement<String> createSpecialisation(String value) {
+ return new JAXBElement<String>(_Specialisation_QNAME, String.class, null, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link Integer }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "urn:eu:stork:names:tc:STORK:1.0:assertion", name = "AQAA")
+ public JAXBElement<Integer> createAQAA(Integer value) {
+ return new JAXBElement<Integer>(_AQAA_QNAME, Integer.class, null, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link Integer }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "urn:eu:stork:names:tc:STORK:1.0:assertion", name = "QualityAuthenticationAssuranceLevel")
+ public JAXBElement<Integer> createQualityAuthenticationAssuranceLevel(Integer value) {
+ return new JAXBElement<Integer>(_QualityAuthenticationAssuranceLevel_QNAME, Integer.class, null, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link IsAcademicStaffType }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "urn:eu:stork:names:tc:STORK:1.0:assertion", name = "isAcademicStaff")
+ public JAXBElement<IsAcademicStaffType> createIsAcademicStaff(IsAcademicStaffType value) {
+ return new JAXBElement<IsAcademicStaffType>(_IsAcademicStaff_QNAME, IsAcademicStaffType.class, null, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link MandateContentType }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "urn:eu:stork:names:tc:STORK:1.0:assertion", name = "mandateContent")
+ public JAXBElement<MandateContentType> createMandateContent(MandateContentType value) {
+ return new JAXBElement<MandateContentType>(_MandateContent_QNAME, MandateContentType.class, null, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link IsHealthCareProfessionalDeprecatedType }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "urn:eu:stork:names:tc:STORK:1.0:assertion", name = "isHealthCareProfessional_deprecated")
+ public JAXBElement<IsHealthCareProfessionalDeprecatedType> createIsHealthCareProfessionalDeprecated(IsHealthCareProfessionalDeprecatedType value) {
+ return new JAXBElement<IsHealthCareProfessionalDeprecatedType>(_IsHealthCareProfessionalDeprecated_QNAME, IsHealthCareProfessionalDeprecatedType.class, null, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link CanonicalAddressType }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "urn:eu:stork:names:tc:STORK:1.0:assertion", name = "canonicalRegisteredAddress")
+ public JAXBElement<CanonicalAddressType> createCanonicalRegisteredAddress(CanonicalAddressType value) {
+ return new JAXBElement<CanonicalAddressType>(_CanonicalRegisteredAddress_QNAME, CanonicalAddressType.class, null, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "urn:eu:stork:names:tc:STORK:1.0:assertion", name = "spCountry")
+ @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+ public JAXBElement<String> createSpCountry(String value) {
+ return new JAXBElement<String>(_SpCountry_QNAME, String.class, null, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link IsAdminStaffType }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "urn:eu:stork:names:tc:STORK:1.0:assertion", name = "isAdminStaff")
+ public JAXBElement<IsAdminStaffType> createIsAdminStaff(IsAdminStaffType value) {
+ return new JAXBElement<IsAdminStaffType>(_IsAdminStaff_QNAME, IsAdminStaffType.class, null, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link Object }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "urn:eu:stork:names:tc:STORK:1.0:assertion", name = "AttributeValue")
+ public JAXBElement<Object> createAttributeValue(Object value) {
+ return new JAXBElement<Object>(_AttributeValue_QNAME, Object.class, null, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "urn:eu:stork:names:tc:STORK:1.0:assertion", name = "countryCodeAddress")
+ @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+ public JAXBElement<String> createCountryCodeAddress(String value) {
+ return new JAXBElement<String>(_CountryCodeAddress_QNAME, String.class, null, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link HasAccountInBankType }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "urn:eu:stork:names:tc:STORK:1.0:assertion", name = "hasAccountInBank")
+ public JAXBElement<HasAccountInBankType> createHasAccountInBank(HasAccountInBankType value) {
+ return new JAXBElement<HasAccountInBankType>(_HasAccountInBank_QNAME, HasAccountInBankType.class, null, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link CurrentStudiesType }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "urn:eu:stork:names:tc:STORK:1.0:assertion", name = "currentStudiesSupplement")
+ public JAXBElement<CurrentStudiesType> createCurrentStudiesSupplement(CurrentStudiesType value) {
+ return new JAXBElement<CurrentStudiesType>(_CurrentStudiesSupplement_QNAME, CurrentStudiesType.class, null, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link MandateType }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "urn:eu:stork:names:tc:STORK:1.0:assertion", name = "mandate")
+ public JAXBElement<MandateType> createMandate(MandateType value) {
+ return new JAXBElement<MandateType>(_Mandate_QNAME, MandateType.class, null, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link RequestedAttributeType }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "urn:eu:stork:names:tc:STORK:1.0:assertion", name = "RequestedAttribute")
+ public JAXBElement<RequestedAttributeType> createRequestedAttribute(RequestedAttributeType value) {
+ return new JAXBElement<RequestedAttributeType>(_RequestedAttribute_QNAME, RequestedAttributeType.class, null, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "urn:eu:stork:names:tc:STORK:1.0:assertion", name = "spSector")
+ public JAXBElement<String> createSpSector(String value) {
+ return new JAXBElement<String>(_SpSector_QNAME, String.class, null, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link HasDegreeType }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "urn:eu:stork:names:tc:STORK:1.0:assertion", name = "hasDegree")
+ public JAXBElement<HasDegreeType> createHasDegree(HasDegreeType value) {
+ return new JAXBElement<HasDegreeType>(_HasDegree_QNAME, HasDegreeType.class, null, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link DiplomaSupplementType }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "urn:eu:stork:names:tc:STORK:1.0:assertion", name = "diplomaSupplement")
+ public JAXBElement<DiplomaSupplementType> createDiplomaSupplement(DiplomaSupplementType value) {
+ return new JAXBElement<DiplomaSupplementType>(_DiplomaSupplement_QNAME, DiplomaSupplementType.class, null, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link IsStudentType }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "urn:eu:stork:names:tc:STORK:1.0:assertion", name = "isStudent")
+ public JAXBElement<IsStudentType> createIsStudent(IsStudentType value) {
+ return new JAXBElement<IsStudentType>(_IsStudent_QNAME, IsStudentType.class, null, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "urn:eu:stork:names:tc:STORK:1.0:assertion", name = "HCPType")
+ public JAXBElement<String> createHCPType(String value) {
+ return new JAXBElement<String>(_HCPType_QNAME, String.class, null, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link RepresentationPersonType }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "urn:eu:stork:names:tc:STORK:1.0:assertion", name = "representationPerson")
+ public JAXBElement<RepresentationPersonType> createRepresentationPerson(RepresentationPersonType value) {
+ return new JAXBElement<RepresentationPersonType>(_RepresentationPerson_QNAME, RepresentationPersonType.class, null, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link CanonicalAddressType }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "urn:eu:stork:names:tc:STORK:1.0:assertion", name = "canonicalResidenceAddress")
+ public JAXBElement<CanonicalAddressType> createCanonicalResidenceAddress(CanonicalAddressType value) {
+ return new JAXBElement<CanonicalAddressType>(_CanonicalResidenceAddress_QNAME, CanonicalAddressType.class, null, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link AcTitleType }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "urn:eu:stork:names:tc:STORK:1.0:assertion", name = "acTitle")
+ public JAXBElement<AcTitleType> createAcTitle(AcTitleType value) {
+ return new JAXBElement<AcTitleType>(_AcTitle_QNAME, AcTitleType.class, null, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link IsTeacherOfType }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "urn:eu:stork:names:tc:STORK:1.0:assertion", name = "isTeacherOf")
+ public JAXBElement<IsTeacherOfType> createIsTeacherOf(IsTeacherOfType value) {
+ return new JAXBElement<IsTeacherOfType>(_IsTeacherOf_QNAME, IsTeacherOfType.class, null, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link IsCourseCoordinatorType }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "urn:eu:stork:names:tc:STORK:1.0:assertion", name = "isCourseCoordinator")
+ public JAXBElement<IsCourseCoordinatorType> createIsCourseCoordinator(IsCourseCoordinatorType value) {
+ return new JAXBElement<IsCourseCoordinatorType>(_IsCourseCoordinator_QNAME, IsCourseCoordinatorType.class, null, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "urn:eu:stork:names:tc:STORK:1.0:assertion", name = "CitizenCountryCode")
+ @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+ public JAXBElement<String> createCitizenCountryCode(String value) {
+ return new JAXBElement<String>(_CitizenCountryCode_QNAME, String.class, null, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "urn:eu:stork:names:tc:STORK:1.0:assertion", name = "study")
+ public JAXBElement<String> createStudy(String value) {
+ return new JAXBElement<String>(_Study_QNAME, String.class, null, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link IsHealthCareProfessionalType }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "urn:eu:stork:names:tc:STORK:1.0:assertion", name = "isHealthCareProfessional")
+ public JAXBElement<IsHealthCareProfessionalType> createIsHealthCareProfessional(IsHealthCareProfessionalType value) {
+ return new JAXBElement<IsHealthCareProfessionalType>(_IsHealthCareProfessional_QNAME, IsHealthCareProfessionalType.class, null, value);
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_1_0/assertion/OriginalMandateType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_1_0/assertion/OriginalMandateType.java
new file mode 100644
index 000000000..776b36644
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_1_0/assertion/OriginalMandateType.java
@@ -0,0 +1,92 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.10.09 at 10:11:43 AM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._1_0.assertion;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlValue;
+
+
+/**
+ * <p>Java class for originalMandateType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="originalMandateType">
+ * &lt;simpleContent>
+ * &lt;extension base="&lt;http://www.w3.org/2001/XMLSchema>base64Binary">
+ * &lt;attribute name="mimeType" type="{http://www.w3.org/2001/XMLSchema}string" />
+ * &lt;/extension>
+ * &lt;/simpleContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "originalMandateType", propOrder = {
+ "value"
+})
+public class OriginalMandateType {
+
+ @XmlValue
+ protected byte[] value;
+ @XmlAttribute(name = "mimeType")
+ protected String mimeType;
+
+ /**
+ * Gets the value of the value property.
+ *
+ * @return
+ * possible object is
+ * byte[]
+ */
+ public byte[] getValue() {
+ return value;
+ }
+
+ /**
+ * Sets the value of the value property.
+ *
+ * @param value
+ * allowed object is
+ * byte[]
+ */
+ public void setValue(byte[] value) {
+ this.value = value;
+ }
+
+ /**
+ * Gets the value of the mimeType property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getMimeType() {
+ return mimeType;
+ }
+
+ /**
+ * Sets the value of the mimeType property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setMimeType(String value) {
+ this.mimeType = value;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/RepresentationPersonType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_1_0/assertion/RepresentationPersonType.java
index b1d993f89..fd7aa460a 100644
--- a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/RepresentationPersonType.java
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_1_0/assertion/RepresentationPersonType.java
@@ -1,289 +1,289 @@
-//
-// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
-// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
-// Any modifications to this file will be lost upon recompilation of the source schema.
-// Generated on: 2014.02.17 at 10:36:59 AM GMT
-//
-
-
-package eu.stork.peps.complex.attributes;
-
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlType;
-
-
-/**
- * <p>Java class for representationPersonType complex type.
- *
- * <p>The following schema fragment specifies the expected content contained within this class.
- *
- * <pre>
- * &lt;complexType name="representationPersonType">
- * &lt;complexContent>
- * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * &lt;choice>
- * &lt;sequence>
- * &lt;element name="eIdentifier" type="{http://www.w3.org/2001/XMLSchema}string"/>
- * &lt;element name="givenName" type="{http://www.w3.org/2001/XMLSchema}string"/>
- * &lt;element name="surname" type="{http://www.w3.org/2001/XMLSchema}string"/>
- * &lt;element name="dateOfBirth" type="{http://www.w3.org/2001/XMLSchema}string"/>
- * &lt;/sequence>
- * &lt;sequence>
- * &lt;element name="eLPIdentifier" type="{http://www.w3.org/2001/XMLSchema}string"/>
- * &lt;element name="name" type="{http://www.w3.org/2001/XMLSchema}string"/>
- * &lt;element name="address" type="{http://www.w3.org/2001/XMLSchema}string"/>
- * &lt;element name="canonicalAddress" type="{urn:eu:stork:names:tc:STORK:1.0:assertion}canonicalAddressType"/>
- * &lt;element name="type" type="{http://www.w3.org/2001/XMLSchema}string"/>
- * &lt;/sequence>
- * &lt;/choice>
- * &lt;/restriction>
- * &lt;/complexContent>
- * &lt;/complexType>
- * </pre>
- *
- *
- */
-@XmlAccessorType(XmlAccessType.FIELD)
-@XmlType(name = "representationPersonType", propOrder = {
- "eIdentifier",
- "givenName",
- "surname",
- "dateOfBirth",
- "elpIdentifier",
- "name",
- "address",
- "canonicalAddress",
- "type"
-})
-public class RepresentationPersonType {
-
- protected String eIdentifier;
- protected String givenName;
- protected String surname;
- protected String dateOfBirth;
- @XmlElement(name = "eLPIdentifier")
- protected String elpIdentifier;
- protected String name;
- protected String address;
- protected CanonicalAddressType canonicalAddress;
- protected String type;
-
- /**
- * Gets the value of the eIdentifier property.
- *
- * @return
- * possible object is
- * {@link String }
- *
- */
- public String getEIdentifier() {
- return eIdentifier;
- }
-
- /**
- * Sets the value of the eIdentifier property.
- *
- * @param value
- * allowed object is
- * {@link String }
- *
- */
- public void setEIdentifier(String value) {
- this.eIdentifier = value;
- }
-
- /**
- * Gets the value of the givenName property.
- *
- * @return
- * possible object is
- * {@link String }
- *
- */
- public String getGivenName() {
- return givenName;
- }
-
- /**
- * Sets the value of the givenName property.
- *
- * @param value
- * allowed object is
- * {@link String }
- *
- */
- public void setGivenName(String value) {
- this.givenName = value;
- }
-
- /**
- * Gets the value of the surname property.
- *
- * @return
- * possible object is
- * {@link String }
- *
- */
- public String getSurname() {
- return surname;
- }
-
- /**
- * Sets the value of the surname property.
- *
- * @param value
- * allowed object is
- * {@link String }
- *
- */
- public void setSurname(String value) {
- this.surname = value;
- }
-
- /**
- * Gets the value of the dateOfBirth property.
- *
- * @return
- * possible object is
- * {@link String }
- *
- */
- public String getDateOfBirth() {
- return dateOfBirth;
- }
-
- /**
- * Sets the value of the dateOfBirth property.
- *
- * @param value
- * allowed object is
- * {@link String }
- *
- */
- public void setDateOfBirth(String value) {
- this.dateOfBirth = value;
- }
-
- /**
- * Gets the value of the elpIdentifier property.
- *
- * @return
- * possible object is
- * {@link String }
- *
- */
- public String getELPIdentifier() {
- return elpIdentifier;
- }
-
- /**
- * Sets the value of the elpIdentifier property.
- *
- * @param value
- * allowed object is
- * {@link String }
- *
- */
- public void setELPIdentifier(String value) {
- this.elpIdentifier = value;
- }
-
- /**
- * Gets the value of the name property.
- *
- * @return
- * possible object is
- * {@link String }
- *
- */
- public String getName() {
- return name;
- }
-
- /**
- * Sets the value of the name property.
- *
- * @param value
- * allowed object is
- * {@link String }
- *
- */
- public void setName(String value) {
- this.name = value;
- }
-
- /**
- * Gets the value of the address property.
- *
- * @return
- * possible object is
- * {@link String }
- *
- */
- public String getAddress() {
- return address;
- }
-
- /**
- * Sets the value of the address property.
- *
- * @param value
- * allowed object is
- * {@link String }
- *
- */
- public void setAddress(String value) {
- this.address = value;
- }
-
- /**
- * Gets the value of the canonicalAddress property.
- *
- * @return
- * possible object is
- * {@link CanonicalAddressType }
- *
- */
- public CanonicalAddressType getCanonicalAddress() {
- return canonicalAddress;
- }
-
- /**
- * Sets the value of the canonicalAddress property.
- *
- * @param value
- * allowed object is
- * {@link CanonicalAddressType }
- *
- */
- public void setCanonicalAddress(CanonicalAddressType value) {
- this.canonicalAddress = value;
- }
-
- /**
- * Gets the value of the type property.
- *
- * @return
- * possible object is
- * {@link String }
- *
- */
- public String getType() {
- return type;
- }
-
- /**
- * Sets the value of the type property.
- *
- * @param value
- * allowed object is
- * {@link String }
- *
- */
- public void setType(String value) {
- this.type = value;
- }
-
-}
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.10.29 at 02:15:24 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._1_0.assertion;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for representationPersonType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="representationPersonType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;choice>
+ * &lt;sequence>
+ * &lt;element name="eIdentifier" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ * &lt;element name="givenName" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ * &lt;element name="surname" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ * &lt;element name="dateOfBirth" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ * &lt;/sequence>
+ * &lt;sequence>
+ * &lt;element name="eLPIdentifier" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ * &lt;element name="legalName" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ * &lt;element name="textRegisteredAddress" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ * &lt;element name="canonicalRegisteredAddress" type="{urn:eu:stork:names:tc:STORK:1.0:assertion}canonicalAddressType"/>
+ * &lt;element name="legalForm" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ * &lt;/sequence>
+ * &lt;/choice>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "representationPersonType", propOrder = {
+ "eIdentifier",
+ "givenName",
+ "surname",
+ "dateOfBirth",
+ "elpIdentifier",
+ "legalName",
+ "textRegisteredAddress",
+ "canonicalRegisteredAddress",
+ "legalForm"
+})
+public class RepresentationPersonType {
+
+ protected String eIdentifier;
+ protected String givenName;
+ protected String surname;
+ protected String dateOfBirth;
+ @XmlElement(name = "eLPIdentifier")
+ protected String elpIdentifier;
+ protected String legalName;
+ protected String textRegisteredAddress;
+ protected CanonicalAddressType canonicalRegisteredAddress;
+ protected String legalForm;
+
+ /**
+ * Gets the value of the eIdentifier property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getEIdentifier() {
+ return eIdentifier;
+ }
+
+ /**
+ * Sets the value of the eIdentifier property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setEIdentifier(String value) {
+ this.eIdentifier = value;
+ }
+
+ /**
+ * Gets the value of the givenName property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getGivenName() {
+ return givenName;
+ }
+
+ /**
+ * Sets the value of the givenName property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setGivenName(String value) {
+ this.givenName = value;
+ }
+
+ /**
+ * Gets the value of the surname property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getSurname() {
+ return surname;
+ }
+
+ /**
+ * Sets the value of the surname property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setSurname(String value) {
+ this.surname = value;
+ }
+
+ /**
+ * Gets the value of the dateOfBirth property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getDateOfBirth() {
+ return dateOfBirth;
+ }
+
+ /**
+ * Sets the value of the dateOfBirth property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setDateOfBirth(String value) {
+ this.dateOfBirth = value;
+ }
+
+ /**
+ * Gets the value of the elpIdentifier property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getELPIdentifier() {
+ return elpIdentifier;
+ }
+
+ /**
+ * Sets the value of the elpIdentifier property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setELPIdentifier(String value) {
+ this.elpIdentifier = value;
+ }
+
+ /**
+ * Gets the value of the legalName property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getLegalName() {
+ return legalName;
+ }
+
+ /**
+ * Sets the value of the legalName property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setLegalName(String value) {
+ this.legalName = value;
+ }
+
+ /**
+ * Gets the value of the textRegisteredAddress property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getTextRegisteredAddress() {
+ return textRegisteredAddress;
+ }
+
+ /**
+ * Sets the value of the textRegisteredAddress property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setTextRegisteredAddress(String value) {
+ this.textRegisteredAddress = value;
+ }
+
+ /**
+ * Gets the value of the canonicalRegisteredAddress property.
+ *
+ * @return
+ * possible object is
+ * {@link CanonicalAddressType }
+ *
+ */
+ public CanonicalAddressType getCanonicalRegisteredAddress() {
+ return canonicalRegisteredAddress;
+ }
+
+ /**
+ * Sets the value of the canonicalRegisteredAddress property.
+ *
+ * @param value
+ * allowed object is
+ * {@link CanonicalAddressType }
+ *
+ */
+ public void setCanonicalRegisteredAddress(CanonicalAddressType value) {
+ this.canonicalRegisteredAddress = value;
+ }
+
+ /**
+ * Gets the value of the legalForm property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getLegalForm() {
+ return legalForm;
+ }
+
+ /**
+ * Sets the value of the legalForm property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setLegalForm(String value) {
+ this.legalForm = value;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/RequestedAttributeType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_1_0/assertion/RequestedAttributeType.java
index 6a7c0b443..4800a2cfc 100644
--- a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/RequestedAttributeType.java
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_1_0/assertion/RequestedAttributeType.java
@@ -1,212 +1,212 @@
-//
-// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
-// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
-// Any modifications to this file will be lost upon recompilation of the source schema.
-// Generated on: 2014.02.17 at 10:36:59 AM GMT
-//
-
-
-package eu.stork.peps.complex.attributes;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlAnyAttribute;
-import javax.xml.bind.annotation.XmlAttribute;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlSchemaType;
-import javax.xml.bind.annotation.XmlType;
-import javax.xml.namespace.QName;
-
-
-/**
- * <p>Java class for RequestedAttributeType complex type.
- *
- * <p>The following schema fragment specifies the expected content contained within this class.
- *
- * <pre>
- * &lt;complexType name="RequestedAttributeType">
- * &lt;complexContent>
- * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
- * &lt;sequence>
- * &lt;element ref="{urn:eu:stork:names:tc:STORK:1.0:assertion}AttributeValue" maxOccurs="unbounded" minOccurs="0"/>
- * &lt;/sequence>
- * &lt;attribute name="Name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
- * &lt;attribute name="NameFormat" use="required" type="{http://www.w3.org/2001/XMLSchema}anyURI" />
- * &lt;attribute name="FriendlyName" type="{http://www.w3.org/2001/XMLSchema}string" />
- * &lt;attribute name="isRequired" type="{http://www.w3.org/2001/XMLSchema}boolean" />
- * &lt;anyAttribute processContents='lax' namespace='##other'/>
- * &lt;/restriction>
- * &lt;/complexContent>
- * &lt;/complexType>
- * </pre>
- *
- *
- */
-@XmlAccessorType(XmlAccessType.FIELD)
-@XmlType(name = "RequestedAttributeType", propOrder = {
- "attributeValue"
-})
-public class RequestedAttributeType {
-
- @XmlElement(name = "AttributeValue")
- protected List<Object> attributeValue;
- @XmlAttribute(name = "Name", required = true)
- protected String name;
- @XmlAttribute(name = "NameFormat", required = true)
- @XmlSchemaType(name = "anyURI")
- protected String nameFormat;
- @XmlAttribute(name = "FriendlyName")
- protected String friendlyName;
- @XmlAttribute(name = "isRequired")
- protected Boolean isRequired;
- @XmlAnyAttribute
- private Map<QName, String> otherAttributes = new HashMap<QName, String>();
-
- /**
- * Gets the value of the attributeValue property.
- *
- * <p>
- * 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 <CODE>set</CODE> method for the attributeValue property.
- *
- * <p>
- * For example, to add a new item, do as follows:
- * <pre>
- * getAttributeValue().add(newItem);
- * </pre>
- *
- *
- * <p>
- * Objects of the following type(s) are allowed in the list
- * {@link Object }
- *
- *
- */
- public List<Object> getAttributeValue() {
- if (attributeValue == null) {
- attributeValue = new ArrayList<Object>();
- }
- return this.attributeValue;
- }
-
- /**
- * Gets the value of the name property.
- *
- * @return
- * possible object is
- * {@link String }
- *
- */
- public String getName() {
- return name;
- }
-
- /**
- * Sets the value of the name property.
- *
- * @param value
- * allowed object is
- * {@link String }
- *
- */
- public void setName(String value) {
- this.name = value;
- }
-
- /**
- * Gets the value of the nameFormat property.
- *
- * @return
- * possible object is
- * {@link String }
- *
- */
- public String getNameFormat() {
- return nameFormat;
- }
-
- /**
- * Sets the value of the nameFormat property.
- *
- * @param value
- * allowed object is
- * {@link String }
- *
- */
- public void setNameFormat(String value) {
- this.nameFormat = value;
- }
-
- /**
- * Gets the value of the friendlyName property.
- *
- * @return
- * possible object is
- * {@link String }
- *
- */
- public String getFriendlyName() {
- return friendlyName;
- }
-
- /**
- * Sets the value of the friendlyName property.
- *
- * @param value
- * allowed object is
- * {@link String }
- *
- */
- public void setFriendlyName(String value) {
- this.friendlyName = value;
- }
-
- /**
- * Gets the value of the isRequired property.
- *
- * @return
- * possible object is
- * {@link Boolean }
- *
- */
- public Boolean isIsRequired() {
- return isRequired;
- }
-
- /**
- * Sets the value of the isRequired property.
- *
- * @param value
- * allowed object is
- * {@link Boolean }
- *
- */
- public void setIsRequired(Boolean value) {
- this.isRequired = value;
- }
-
- /**
- * Gets a map that contains attributes that aren't bound to any typed property on this class.
- *
- * <p>
- * the map is keyed by the name of the attribute and
- * the value is the string value of the attribute.
- *
- * the map returned by this method is live, and you can add new attribute
- * by updating the map directly. Because of this design, there's no setter.
- *
- *
- * @return
- * always non-null
- */
- public Map<QName, String> getOtherAttributes() {
- return otherAttributes;
- }
-
-}
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._1_0.assertion;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyAttribute;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.namespace.QName;
+
+
+/**
+ * <p>Java class for RequestedAttributeType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="RequestedAttributeType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element ref="{urn:eu:stork:names:tc:STORK:1.0:assertion}AttributeValue" maxOccurs="unbounded" minOccurs="0"/>
+ * &lt;/sequence>
+ * &lt;attribute name="Name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
+ * &lt;attribute name="NameFormat" use="required" type="{http://www.w3.org/2001/XMLSchema}anyURI" />
+ * &lt;attribute name="FriendlyName" type="{http://www.w3.org/2001/XMLSchema}string" />
+ * &lt;attribute name="isRequired" type="{http://www.w3.org/2001/XMLSchema}boolean" />
+ * &lt;anyAttribute processContents='lax' namespace='##other'/>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "RequestedAttributeType", propOrder = {
+ "attributeValue"
+})
+public class RequestedAttributeType {
+
+ @XmlElement(name = "AttributeValue")
+ protected List<Object> attributeValue;
+ @XmlAttribute(name = "Name", required = true)
+ protected String name;
+ @XmlAttribute(name = "NameFormat", required = true)
+ @XmlSchemaType(name = "anyURI")
+ protected String nameFormat;
+ @XmlAttribute(name = "FriendlyName")
+ protected String friendlyName;
+ @XmlAttribute(name = "isRequired")
+ protected Boolean isRequired;
+ @XmlAnyAttribute
+ private Map<QName, String> otherAttributes = new HashMap<QName, String>();
+
+ /**
+ * Gets the value of the attributeValue property.
+ *
+ * <p>
+ * 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 <CODE>set</CODE> method for the attributeValue property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getAttributeValue().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link Object }
+ *
+ *
+ */
+ public List<Object> getAttributeValue() {
+ if (attributeValue == null) {
+ attributeValue = new ArrayList<Object>();
+ }
+ return this.attributeValue;
+ }
+
+ /**
+ * Gets the value of the name property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * Sets the value of the name property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setName(String value) {
+ this.name = value;
+ }
+
+ /**
+ * Gets the value of the nameFormat property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getNameFormat() {
+ return nameFormat;
+ }
+
+ /**
+ * Sets the value of the nameFormat property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setNameFormat(String value) {
+ this.nameFormat = value;
+ }
+
+ /**
+ * Gets the value of the friendlyName property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getFriendlyName() {
+ return friendlyName;
+ }
+
+ /**
+ * Sets the value of the friendlyName property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setFriendlyName(String value) {
+ this.friendlyName = value;
+ }
+
+ /**
+ * Gets the value of the isRequired property.
+ *
+ * @return
+ * possible object is
+ * {@link Boolean }
+ *
+ */
+ public Boolean isIsRequired() {
+ return isRequired;
+ }
+
+ /**
+ * Sets the value of the isRequired property.
+ *
+ * @param value
+ * allowed object is
+ * {@link Boolean }
+ *
+ */
+ public void setIsRequired(Boolean value) {
+ this.isRequired = value;
+ }
+
+ /**
+ * Gets a map that contains attributes that aren't bound to any typed property on this class.
+ *
+ * <p>
+ * the map is keyed by the name of the attribute and
+ * the value is the string value of the attribute.
+ *
+ * the map returned by this method is live, and you can add new attribute
+ * by updating the map directly. Because of this design, there's no setter.
+ *
+ *
+ * @return
+ * always non-null
+ */
+ public Map<QName, String> getOtherAttributes() {
+ return otherAttributes;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_1_0/assertion/TimeRestrictionType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_1_0/assertion/TimeRestrictionType.java
new file mode 100644
index 000000000..34cfb978a
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_1_0/assertion/TimeRestrictionType.java
@@ -0,0 +1,101 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.05.12 at 10:04:52 AM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._1_0.assertion;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.datatype.XMLGregorianCalendar;
+
+
+/**
+ * <p>Java class for TimeRestrictionType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="TimeRestrictionType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="validFrom" type="{http://www.w3.org/2001/XMLSchema}date"/>
+ * &lt;element name="validTo" type="{http://www.w3.org/2001/XMLSchema}date"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "TimeRestrictionType", propOrder = {
+ "validFrom",
+ "validTo"
+})
+public class TimeRestrictionType {
+
+ @XmlElement(required = true)
+ @XmlSchemaType(name = "date")
+ protected XMLGregorianCalendar validFrom;
+ @XmlElement(required = true)
+ @XmlSchemaType(name = "date")
+ protected XMLGregorianCalendar validTo;
+
+ /**
+ * Gets the value of the validFrom property.
+ *
+ * @return
+ * possible object is
+ * {@link XMLGregorianCalendar }
+ *
+ */
+ public XMLGregorianCalendar getValidFrom() {
+ return validFrom;
+ }
+
+ /**
+ * Sets the value of the validFrom property.
+ *
+ * @param value
+ * allowed object is
+ * {@link XMLGregorianCalendar }
+ *
+ */
+ public void setValidFrom(XMLGregorianCalendar value) {
+ this.validFrom = value;
+ }
+
+ /**
+ * Gets the value of the validTo property.
+ *
+ * @return
+ * possible object is
+ * {@link XMLGregorianCalendar }
+ *
+ */
+ public XMLGregorianCalendar getValidTo() {
+ return validTo;
+ }
+
+ /**
+ * Sets the value of the validTo property.
+ *
+ * @param value
+ * allowed object is
+ * {@link XMLGregorianCalendar }
+ *
+ */
+ public void setValidTo(XMLGregorianCalendar value) {
+ this.validTo = value;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_1_0/assertion/TransactionLimitRestrictionType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_1_0/assertion/TransactionLimitRestrictionType.java
new file mode 100644
index 000000000..b9db4ea0d
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_1_0/assertion/TransactionLimitRestrictionType.java
@@ -0,0 +1,98 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.05.12 at 10:04:52 AM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._1_0.assertion;
+
+import java.math.BigDecimal;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for TransactionLimitRestrictionType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="TransactionLimitRestrictionType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="amount" type="{http://www.w3.org/2001/XMLSchema}decimal"/>
+ * &lt;element name="currency" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "TransactionLimitRestrictionType", propOrder = {
+ "amount",
+ "currency"
+})
+public class TransactionLimitRestrictionType {
+
+ @XmlElement(required = true)
+ protected BigDecimal amount;
+ @XmlElement(required = true)
+ protected String currency;
+
+ /**
+ * Gets the value of the amount property.
+ *
+ * @return
+ * possible object is
+ * {@link BigDecimal }
+ *
+ */
+ public BigDecimal getAmount() {
+ return amount;
+ }
+
+ /**
+ * Sets the value of the amount property.
+ *
+ * @param value
+ * allowed object is
+ * {@link BigDecimal }
+ *
+ */
+ public void setAmount(BigDecimal value) {
+ this.amount = value;
+ }
+
+ /**
+ * Gets the value of the currency property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getCurrency() {
+ return currency;
+ }
+
+ /**
+ * Sets the value of the currency property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setCurrency(String value) {
+ this.currency = value;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/package-info.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_1_0/assertion/package-info.java
index 47e225d22..e94518e03 100644
--- a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/package-info.java
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_1_0/assertion/package-info.java
@@ -1,9 +1,9 @@
-//
-// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
-// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
-// Any modifications to this file will be lost upon recompilation of the source schema.
-// Generated on: 2014.02.17 at 10:36:59 AM GMT
-//
-
-@javax.xml.bind.annotation.XmlSchema(namespace = "urn:eu:stork:names:tc:STORK:1.0:assertion", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
-package eu.stork.peps.complex.attributes;
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+@javax.xml.bind.annotation.XmlSchema(namespace = "urn:eu:stork:names:tc:STORK:1.0:assertion", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
+package eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._1_0.assertion;
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/AdditionalInformationType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/AdditionalInformationType.java
new file mode 100644
index 000000000..6b26bd000
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/AdditionalInformationType.java
@@ -0,0 +1,97 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._2_0.academic.generaldiploma;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for AdditionalInformationType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="AdditionalInformationType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="SpecificInformation" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}RichTextTagType" minOccurs="0"/>
+ * &lt;element name="OtherSources" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}RichTextTagType" minOccurs="0"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "AdditionalInformationType", propOrder = {
+ "specificInformation",
+ "otherSources"
+})
+public class AdditionalInformationType {
+
+ @XmlElement(name = "SpecificInformation")
+ protected RichTextTagType specificInformation;
+ @XmlElement(name = "OtherSources")
+ protected RichTextTagType otherSources;
+
+ /**
+ * Gets the value of the specificInformation property.
+ *
+ * @return
+ * possible object is
+ * {@link RichTextTagType }
+ *
+ */
+ public RichTextTagType getSpecificInformation() {
+ return specificInformation;
+ }
+
+ /**
+ * Sets the value of the specificInformation property.
+ *
+ * @param value
+ * allowed object is
+ * {@link RichTextTagType }
+ *
+ */
+ public void setSpecificInformation(RichTextTagType value) {
+ this.specificInformation = value;
+ }
+
+ /**
+ * Gets the value of the otherSources property.
+ *
+ * @return
+ * possible object is
+ * {@link RichTextTagType }
+ *
+ */
+ public RichTextTagType getOtherSources() {
+ return otherSources;
+ }
+
+ /**
+ * Sets the value of the otherSources property.
+ *
+ * @param value
+ * allowed object is
+ * {@link RichTextTagType }
+ *
+ */
+ public void setOtherSources(RichTextTagType value) {
+ this.otherSources = value;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/AddressType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/AddressType.java
new file mode 100644
index 000000000..d7fae6b34
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/AddressType.java
@@ -0,0 +1,188 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._2_0.academic.generaldiploma;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for AddressType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="AddressType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="Line" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}PlainTextType" maxOccurs="unbounded"/>
+ * &lt;element name="City" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}PlainTextType" minOccurs="0"/>
+ * &lt;element name="StateOrRegion" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}PlainTextType" minOccurs="0"/>
+ * &lt;element name="PostalCode" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}PlainTextType" minOccurs="0"/>
+ * &lt;element name="Country" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}CountryTextCodeType" minOccurs="0"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "AddressType", propOrder = {
+ "line",
+ "city",
+ "stateOrRegion",
+ "postalCode",
+ "country"
+})
+public class AddressType {
+
+ @XmlElement(name = "Line", required = true)
+ protected List<String> line;
+ @XmlElement(name = "City")
+ protected String city;
+ @XmlElement(name = "StateOrRegion")
+ protected String stateOrRegion;
+ @XmlElement(name = "PostalCode")
+ protected String postalCode;
+ @XmlElement(name = "Country")
+ protected CountryTextCodeType country;
+
+ /**
+ * Gets the value of the line property.
+ *
+ * <p>
+ * 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 <CODE>set</CODE> method for the line property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getLine().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link String }
+ *
+ *
+ */
+ public List<String> getLine() {
+ if (line == null) {
+ line = new ArrayList<String>();
+ }
+ return this.line;
+ }
+
+ /**
+ * Gets the value of the city property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getCity() {
+ return city;
+ }
+
+ /**
+ * Sets the value of the city property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setCity(String value) {
+ this.city = value;
+ }
+
+ /**
+ * Gets the value of the stateOrRegion property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getStateOrRegion() {
+ return stateOrRegion;
+ }
+
+ /**
+ * Sets the value of the stateOrRegion property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setStateOrRegion(String value) {
+ this.stateOrRegion = value;
+ }
+
+ /**
+ * Gets the value of the postalCode property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getPostalCode() {
+ return postalCode;
+ }
+
+ /**
+ * Sets the value of the postalCode property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setPostalCode(String value) {
+ this.postalCode = value;
+ }
+
+ /**
+ * Gets the value of the country property.
+ *
+ * @return
+ * possible object is
+ * {@link CountryTextCodeType }
+ *
+ */
+ public CountryTextCodeType getCountry() {
+ return country;
+ }
+
+ /**
+ * Sets the value of the country property.
+ *
+ * @param value
+ * allowed object is
+ * {@link CountryTextCodeType }
+ *
+ */
+ public void setCountry(CountryTextCodeType value) {
+ this.country = value;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/AttachedFileDataType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/AttachedFileDataType.java
new file mode 100644
index 000000000..f905dcdd5
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/AttachedFileDataType.java
@@ -0,0 +1,123 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._2_0.academic.generaldiploma;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for AttachedFileDataType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="AttachedFileDataType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="Description" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}PlainTextType"/>
+ * &lt;element name="Mime" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}MimeType"/>
+ * &lt;element name="Data" type="{http://www.w3.org/2001/XMLSchema}base64Binary"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "AttachedFileDataType", propOrder = {
+ "description",
+ "mime",
+ "data"
+})
+public class AttachedFileDataType {
+
+ @XmlElement(name = "Description", required = true)
+ protected String description;
+ @XmlElement(name = "Mime", required = true)
+ protected MimeType mime;
+ @XmlElement(name = "Data", required = true)
+ protected byte[] data;
+
+ /**
+ * Gets the value of the description property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getDescription() {
+ return description;
+ }
+
+ /**
+ * Sets the value of the description property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setDescription(String value) {
+ this.description = value;
+ }
+
+ /**
+ * Gets the value of the mime property.
+ *
+ * @return
+ * possible object is
+ * {@link MimeType }
+ *
+ */
+ public MimeType getMime() {
+ return mime;
+ }
+
+ /**
+ * Sets the value of the mime property.
+ *
+ * @param value
+ * allowed object is
+ * {@link MimeType }
+ *
+ */
+ public void setMime(MimeType value) {
+ this.mime = value;
+ }
+
+ /**
+ * Gets the value of the data property.
+ *
+ * @return
+ * possible object is
+ * byte[]
+ */
+ public byte[] getData() {
+ return data;
+ }
+
+ /**
+ * Sets the value of the data property.
+ *
+ * @param value
+ * allowed object is
+ * byte[]
+ */
+ public void setData(byte[] value) {
+ this.data = value;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/AttachedFileURLType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/AttachedFileURLType.java
new file mode 100644
index 000000000..7bd89fef8
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/AttachedFileURLType.java
@@ -0,0 +1,125 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._2_0.academic.generaldiploma;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for AttachedFileURLType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="AttachedFileURLType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="Description" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}PlainTextType"/>
+ * &lt;element name="Mime" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}MimeType"/>
+ * &lt;element name="URL" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}URLType"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "AttachedFileURLType", propOrder = {
+ "description",
+ "mime",
+ "url"
+})
+public class AttachedFileURLType {
+
+ @XmlElement(name = "Description", required = true)
+ protected String description;
+ @XmlElement(name = "Mime", required = true)
+ protected MimeType mime;
+ @XmlElement(name = "URL", required = true)
+ protected String url;
+
+ /**
+ * Gets the value of the description property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getDescription() {
+ return description;
+ }
+
+ /**
+ * Sets the value of the description property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setDescription(String value) {
+ this.description = value;
+ }
+
+ /**
+ * Gets the value of the mime property.
+ *
+ * @return
+ * possible object is
+ * {@link MimeType }
+ *
+ */
+ public MimeType getMime() {
+ return mime;
+ }
+
+ /**
+ * Sets the value of the mime property.
+ *
+ * @param value
+ * allowed object is
+ * {@link MimeType }
+ *
+ */
+ public void setMime(MimeType value) {
+ this.mime = value;
+ }
+
+ /**
+ * Gets the value of the url property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getURL() {
+ return url;
+ }
+
+ /**
+ * Sets the value of the url property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setURL(String value) {
+ this.url = value;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/AttachedImageDataType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/AttachedImageDataType.java
new file mode 100644
index 000000000..cf964d7d0
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/AttachedImageDataType.java
@@ -0,0 +1,123 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._2_0.academic.generaldiploma;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for AttachedImageDataType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="AttachedImageDataType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="Description" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}PlainTextType"/>
+ * &lt;element name="Mime" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}ImageMimeType"/>
+ * &lt;element name="Data" type="{http://www.w3.org/2001/XMLSchema}base64Binary"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "AttachedImageDataType", propOrder = {
+ "description",
+ "mime",
+ "data"
+})
+public class AttachedImageDataType {
+
+ @XmlElement(name = "Description", required = true)
+ protected String description;
+ @XmlElement(name = "Mime", required = true)
+ protected ImageMimeType mime;
+ @XmlElement(name = "Data", required = true)
+ protected byte[] data;
+
+ /**
+ * Gets the value of the description property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getDescription() {
+ return description;
+ }
+
+ /**
+ * Sets the value of the description property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setDescription(String value) {
+ this.description = value;
+ }
+
+ /**
+ * Gets the value of the mime property.
+ *
+ * @return
+ * possible object is
+ * {@link ImageMimeType }
+ *
+ */
+ public ImageMimeType getMime() {
+ return mime;
+ }
+
+ /**
+ * Sets the value of the mime property.
+ *
+ * @param value
+ * allowed object is
+ * {@link ImageMimeType }
+ *
+ */
+ public void setMime(ImageMimeType value) {
+ this.mime = value;
+ }
+
+ /**
+ * Gets the value of the data property.
+ *
+ * @return
+ * possible object is
+ * byte[]
+ */
+ public byte[] getData() {
+ return data;
+ }
+
+ /**
+ * Sets the value of the data property.
+ *
+ * @param value
+ * allowed object is
+ * byte[]
+ */
+ public void setData(byte[] value) {
+ this.data = value;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/AttachedImageURLType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/AttachedImageURLType.java
new file mode 100644
index 000000000..945b715fe
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/AttachedImageURLType.java
@@ -0,0 +1,125 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._2_0.academic.generaldiploma;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for AttachedImageURLType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="AttachedImageURLType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="Description" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}PlainTextType"/>
+ * &lt;element name="Mime" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}ImageMimeType"/>
+ * &lt;element name="URL" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}URLType"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "AttachedImageURLType", propOrder = {
+ "description",
+ "mime",
+ "url"
+})
+public class AttachedImageURLType {
+
+ @XmlElement(name = "Description", required = true)
+ protected String description;
+ @XmlElement(name = "Mime", required = true)
+ protected ImageMimeType mime;
+ @XmlElement(name = "URL", required = true)
+ protected String url;
+
+ /**
+ * Gets the value of the description property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getDescription() {
+ return description;
+ }
+
+ /**
+ * Sets the value of the description property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setDescription(String value) {
+ this.description = value;
+ }
+
+ /**
+ * Gets the value of the mime property.
+ *
+ * @return
+ * possible object is
+ * {@link ImageMimeType }
+ *
+ */
+ public ImageMimeType getMime() {
+ return mime;
+ }
+
+ /**
+ * Sets the value of the mime property.
+ *
+ * @param value
+ * allowed object is
+ * {@link ImageMimeType }
+ *
+ */
+ public void setMime(ImageMimeType value) {
+ this.mime = value;
+ }
+
+ /**
+ * Gets the value of the url property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getURL() {
+ return url;
+ }
+
+ /**
+ * Sets the value of the url property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setURL(String value) {
+ this.url = value;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/AttachedType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/AttachedType.java
new file mode 100644
index 000000000..83cb26800
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/AttachedType.java
@@ -0,0 +1,188 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._2_0.academic.generaldiploma;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlID;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+
+
+/**
+ * <p>Java class for AttachedType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="AttachedType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;choice>
+ * &lt;element name="FileData" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}AttachedFileDataType"/>
+ * &lt;element name="FileURI" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}AttachedFileURLType"/>
+ * &lt;element name="ImageData" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}AttachedImageDataType"/>
+ * &lt;element name="ImageURI" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}AttachedImageURLType"/>
+ * &lt;/choice>
+ * &lt;attribute name="attachedID" use="required" type="{http://www.w3.org/2001/XMLSchema}ID" />
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "AttachedType", propOrder = {
+ "fileData",
+ "fileURI",
+ "imageData",
+ "imageURI"
+})
+public class AttachedType {
+
+ @XmlElement(name = "FileData")
+ protected AttachedFileDataType fileData;
+ @XmlElement(name = "FileURI")
+ protected AttachedFileURLType fileURI;
+ @XmlElement(name = "ImageData")
+ protected AttachedImageDataType imageData;
+ @XmlElement(name = "ImageURI")
+ protected AttachedImageURLType imageURI;
+ @XmlAttribute(name = "attachedID", required = true)
+ @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+ @XmlID
+ @XmlSchemaType(name = "ID")
+ protected String attachedID;
+
+ /**
+ * Gets the value of the fileData property.
+ *
+ * @return
+ * possible object is
+ * {@link AttachedFileDataType }
+ *
+ */
+ public AttachedFileDataType getFileData() {
+ return fileData;
+ }
+
+ /**
+ * Sets the value of the fileData property.
+ *
+ * @param value
+ * allowed object is
+ * {@link AttachedFileDataType }
+ *
+ */
+ public void setFileData(AttachedFileDataType value) {
+ this.fileData = value;
+ }
+
+ /**
+ * Gets the value of the fileURI property.
+ *
+ * @return
+ * possible object is
+ * {@link AttachedFileURLType }
+ *
+ */
+ public AttachedFileURLType getFileURI() {
+ return fileURI;
+ }
+
+ /**
+ * Sets the value of the fileURI property.
+ *
+ * @param value
+ * allowed object is
+ * {@link AttachedFileURLType }
+ *
+ */
+ public void setFileURI(AttachedFileURLType value) {
+ this.fileURI = value;
+ }
+
+ /**
+ * Gets the value of the imageData property.
+ *
+ * @return
+ * possible object is
+ * {@link AttachedImageDataType }
+ *
+ */
+ public AttachedImageDataType getImageData() {
+ return imageData;
+ }
+
+ /**
+ * Sets the value of the imageData property.
+ *
+ * @param value
+ * allowed object is
+ * {@link AttachedImageDataType }
+ *
+ */
+ public void setImageData(AttachedImageDataType value) {
+ this.imageData = value;
+ }
+
+ /**
+ * Gets the value of the imageURI property.
+ *
+ * @return
+ * possible object is
+ * {@link AttachedImageURLType }
+ *
+ */
+ public AttachedImageURLType getImageURI() {
+ return imageURI;
+ }
+
+ /**
+ * Sets the value of the imageURI property.
+ *
+ * @param value
+ * allowed object is
+ * {@link AttachedImageURLType }
+ *
+ */
+ public void setImageURI(AttachedImageURLType value) {
+ this.imageURI = value;
+ }
+
+ /**
+ * Gets the value of the attachedID property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getAttachedID() {
+ return attachedID;
+ }
+
+ /**
+ * Sets the value of the attachedID property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setAttachedID(String value) {
+ this.attachedID = value;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/AttachmentsType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/AttachmentsType.java
new file mode 100644
index 000000000..a8612ae63
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/AttachmentsType.java
@@ -0,0 +1,76 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._2_0.academic.generaldiploma;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for AttachmentsType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="AttachmentsType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="Attached" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}AttachedType" maxOccurs="unbounded"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "AttachmentsType", propOrder = {
+ "attached"
+})
+public class AttachmentsType {
+
+ @XmlElement(name = "Attached", required = true)
+ protected List<AttachedType> attached;
+
+ /**
+ * Gets the value of the attached property.
+ *
+ * <p>
+ * 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 <CODE>set</CODE> method for the attached property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getAttached().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link AttachedType }
+ *
+ *
+ */
+ public List<AttachedType> getAttached() {
+ if (attached == null) {
+ attached = new ArrayList<AttachedType>();
+ }
+ return this.attached;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/CertificationOfTheSupplementType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/CertificationOfTheSupplementType.java
new file mode 100644
index 000000000..c154e92c3
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/CertificationOfTheSupplementType.java
@@ -0,0 +1,126 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._2_0.academic.generaldiploma;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.datatype.XMLGregorianCalendar;
+
+
+/**
+ * <p>Java class for CertificationOfTheSupplementType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="CertificationOfTheSupplementType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="CertificationDate" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}DateType" minOccurs="0"/>
+ * &lt;element name="OfficialsCertifying" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}OfficialsCertifyingType" minOccurs="0"/>
+ * &lt;element name="OfficialStamp" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}OfficialStampType" minOccurs="0"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CertificationOfTheSupplementType", propOrder = {
+ "certificationDate",
+ "officialsCertifying",
+ "officialStamp"
+})
+public class CertificationOfTheSupplementType {
+
+ @XmlElement(name = "CertificationDate")
+ protected XMLGregorianCalendar certificationDate;
+ @XmlElement(name = "OfficialsCertifying")
+ protected OfficialsCertifyingType officialsCertifying;
+ @XmlElement(name = "OfficialStamp")
+ protected OfficialStampType officialStamp;
+
+ /**
+ * Gets the value of the certificationDate property.
+ *
+ * @return
+ * possible object is
+ * {@link XMLGregorianCalendar }
+ *
+ */
+ public XMLGregorianCalendar getCertificationDate() {
+ return certificationDate;
+ }
+
+ /**
+ * Sets the value of the certificationDate property.
+ *
+ * @param value
+ * allowed object is
+ * {@link XMLGregorianCalendar }
+ *
+ */
+ public void setCertificationDate(XMLGregorianCalendar value) {
+ this.certificationDate = value;
+ }
+
+ /**
+ * Gets the value of the officialsCertifying property.
+ *
+ * @return
+ * possible object is
+ * {@link OfficialsCertifyingType }
+ *
+ */
+ public OfficialsCertifyingType getOfficialsCertifying() {
+ return officialsCertifying;
+ }
+
+ /**
+ * Sets the value of the officialsCertifying property.
+ *
+ * @param value
+ * allowed object is
+ * {@link OfficialsCertifyingType }
+ *
+ */
+ public void setOfficialsCertifying(OfficialsCertifyingType value) {
+ this.officialsCertifying = value;
+ }
+
+ /**
+ * Gets the value of the officialStamp property.
+ *
+ * @return
+ * possible object is
+ * {@link OfficialStampType }
+ *
+ */
+ public OfficialStampType getOfficialStamp() {
+ return officialStamp;
+ }
+
+ /**
+ * Sets the value of the officialStamp property.
+ *
+ * @param value
+ * allowed object is
+ * {@link OfficialStampType }
+ *
+ */
+ public void setOfficialStamp(OfficialStampType value) {
+ this.officialStamp = value;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/ContactInformationType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/ContactInformationType.java
new file mode 100644
index 000000000..3ed1697e7
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/ContactInformationType.java
@@ -0,0 +1,170 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._2_0.academic.generaldiploma;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for ContactInformationType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="ContactInformationType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="Address" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}AddressType" minOccurs="0"/>
+ * &lt;element name="PhoneNumber" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}PlainTextType" maxOccurs="unbounded" minOccurs="0"/>
+ * &lt;element name="Email" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}EmailAddressType" maxOccurs="unbounded" minOccurs="0"/>
+ * &lt;element name="WebSite" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}URLType" maxOccurs="unbounded" minOccurs="0"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "ContactInformationType", propOrder = {
+ "address",
+ "phoneNumber",
+ "email",
+ "webSite"
+})
+public class ContactInformationType {
+
+ @XmlElement(name = "Address")
+ protected AddressType address;
+ @XmlElement(name = "PhoneNumber")
+ protected List<String> phoneNumber;
+ @XmlElement(name = "Email")
+ protected List<String> email;
+ @XmlElement(name = "WebSite")
+ protected List<String> webSite;
+
+ /**
+ * Gets the value of the address property.
+ *
+ * @return
+ * possible object is
+ * {@link AddressType }
+ *
+ */
+ public AddressType getAddress() {
+ return address;
+ }
+
+ /**
+ * Sets the value of the address property.
+ *
+ * @param value
+ * allowed object is
+ * {@link AddressType }
+ *
+ */
+ public void setAddress(AddressType value) {
+ this.address = value;
+ }
+
+ /**
+ * Gets the value of the phoneNumber property.
+ *
+ * <p>
+ * 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 <CODE>set</CODE> method for the phoneNumber property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getPhoneNumber().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link String }
+ *
+ *
+ */
+ public List<String> getPhoneNumber() {
+ if (phoneNumber == null) {
+ phoneNumber = new ArrayList<String>();
+ }
+ return this.phoneNumber;
+ }
+
+ /**
+ * Gets the value of the email property.
+ *
+ * <p>
+ * 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 <CODE>set</CODE> method for the email property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getEmail().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link String }
+ *
+ *
+ */
+ public List<String> getEmail() {
+ if (email == null) {
+ email = new ArrayList<String>();
+ }
+ return this.email;
+ }
+
+ /**
+ * Gets the value of the webSite property.
+ *
+ * <p>
+ * 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 <CODE>set</CODE> method for the webSite property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getWebSite().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link String }
+ *
+ *
+ */
+ public List<String> getWebSite() {
+ if (webSite == null) {
+ webSite = new ArrayList<String>();
+ }
+ return this.webSite;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/CountryTextCodeType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/CountryTextCodeType.java
new file mode 100644
index 000000000..bf4dd984b
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/CountryTextCodeType.java
@@ -0,0 +1,94 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._2_0.academic.generaldiploma;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlValue;
+
+
+/**
+ * <p>Java class for CountryTextCodeType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="CountryTextCodeType">
+ * &lt;simpleContent>
+ * &lt;extension base="&lt;urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma>PlainTextType">
+ * &lt;attribute name="country" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}CountryType" />
+ * &lt;/extension>
+ * &lt;/simpleContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CountryTextCodeType", propOrder = {
+ "value"
+})
+public class CountryTextCodeType {
+
+ @XmlValue
+ protected String value;
+ @XmlAttribute(name = "country")
+ protected CountryType country;
+
+ /**
+ * Gets the value of the value property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getValue() {
+ return value;
+ }
+
+ /**
+ * Sets the value of the value property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setValue(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Gets the value of the country property.
+ *
+ * @return
+ * possible object is
+ * {@link CountryType }
+ *
+ */
+ public CountryType getCountry() {
+ return country;
+ }
+
+ /**
+ * Sets the value of the country property.
+ *
+ * @param value
+ * allowed object is
+ * {@link CountryType }
+ *
+ */
+ public void setCountry(CountryType value) {
+ this.country = value;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/CountryType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/CountryType.java
new file mode 100644
index 000000000..b2fe16735
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/CountryType.java
@@ -0,0 +1,435 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._2_0.academic.generaldiploma;
+
+import javax.xml.bind.annotation.XmlEnum;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for CountryType.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * <p>
+ * <pre>
+ * &lt;simpleType name="CountryType">
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ * &lt;enumeration value="AD"/>
+ * &lt;enumeration value="AE"/>
+ * &lt;enumeration value="AF"/>
+ * &lt;enumeration value="AG"/>
+ * &lt;enumeration value="AL"/>
+ * &lt;enumeration value="AM"/>
+ * &lt;enumeration value="AO"/>
+ * &lt;enumeration value="AR"/>
+ * &lt;enumeration value="AT"/>
+ * &lt;enumeration value="AU"/>
+ * &lt;enumeration value="AZ"/>
+ * &lt;enumeration value="BA"/>
+ * &lt;enumeration value="BB"/>
+ * &lt;enumeration value="BD"/>
+ * &lt;enumeration value="BE"/>
+ * &lt;enumeration value="BF"/>
+ * &lt;enumeration value="BG"/>
+ * &lt;enumeration value="BH"/>
+ * &lt;enumeration value="BI"/>
+ * &lt;enumeration value="BJ"/>
+ * &lt;enumeration value="BN"/>
+ * &lt;enumeration value="BO"/>
+ * &lt;enumeration value="BR"/>
+ * &lt;enumeration value="BS"/>
+ * &lt;enumeration value="BT"/>
+ * &lt;enumeration value="BW"/>
+ * &lt;enumeration value="BY"/>
+ * &lt;enumeration value="BZ"/>
+ * &lt;enumeration value="CA"/>
+ * &lt;enumeration value="CD"/>
+ * &lt;enumeration value="CF"/>
+ * &lt;enumeration value="CG"/>
+ * &lt;enumeration value="CH"/>
+ * &lt;enumeration value="CI"/>
+ * &lt;enumeration value="CL"/>
+ * &lt;enumeration value="CM"/>
+ * &lt;enumeration value="CN"/>
+ * &lt;enumeration value="CO"/>
+ * &lt;enumeration value="CR"/>
+ * &lt;enumeration value="CU"/>
+ * &lt;enumeration value="CV"/>
+ * &lt;enumeration value="CY"/>
+ * &lt;enumeration value="CZ"/>
+ * &lt;enumeration value="DE"/>
+ * &lt;enumeration value="DJ"/>
+ * &lt;enumeration value="DK"/>
+ * &lt;enumeration value="DM"/>
+ * &lt;enumeration value="DO"/>
+ * &lt;enumeration value="DZ"/>
+ * &lt;enumeration value="EC"/>
+ * &lt;enumeration value="EE"/>
+ * &lt;enumeration value="EG"/>
+ * &lt;enumeration value="ER"/>
+ * &lt;enumeration value="ES"/>
+ * &lt;enumeration value="ET"/>
+ * &lt;enumeration value="FI"/>
+ * &lt;enumeration value="FJ"/>
+ * &lt;enumeration value="FM"/>
+ * &lt;enumeration value="FR"/>
+ * &lt;enumeration value="GA"/>
+ * &lt;enumeration value="GB"/>
+ * &lt;enumeration value="GD"/>
+ * &lt;enumeration value="GE"/>
+ * &lt;enumeration value="GH"/>
+ * &lt;enumeration value="GL"/>
+ * &lt;enumeration value="GM"/>
+ * &lt;enumeration value="GN"/>
+ * &lt;enumeration value="GQ"/>
+ * &lt;enumeration value="GR"/>
+ * &lt;enumeration value="GT"/>
+ * &lt;enumeration value="GW"/>
+ * &lt;enumeration value="GY"/>
+ * &lt;enumeration value="HN"/>
+ * &lt;enumeration value="HR"/>
+ * &lt;enumeration value="HT"/>
+ * &lt;enumeration value="HU"/>
+ * &lt;enumeration value="ID"/>
+ * &lt;enumeration value="IE"/>
+ * &lt;enumeration value="IL"/>
+ * &lt;enumeration value="IN"/>
+ * &lt;enumeration value="IQ"/>
+ * &lt;enumeration value="IR"/>
+ * &lt;enumeration value="IS"/>
+ * &lt;enumeration value="IT"/>
+ * &lt;enumeration value="JM"/>
+ * &lt;enumeration value="JO"/>
+ * &lt;enumeration value="JP"/>
+ * &lt;enumeration value="KE"/>
+ * &lt;enumeration value="KG"/>
+ * &lt;enumeration value="KH"/>
+ * &lt;enumeration value="KI"/>
+ * &lt;enumeration value="KM"/>
+ * &lt;enumeration value="KN"/>
+ * &lt;enumeration value="KP"/>
+ * &lt;enumeration value="KR"/>
+ * &lt;enumeration value="KW"/>
+ * &lt;enumeration value="KZ"/>
+ * &lt;enumeration value="LA"/>
+ * &lt;enumeration value="LB"/>
+ * &lt;enumeration value="LC"/>
+ * &lt;enumeration value="LI"/>
+ * &lt;enumeration value="LK"/>
+ * &lt;enumeration value="LR"/>
+ * &lt;enumeration value="LS"/>
+ * &lt;enumeration value="LT"/>
+ * &lt;enumeration value="LU"/>
+ * &lt;enumeration value="LV"/>
+ * &lt;enumeration value="LY"/>
+ * &lt;enumeration value="MA"/>
+ * &lt;enumeration value="MC"/>
+ * &lt;enumeration value="MD"/>
+ * &lt;enumeration value="ME"/>
+ * &lt;enumeration value="MG"/>
+ * &lt;enumeration value="MH"/>
+ * &lt;enumeration value="MK"/>
+ * &lt;enumeration value="ML"/>
+ * &lt;enumeration value="MM"/>
+ * &lt;enumeration value="MN"/>
+ * &lt;enumeration value="MR"/>
+ * &lt;enumeration value="MT"/>
+ * &lt;enumeration value="MU"/>
+ * &lt;enumeration value="MV"/>
+ * &lt;enumeration value="MW"/>
+ * &lt;enumeration value="MX"/>
+ * &lt;enumeration value="MY"/>
+ * &lt;enumeration value="MZ"/>
+ * &lt;enumeration value="NA"/>
+ * &lt;enumeration value="NE"/>
+ * &lt;enumeration value="NG"/>
+ * &lt;enumeration value="NI"/>
+ * &lt;enumeration value="NL"/>
+ * &lt;enumeration value="NO"/>
+ * &lt;enumeration value="NP"/>
+ * &lt;enumeration value="NR"/>
+ * &lt;enumeration value="NU"/>
+ * &lt;enumeration value="NZ"/>
+ * &lt;enumeration value="OM"/>
+ * &lt;enumeration value="PA"/>
+ * &lt;enumeration value="PE"/>
+ * &lt;enumeration value="PG"/>
+ * &lt;enumeration value="PH"/>
+ * &lt;enumeration value="PK"/>
+ * &lt;enumeration value="PL"/>
+ * &lt;enumeration value="PR"/>
+ * &lt;enumeration value="PS"/>
+ * &lt;enumeration value="PT"/>
+ * &lt;enumeration value="PW"/>
+ * &lt;enumeration value="PY"/>
+ * &lt;enumeration value="QA"/>
+ * &lt;enumeration value="RO"/>
+ * &lt;enumeration value="RS"/>
+ * &lt;enumeration value="RU"/>
+ * &lt;enumeration value="RW"/>
+ * &lt;enumeration value="SA"/>
+ * &lt;enumeration value="SB"/>
+ * &lt;enumeration value="SC"/>
+ * &lt;enumeration value="SD"/>
+ * &lt;enumeration value="SE"/>
+ * &lt;enumeration value="SG"/>
+ * &lt;enumeration value="SI"/>
+ * &lt;enumeration value="SK"/>
+ * &lt;enumeration value="SL"/>
+ * &lt;enumeration value="SM"/>
+ * &lt;enumeration value="SN"/>
+ * &lt;enumeration value="SO"/>
+ * &lt;enumeration value="SR"/>
+ * &lt;enumeration value="ST"/>
+ * &lt;enumeration value="SV"/>
+ * &lt;enumeration value="SY"/>
+ * &lt;enumeration value="SZ"/>
+ * &lt;enumeration value="TD"/>
+ * &lt;enumeration value="TG"/>
+ * &lt;enumeration value="TH"/>
+ * &lt;enumeration value="TJ"/>
+ * &lt;enumeration value="TL"/>
+ * &lt;enumeration value="TM"/>
+ * &lt;enumeration value="TN"/>
+ * &lt;enumeration value="TO"/>
+ * &lt;enumeration value="TR"/>
+ * &lt;enumeration value="TT"/>
+ * &lt;enumeration value="TV"/>
+ * &lt;enumeration value="TZ"/>
+ * &lt;enumeration value="UA"/>
+ * &lt;enumeration value="UG"/>
+ * &lt;enumeration value="US"/>
+ * &lt;enumeration value="UY"/>
+ * &lt;enumeration value="UZ"/>
+ * &lt;enumeration value="VA"/>
+ * &lt;enumeration value="VC"/>
+ * &lt;enumeration value="VE"/>
+ * &lt;enumeration value="VN"/>
+ * &lt;enumeration value="VU"/>
+ * &lt;enumeration value="WS"/>
+ * &lt;enumeration value="YE"/>
+ * &lt;enumeration value="ZA"/>
+ * &lt;enumeration value="ZM"/>
+ * &lt;enumeration value="ZW"/>
+ * &lt;/restriction>
+ * &lt;/simpleType>
+ * </pre>
+ *
+ */
+@XmlType(name = "CountryType")
+@XmlEnum
+public enum CountryType {
+
+ AD,
+ AE,
+ AF,
+ AG,
+ AL,
+ AM,
+ AO,
+ AR,
+ AT,
+ AU,
+ AZ,
+ BA,
+ BB,
+ BD,
+ BE,
+ BF,
+ BG,
+ BH,
+ BI,
+ BJ,
+ BN,
+ BO,
+ BR,
+ BS,
+ BT,
+ BW,
+ BY,
+ BZ,
+ CA,
+ CD,
+ CF,
+ CG,
+ CH,
+ CI,
+ CL,
+ CM,
+ CN,
+ CO,
+ CR,
+ CU,
+ CV,
+ CY,
+ CZ,
+ DE,
+ DJ,
+ DK,
+ DM,
+ DO,
+ DZ,
+ EC,
+ EE,
+ EG,
+ ER,
+ ES,
+ ET,
+ FI,
+ FJ,
+ FM,
+ FR,
+ GA,
+ GB,
+ GD,
+ GE,
+ GH,
+ GL,
+ GM,
+ GN,
+ GQ,
+ GR,
+ GT,
+ GW,
+ GY,
+ HN,
+ HR,
+ HT,
+ HU,
+ ID,
+ IE,
+ IL,
+ IN,
+ IQ,
+ IR,
+ IS,
+ IT,
+ JM,
+ JO,
+ JP,
+ KE,
+ KG,
+ KH,
+ KI,
+ KM,
+ KN,
+ KP,
+ KR,
+ KW,
+ KZ,
+ LA,
+ LB,
+ LC,
+ LI,
+ LK,
+ LR,
+ LS,
+ LT,
+ LU,
+ LV,
+ LY,
+ MA,
+ MC,
+ MD,
+ ME,
+ MG,
+ MH,
+ MK,
+ ML,
+ MM,
+ MN,
+ MR,
+ MT,
+ MU,
+ MV,
+ MW,
+ MX,
+ MY,
+ MZ,
+ NA,
+ NE,
+ NG,
+ NI,
+ NL,
+ NO,
+ NP,
+ NR,
+ NU,
+ NZ,
+ OM,
+ PA,
+ PE,
+ PG,
+ PH,
+ PK,
+ PL,
+ PR,
+ PS,
+ PT,
+ PW,
+ PY,
+ QA,
+ RO,
+ RS,
+ RU,
+ RW,
+ SA,
+ SB,
+ SC,
+ SD,
+ SE,
+ SG,
+ SI,
+ SK,
+ SL,
+ SM,
+ SN,
+ SO,
+ SR,
+ ST,
+ SV,
+ SY,
+ SZ,
+ TD,
+ TG,
+ TH,
+ TJ,
+ TL,
+ TM,
+ TN,
+ TO,
+ TR,
+ TT,
+ TV,
+ TZ,
+ UA,
+ UG,
+ US,
+ UY,
+ UZ,
+ VA,
+ VC,
+ VE,
+ VN,
+ VU,
+ WS,
+ YE,
+ ZA,
+ ZM,
+ ZW;
+
+ public String value() {
+ return name();
+ }
+
+ public static CountryType fromValue(String v) {
+ return valueOf(v);
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/CourseStructureDiagramType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/CourseStructureDiagramType.java
new file mode 100644
index 000000000..a73acb84a
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/CourseStructureDiagramType.java
@@ -0,0 +1,97 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._2_0.academic.generaldiploma;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for CourseStructureDiagramType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="CourseStructureDiagramType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="CoursesGroups" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}CoursesGroupsType" minOccurs="0"/>
+ * &lt;element name="CoursesUnits" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}CoursesUnitsType" minOccurs="0"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CourseStructureDiagramType", propOrder = {
+ "coursesGroups",
+ "coursesUnits"
+})
+public class CourseStructureDiagramType {
+
+ @XmlElement(name = "CoursesGroups")
+ protected CoursesGroupsType coursesGroups;
+ @XmlElement(name = "CoursesUnits")
+ protected CoursesUnitsType coursesUnits;
+
+ /**
+ * Gets the value of the coursesGroups property.
+ *
+ * @return
+ * possible object is
+ * {@link CoursesGroupsType }
+ *
+ */
+ public CoursesGroupsType getCoursesGroups() {
+ return coursesGroups;
+ }
+
+ /**
+ * Sets the value of the coursesGroups property.
+ *
+ * @param value
+ * allowed object is
+ * {@link CoursesGroupsType }
+ *
+ */
+ public void setCoursesGroups(CoursesGroupsType value) {
+ this.coursesGroups = value;
+ }
+
+ /**
+ * Gets the value of the coursesUnits property.
+ *
+ * @return
+ * possible object is
+ * {@link CoursesUnitsType }
+ *
+ */
+ public CoursesUnitsType getCoursesUnits() {
+ return coursesUnits;
+ }
+
+ /**
+ * Sets the value of the coursesUnits property.
+ *
+ * @param value
+ * allowed object is
+ * {@link CoursesUnitsType }
+ *
+ */
+ public void setCoursesUnits(CoursesUnitsType value) {
+ this.coursesUnits = value;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/CourseUnitLanguageOfInstructionType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/CourseUnitLanguageOfInstructionType.java
new file mode 100644
index 000000000..1c2461526
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/CourseUnitLanguageOfInstructionType.java
@@ -0,0 +1,94 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._2_0.academic.generaldiploma;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlValue;
+
+
+/**
+ * <p>Java class for CourseUnitLanguageOfInstructionType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="CourseUnitLanguageOfInstructionType">
+ * &lt;simpleContent>
+ * &lt;extension base="&lt;urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma>PlainTextType">
+ * &lt;attribute name="language" use="required" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}LanguageType" />
+ * &lt;/extension>
+ * &lt;/simpleContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CourseUnitLanguageOfInstructionType", propOrder = {
+ "value"
+})
+public class CourseUnitLanguageOfInstructionType {
+
+ @XmlValue
+ protected String value;
+ @XmlAttribute(name = "language", required = true)
+ protected LanguageType language;
+
+ /**
+ * Gets the value of the value property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getValue() {
+ return value;
+ }
+
+ /**
+ * Sets the value of the value property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setValue(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Gets the value of the language property.
+ *
+ * @return
+ * possible object is
+ * {@link LanguageType }
+ *
+ */
+ public LanguageType getLanguage() {
+ return language;
+ }
+
+ /**
+ * Sets the value of the language property.
+ *
+ * @param value
+ * allowed object is
+ * {@link LanguageType }
+ *
+ */
+ public void setLanguage(LanguageType value) {
+ this.language = value;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/CourseUnitLanguagesOfInstructionType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/CourseUnitLanguagesOfInstructionType.java
new file mode 100644
index 000000000..d09ce1d75
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/CourseUnitLanguagesOfInstructionType.java
@@ -0,0 +1,76 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._2_0.academic.generaldiploma;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for CourseUnitLanguagesOfInstructionType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="CourseUnitLanguagesOfInstructionType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="Language" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}CourseUnitLanguageOfInstructionType" maxOccurs="unbounded"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CourseUnitLanguagesOfInstructionType", propOrder = {
+ "language"
+})
+public class CourseUnitLanguagesOfInstructionType {
+
+ @XmlElement(name = "Language", required = true)
+ protected List<CourseUnitLanguageOfInstructionType> language;
+
+ /**
+ * Gets the value of the language property.
+ *
+ * <p>
+ * 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 <CODE>set</CODE> method for the language property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getLanguage().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link CourseUnitLanguageOfInstructionType }
+ *
+ *
+ */
+ public List<CourseUnitLanguageOfInstructionType> getLanguage() {
+ if (language == null) {
+ language = new ArrayList<CourseUnitLanguageOfInstructionType>();
+ }
+ return this.language;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/CourseUnitStudentPerformanceType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/CourseUnitStudentPerformanceType.java
new file mode 100644
index 000000000..0b8116a7f
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/CourseUnitStudentPerformanceType.java
@@ -0,0 +1,97 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._2_0.academic.generaldiploma;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for CourseUnitStudentPerformanceType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="CourseUnitStudentPerformanceType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="LocalGrade" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}LocalGradeType"/>
+ * &lt;element name="ECTSGrade" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}ECTSGradingScaleType" minOccurs="0"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CourseUnitStudentPerformanceType", propOrder = {
+ "localGrade",
+ "ectsGrade"
+})
+public class CourseUnitStudentPerformanceType {
+
+ @XmlElement(name = "LocalGrade", required = true)
+ protected LocalGradeType localGrade;
+ @XmlElement(name = "ECTSGrade")
+ protected ECTSGradingScaleType ectsGrade;
+
+ /**
+ * Gets the value of the localGrade property.
+ *
+ * @return
+ * possible object is
+ * {@link LocalGradeType }
+ *
+ */
+ public LocalGradeType getLocalGrade() {
+ return localGrade;
+ }
+
+ /**
+ * Sets the value of the localGrade property.
+ *
+ * @param value
+ * allowed object is
+ * {@link LocalGradeType }
+ *
+ */
+ public void setLocalGrade(LocalGradeType value) {
+ this.localGrade = value;
+ }
+
+ /**
+ * Gets the value of the ectsGrade property.
+ *
+ * @return
+ * possible object is
+ * {@link ECTSGradingScaleType }
+ *
+ */
+ public ECTSGradingScaleType getECTSGrade() {
+ return ectsGrade;
+ }
+
+ /**
+ * Sets the value of the ectsGrade property.
+ *
+ * @param value
+ * allowed object is
+ * {@link ECTSGradingScaleType }
+ *
+ */
+ public void setECTSGrade(ECTSGradingScaleType value) {
+ this.ectsGrade = value;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/CourseUnitType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/CourseUnitType.java
new file mode 100644
index 000000000..f9725c6fc
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/CourseUnitType.java
@@ -0,0 +1,1181 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._2_0.academic.generaldiploma;
+
+import java.math.BigDecimal;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlValue;
+
+
+/**
+ * <p>Java class for CourseUnitType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="CourseUnitType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="Code" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}PlainTextType" minOccurs="0"/>
+ * &lt;element name="ScientificArea" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}PlainTextType" minOccurs="0"/>
+ * &lt;element name="Title" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}PlainTextType"/>
+ * &lt;element name="Theme" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}PlainTextType" minOccurs="0"/>
+ * &lt;element name="Type" minOccurs="0">
+ * &lt;complexType>
+ * &lt;simpleContent>
+ * &lt;extension base="&lt;urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma>PlainTextType">
+ * &lt;attribute name="type" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}CourseUnitTypeType" />
+ * &lt;/extension>
+ * &lt;/simpleContent>
+ * &lt;/complexType>
+ * &lt;/element>
+ * &lt;element name="YearOfStudy" minOccurs="0">
+ * &lt;complexType>
+ * &lt;simpleContent>
+ * &lt;extension base="&lt;urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma>PlainTextType">
+ * &lt;attribute name="year" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}PositiveDecimalType" />
+ * &lt;/extension>
+ * &lt;/simpleContent>
+ * &lt;/complexType>
+ * &lt;/element>
+ * &lt;element name="Level" minOccurs="0">
+ * &lt;complexType>
+ * &lt;simpleContent>
+ * &lt;extension base="&lt;urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma>PlainTextType">
+ * &lt;attribute name="eheaFramework" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}EHEAFrameworkType" />
+ * &lt;/extension>
+ * &lt;/simpleContent>
+ * &lt;/complexType>
+ * &lt;/element>
+ * &lt;element name="ECTSCredits" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}PositiveDecimalType" minOccurs="0"/>
+ * &lt;element name="LocalCredits" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}PositiveDecimalType" minOccurs="0"/>
+ * &lt;element name="Hours" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}PositiveDecimalType" minOccurs="0"/>
+ * &lt;element name="LanguagesOfInstruction" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}CourseUnitLanguagesOfInstructionType" minOccurs="0"/>
+ * &lt;element name="ModeOfDelivery" minOccurs="0">
+ * &lt;complexType>
+ * &lt;simpleContent>
+ * &lt;extension base="&lt;urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma>PlainTextType">
+ * &lt;attribute name="modeOfDelivery" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}ModeOfDeliveryType" />
+ * &lt;/extension>
+ * &lt;/simpleContent>
+ * &lt;/complexType>
+ * &lt;/element>
+ * &lt;element name="WorkPlacements" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}CourseUnitWorkPlacementsType" minOccurs="0"/>
+ * &lt;element name="StudentPerformance" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}CourseUnitStudentPerformanceType" minOccurs="0"/>
+ * &lt;element name="NameOfLecturers" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}RichTextTagType" minOccurs="0"/>
+ * &lt;element name="LearningOutcomes" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}RichTextTagType" minOccurs="0"/>
+ * &lt;element name="PrerequisitesAndCorequisites" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}RichTextTagType" minOccurs="0"/>
+ * &lt;element name="PrerequisitesScholarshipLevel" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}RichTextTagType" minOccurs="0"/>
+ * &lt;element name="PrerequisitesOtherTitles" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}RichTextTagType" minOccurs="0"/>
+ * &lt;element name="RecomendedOptionalProgrammeComponents" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}RichTextTagType" minOccurs="0"/>
+ * &lt;element name="CourseContents" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}RichTextTagType" minOccurs="0"/>
+ * &lt;element name="RecomendedOrRequiredReading" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}RichTextTagType" minOccurs="0"/>
+ * &lt;element name="PlanedLearningActivitiesAndTeachingMethod" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}RichTextTagType" minOccurs="0"/>
+ * &lt;element name="AssesmentMethodsAndCriteria" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}RichTextTagType" minOccurs="0"/>
+ * &lt;element name="Observations" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}RichTextTagType" minOccurs="0"/>
+ * &lt;/sequence>
+ * &lt;attribute name="groupID" type="{http://www.w3.org/2001/XMLSchema}string" />
+ * &lt;attribute name="institutionAdministeringStudiesID" type="{http://www.w3.org/2001/XMLSchema}string" default="DEF-IAS" />
+ * &lt;attribute name="isRequiredByTheProgramme" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CourseUnitType", propOrder = {
+ "code",
+ "scientificArea",
+ "title",
+ "theme",
+ "type",
+ "yearOfStudy",
+ "level",
+ "ectsCredits",
+ "localCredits",
+ "hours",
+ "languagesOfInstruction",
+ "modeOfDelivery",
+ "workPlacements",
+ "studentPerformance",
+ "nameOfLecturers",
+ "learningOutcomes",
+ "prerequisitesAndCorequisites",
+ "prerequisitesScholarshipLevel",
+ "prerequisitesOtherTitles",
+ "recomendedOptionalProgrammeComponents",
+ "courseContents",
+ "recomendedOrRequiredReading",
+ "planedLearningActivitiesAndTeachingMethod",
+ "assesmentMethodsAndCriteria",
+ "observations"
+})
+public class CourseUnitType {
+
+ @XmlElement(name = "Code")
+ protected String code;
+ @XmlElement(name = "ScientificArea")
+ protected String scientificArea;
+ @XmlElement(name = "Title", required = true)
+ protected String title;
+ @XmlElement(name = "Theme")
+ protected String theme;
+ @XmlElement(name = "Type")
+ protected CourseUnitType.Type type;
+ @XmlElement(name = "YearOfStudy")
+ protected CourseUnitType.YearOfStudy yearOfStudy;
+ @XmlElement(name = "Level")
+ protected CourseUnitType.Level level;
+ @XmlElement(name = "ECTSCredits")
+ protected BigDecimal ectsCredits;
+ @XmlElement(name = "LocalCredits")
+ protected BigDecimal localCredits;
+ @XmlElement(name = "Hours")
+ protected BigDecimal hours;
+ @XmlElement(name = "LanguagesOfInstruction")
+ protected CourseUnitLanguagesOfInstructionType languagesOfInstruction;
+ @XmlElement(name = "ModeOfDelivery")
+ protected CourseUnitType.ModeOfDelivery modeOfDelivery;
+ @XmlElement(name = "WorkPlacements")
+ protected CourseUnitWorkPlacementsType workPlacements;
+ @XmlElement(name = "StudentPerformance")
+ protected CourseUnitStudentPerformanceType studentPerformance;
+ @XmlElement(name = "NameOfLecturers")
+ protected RichTextTagType nameOfLecturers;
+ @XmlElement(name = "LearningOutcomes")
+ protected RichTextTagType learningOutcomes;
+ @XmlElement(name = "PrerequisitesAndCorequisites")
+ protected RichTextTagType prerequisitesAndCorequisites;
+ @XmlElement(name = "PrerequisitesScholarshipLevel")
+ protected RichTextTagType prerequisitesScholarshipLevel;
+ @XmlElement(name = "PrerequisitesOtherTitles")
+ protected RichTextTagType prerequisitesOtherTitles;
+ @XmlElement(name = "RecomendedOptionalProgrammeComponents")
+ protected RichTextTagType recomendedOptionalProgrammeComponents;
+ @XmlElement(name = "CourseContents")
+ protected RichTextTagType courseContents;
+ @XmlElement(name = "RecomendedOrRequiredReading")
+ protected RichTextTagType recomendedOrRequiredReading;
+ @XmlElement(name = "PlanedLearningActivitiesAndTeachingMethod")
+ protected RichTextTagType planedLearningActivitiesAndTeachingMethod;
+ @XmlElement(name = "AssesmentMethodsAndCriteria")
+ protected RichTextTagType assesmentMethodsAndCriteria;
+ @XmlElement(name = "Observations")
+ protected RichTextTagType observations;
+ @XmlAttribute(name = "groupID")
+ protected String groupID;
+ @XmlAttribute(name = "institutionAdministeringStudiesID")
+ protected String institutionAdministeringStudiesID;
+ @XmlAttribute(name = "isRequiredByTheProgramme")
+ protected Boolean isRequiredByTheProgramme;
+
+ /**
+ * Gets the value of the code property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getCode() {
+ return code;
+ }
+
+ /**
+ * Sets the value of the code property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setCode(String value) {
+ this.code = value;
+ }
+
+ /**
+ * Gets the value of the scientificArea property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getScientificArea() {
+ return scientificArea;
+ }
+
+ /**
+ * Sets the value of the scientificArea property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setScientificArea(String value) {
+ this.scientificArea = value;
+ }
+
+ /**
+ * Gets the value of the title property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getTitle() {
+ return title;
+ }
+
+ /**
+ * Sets the value of the title property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setTitle(String value) {
+ this.title = value;
+ }
+
+ /**
+ * Gets the value of the theme property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getTheme() {
+ return theme;
+ }
+
+ /**
+ * Sets the value of the theme property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setTheme(String value) {
+ this.theme = value;
+ }
+
+ /**
+ * Gets the value of the type property.
+ *
+ * @return
+ * possible object is
+ * {@link CourseUnitType.Type }
+ *
+ */
+ public CourseUnitType.Type getType() {
+ return type;
+ }
+
+ /**
+ * Sets the value of the type property.
+ *
+ * @param value
+ * allowed object is
+ * {@link CourseUnitType.Type }
+ *
+ */
+ public void setType(CourseUnitType.Type value) {
+ this.type = value;
+ }
+
+ /**
+ * Gets the value of the yearOfStudy property.
+ *
+ * @return
+ * possible object is
+ * {@link CourseUnitType.YearOfStudy }
+ *
+ */
+ public CourseUnitType.YearOfStudy getYearOfStudy() {
+ return yearOfStudy;
+ }
+
+ /**
+ * Sets the value of the yearOfStudy property.
+ *
+ * @param value
+ * allowed object is
+ * {@link CourseUnitType.YearOfStudy }
+ *
+ */
+ public void setYearOfStudy(CourseUnitType.YearOfStudy value) {
+ this.yearOfStudy = value;
+ }
+
+ /**
+ * Gets the value of the level property.
+ *
+ * @return
+ * possible object is
+ * {@link CourseUnitType.Level }
+ *
+ */
+ public CourseUnitType.Level getLevel() {
+ return level;
+ }
+
+ /**
+ * Sets the value of the level property.
+ *
+ * @param value
+ * allowed object is
+ * {@link CourseUnitType.Level }
+ *
+ */
+ public void setLevel(CourseUnitType.Level value) {
+ this.level = value;
+ }
+
+ /**
+ * Gets the value of the ectsCredits property.
+ *
+ * @return
+ * possible object is
+ * {@link BigDecimal }
+ *
+ */
+ public BigDecimal getECTSCredits() {
+ return ectsCredits;
+ }
+
+ /**
+ * Sets the value of the ectsCredits property.
+ *
+ * @param value
+ * allowed object is
+ * {@link BigDecimal }
+ *
+ */
+ public void setECTSCredits(BigDecimal value) {
+ this.ectsCredits = value;
+ }
+
+ /**
+ * Gets the value of the localCredits property.
+ *
+ * @return
+ * possible object is
+ * {@link BigDecimal }
+ *
+ */
+ public BigDecimal getLocalCredits() {
+ return localCredits;
+ }
+
+ /**
+ * Sets the value of the localCredits property.
+ *
+ * @param value
+ * allowed object is
+ * {@link BigDecimal }
+ *
+ */
+ public void setLocalCredits(BigDecimal value) {
+ this.localCredits = value;
+ }
+
+ /**
+ * Gets the value of the hours property.
+ *
+ * @return
+ * possible object is
+ * {@link BigDecimal }
+ *
+ */
+ public BigDecimal getHours() {
+ return hours;
+ }
+
+ /**
+ * Sets the value of the hours property.
+ *
+ * @param value
+ * allowed object is
+ * {@link BigDecimal }
+ *
+ */
+ public void setHours(BigDecimal value) {
+ this.hours = value;
+ }
+
+ /**
+ * Gets the value of the languagesOfInstruction property.
+ *
+ * @return
+ * possible object is
+ * {@link CourseUnitLanguagesOfInstructionType }
+ *
+ */
+ public CourseUnitLanguagesOfInstructionType getLanguagesOfInstruction() {
+ return languagesOfInstruction;
+ }
+
+ /**
+ * Sets the value of the languagesOfInstruction property.
+ *
+ * @param value
+ * allowed object is
+ * {@link CourseUnitLanguagesOfInstructionType }
+ *
+ */
+ public void setLanguagesOfInstruction(CourseUnitLanguagesOfInstructionType value) {
+ this.languagesOfInstruction = value;
+ }
+
+ /**
+ * Gets the value of the modeOfDelivery property.
+ *
+ * @return
+ * possible object is
+ * {@link CourseUnitType.ModeOfDelivery }
+ *
+ */
+ public CourseUnitType.ModeOfDelivery getModeOfDelivery() {
+ return modeOfDelivery;
+ }
+
+ /**
+ * Sets the value of the modeOfDelivery property.
+ *
+ * @param value
+ * allowed object is
+ * {@link CourseUnitType.ModeOfDelivery }
+ *
+ */
+ public void setModeOfDelivery(CourseUnitType.ModeOfDelivery value) {
+ this.modeOfDelivery = value;
+ }
+
+ /**
+ * Gets the value of the workPlacements property.
+ *
+ * @return
+ * possible object is
+ * {@link CourseUnitWorkPlacementsType }
+ *
+ */
+ public CourseUnitWorkPlacementsType getWorkPlacements() {
+ return workPlacements;
+ }
+
+ /**
+ * Sets the value of the workPlacements property.
+ *
+ * @param value
+ * allowed object is
+ * {@link CourseUnitWorkPlacementsType }
+ *
+ */
+ public void setWorkPlacements(CourseUnitWorkPlacementsType value) {
+ this.workPlacements = value;
+ }
+
+ /**
+ * Gets the value of the studentPerformance property.
+ *
+ * @return
+ * possible object is
+ * {@link CourseUnitStudentPerformanceType }
+ *
+ */
+ public CourseUnitStudentPerformanceType getStudentPerformance() {
+ return studentPerformance;
+ }
+
+ /**
+ * Sets the value of the studentPerformance property.
+ *
+ * @param value
+ * allowed object is
+ * {@link CourseUnitStudentPerformanceType }
+ *
+ */
+ public void setStudentPerformance(CourseUnitStudentPerformanceType value) {
+ this.studentPerformance = value;
+ }
+
+ /**
+ * Gets the value of the nameOfLecturers property.
+ *
+ * @return
+ * possible object is
+ * {@link RichTextTagType }
+ *
+ */
+ public RichTextTagType getNameOfLecturers() {
+ return nameOfLecturers;
+ }
+
+ /**
+ * Sets the value of the nameOfLecturers property.
+ *
+ * @param value
+ * allowed object is
+ * {@link RichTextTagType }
+ *
+ */
+ public void setNameOfLecturers(RichTextTagType value) {
+ this.nameOfLecturers = value;
+ }
+
+ /**
+ * Gets the value of the learningOutcomes property.
+ *
+ * @return
+ * possible object is
+ * {@link RichTextTagType }
+ *
+ */
+ public RichTextTagType getLearningOutcomes() {
+ return learningOutcomes;
+ }
+
+ /**
+ * Sets the value of the learningOutcomes property.
+ *
+ * @param value
+ * allowed object is
+ * {@link RichTextTagType }
+ *
+ */
+ public void setLearningOutcomes(RichTextTagType value) {
+ this.learningOutcomes = value;
+ }
+
+ /**
+ * Gets the value of the prerequisitesAndCorequisites property.
+ *
+ * @return
+ * possible object is
+ * {@link RichTextTagType }
+ *
+ */
+ public RichTextTagType getPrerequisitesAndCorequisites() {
+ return prerequisitesAndCorequisites;
+ }
+
+ /**
+ * Sets the value of the prerequisitesAndCorequisites property.
+ *
+ * @param value
+ * allowed object is
+ * {@link RichTextTagType }
+ *
+ */
+ public void setPrerequisitesAndCorequisites(RichTextTagType value) {
+ this.prerequisitesAndCorequisites = value;
+ }
+
+ /**
+ * Gets the value of the prerequisitesScholarshipLevel property.
+ *
+ * @return
+ * possible object is
+ * {@link RichTextTagType }
+ *
+ */
+ public RichTextTagType getPrerequisitesScholarshipLevel() {
+ return prerequisitesScholarshipLevel;
+ }
+
+ /**
+ * Sets the value of the prerequisitesScholarshipLevel property.
+ *
+ * @param value
+ * allowed object is
+ * {@link RichTextTagType }
+ *
+ */
+ public void setPrerequisitesScholarshipLevel(RichTextTagType value) {
+ this.prerequisitesScholarshipLevel = value;
+ }
+
+ /**
+ * Gets the value of the prerequisitesOtherTitles property.
+ *
+ * @return
+ * possible object is
+ * {@link RichTextTagType }
+ *
+ */
+ public RichTextTagType getPrerequisitesOtherTitles() {
+ return prerequisitesOtherTitles;
+ }
+
+ /**
+ * Sets the value of the prerequisitesOtherTitles property.
+ *
+ * @param value
+ * allowed object is
+ * {@link RichTextTagType }
+ *
+ */
+ public void setPrerequisitesOtherTitles(RichTextTagType value) {
+ this.prerequisitesOtherTitles = value;
+ }
+
+ /**
+ * Gets the value of the recomendedOptionalProgrammeComponents property.
+ *
+ * @return
+ * possible object is
+ * {@link RichTextTagType }
+ *
+ */
+ public RichTextTagType getRecomendedOptionalProgrammeComponents() {
+ return recomendedOptionalProgrammeComponents;
+ }
+
+ /**
+ * Sets the value of the recomendedOptionalProgrammeComponents property.
+ *
+ * @param value
+ * allowed object is
+ * {@link RichTextTagType }
+ *
+ */
+ public void setRecomendedOptionalProgrammeComponents(RichTextTagType value) {
+ this.recomendedOptionalProgrammeComponents = value;
+ }
+
+ /**
+ * Gets the value of the courseContents property.
+ *
+ * @return
+ * possible object is
+ * {@link RichTextTagType }
+ *
+ */
+ public RichTextTagType getCourseContents() {
+ return courseContents;
+ }
+
+ /**
+ * Sets the value of the courseContents property.
+ *
+ * @param value
+ * allowed object is
+ * {@link RichTextTagType }
+ *
+ */
+ public void setCourseContents(RichTextTagType value) {
+ this.courseContents = value;
+ }
+
+ /**
+ * Gets the value of the recomendedOrRequiredReading property.
+ *
+ * @return
+ * possible object is
+ * {@link RichTextTagType }
+ *
+ */
+ public RichTextTagType getRecomendedOrRequiredReading() {
+ return recomendedOrRequiredReading;
+ }
+
+ /**
+ * Sets the value of the recomendedOrRequiredReading property.
+ *
+ * @param value
+ * allowed object is
+ * {@link RichTextTagType }
+ *
+ */
+ public void setRecomendedOrRequiredReading(RichTextTagType value) {
+ this.recomendedOrRequiredReading = value;
+ }
+
+ /**
+ * Gets the value of the planedLearningActivitiesAndTeachingMethod property.
+ *
+ * @return
+ * possible object is
+ * {@link RichTextTagType }
+ *
+ */
+ public RichTextTagType getPlanedLearningActivitiesAndTeachingMethod() {
+ return planedLearningActivitiesAndTeachingMethod;
+ }
+
+ /**
+ * Sets the value of the planedLearningActivitiesAndTeachingMethod property.
+ *
+ * @param value
+ * allowed object is
+ * {@link RichTextTagType }
+ *
+ */
+ public void setPlanedLearningActivitiesAndTeachingMethod(RichTextTagType value) {
+ this.planedLearningActivitiesAndTeachingMethod = value;
+ }
+
+ /**
+ * Gets the value of the assesmentMethodsAndCriteria property.
+ *
+ * @return
+ * possible object is
+ * {@link RichTextTagType }
+ *
+ */
+ public RichTextTagType getAssesmentMethodsAndCriteria() {
+ return assesmentMethodsAndCriteria;
+ }
+
+ /**
+ * Sets the value of the assesmentMethodsAndCriteria property.
+ *
+ * @param value
+ * allowed object is
+ * {@link RichTextTagType }
+ *
+ */
+ public void setAssesmentMethodsAndCriteria(RichTextTagType value) {
+ this.assesmentMethodsAndCriteria = value;
+ }
+
+ /**
+ * Gets the value of the observations property.
+ *
+ * @return
+ * possible object is
+ * {@link RichTextTagType }
+ *
+ */
+ public RichTextTagType getObservations() {
+ return observations;
+ }
+
+ /**
+ * Sets the value of the observations property.
+ *
+ * @param value
+ * allowed object is
+ * {@link RichTextTagType }
+ *
+ */
+ public void setObservations(RichTextTagType value) {
+ this.observations = value;
+ }
+
+ /**
+ * Gets the value of the groupID property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getGroupID() {
+ return groupID;
+ }
+
+ /**
+ * Sets the value of the groupID property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setGroupID(String value) {
+ this.groupID = value;
+ }
+
+ /**
+ * Gets the value of the institutionAdministeringStudiesID property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getInstitutionAdministeringStudiesID() {
+ if (institutionAdministeringStudiesID == null) {
+ return "DEF-IAS";
+ } else {
+ return institutionAdministeringStudiesID;
+ }
+ }
+
+ /**
+ * Sets the value of the institutionAdministeringStudiesID property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setInstitutionAdministeringStudiesID(String value) {
+ this.institutionAdministeringStudiesID = value;
+ }
+
+ /**
+ * Gets the value of the isRequiredByTheProgramme property.
+ *
+ * @return
+ * possible object is
+ * {@link Boolean }
+ *
+ */
+ public boolean isIsRequiredByTheProgramme() {
+ if (isRequiredByTheProgramme == null) {
+ return true;
+ } else {
+ return isRequiredByTheProgramme;
+ }
+ }
+
+ /**
+ * Sets the value of the isRequiredByTheProgramme property.
+ *
+ * @param value
+ * allowed object is
+ * {@link Boolean }
+ *
+ */
+ public void setIsRequiredByTheProgramme(Boolean value) {
+ this.isRequiredByTheProgramme = value;
+ }
+
+
+ /**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType>
+ * &lt;simpleContent>
+ * &lt;extension base="&lt;urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma>PlainTextType">
+ * &lt;attribute name="eheaFramework" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}EHEAFrameworkType" />
+ * &lt;/extension>
+ * &lt;/simpleContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+ @XmlAccessorType(XmlAccessType.FIELD)
+ @XmlType(name = "", propOrder = {
+ "value"
+ })
+ public static class Level {
+
+ @XmlValue
+ protected String value;
+ @XmlAttribute(name = "eheaFramework")
+ protected EHEAFrameworkType eheaFramework;
+
+ /**
+ * Gets the value of the value property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getValue() {
+ return value;
+ }
+
+ /**
+ * Sets the value of the value property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setValue(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Gets the value of the eheaFramework property.
+ *
+ * @return
+ * possible object is
+ * {@link EHEAFrameworkType }
+ *
+ */
+ public EHEAFrameworkType getEheaFramework() {
+ return eheaFramework;
+ }
+
+ /**
+ * Sets the value of the eheaFramework property.
+ *
+ * @param value
+ * allowed object is
+ * {@link EHEAFrameworkType }
+ *
+ */
+ public void setEheaFramework(EHEAFrameworkType value) {
+ this.eheaFramework = value;
+ }
+
+ }
+
+
+ /**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType>
+ * &lt;simpleContent>
+ * &lt;extension base="&lt;urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma>PlainTextType">
+ * &lt;attribute name="modeOfDelivery" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}ModeOfDeliveryType" />
+ * &lt;/extension>
+ * &lt;/simpleContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+ @XmlAccessorType(XmlAccessType.FIELD)
+ @XmlType(name = "", propOrder = {
+ "value"
+ })
+ public static class ModeOfDelivery {
+
+ @XmlValue
+ protected String value;
+ @XmlAttribute(name = "modeOfDelivery")
+ protected ModeOfDeliveryType modeOfDelivery;
+
+ /**
+ * Gets the value of the value property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getValue() {
+ return value;
+ }
+
+ /**
+ * Sets the value of the value property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setValue(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Gets the value of the modeOfDelivery property.
+ *
+ * @return
+ * possible object is
+ * {@link ModeOfDeliveryType }
+ *
+ */
+ public ModeOfDeliveryType getModeOfDelivery() {
+ return modeOfDelivery;
+ }
+
+ /**
+ * Sets the value of the modeOfDelivery property.
+ *
+ * @param value
+ * allowed object is
+ * {@link ModeOfDeliveryType }
+ *
+ */
+ public void setModeOfDelivery(ModeOfDeliveryType value) {
+ this.modeOfDelivery = value;
+ }
+
+ }
+
+
+ /**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType>
+ * &lt;simpleContent>
+ * &lt;extension base="&lt;urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma>PlainTextType">
+ * &lt;attribute name="type" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}CourseUnitTypeType" />
+ * &lt;/extension>
+ * &lt;/simpleContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+ @XmlAccessorType(XmlAccessType.FIELD)
+ @XmlType(name = "", propOrder = {
+ "value"
+ })
+ public static class Type {
+
+ @XmlValue
+ protected String value;
+ @XmlAttribute(name = "type")
+ protected CourseUnitTypeType type;
+
+ /**
+ * Gets the value of the value property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getValue() {
+ return value;
+ }
+
+ /**
+ * Sets the value of the value property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setValue(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Gets the value of the type property.
+ *
+ * @return
+ * possible object is
+ * {@link CourseUnitTypeType }
+ *
+ */
+ public CourseUnitTypeType getType() {
+ return type;
+ }
+
+ /**
+ * Sets the value of the type property.
+ *
+ * @param value
+ * allowed object is
+ * {@link CourseUnitTypeType }
+ *
+ */
+ public void setType(CourseUnitTypeType value) {
+ this.type = value;
+ }
+
+ }
+
+
+ /**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType>
+ * &lt;simpleContent>
+ * &lt;extension base="&lt;urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma>PlainTextType">
+ * &lt;attribute name="year" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}PositiveDecimalType" />
+ * &lt;/extension>
+ * &lt;/simpleContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+ @XmlAccessorType(XmlAccessType.FIELD)
+ @XmlType(name = "", propOrder = {
+ "value"
+ })
+ public static class YearOfStudy {
+
+ @XmlValue
+ protected String value;
+ @XmlAttribute(name = "year")
+ protected BigDecimal year;
+
+ /**
+ * Gets the value of the value property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getValue() {
+ return value;
+ }
+
+ /**
+ * Sets the value of the value property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setValue(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Gets the value of the year property.
+ *
+ * @return
+ * possible object is
+ * {@link BigDecimal }
+ *
+ */
+ public BigDecimal getYear() {
+ return year;
+ }
+
+ /**
+ * Sets the value of the year property.
+ *
+ * @param value
+ * allowed object is
+ * {@link BigDecimal }
+ *
+ */
+ public void setYear(BigDecimal value) {
+ this.year = value;
+ }
+
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/CourseUnitTypeType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/CourseUnitTypeType.java
new file mode 100644
index 000000000..dae27bc84
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/CourseUnitTypeType.java
@@ -0,0 +1,58 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._2_0.academic.generaldiploma;
+
+import javax.xml.bind.annotation.XmlEnum;
+import javax.xml.bind.annotation.XmlEnumValue;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for CourseUnitTypeType.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * <p>
+ * <pre>
+ * &lt;simpleType name="CourseUnitTypeType">
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ * &lt;enumeration value="Compulsory"/>
+ * &lt;enumeration value="Optional"/>
+ * &lt;/restriction>
+ * &lt;/simpleType>
+ * </pre>
+ *
+ */
+@XmlType(name = "CourseUnitTypeType")
+@XmlEnum
+public enum CourseUnitTypeType {
+
+ @XmlEnumValue("Compulsory")
+ COMPULSORY("Compulsory"),
+ @XmlEnumValue("Optional")
+ OPTIONAL("Optional");
+ private final String value;
+
+ CourseUnitTypeType(String v) {
+ value = v;
+ }
+
+ public String value() {
+ return value;
+ }
+
+ public static CourseUnitTypeType fromValue(String v) {
+ for (CourseUnitTypeType c: CourseUnitTypeType.values()) {
+ if (c.value.equals(v)) {
+ return c;
+ }
+ }
+ throw new IllegalArgumentException(v);
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/CourseUnitWorkPlacementType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/CourseUnitWorkPlacementType.java
new file mode 100644
index 000000000..39eb67bc2
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/CourseUnitWorkPlacementType.java
@@ -0,0 +1,155 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._2_0.academic.generaldiploma;
+
+import java.math.BigDecimal;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.datatype.XMLGregorianCalendar;
+
+
+/**
+ * <p>Java class for CourseUnitWorkPlacementType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="CourseUnitWorkPlacementType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="CollaboratingInstitution" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}PlainTextType"/>
+ * &lt;element name="DateFrom" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}DateType" minOccurs="0"/>
+ * &lt;element name="DateTo" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}DateType" minOccurs="0"/>
+ * &lt;element name="TrainingHours" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}PositiveDecimalType" minOccurs="0"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CourseUnitWorkPlacementType", propOrder = {
+ "collaboratingInstitution",
+ "dateFrom",
+ "dateTo",
+ "trainingHours"
+})
+public class CourseUnitWorkPlacementType {
+
+ @XmlElement(name = "CollaboratingInstitution", required = true)
+ protected String collaboratingInstitution;
+ @XmlElement(name = "DateFrom")
+ protected XMLGregorianCalendar dateFrom;
+ @XmlElement(name = "DateTo")
+ protected XMLGregorianCalendar dateTo;
+ @XmlElement(name = "TrainingHours")
+ protected BigDecimal trainingHours;
+
+ /**
+ * Gets the value of the collaboratingInstitution property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getCollaboratingInstitution() {
+ return collaboratingInstitution;
+ }
+
+ /**
+ * Sets the value of the collaboratingInstitution property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setCollaboratingInstitution(String value) {
+ this.collaboratingInstitution = value;
+ }
+
+ /**
+ * Gets the value of the dateFrom property.
+ *
+ * @return
+ * possible object is
+ * {@link XMLGregorianCalendar }
+ *
+ */
+ public XMLGregorianCalendar getDateFrom() {
+ return dateFrom;
+ }
+
+ /**
+ * Sets the value of the dateFrom property.
+ *
+ * @param value
+ * allowed object is
+ * {@link XMLGregorianCalendar }
+ *
+ */
+ public void setDateFrom(XMLGregorianCalendar value) {
+ this.dateFrom = value;
+ }
+
+ /**
+ * Gets the value of the dateTo property.
+ *
+ * @return
+ * possible object is
+ * {@link XMLGregorianCalendar }
+ *
+ */
+ public XMLGregorianCalendar getDateTo() {
+ return dateTo;
+ }
+
+ /**
+ * Sets the value of the dateTo property.
+ *
+ * @param value
+ * allowed object is
+ * {@link XMLGregorianCalendar }
+ *
+ */
+ public void setDateTo(XMLGregorianCalendar value) {
+ this.dateTo = value;
+ }
+
+ /**
+ * Gets the value of the trainingHours property.
+ *
+ * @return
+ * possible object is
+ * {@link BigDecimal }
+ *
+ */
+ public BigDecimal getTrainingHours() {
+ return trainingHours;
+ }
+
+ /**
+ * Sets the value of the trainingHours property.
+ *
+ * @param value
+ * allowed object is
+ * {@link BigDecimal }
+ *
+ */
+ public void setTrainingHours(BigDecimal value) {
+ this.trainingHours = value;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/CourseUnitWorkPlacementsType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/CourseUnitWorkPlacementsType.java
new file mode 100644
index 000000000..9dfb3d6b7
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/CourseUnitWorkPlacementsType.java
@@ -0,0 +1,76 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._2_0.academic.generaldiploma;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for CourseUnitWorkPlacementsType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="CourseUnitWorkPlacementsType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="WorkPlacement" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}CourseUnitWorkPlacementType" maxOccurs="unbounded"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CourseUnitWorkPlacementsType", propOrder = {
+ "workPlacement"
+})
+public class CourseUnitWorkPlacementsType {
+
+ @XmlElement(name = "WorkPlacement", required = true)
+ protected List<CourseUnitWorkPlacementType> workPlacement;
+
+ /**
+ * Gets the value of the workPlacement property.
+ *
+ * <p>
+ * 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 <CODE>set</CODE> method for the workPlacement property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getWorkPlacement().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link CourseUnitWorkPlacementType }
+ *
+ *
+ */
+ public List<CourseUnitWorkPlacementType> getWorkPlacement() {
+ if (workPlacement == null) {
+ workPlacement = new ArrayList<CourseUnitWorkPlacementType>();
+ }
+ return this.workPlacement;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/CoursesAttendedInOtherInstitutionInMobilityProgramsType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/CoursesAttendedInOtherInstitutionInMobilityProgramsType.java
new file mode 100644
index 000000000..01c42298c
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/CoursesAttendedInOtherInstitutionInMobilityProgramsType.java
@@ -0,0 +1,76 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._2_0.academic.generaldiploma;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for CoursesAttendedInOtherInstitutionInMobilityProgramsType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="CoursesAttendedInOtherInstitutionInMobilityProgramsType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="MobilityProgramme" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}MobilityProgrammeType" maxOccurs="unbounded"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CoursesAttendedInOtherInstitutionInMobilityProgramsType", propOrder = {
+ "mobilityProgramme"
+})
+public class CoursesAttendedInOtherInstitutionInMobilityProgramsType {
+
+ @XmlElement(name = "MobilityProgramme", required = true)
+ protected List<MobilityProgrammeType> mobilityProgramme;
+
+ /**
+ * Gets the value of the mobilityProgramme property.
+ *
+ * <p>
+ * 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 <CODE>set</CODE> method for the mobilityProgramme property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getMobilityProgramme().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link MobilityProgrammeType }
+ *
+ *
+ */
+ public List<MobilityProgrammeType> getMobilityProgramme() {
+ if (mobilityProgramme == null) {
+ mobilityProgramme = new ArrayList<MobilityProgrammeType>();
+ }
+ return this.mobilityProgramme;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/CoursesGroupType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/CoursesGroupType.java
new file mode 100644
index 000000000..229b753ff
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/CoursesGroupType.java
@@ -0,0 +1,188 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._2_0.academic.generaldiploma;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for CoursesGroupType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="CoursesGroupType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="Name" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}PlainTextType"/>
+ * &lt;element name="HeaderInformation" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}RichTextTagType" minOccurs="0"/>
+ * &lt;element name="CoursesGroup" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}CoursesGroupType" maxOccurs="unbounded" minOccurs="0"/>
+ * &lt;element name="FooterInformation" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}RichTextTagType" minOccurs="0"/>
+ * &lt;/sequence>
+ * &lt;attribute name="groupID" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CoursesGroupType", propOrder = {
+ "name",
+ "headerInformation",
+ "coursesGroup",
+ "footerInformation"
+})
+public class CoursesGroupType {
+
+ @XmlElement(name = "Name", required = true)
+ protected String name;
+ @XmlElement(name = "HeaderInformation")
+ protected RichTextTagType headerInformation;
+ @XmlElement(name = "CoursesGroup")
+ protected List<CoursesGroupType> coursesGroup;
+ @XmlElement(name = "FooterInformation")
+ protected RichTextTagType footerInformation;
+ @XmlAttribute(name = "groupID", required = true)
+ protected String groupID;
+
+ /**
+ * Gets the value of the name property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * Sets the value of the name property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setName(String value) {
+ this.name = value;
+ }
+
+ /**
+ * Gets the value of the headerInformation property.
+ *
+ * @return
+ * possible object is
+ * {@link RichTextTagType }
+ *
+ */
+ public RichTextTagType getHeaderInformation() {
+ return headerInformation;
+ }
+
+ /**
+ * Sets the value of the headerInformation property.
+ *
+ * @param value
+ * allowed object is
+ * {@link RichTextTagType }
+ *
+ */
+ public void setHeaderInformation(RichTextTagType value) {
+ this.headerInformation = value;
+ }
+
+ /**
+ * Gets the value of the coursesGroup property.
+ *
+ * <p>
+ * 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 <CODE>set</CODE> method for the coursesGroup property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getCoursesGroup().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link CoursesGroupType }
+ *
+ *
+ */
+ public List<CoursesGroupType> getCoursesGroup() {
+ if (coursesGroup == null) {
+ coursesGroup = new ArrayList<CoursesGroupType>();
+ }
+ return this.coursesGroup;
+ }
+
+ /**
+ * Gets the value of the footerInformation property.
+ *
+ * @return
+ * possible object is
+ * {@link RichTextTagType }
+ *
+ */
+ public RichTextTagType getFooterInformation() {
+ return footerInformation;
+ }
+
+ /**
+ * Sets the value of the footerInformation property.
+ *
+ * @param value
+ * allowed object is
+ * {@link RichTextTagType }
+ *
+ */
+ public void setFooterInformation(RichTextTagType value) {
+ this.footerInformation = value;
+ }
+
+ /**
+ * Gets the value of the groupID property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getGroupID() {
+ return groupID;
+ }
+
+ /**
+ * Sets the value of the groupID property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setGroupID(String value) {
+ this.groupID = value;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/CoursesGroupsType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/CoursesGroupsType.java
new file mode 100644
index 000000000..74b1bec06
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/CoursesGroupsType.java
@@ -0,0 +1,160 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._2_0.academic.generaldiploma;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for CoursesGroupsType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="CoursesGroupsType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="Name" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}PlainTextType" minOccurs="0"/>
+ * &lt;element name="HeaderInformation" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}RichTextTagType" minOccurs="0"/>
+ * &lt;element name="CoursesGroup" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}CoursesGroupType" maxOccurs="unbounded" minOccurs="0"/>
+ * &lt;element name="FooterInformation" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}RichTextTagType" minOccurs="0"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CoursesGroupsType", propOrder = {
+ "name",
+ "headerInformation",
+ "coursesGroup",
+ "footerInformation"
+})
+public class CoursesGroupsType {
+
+ @XmlElement(name = "Name")
+ protected String name;
+ @XmlElement(name = "HeaderInformation")
+ protected RichTextTagType headerInformation;
+ @XmlElement(name = "CoursesGroup")
+ protected List<CoursesGroupType> coursesGroup;
+ @XmlElement(name = "FooterInformation")
+ protected RichTextTagType footerInformation;
+
+ /**
+ * Gets the value of the name property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * Sets the value of the name property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setName(String value) {
+ this.name = value;
+ }
+
+ /**
+ * Gets the value of the headerInformation property.
+ *
+ * @return
+ * possible object is
+ * {@link RichTextTagType }
+ *
+ */
+ public RichTextTagType getHeaderInformation() {
+ return headerInformation;
+ }
+
+ /**
+ * Sets the value of the headerInformation property.
+ *
+ * @param value
+ * allowed object is
+ * {@link RichTextTagType }
+ *
+ */
+ public void setHeaderInformation(RichTextTagType value) {
+ this.headerInformation = value;
+ }
+
+ /**
+ * Gets the value of the coursesGroup property.
+ *
+ * <p>
+ * 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 <CODE>set</CODE> method for the coursesGroup property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getCoursesGroup().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link CoursesGroupType }
+ *
+ *
+ */
+ public List<CoursesGroupType> getCoursesGroup() {
+ if (coursesGroup == null) {
+ coursesGroup = new ArrayList<CoursesGroupType>();
+ }
+ return this.coursesGroup;
+ }
+
+ /**
+ * Gets the value of the footerInformation property.
+ *
+ * @return
+ * possible object is
+ * {@link RichTextTagType }
+ *
+ */
+ public RichTextTagType getFooterInformation() {
+ return footerInformation;
+ }
+
+ /**
+ * Sets the value of the footerInformation property.
+ *
+ * @param value
+ * allowed object is
+ * {@link RichTextTagType }
+ *
+ */
+ public void setFooterInformation(RichTextTagType value) {
+ this.footerInformation = value;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/CoursesUnitsType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/CoursesUnitsType.java
new file mode 100644
index 000000000..d56b4bd10
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/CoursesUnitsType.java
@@ -0,0 +1,76 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._2_0.academic.generaldiploma;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for CoursesUnitsType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="CoursesUnitsType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="CourseUnit" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}CourseUnitType" maxOccurs="unbounded"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CoursesUnitsType", propOrder = {
+ "courseUnit"
+})
+public class CoursesUnitsType {
+
+ @XmlElement(name = "CourseUnit", required = true)
+ protected List<CourseUnitType> courseUnit;
+
+ /**
+ * Gets the value of the courseUnit property.
+ *
+ * <p>
+ * 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 <CODE>set</CODE> method for the courseUnit property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getCourseUnit().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link CourseUnitType }
+ *
+ *
+ */
+ public List<CourseUnitType> getCourseUnit() {
+ if (courseUnit == null) {
+ courseUnit = new ArrayList<CourseUnitType>();
+ }
+ return this.courseUnit;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/ECTSGradingScaleType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/ECTSGradingScaleType.java
new file mode 100644
index 000000000..a012c27a9
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/ECTSGradingScaleType.java
@@ -0,0 +1,55 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._2_0.academic.generaldiploma;
+
+import javax.xml.bind.annotation.XmlEnum;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for ECTSGradingScaleType.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * <p>
+ * <pre>
+ * &lt;simpleType name="ECTSGradingScaleType">
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ * &lt;enumeration value="A"/>
+ * &lt;enumeration value="B"/>
+ * &lt;enumeration value="C"/>
+ * &lt;enumeration value="D"/>
+ * &lt;enumeration value="E"/>
+ * &lt;enumeration value="FX"/>
+ * &lt;enumeration value="F"/>
+ * &lt;/restriction>
+ * &lt;/simpleType>
+ * </pre>
+ *
+ */
+@XmlType(name = "ECTSGradingScaleType")
+@XmlEnum
+public enum ECTSGradingScaleType {
+
+ A,
+ B,
+ C,
+ D,
+ E,
+ FX,
+ F;
+
+ public String value() {
+ return name();
+ }
+
+ public static ECTSGradingScaleType fromValue(String v) {
+ return valueOf(v);
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/EHEAFrameworkType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/EHEAFrameworkType.java
new file mode 100644
index 000000000..2f8d46c73
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/EHEAFrameworkType.java
@@ -0,0 +1,61 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._2_0.academic.generaldiploma;
+
+import javax.xml.bind.annotation.XmlEnum;
+import javax.xml.bind.annotation.XmlEnumValue;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for EHEAFrameworkType.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * <p>
+ * <pre>
+ * &lt;simpleType name="EHEAFrameworkType">
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ * &lt;enumeration value="FirstCycle"/>
+ * &lt;enumeration value="SecondCycle"/>
+ * &lt;enumeration value="ThirdCycle"/>
+ * &lt;/restriction>
+ * &lt;/simpleType>
+ * </pre>
+ *
+ */
+@XmlType(name = "EHEAFrameworkType")
+@XmlEnum
+public enum EHEAFrameworkType {
+
+ @XmlEnumValue("FirstCycle")
+ FIRST_CYCLE("FirstCycle"),
+ @XmlEnumValue("SecondCycle")
+ SECOND_CYCLE("SecondCycle"),
+ @XmlEnumValue("ThirdCycle")
+ THIRD_CYCLE("ThirdCycle");
+ private final String value;
+
+ EHEAFrameworkType(String v) {
+ value = v;
+ }
+
+ public String value() {
+ return value;
+ }
+
+ public static EHEAFrameworkType fromValue(String v) {
+ for (EHEAFrameworkType c: EHEAFrameworkType.values()) {
+ if (c.value.equals(v)) {
+ return c;
+ }
+ }
+ throw new IllegalArgumentException(v);
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/ExtensionContentType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/ExtensionContentType.java
new file mode 100644
index 000000000..85daac00d
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/ExtensionContentType.java
@@ -0,0 +1,109 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._2_0.academic.generaldiploma;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlMixed;
+import javax.xml.bind.annotation.XmlType;
+import org.w3c.dom.Element;
+
+
+/**
+ * <p>Java class for ExtensionContentType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="ExtensionContentType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence maxOccurs="unbounded" minOccurs="0">
+ * &lt;any processContents='lax'/>
+ * &lt;/sequence>
+ * &lt;attribute name="id" type="{http://www.w3.org/2001/XMLSchema}string" />
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "ExtensionContentType", propOrder = {
+ "content"
+})
+public class ExtensionContentType {
+
+ @XmlMixed
+ @XmlAnyElement(lax = true)
+ protected List<Object> content;
+ @XmlAttribute(name = "id")
+ protected String id;
+
+ /**
+ * Gets the value of the content property.
+ *
+ * <p>
+ * 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 <CODE>set</CODE> method for the content property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getContent().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link Object }
+ * {@link Element }
+ * {@link String }
+ *
+ *
+ */
+ public List<Object> getContent() {
+ if (content == null) {
+ content = new ArrayList<Object>();
+ }
+ return this.content;
+ }
+
+ /**
+ * Gets the value of the id property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getId() {
+ return id;
+ }
+
+ /**
+ * Sets the value of the id property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setId(String value) {
+ this.id = value;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/FamilyNameType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/FamilyNameType.java
new file mode 100644
index 000000000..a69798709
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/FamilyNameType.java
@@ -0,0 +1,76 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._2_0.academic.generaldiploma;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for FamilyNameType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="FamilyNameType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="Surname" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}PlainTextType" maxOccurs="unbounded"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "FamilyNameType", propOrder = {
+ "surname"
+})
+public class FamilyNameType {
+
+ @XmlElement(name = "Surname", required = true)
+ protected List<String> surname;
+
+ /**
+ * Gets the value of the surname property.
+ *
+ * <p>
+ * 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 <CODE>set</CODE> method for the surname property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getSurname().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link String }
+ *
+ *
+ */
+ public List<String> getSurname() {
+ if (surname == null) {
+ surname = new ArrayList<String>();
+ }
+ return this.surname;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/GenderType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/GenderType.java
new file mode 100644
index 000000000..34a9a68b5
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/GenderType.java
@@ -0,0 +1,58 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._2_0.academic.generaldiploma;
+
+import javax.xml.bind.annotation.XmlEnum;
+import javax.xml.bind.annotation.XmlEnumValue;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for GenderType.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * <p>
+ * <pre>
+ * &lt;simpleType name="GenderType">
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ * &lt;enumeration value="Female"/>
+ * &lt;enumeration value="Male"/>
+ * &lt;/restriction>
+ * &lt;/simpleType>
+ * </pre>
+ *
+ */
+@XmlType(name = "GenderType")
+@XmlEnum
+public enum GenderType {
+
+ @XmlEnumValue("Female")
+ FEMALE("Female"),
+ @XmlEnumValue("Male")
+ MALE("Male");
+ private final String value;
+
+ GenderType(String v) {
+ value = v;
+ }
+
+ public String value() {
+ return value;
+ }
+
+ public static GenderType fromValue(String v) {
+ for (GenderType c: GenderType.values()) {
+ if (c.value.equals(v)) {
+ return c;
+ }
+ }
+ throw new IllegalArgumentException(v);
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/GeneralDiplomaType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/GeneralDiplomaType.java
new file mode 100644
index 000000000..b59e1b6b1
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/GeneralDiplomaType.java
@@ -0,0 +1,409 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._2_0.academic.generaldiploma;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+import eu.stork.peps.complex.attributes.org.w3._2000._09.xmldsig.SignatureType;
+
+
+/**
+ * <p>Java class for GeneralDiplomaType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="GeneralDiplomaType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="InformationIdentifyingTheHolderOfTheQualification" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}InformationIdentifyingTheHolderOfTheQualificationType"/>
+ * &lt;element name="InformationIdentifyingTheQualification" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}InformationIdentifyingTheQualificationType"/>
+ * &lt;element name="InformationOnTheLevelOfTheQualification" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}InformationOnTheLevelOfTheQualificationType" minOccurs="0"/>
+ * &lt;element name="InformationOnTheContentsAndResultsGained" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}InformationOnTheContentsAndResultsGainedType" minOccurs="0"/>
+ * &lt;element name="InformationOnTheFunctionOfTheQualification" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}InformationOnTheFunctionOfTheQualificationType" minOccurs="0"/>
+ * &lt;element name="AdditionalInformation" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}AdditionalInformationType" minOccurs="0"/>
+ * &lt;element name="CertificationOfTheSupplement" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}CertificationOfTheSupplementType" minOccurs="0"/>
+ * &lt;element name="InformationOnTheNationalHigherEducationSystem" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}RichTextTagType" minOccurs="0"/>
+ * &lt;element name="Attachments" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}AttachmentsType" minOccurs="0"/>
+ * &lt;element name="ExtensionContent" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}ExtensionContentType" maxOccurs="unbounded" minOccurs="0"/>
+ * &lt;element ref="{http://www.w3.org/2000/09/xmldsig#}Signature" maxOccurs="unbounded" minOccurs="0"/>
+ * &lt;/sequence>
+ * &lt;attribute name="language" use="required" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}LanguageType" />
+ * &lt;attribute name="isTheOriginalLanguage" use="required" type="{http://www.w3.org/2001/XMLSchema}boolean" />
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "GeneralDiplomaType", propOrder = {
+ "informationIdentifyingTheHolderOfTheQualification",
+ "informationIdentifyingTheQualification",
+ "informationOnTheLevelOfTheQualification",
+ "informationOnTheContentsAndResultsGained",
+ "informationOnTheFunctionOfTheQualification",
+ "additionalInformation",
+ "certificationOfTheSupplement",
+ "informationOnTheNationalHigherEducationSystem",
+ "attachments",
+ "extensionContent",
+ "signature"
+})
+public class GeneralDiplomaType {
+
+ @XmlElement(name = "InformationIdentifyingTheHolderOfTheQualification", required = true)
+ protected InformationIdentifyingTheHolderOfTheQualificationType informationIdentifyingTheHolderOfTheQualification;
+ @XmlElement(name = "InformationIdentifyingTheQualification", required = true)
+ protected InformationIdentifyingTheQualificationType informationIdentifyingTheQualification;
+ @XmlElement(name = "InformationOnTheLevelOfTheQualification")
+ protected InformationOnTheLevelOfTheQualificationType informationOnTheLevelOfTheQualification;
+ @XmlElement(name = "InformationOnTheContentsAndResultsGained")
+ protected InformationOnTheContentsAndResultsGainedType informationOnTheContentsAndResultsGained;
+ @XmlElement(name = "InformationOnTheFunctionOfTheQualification")
+ protected InformationOnTheFunctionOfTheQualificationType informationOnTheFunctionOfTheQualification;
+ @XmlElement(name = "AdditionalInformation")
+ protected AdditionalInformationType additionalInformation;
+ @XmlElement(name = "CertificationOfTheSupplement")
+ protected CertificationOfTheSupplementType certificationOfTheSupplement;
+ @XmlElement(name = "InformationOnTheNationalHigherEducationSystem")
+ protected RichTextTagType informationOnTheNationalHigherEducationSystem;
+ @XmlElement(name = "Attachments")
+ protected AttachmentsType attachments;
+ @XmlElement(name = "ExtensionContent")
+ protected List<ExtensionContentType> extensionContent;
+ @XmlElement(name = "Signature", namespace = "http://www.w3.org/2000/09/xmldsig#")
+ protected List<SignatureType> signature;
+ @XmlAttribute(name = "language", required = true)
+ protected LanguageType language;
+ @XmlAttribute(name = "isTheOriginalLanguage", required = true)
+ protected boolean isTheOriginalLanguage;
+
+ /**
+ * Gets the value of the informationIdentifyingTheHolderOfTheQualification property.
+ *
+ * @return
+ * possible object is
+ * {@link InformationIdentifyingTheHolderOfTheQualificationType }
+ *
+ */
+ public InformationIdentifyingTheHolderOfTheQualificationType getInformationIdentifyingTheHolderOfTheQualification() {
+ return informationIdentifyingTheHolderOfTheQualification;
+ }
+
+ /**
+ * Sets the value of the informationIdentifyingTheHolderOfTheQualification property.
+ *
+ * @param value
+ * allowed object is
+ * {@link InformationIdentifyingTheHolderOfTheQualificationType }
+ *
+ */
+ public void setInformationIdentifyingTheHolderOfTheQualification(InformationIdentifyingTheHolderOfTheQualificationType value) {
+ this.informationIdentifyingTheHolderOfTheQualification = value;
+ }
+
+ /**
+ * Gets the value of the informationIdentifyingTheQualification property.
+ *
+ * @return
+ * possible object is
+ * {@link InformationIdentifyingTheQualificationType }
+ *
+ */
+ public InformationIdentifyingTheQualificationType getInformationIdentifyingTheQualification() {
+ return informationIdentifyingTheQualification;
+ }
+
+ /**
+ * Sets the value of the informationIdentifyingTheQualification property.
+ *
+ * @param value
+ * allowed object is
+ * {@link InformationIdentifyingTheQualificationType }
+ *
+ */
+ public void setInformationIdentifyingTheQualification(InformationIdentifyingTheQualificationType value) {
+ this.informationIdentifyingTheQualification = value;
+ }
+
+ /**
+ * Gets the value of the informationOnTheLevelOfTheQualification property.
+ *
+ * @return
+ * possible object is
+ * {@link InformationOnTheLevelOfTheQualificationType }
+ *
+ */
+ public InformationOnTheLevelOfTheQualificationType getInformationOnTheLevelOfTheQualification() {
+ return informationOnTheLevelOfTheQualification;
+ }
+
+ /**
+ * Sets the value of the informationOnTheLevelOfTheQualification property.
+ *
+ * @param value
+ * allowed object is
+ * {@link InformationOnTheLevelOfTheQualificationType }
+ *
+ */
+ public void setInformationOnTheLevelOfTheQualification(InformationOnTheLevelOfTheQualificationType value) {
+ this.informationOnTheLevelOfTheQualification = value;
+ }
+
+ /**
+ * Gets the value of the informationOnTheContentsAndResultsGained property.
+ *
+ * @return
+ * possible object is
+ * {@link InformationOnTheContentsAndResultsGainedType }
+ *
+ */
+ public InformationOnTheContentsAndResultsGainedType getInformationOnTheContentsAndResultsGained() {
+ return informationOnTheContentsAndResultsGained;
+ }
+
+ /**
+ * Sets the value of the informationOnTheContentsAndResultsGained property.
+ *
+ * @param value
+ * allowed object is
+ * {@link InformationOnTheContentsAndResultsGainedType }
+ *
+ */
+ public void setInformationOnTheContentsAndResultsGained(InformationOnTheContentsAndResultsGainedType value) {
+ this.informationOnTheContentsAndResultsGained = value;
+ }
+
+ /**
+ * Gets the value of the informationOnTheFunctionOfTheQualification property.
+ *
+ * @return
+ * possible object is
+ * {@link InformationOnTheFunctionOfTheQualificationType }
+ *
+ */
+ public InformationOnTheFunctionOfTheQualificationType getInformationOnTheFunctionOfTheQualification() {
+ return informationOnTheFunctionOfTheQualification;
+ }
+
+ /**
+ * Sets the value of the informationOnTheFunctionOfTheQualification property.
+ *
+ * @param value
+ * allowed object is
+ * {@link InformationOnTheFunctionOfTheQualificationType }
+ *
+ */
+ public void setInformationOnTheFunctionOfTheQualification(InformationOnTheFunctionOfTheQualificationType value) {
+ this.informationOnTheFunctionOfTheQualification = value;
+ }
+
+ /**
+ * Gets the value of the additionalInformation property.
+ *
+ * @return
+ * possible object is
+ * {@link AdditionalInformationType }
+ *
+ */
+ public AdditionalInformationType getAdditionalInformation() {
+ return additionalInformation;
+ }
+
+ /**
+ * Sets the value of the additionalInformation property.
+ *
+ * @param value
+ * allowed object is
+ * {@link AdditionalInformationType }
+ *
+ */
+ public void setAdditionalInformation(AdditionalInformationType value) {
+ this.additionalInformation = value;
+ }
+
+ /**
+ * Gets the value of the certificationOfTheSupplement property.
+ *
+ * @return
+ * possible object is
+ * {@link CertificationOfTheSupplementType }
+ *
+ */
+ public CertificationOfTheSupplementType getCertificationOfTheSupplement() {
+ return certificationOfTheSupplement;
+ }
+
+ /**
+ * Sets the value of the certificationOfTheSupplement property.
+ *
+ * @param value
+ * allowed object is
+ * {@link CertificationOfTheSupplementType }
+ *
+ */
+ public void setCertificationOfTheSupplement(CertificationOfTheSupplementType value) {
+ this.certificationOfTheSupplement = value;
+ }
+
+ /**
+ * Gets the value of the informationOnTheNationalHigherEducationSystem property.
+ *
+ * @return
+ * possible object is
+ * {@link RichTextTagType }
+ *
+ */
+ public RichTextTagType getInformationOnTheNationalHigherEducationSystem() {
+ return informationOnTheNationalHigherEducationSystem;
+ }
+
+ /**
+ * Sets the value of the informationOnTheNationalHigherEducationSystem property.
+ *
+ * @param value
+ * allowed object is
+ * {@link RichTextTagType }
+ *
+ */
+ public void setInformationOnTheNationalHigherEducationSystem(RichTextTagType value) {
+ this.informationOnTheNationalHigherEducationSystem = value;
+ }
+
+ /**
+ * Gets the value of the attachments property.
+ *
+ * @return
+ * possible object is
+ * {@link AttachmentsType }
+ *
+ */
+ public AttachmentsType getAttachments() {
+ return attachments;
+ }
+
+ /**
+ * Sets the value of the attachments property.
+ *
+ * @param value
+ * allowed object is
+ * {@link AttachmentsType }
+ *
+ */
+ public void setAttachments(AttachmentsType value) {
+ this.attachments = value;
+ }
+
+ /**
+ * Gets the value of the extensionContent property.
+ *
+ * <p>
+ * 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 <CODE>set</CODE> method for the extensionContent property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getExtensionContent().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link ExtensionContentType }
+ *
+ *
+ */
+ public List<ExtensionContentType> getExtensionContent() {
+ if (extensionContent == null) {
+ extensionContent = new ArrayList<ExtensionContentType>();
+ }
+ return this.extensionContent;
+ }
+
+ /**
+ * Gets the value of the signature property.
+ *
+ * <p>
+ * 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 <CODE>set</CODE> method for the signature property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getSignature().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link SignatureType }
+ *
+ *
+ */
+ public List<SignatureType> getSignature() {
+ if (signature == null) {
+ signature = new ArrayList<SignatureType>();
+ }
+ return this.signature;
+ }
+
+ /**
+ * Gets the value of the language property.
+ *
+ * @return
+ * possible object is
+ * {@link LanguageType }
+ *
+ */
+ public LanguageType getLanguage() {
+ return language;
+ }
+
+ /**
+ * Sets the value of the language property.
+ *
+ * @param value
+ * allowed object is
+ * {@link LanguageType }
+ *
+ */
+ public void setLanguage(LanguageType value) {
+ this.language = value;
+ }
+
+ /**
+ * Gets the value of the isTheOriginalLanguage property.
+ *
+ */
+ public boolean isIsTheOriginalLanguage() {
+ return isTheOriginalLanguage;
+ }
+
+ /**
+ * Sets the value of the isTheOriginalLanguage property.
+ *
+ */
+ public void setIsTheOriginalLanguage(boolean value) {
+ this.isTheOriginalLanguage = value;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/GivenNameType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/GivenNameType.java
new file mode 100644
index 000000000..cc9b70e5b
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/GivenNameType.java
@@ -0,0 +1,76 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._2_0.academic.generaldiploma;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for GivenNameType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="GivenNameType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="Name" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}PlainTextType" maxOccurs="unbounded"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "GivenNameType", propOrder = {
+ "name"
+})
+public class GivenNameType {
+
+ @XmlElement(name = "Name", required = true)
+ protected List<String> name;
+
+ /**
+ * Gets the value of the name property.
+ *
+ * <p>
+ * 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 <CODE>set</CODE> method for the name property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getName().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link String }
+ *
+ *
+ */
+ public List<String> getName() {
+ if (name == null) {
+ name = new ArrayList<String>();
+ }
+ return this.name;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/GradingSchemeAndGradeDistributionGuidanceType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/GradingSchemeAndGradeDistributionGuidanceType.java
new file mode 100644
index 000000000..9bb0de01d
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/GradingSchemeAndGradeDistributionGuidanceType.java
@@ -0,0 +1,97 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._2_0.academic.generaldiploma;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for GradingSchemeAndGradeDistributionGuidanceType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="GradingSchemeAndGradeDistributionGuidanceType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="GradingScheme" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}RichTextTagType"/>
+ * &lt;element name="GradeDistributionGuidance" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}RichTextTagType" minOccurs="0"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "GradingSchemeAndGradeDistributionGuidanceType", propOrder = {
+ "gradingScheme",
+ "gradeDistributionGuidance"
+})
+public class GradingSchemeAndGradeDistributionGuidanceType {
+
+ @XmlElement(name = "GradingScheme", required = true)
+ protected RichTextTagType gradingScheme;
+ @XmlElement(name = "GradeDistributionGuidance")
+ protected RichTextTagType gradeDistributionGuidance;
+
+ /**
+ * Gets the value of the gradingScheme property.
+ *
+ * @return
+ * possible object is
+ * {@link RichTextTagType }
+ *
+ */
+ public RichTextTagType getGradingScheme() {
+ return gradingScheme;
+ }
+
+ /**
+ * Sets the value of the gradingScheme property.
+ *
+ * @param value
+ * allowed object is
+ * {@link RichTextTagType }
+ *
+ */
+ public void setGradingScheme(RichTextTagType value) {
+ this.gradingScheme = value;
+ }
+
+ /**
+ * Gets the value of the gradeDistributionGuidance property.
+ *
+ * @return
+ * possible object is
+ * {@link RichTextTagType }
+ *
+ */
+ public RichTextTagType getGradeDistributionGuidance() {
+ return gradeDistributionGuidance;
+ }
+
+ /**
+ * Sets the value of the gradeDistributionGuidance property.
+ *
+ * @param value
+ * allowed object is
+ * {@link RichTextTagType }
+ *
+ */
+ public void setGradeDistributionGuidance(RichTextTagType value) {
+ this.gradeDistributionGuidance = value;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/ImageMimeType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/ImageMimeType.java
new file mode 100644
index 000000000..8429a3229
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/ImageMimeType.java
@@ -0,0 +1,67 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._2_0.academic.generaldiploma;
+
+import javax.xml.bind.annotation.XmlEnum;
+import javax.xml.bind.annotation.XmlEnumValue;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for ImageMimeType.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * <p>
+ * <pre>
+ * &lt;simpleType name="ImageMimeType">
+ * &lt;restriction base="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}MimeType">
+ * &lt;enumeration value="image/gif"/>
+ * &lt;enumeration value="image/jpeg"/>
+ * &lt;enumeration value="image/pjpeg"/>
+ * &lt;enumeration value="image/png"/>
+ * &lt;enumeration value="image/tiff"/>
+ * &lt;/restriction>
+ * &lt;/simpleType>
+ * </pre>
+ *
+ */
+@XmlType(name = "ImageMimeType")
+@XmlEnum(MimeType.class)
+public enum ImageMimeType {
+
+ @XmlEnumValue("image/gif")
+ IMAGE_GIF(MimeType.IMAGE_GIF),
+ @XmlEnumValue("image/jpeg")
+ IMAGE_JPEG(MimeType.IMAGE_JPEG),
+ @XmlEnumValue("image/pjpeg")
+ IMAGE_PJPEG(MimeType.IMAGE_PJPEG),
+ @XmlEnumValue("image/png")
+ IMAGE_PNG(MimeType.IMAGE_PNG),
+ @XmlEnumValue("image/tiff")
+ IMAGE_TIFF(MimeType.IMAGE_TIFF);
+ private final MimeType value;
+
+ ImageMimeType(MimeType v) {
+ value = v;
+ }
+
+ public MimeType value() {
+ return value;
+ }
+
+ public static ImageMimeType fromValue(MimeType v) {
+ for (ImageMimeType c: ImageMimeType.values()) {
+ if (c.value.equals(v)) {
+ return c;
+ }
+ }
+ throw new IllegalArgumentException(v.toString());
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/InformationIdentifyingTheHolderOfTheQualificationType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/InformationIdentifyingTheHolderOfTheQualificationType.java
new file mode 100644
index 000000000..c9da2e078
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/InformationIdentifyingTheHolderOfTheQualificationType.java
@@ -0,0 +1,327 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._2_0.academic.generaldiploma;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlValue;
+import javax.xml.datatype.XMLGregorianCalendar;
+
+
+/**
+ * <p>Java class for InformationIdentifyingTheHolderOfTheQualificationType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="InformationIdentifyingTheHolderOfTheQualificationType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="FamilyName" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}FamilyNameType"/>
+ * &lt;element name="GivenName" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}GivenNameType"/>
+ * &lt;element name="DateOfBirth" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}DateType" minOccurs="0"/>
+ * &lt;element name="StudentIdentificationNumber" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}PlainTextType" minOccurs="0"/>
+ * &lt;element name="CountryOfBirth" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}CountryTextCodeType" minOccurs="0"/>
+ * &lt;element name="PlaceOfBirth" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}PlainTextType" minOccurs="0"/>
+ * &lt;element name="Gender" minOccurs="0">
+ * &lt;complexType>
+ * &lt;simpleContent>
+ * &lt;extension base="&lt;urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma>PlainTextType">
+ * &lt;attribute name="gender" use="required" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}GenderType" />
+ * &lt;/extension>
+ * &lt;/simpleContent>
+ * &lt;/complexType>
+ * &lt;/element>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "InformationIdentifyingTheHolderOfTheQualificationType", propOrder = {
+ "familyName",
+ "givenName",
+ "dateOfBirth",
+ "studentIdentificationNumber",
+ "countryOfBirth",
+ "placeOfBirth",
+ "gender"
+})
+public class InformationIdentifyingTheHolderOfTheQualificationType {
+
+ @XmlElement(name = "FamilyName", required = true)
+ protected FamilyNameType familyName;
+ @XmlElement(name = "GivenName", required = true)
+ protected GivenNameType givenName;
+ @XmlElement(name = "DateOfBirth")
+ protected XMLGregorianCalendar dateOfBirth;
+ @XmlElement(name = "StudentIdentificationNumber")
+ protected String studentIdentificationNumber;
+ @XmlElement(name = "CountryOfBirth")
+ protected CountryTextCodeType countryOfBirth;
+ @XmlElement(name = "PlaceOfBirth")
+ protected String placeOfBirth;
+ @XmlElement(name = "Gender")
+ protected InformationIdentifyingTheHolderOfTheQualificationType.Gender gender;
+
+ /**
+ * Gets the value of the familyName property.
+ *
+ * @return
+ * possible object is
+ * {@link FamilyNameType }
+ *
+ */
+ public FamilyNameType getFamilyName() {
+ return familyName;
+ }
+
+ /**
+ * Sets the value of the familyName property.
+ *
+ * @param value
+ * allowed object is
+ * {@link FamilyNameType }
+ *
+ */
+ public void setFamilyName(FamilyNameType value) {
+ this.familyName = value;
+ }
+
+ /**
+ * Gets the value of the givenName property.
+ *
+ * @return
+ * possible object is
+ * {@link GivenNameType }
+ *
+ */
+ public GivenNameType getGivenName() {
+ return givenName;
+ }
+
+ /**
+ * Sets the value of the givenName property.
+ *
+ * @param value
+ * allowed object is
+ * {@link GivenNameType }
+ *
+ */
+ public void setGivenName(GivenNameType value) {
+ this.givenName = value;
+ }
+
+ /**
+ * Gets the value of the dateOfBirth property.
+ *
+ * @return
+ * possible object is
+ * {@link XMLGregorianCalendar }
+ *
+ */
+ public XMLGregorianCalendar getDateOfBirth() {
+ return dateOfBirth;
+ }
+
+ /**
+ * Sets the value of the dateOfBirth property.
+ *
+ * @param value
+ * allowed object is
+ * {@link XMLGregorianCalendar }
+ *
+ */
+ public void setDateOfBirth(XMLGregorianCalendar value) {
+ this.dateOfBirth = value;
+ }
+
+ /**
+ * Gets the value of the studentIdentificationNumber property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getStudentIdentificationNumber() {
+ return studentIdentificationNumber;
+ }
+
+ /**
+ * Sets the value of the studentIdentificationNumber property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setStudentIdentificationNumber(String value) {
+ this.studentIdentificationNumber = value;
+ }
+
+ /**
+ * Gets the value of the countryOfBirth property.
+ *
+ * @return
+ * possible object is
+ * {@link CountryTextCodeType }
+ *
+ */
+ public CountryTextCodeType getCountryOfBirth() {
+ return countryOfBirth;
+ }
+
+ /**
+ * Sets the value of the countryOfBirth property.
+ *
+ * @param value
+ * allowed object is
+ * {@link CountryTextCodeType }
+ *
+ */
+ public void setCountryOfBirth(CountryTextCodeType value) {
+ this.countryOfBirth = value;
+ }
+
+ /**
+ * Gets the value of the placeOfBirth property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getPlaceOfBirth() {
+ return placeOfBirth;
+ }
+
+ /**
+ * Sets the value of the placeOfBirth property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setPlaceOfBirth(String value) {
+ this.placeOfBirth = value;
+ }
+
+ /**
+ * Gets the value of the gender property.
+ *
+ * @return
+ * possible object is
+ * {@link InformationIdentifyingTheHolderOfTheQualificationType.Gender }
+ *
+ */
+ public InformationIdentifyingTheHolderOfTheQualificationType.Gender getGender() {
+ return gender;
+ }
+
+ /**
+ * Sets the value of the gender property.
+ *
+ * @param value
+ * allowed object is
+ * {@link InformationIdentifyingTheHolderOfTheQualificationType.Gender }
+ *
+ */
+ public void setGender(InformationIdentifyingTheHolderOfTheQualificationType.Gender value) {
+ this.gender = value;
+ }
+
+
+ /**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType>
+ * &lt;simpleContent>
+ * &lt;extension base="&lt;urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma>PlainTextType">
+ * &lt;attribute name="gender" use="required" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}GenderType" />
+ * &lt;/extension>
+ * &lt;/simpleContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+ @XmlAccessorType(XmlAccessType.FIELD)
+ @XmlType(name = "", propOrder = {
+ "value"
+ })
+ public static class Gender {
+
+ @XmlValue
+ protected String value;
+ @XmlAttribute(name = "gender", required = true)
+ protected GenderType gender;
+
+ /**
+ * Gets the value of the value property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getValue() {
+ return value;
+ }
+
+ /**
+ * Sets the value of the value property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setValue(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Gets the value of the gender property.
+ *
+ * @return
+ * possible object is
+ * {@link GenderType }
+ *
+ */
+ public GenderType getGender() {
+ return gender;
+ }
+
+ /**
+ * Sets the value of the gender property.
+ *
+ * @param value
+ * allowed object is
+ * {@link GenderType }
+ *
+ */
+ public void setGender(GenderType value) {
+ this.gender = value;
+ }
+
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/InformationIdentifyingTheQualificationType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/InformationIdentifyingTheQualificationType.java
new file mode 100644
index 000000000..21040122c
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/InformationIdentifyingTheQualificationType.java
@@ -0,0 +1,209 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._2_0.academic.generaldiploma;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for InformationIdentifyingTheQualificationType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="InformationIdentifyingTheQualificationType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="Qualification" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}QualificationType"/>
+ * &lt;element name="TitleConferred" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}TitleConferredType" minOccurs="0"/>
+ * &lt;element name="MainFieldsOfStudy" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}RichTextTagType" minOccurs="0"/>
+ * &lt;element name="NameAndStatusOfAwardingInstitution" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}NameAndStatusOfAwardingInstitutionType"/>
+ * &lt;element name="NameAndStatusOfInstitutionAdministeringStudies" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}NameAndStatusOfInstitutionAdministeringStudiesType"/>
+ * &lt;element name="LanguagesOfInstructionAndExamination" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}LanguagesOfInstructionAndExaminationType" minOccurs="0"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "InformationIdentifyingTheQualificationType", propOrder = {
+ "qualification",
+ "titleConferred",
+ "mainFieldsOfStudy",
+ "nameAndStatusOfAwardingInstitution",
+ "nameAndStatusOfInstitutionAdministeringStudies",
+ "languagesOfInstructionAndExamination"
+})
+public class InformationIdentifyingTheQualificationType {
+
+ @XmlElement(name = "Qualification", required = true)
+ protected QualificationType qualification;
+ @XmlElement(name = "TitleConferred")
+ protected TitleConferredType titleConferred;
+ @XmlElement(name = "MainFieldsOfStudy")
+ protected RichTextTagType mainFieldsOfStudy;
+ @XmlElement(name = "NameAndStatusOfAwardingInstitution", required = true)
+ protected NameAndStatusOfAwardingInstitutionType nameAndStatusOfAwardingInstitution;
+ @XmlElement(name = "NameAndStatusOfInstitutionAdministeringStudies", required = true)
+ protected NameAndStatusOfInstitutionAdministeringStudiesType nameAndStatusOfInstitutionAdministeringStudies;
+ @XmlElement(name = "LanguagesOfInstructionAndExamination")
+ protected LanguagesOfInstructionAndExaminationType languagesOfInstructionAndExamination;
+
+ /**
+ * Gets the value of the qualification property.
+ *
+ * @return
+ * possible object is
+ * {@link QualificationType }
+ *
+ */
+ public QualificationType getQualification() {
+ return qualification;
+ }
+
+ /**
+ * Sets the value of the qualification property.
+ *
+ * @param value
+ * allowed object is
+ * {@link QualificationType }
+ *
+ */
+ public void setQualification(QualificationType value) {
+ this.qualification = value;
+ }
+
+ /**
+ * Gets the value of the titleConferred property.
+ *
+ * @return
+ * possible object is
+ * {@link TitleConferredType }
+ *
+ */
+ public TitleConferredType getTitleConferred() {
+ return titleConferred;
+ }
+
+ /**
+ * Sets the value of the titleConferred property.
+ *
+ * @param value
+ * allowed object is
+ * {@link TitleConferredType }
+ *
+ */
+ public void setTitleConferred(TitleConferredType value) {
+ this.titleConferred = value;
+ }
+
+ /**
+ * Gets the value of the mainFieldsOfStudy property.
+ *
+ * @return
+ * possible object is
+ * {@link RichTextTagType }
+ *
+ */
+ public RichTextTagType getMainFieldsOfStudy() {
+ return mainFieldsOfStudy;
+ }
+
+ /**
+ * Sets the value of the mainFieldsOfStudy property.
+ *
+ * @param value
+ * allowed object is
+ * {@link RichTextTagType }
+ *
+ */
+ public void setMainFieldsOfStudy(RichTextTagType value) {
+ this.mainFieldsOfStudy = value;
+ }
+
+ /**
+ * Gets the value of the nameAndStatusOfAwardingInstitution property.
+ *
+ * @return
+ * possible object is
+ * {@link NameAndStatusOfAwardingInstitutionType }
+ *
+ */
+ public NameAndStatusOfAwardingInstitutionType getNameAndStatusOfAwardingInstitution() {
+ return nameAndStatusOfAwardingInstitution;
+ }
+
+ /**
+ * Sets the value of the nameAndStatusOfAwardingInstitution property.
+ *
+ * @param value
+ * allowed object is
+ * {@link NameAndStatusOfAwardingInstitutionType }
+ *
+ */
+ public void setNameAndStatusOfAwardingInstitution(NameAndStatusOfAwardingInstitutionType value) {
+ this.nameAndStatusOfAwardingInstitution = value;
+ }
+
+ /**
+ * Gets the value of the nameAndStatusOfInstitutionAdministeringStudies property.
+ *
+ * @return
+ * possible object is
+ * {@link NameAndStatusOfInstitutionAdministeringStudiesType }
+ *
+ */
+ public NameAndStatusOfInstitutionAdministeringStudiesType getNameAndStatusOfInstitutionAdministeringStudies() {
+ return nameAndStatusOfInstitutionAdministeringStudies;
+ }
+
+ /**
+ * Sets the value of the nameAndStatusOfInstitutionAdministeringStudies property.
+ *
+ * @param value
+ * allowed object is
+ * {@link NameAndStatusOfInstitutionAdministeringStudiesType }
+ *
+ */
+ public void setNameAndStatusOfInstitutionAdministeringStudies(NameAndStatusOfInstitutionAdministeringStudiesType value) {
+ this.nameAndStatusOfInstitutionAdministeringStudies = value;
+ }
+
+ /**
+ * Gets the value of the languagesOfInstructionAndExamination property.
+ *
+ * @return
+ * possible object is
+ * {@link LanguagesOfInstructionAndExaminationType }
+ *
+ */
+ public LanguagesOfInstructionAndExaminationType getLanguagesOfInstructionAndExamination() {
+ return languagesOfInstructionAndExamination;
+ }
+
+ /**
+ * Sets the value of the languagesOfInstructionAndExamination property.
+ *
+ * @param value
+ * allowed object is
+ * {@link LanguagesOfInstructionAndExaminationType }
+ *
+ */
+ public void setLanguagesOfInstructionAndExamination(LanguagesOfInstructionAndExaminationType value) {
+ this.languagesOfInstructionAndExamination = value;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/InformationOnTheContentsAndResultsGainedType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/InformationOnTheContentsAndResultsGainedType.java
new file mode 100644
index 000000000..9255189f9
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/InformationOnTheContentsAndResultsGainedType.java
@@ -0,0 +1,243 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._2_0.academic.generaldiploma;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for InformationOnTheContentsAndResultsGainedType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="InformationOnTheContentsAndResultsGainedType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="ModeOfStudy" minOccurs="0">
+ * &lt;complexType>
+ * &lt;complexContent>
+ * &lt;extension base="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}RichTextTagType">
+ * &lt;attribute name="modeOfStudy" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}ModeOfStudyType" />
+ * &lt;/extension>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * &lt;/element>
+ * &lt;element name="ProgrammeRequirements" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}ProgrammeRequirementsType" minOccurs="0"/>
+ * &lt;element name="ProgrammeDetails" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}ProgrammeDetailsType" minOccurs="0"/>
+ * &lt;element name="GradingSchemeAndGradeDistributionGuidance" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}GradingSchemeAndGradeDistributionGuidanceType" minOccurs="0"/>
+ * &lt;element name="OverallClassificationOfTheQualification" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}RichTextTagType" minOccurs="0"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "InformationOnTheContentsAndResultsGainedType", propOrder = {
+ "modeOfStudy",
+ "programmeRequirements",
+ "programmeDetails",
+ "gradingSchemeAndGradeDistributionGuidance",
+ "overallClassificationOfTheQualification"
+})
+public class InformationOnTheContentsAndResultsGainedType {
+
+ @XmlElement(name = "ModeOfStudy")
+ protected InformationOnTheContentsAndResultsGainedType.ModeOfStudy modeOfStudy;
+ @XmlElement(name = "ProgrammeRequirements")
+ protected ProgrammeRequirementsType programmeRequirements;
+ @XmlElement(name = "ProgrammeDetails")
+ protected ProgrammeDetailsType programmeDetails;
+ @XmlElement(name = "GradingSchemeAndGradeDistributionGuidance")
+ protected GradingSchemeAndGradeDistributionGuidanceType gradingSchemeAndGradeDistributionGuidance;
+ @XmlElement(name = "OverallClassificationOfTheQualification")
+ protected RichTextTagType overallClassificationOfTheQualification;
+
+ /**
+ * Gets the value of the modeOfStudy property.
+ *
+ * @return
+ * possible object is
+ * {@link InformationOnTheContentsAndResultsGainedType.ModeOfStudy }
+ *
+ */
+ public InformationOnTheContentsAndResultsGainedType.ModeOfStudy getModeOfStudy() {
+ return modeOfStudy;
+ }
+
+ /**
+ * Sets the value of the modeOfStudy property.
+ *
+ * @param value
+ * allowed object is
+ * {@link InformationOnTheContentsAndResultsGainedType.ModeOfStudy }
+ *
+ */
+ public void setModeOfStudy(InformationOnTheContentsAndResultsGainedType.ModeOfStudy value) {
+ this.modeOfStudy = value;
+ }
+
+ /**
+ * Gets the value of the programmeRequirements property.
+ *
+ * @return
+ * possible object is
+ * {@link ProgrammeRequirementsType }
+ *
+ */
+ public ProgrammeRequirementsType getProgrammeRequirements() {
+ return programmeRequirements;
+ }
+
+ /**
+ * Sets the value of the programmeRequirements property.
+ *
+ * @param value
+ * allowed object is
+ * {@link ProgrammeRequirementsType }
+ *
+ */
+ public void setProgrammeRequirements(ProgrammeRequirementsType value) {
+ this.programmeRequirements = value;
+ }
+
+ /**
+ * Gets the value of the programmeDetails property.
+ *
+ * @return
+ * possible object is
+ * {@link ProgrammeDetailsType }
+ *
+ */
+ public ProgrammeDetailsType getProgrammeDetails() {
+ return programmeDetails;
+ }
+
+ /**
+ * Sets the value of the programmeDetails property.
+ *
+ * @param value
+ * allowed object is
+ * {@link ProgrammeDetailsType }
+ *
+ */
+ public void setProgrammeDetails(ProgrammeDetailsType value) {
+ this.programmeDetails = value;
+ }
+
+ /**
+ * Gets the value of the gradingSchemeAndGradeDistributionGuidance property.
+ *
+ * @return
+ * possible object is
+ * {@link GradingSchemeAndGradeDistributionGuidanceType }
+ *
+ */
+ public GradingSchemeAndGradeDistributionGuidanceType getGradingSchemeAndGradeDistributionGuidance() {
+ return gradingSchemeAndGradeDistributionGuidance;
+ }
+
+ /**
+ * Sets the value of the gradingSchemeAndGradeDistributionGuidance property.
+ *
+ * @param value
+ * allowed object is
+ * {@link GradingSchemeAndGradeDistributionGuidanceType }
+ *
+ */
+ public void setGradingSchemeAndGradeDistributionGuidance(GradingSchemeAndGradeDistributionGuidanceType value) {
+ this.gradingSchemeAndGradeDistributionGuidance = value;
+ }
+
+ /**
+ * Gets the value of the overallClassificationOfTheQualification property.
+ *
+ * @return
+ * possible object is
+ * {@link RichTextTagType }
+ *
+ */
+ public RichTextTagType getOverallClassificationOfTheQualification() {
+ return overallClassificationOfTheQualification;
+ }
+
+ /**
+ * Sets the value of the overallClassificationOfTheQualification property.
+ *
+ * @param value
+ * allowed object is
+ * {@link RichTextTagType }
+ *
+ */
+ public void setOverallClassificationOfTheQualification(RichTextTagType value) {
+ this.overallClassificationOfTheQualification = value;
+ }
+
+
+ /**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType>
+ * &lt;complexContent>
+ * &lt;extension base="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}RichTextTagType">
+ * &lt;attribute name="modeOfStudy" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}ModeOfStudyType" />
+ * &lt;/extension>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+ @XmlAccessorType(XmlAccessType.FIELD)
+ @XmlType(name = "")
+ public static class ModeOfStudy
+ extends RichTextTagType
+ {
+
+ @XmlAttribute(name = "modeOfStudy")
+ protected ModeOfStudyType modeOfStudy;
+
+ /**
+ * Gets the value of the modeOfStudy property.
+ *
+ * @return
+ * possible object is
+ * {@link ModeOfStudyType }
+ *
+ */
+ public ModeOfStudyType getModeOfStudy() {
+ return modeOfStudy;
+ }
+
+ /**
+ * Sets the value of the modeOfStudy property.
+ *
+ * @param value
+ * allowed object is
+ * {@link ModeOfStudyType }
+ *
+ */
+ public void setModeOfStudy(ModeOfStudyType value) {
+ this.modeOfStudy = value;
+ }
+
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/InformationOnTheFunctionOfTheQualificationType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/InformationOnTheFunctionOfTheQualificationType.java
new file mode 100644
index 000000000..903eb2a35
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/InformationOnTheFunctionOfTheQualificationType.java
@@ -0,0 +1,159 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._2_0.academic.generaldiploma;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for InformationOnTheFunctionOfTheQualificationType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="InformationOnTheFunctionOfTheQualificationType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="AccessToFurtherStudy" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}RichTextTagType" minOccurs="0"/>
+ * &lt;element name="ProfessionalStatus" minOccurs="0">
+ * &lt;complexType>
+ * &lt;complexContent>
+ * &lt;extension base="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}RichTextTagType">
+ * &lt;attribute name="isRegulatedProfession" type="{http://www.w3.org/2001/XMLSchema}boolean" />
+ * &lt;/extension>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * &lt;/element>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "InformationOnTheFunctionOfTheQualificationType", propOrder = {
+ "accessToFurtherStudy",
+ "professionalStatus"
+})
+public class InformationOnTheFunctionOfTheQualificationType {
+
+ @XmlElement(name = "AccessToFurtherStudy")
+ protected RichTextTagType accessToFurtherStudy;
+ @XmlElement(name = "ProfessionalStatus")
+ protected InformationOnTheFunctionOfTheQualificationType.ProfessionalStatus professionalStatus;
+
+ /**
+ * Gets the value of the accessToFurtherStudy property.
+ *
+ * @return
+ * possible object is
+ * {@link RichTextTagType }
+ *
+ */
+ public RichTextTagType getAccessToFurtherStudy() {
+ return accessToFurtherStudy;
+ }
+
+ /**
+ * Sets the value of the accessToFurtherStudy property.
+ *
+ * @param value
+ * allowed object is
+ * {@link RichTextTagType }
+ *
+ */
+ public void setAccessToFurtherStudy(RichTextTagType value) {
+ this.accessToFurtherStudy = value;
+ }
+
+ /**
+ * Gets the value of the professionalStatus property.
+ *
+ * @return
+ * possible object is
+ * {@link InformationOnTheFunctionOfTheQualificationType.ProfessionalStatus }
+ *
+ */
+ public InformationOnTheFunctionOfTheQualificationType.ProfessionalStatus getProfessionalStatus() {
+ return professionalStatus;
+ }
+
+ /**
+ * Sets the value of the professionalStatus property.
+ *
+ * @param value
+ * allowed object is
+ * {@link InformationOnTheFunctionOfTheQualificationType.ProfessionalStatus }
+ *
+ */
+ public void setProfessionalStatus(InformationOnTheFunctionOfTheQualificationType.ProfessionalStatus value) {
+ this.professionalStatus = value;
+ }
+
+
+ /**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType>
+ * &lt;complexContent>
+ * &lt;extension base="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}RichTextTagType">
+ * &lt;attribute name="isRegulatedProfession" type="{http://www.w3.org/2001/XMLSchema}boolean" />
+ * &lt;/extension>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+ @XmlAccessorType(XmlAccessType.FIELD)
+ @XmlType(name = "")
+ public static class ProfessionalStatus
+ extends RichTextTagType
+ {
+
+ @XmlAttribute(name = "isRegulatedProfession")
+ protected Boolean isRegulatedProfession;
+
+ /**
+ * Gets the value of the isRegulatedProfession property.
+ *
+ * @return
+ * possible object is
+ * {@link Boolean }
+ *
+ */
+ public Boolean isIsRegulatedProfession() {
+ return isRegulatedProfession;
+ }
+
+ /**
+ * Sets the value of the isRegulatedProfession property.
+ *
+ * @param value
+ * allowed object is
+ * {@link Boolean }
+ *
+ */
+ public void setIsRegulatedProfession(Boolean value) {
+ this.isRegulatedProfession = value;
+ }
+
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/InformationOnTheLevelOfTheQualificationType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/InformationOnTheLevelOfTheQualificationType.java
new file mode 100644
index 000000000..2119f23bb
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/InformationOnTheLevelOfTheQualificationType.java
@@ -0,0 +1,389 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._2_0.academic.generaldiploma;
+
+import java.math.BigDecimal;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for InformationOnTheLevelOfTheQualificationType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="InformationOnTheLevelOfTheQualificationType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="Level">
+ * &lt;complexType>
+ * &lt;complexContent>
+ * &lt;extension base="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}RichTextTagType">
+ * &lt;attribute name="isced1997" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}ISCED1997Type" />
+ * &lt;attribute name="isced2011" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}ISCED2011Type" />
+ * &lt;attribute name="eheaFramework" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}EHEAFrameworkType" />
+ * &lt;attribute name="nfq" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}NFQType" />
+ * &lt;/extension>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * &lt;/element>
+ * &lt;element name="OfficialLengthOfProgramme">
+ * &lt;complexType>
+ * &lt;complexContent>
+ * &lt;extension base="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}RichTextTagType">
+ * &lt;attribute name="ectsCredits" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}PositiveDecimalType" />
+ * &lt;attribute name="years" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}PositiveDecimalType" />
+ * &lt;attribute name="semesters" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}PositiveIntegerType" />
+ * &lt;/extension>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * &lt;/element>
+ * &lt;element name="AccessRequirements" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}RichTextTagType" minOccurs="0"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "InformationOnTheLevelOfTheQualificationType", propOrder = {
+ "level",
+ "officialLengthOfProgramme",
+ "accessRequirements"
+})
+public class InformationOnTheLevelOfTheQualificationType {
+
+ @XmlElement(name = "Level", required = true)
+ protected InformationOnTheLevelOfTheQualificationType.Level level;
+ @XmlElement(name = "OfficialLengthOfProgramme", required = true)
+ protected InformationOnTheLevelOfTheQualificationType.OfficialLengthOfProgramme officialLengthOfProgramme;
+ @XmlElement(name = "AccessRequirements")
+ protected RichTextTagType accessRequirements;
+
+ /**
+ * Gets the value of the level property.
+ *
+ * @return
+ * possible object is
+ * {@link InformationOnTheLevelOfTheQualificationType.Level }
+ *
+ */
+ public InformationOnTheLevelOfTheQualificationType.Level getLevel() {
+ return level;
+ }
+
+ /**
+ * Sets the value of the level property.
+ *
+ * @param value
+ * allowed object is
+ * {@link InformationOnTheLevelOfTheQualificationType.Level }
+ *
+ */
+ public void setLevel(InformationOnTheLevelOfTheQualificationType.Level value) {
+ this.level = value;
+ }
+
+ /**
+ * Gets the value of the officialLengthOfProgramme property.
+ *
+ * @return
+ * possible object is
+ * {@link InformationOnTheLevelOfTheQualificationType.OfficialLengthOfProgramme }
+ *
+ */
+ public InformationOnTheLevelOfTheQualificationType.OfficialLengthOfProgramme getOfficialLengthOfProgramme() {
+ return officialLengthOfProgramme;
+ }
+
+ /**
+ * Sets the value of the officialLengthOfProgramme property.
+ *
+ * @param value
+ * allowed object is
+ * {@link InformationOnTheLevelOfTheQualificationType.OfficialLengthOfProgramme }
+ *
+ */
+ public void setOfficialLengthOfProgramme(InformationOnTheLevelOfTheQualificationType.OfficialLengthOfProgramme value) {
+ this.officialLengthOfProgramme = value;
+ }
+
+ /**
+ * Gets the value of the accessRequirements property.
+ *
+ * @return
+ * possible object is
+ * {@link RichTextTagType }
+ *
+ */
+ public RichTextTagType getAccessRequirements() {
+ return accessRequirements;
+ }
+
+ /**
+ * Sets the value of the accessRequirements property.
+ *
+ * @param value
+ * allowed object is
+ * {@link RichTextTagType }
+ *
+ */
+ public void setAccessRequirements(RichTextTagType value) {
+ this.accessRequirements = value;
+ }
+
+
+ /**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType>
+ * &lt;complexContent>
+ * &lt;extension base="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}RichTextTagType">
+ * &lt;attribute name="isced1997" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}ISCED1997Type" />
+ * &lt;attribute name="isced2011" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}ISCED2011Type" />
+ * &lt;attribute name="eheaFramework" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}EHEAFrameworkType" />
+ * &lt;attribute name="nfq" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}NFQType" />
+ * &lt;/extension>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+ @XmlAccessorType(XmlAccessType.FIELD)
+ @XmlType(name = "")
+ public static class Level
+ extends RichTextTagType
+ {
+
+ @XmlAttribute(name = "isced1997")
+ protected String isced1997;
+ @XmlAttribute(name = "isced2011")
+ protected String isced2011;
+ @XmlAttribute(name = "eheaFramework")
+ protected EHEAFrameworkType eheaFramework;
+ @XmlAttribute(name = "nfq")
+ protected String nfq;
+
+ /**
+ * Gets the value of the isced1997 property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getIsced1997() {
+ return isced1997;
+ }
+
+ /**
+ * Sets the value of the isced1997 property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setIsced1997(String value) {
+ this.isced1997 = value;
+ }
+
+ /**
+ * Gets the value of the isced2011 property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getIsced2011() {
+ return isced2011;
+ }
+
+ /**
+ * Sets the value of the isced2011 property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setIsced2011(String value) {
+ this.isced2011 = value;
+ }
+
+ /**
+ * Gets the value of the eheaFramework property.
+ *
+ * @return
+ * possible object is
+ * {@link EHEAFrameworkType }
+ *
+ */
+ public EHEAFrameworkType getEheaFramework() {
+ return eheaFramework;
+ }
+
+ /**
+ * Sets the value of the eheaFramework property.
+ *
+ * @param value
+ * allowed object is
+ * {@link EHEAFrameworkType }
+ *
+ */
+ public void setEheaFramework(EHEAFrameworkType value) {
+ this.eheaFramework = value;
+ }
+
+ /**
+ * Gets the value of the nfq property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getNfq() {
+ return nfq;
+ }
+
+ /**
+ * Sets the value of the nfq property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setNfq(String value) {
+ this.nfq = value;
+ }
+
+ }
+
+
+ /**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType>
+ * &lt;complexContent>
+ * &lt;extension base="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}RichTextTagType">
+ * &lt;attribute name="ectsCredits" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}PositiveDecimalType" />
+ * &lt;attribute name="years" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}PositiveDecimalType" />
+ * &lt;attribute name="semesters" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}PositiveIntegerType" />
+ * &lt;/extension>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+ @XmlAccessorType(XmlAccessType.FIELD)
+ @XmlType(name = "")
+ public static class OfficialLengthOfProgramme
+ extends RichTextTagType
+ {
+
+ @XmlAttribute(name = "ectsCredits")
+ protected BigDecimal ectsCredits;
+ @XmlAttribute(name = "years")
+ protected BigDecimal years;
+ @XmlAttribute(name = "semesters")
+ protected Integer semesters;
+
+ /**
+ * Gets the value of the ectsCredits property.
+ *
+ * @return
+ * possible object is
+ * {@link BigDecimal }
+ *
+ */
+ public BigDecimal getEctsCredits() {
+ return ectsCredits;
+ }
+
+ /**
+ * Sets the value of the ectsCredits property.
+ *
+ * @param value
+ * allowed object is
+ * {@link BigDecimal }
+ *
+ */
+ public void setEctsCredits(BigDecimal value) {
+ this.ectsCredits = value;
+ }
+
+ /**
+ * Gets the value of the years property.
+ *
+ * @return
+ * possible object is
+ * {@link BigDecimal }
+ *
+ */
+ public BigDecimal getYears() {
+ return years;
+ }
+
+ /**
+ * Sets the value of the years property.
+ *
+ * @param value
+ * allowed object is
+ * {@link BigDecimal }
+ *
+ */
+ public void setYears(BigDecimal value) {
+ this.years = value;
+ }
+
+ /**
+ * Gets the value of the semesters property.
+ *
+ * @return
+ * possible object is
+ * {@link Integer }
+ *
+ */
+ public Integer getSemesters() {
+ return semesters;
+ }
+
+ /**
+ * Sets the value of the semesters property.
+ *
+ * @param value
+ * allowed object is
+ * {@link Integer }
+ *
+ */
+ public void setSemesters(Integer value) {
+ this.semesters = value;
+ }
+
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/InstitutionType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/InstitutionType.java
new file mode 100644
index 000000000..daab6ad3a
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/InstitutionType.java
@@ -0,0 +1,361 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._2_0.academic.generaldiploma;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlIDREF;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlSeeAlso;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlValue;
+
+
+/**
+ * <p>Java class for InstitutionType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="InstitutionType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="Name" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}PlainTextType"/>
+ * &lt;element name="Status" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}PlainTextType" minOccurs="0"/>
+ * &lt;element name="Country" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}CountryTextCodeType" minOccurs="0"/>
+ * &lt;element name="AdditionalInformation" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}RichTextTagType" minOccurs="0"/>
+ * &lt;element name="ContactInformation" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}ContactInformationType" minOccurs="0"/>
+ * &lt;element name="AttachedImageRef" minOccurs="0">
+ * &lt;complexType>
+ * &lt;simpleContent>
+ * &lt;extension base="&lt;urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma>PlainTextType">
+ * &lt;attribute name="attachedID" use="required" type="{http://www.w3.org/2001/XMLSchema}IDREF" />
+ * &lt;/extension>
+ * &lt;/simpleContent>
+ * &lt;/complexType>
+ * &lt;/element>
+ * &lt;/sequence>
+ * &lt;attribute name="nationalID" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}PlainTextType" />
+ * &lt;attribute name="erasmusID" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}PlainTextType" />
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "InstitutionType", propOrder = {
+ "name",
+ "status",
+ "country",
+ "additionalInformation",
+ "contactInformation",
+ "attachedImageRef"
+})
+@XmlSeeAlso({
+ eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._2_0.academic.generaldiploma.NameAndStatusOfAwardingInstitutionType.AwardingInstitution.class,
+ eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._2_0.academic.generaldiploma.NameAndStatusOfInstitutionAdministeringStudiesType.InstitutionAdministeringStudies.class
+})
+public class InstitutionType {
+
+ @XmlElement(name = "Name", required = true)
+ protected String name;
+ @XmlElement(name = "Status")
+ protected String status;
+ @XmlElement(name = "Country")
+ protected CountryTextCodeType country;
+ @XmlElement(name = "AdditionalInformation")
+ protected RichTextTagType additionalInformation;
+ @XmlElement(name = "ContactInformation")
+ protected ContactInformationType contactInformation;
+ @XmlElement(name = "AttachedImageRef")
+ protected InstitutionType.AttachedImageRef attachedImageRef;
+ @XmlAttribute(name = "nationalID")
+ protected String nationalID;
+ @XmlAttribute(name = "erasmusID")
+ protected String erasmusID;
+
+ /**
+ * Gets the value of the name property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * Sets the value of the name property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setName(String value) {
+ this.name = value;
+ }
+
+ /**
+ * Gets the value of the status property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getStatus() {
+ return status;
+ }
+
+ /**
+ * Sets the value of the status property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setStatus(String value) {
+ this.status = value;
+ }
+
+ /**
+ * Gets the value of the country property.
+ *
+ * @return
+ * possible object is
+ * {@link CountryTextCodeType }
+ *
+ */
+ public CountryTextCodeType getCountry() {
+ return country;
+ }
+
+ /**
+ * Sets the value of the country property.
+ *
+ * @param value
+ * allowed object is
+ * {@link CountryTextCodeType }
+ *
+ */
+ public void setCountry(CountryTextCodeType value) {
+ this.country = value;
+ }
+
+ /**
+ * Gets the value of the additionalInformation property.
+ *
+ * @return
+ * possible object is
+ * {@link RichTextTagType }
+ *
+ */
+ public RichTextTagType getAdditionalInformation() {
+ return additionalInformation;
+ }
+
+ /**
+ * Sets the value of the additionalInformation property.
+ *
+ * @param value
+ * allowed object is
+ * {@link RichTextTagType }
+ *
+ */
+ public void setAdditionalInformation(RichTextTagType value) {
+ this.additionalInformation = value;
+ }
+
+ /**
+ * Gets the value of the contactInformation property.
+ *
+ * @return
+ * possible object is
+ * {@link ContactInformationType }
+ *
+ */
+ public ContactInformationType getContactInformation() {
+ return contactInformation;
+ }
+
+ /**
+ * Sets the value of the contactInformation property.
+ *
+ * @param value
+ * allowed object is
+ * {@link ContactInformationType }
+ *
+ */
+ public void setContactInformation(ContactInformationType value) {
+ this.contactInformation = value;
+ }
+
+ /**
+ * Gets the value of the attachedImageRef property.
+ *
+ * @return
+ * possible object is
+ * {@link InstitutionType.AttachedImageRef }
+ *
+ */
+ public InstitutionType.AttachedImageRef getAttachedImageRef() {
+ return attachedImageRef;
+ }
+
+ /**
+ * Sets the value of the attachedImageRef property.
+ *
+ * @param value
+ * allowed object is
+ * {@link InstitutionType.AttachedImageRef }
+ *
+ */
+ public void setAttachedImageRef(InstitutionType.AttachedImageRef value) {
+ this.attachedImageRef = value;
+ }
+
+ /**
+ * Gets the value of the nationalID property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getNationalID() {
+ return nationalID;
+ }
+
+ /**
+ * Sets the value of the nationalID property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setNationalID(String value) {
+ this.nationalID = value;
+ }
+
+ /**
+ * Gets the value of the erasmusID property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getErasmusID() {
+ return erasmusID;
+ }
+
+ /**
+ * Sets the value of the erasmusID property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setErasmusID(String value) {
+ this.erasmusID = value;
+ }
+
+
+ /**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType>
+ * &lt;simpleContent>
+ * &lt;extension base="&lt;urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma>PlainTextType">
+ * &lt;attribute name="attachedID" use="required" type="{http://www.w3.org/2001/XMLSchema}IDREF" />
+ * &lt;/extension>
+ * &lt;/simpleContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+ @XmlAccessorType(XmlAccessType.FIELD)
+ @XmlType(name = "", propOrder = {
+ "value"
+ })
+ public static class AttachedImageRef {
+
+ @XmlValue
+ protected String value;
+ @XmlAttribute(name = "attachedID", required = true)
+ @XmlIDREF
+ @XmlSchemaType(name = "IDREF")
+ protected Object attachedID;
+
+ /**
+ * Gets the value of the value property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getValue() {
+ return value;
+ }
+
+ /**
+ * Sets the value of the value property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setValue(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Gets the value of the attachedID property.
+ *
+ * @return
+ * possible object is
+ * {@link Object }
+ *
+ */
+ public Object getAttachedID() {
+ return attachedID;
+ }
+
+ /**
+ * Sets the value of the attachedID property.
+ *
+ * @param value
+ * allowed object is
+ * {@link Object }
+ *
+ */
+ public void setAttachedID(Object value) {
+ this.attachedID = value;
+ }
+
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/LanguageType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/LanguageType.java
new file mode 100644
index 000000000..2ddf61e53
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/LanguageType.java
@@ -0,0 +1,346 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._2_0.academic.generaldiploma;
+
+import javax.xml.bind.annotation.XmlEnum;
+import javax.xml.bind.annotation.XmlEnumValue;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for LanguageType.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * <p>
+ * <pre>
+ * &lt;simpleType name="LanguageType">
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ * &lt;enumeration value="ab"/>
+ * &lt;enumeration value="af"/>
+ * &lt;enumeration value="an"/>
+ * &lt;enumeration value="ar"/>
+ * &lt;enumeration value="as"/>
+ * &lt;enumeration value="az"/>
+ * &lt;enumeration value="be"/>
+ * &lt;enumeration value="bg"/>
+ * &lt;enumeration value="bn"/>
+ * &lt;enumeration value="bo"/>
+ * &lt;enumeration value="br"/>
+ * &lt;enumeration value="bs"/>
+ * &lt;enumeration value="ca"/>
+ * &lt;enumeration value="ce"/>
+ * &lt;enumeration value="co"/>
+ * &lt;enumeration value="cs"/>
+ * &lt;enumeration value="cy"/>
+ * &lt;enumeration value="da"/>
+ * &lt;enumeration value="de"/>
+ * &lt;enumeration value="el"/>
+ * &lt;enumeration value="en"/>
+ * &lt;enumeration value="es"/>
+ * &lt;enumeration value="et"/>
+ * &lt;enumeration value="eu"/>
+ * &lt;enumeration value="fa"/>
+ * &lt;enumeration value="fi"/>
+ * &lt;enumeration value="fj"/>
+ * &lt;enumeration value="fo"/>
+ * &lt;enumeration value="fr"/>
+ * &lt;enumeration value="fy"/>
+ * &lt;enumeration value="ga"/>
+ * &lt;enumeration value="gd"/>
+ * &lt;enumeration value="gl"/>
+ * &lt;enumeration value="gv"/>
+ * &lt;enumeration value="grc"/>
+ * &lt;enumeration value="gsw"/>
+ * &lt;enumeration value="he"/>
+ * &lt;enumeration value="hi"/>
+ * &lt;enumeration value="hr"/>
+ * &lt;enumeration value="ht"/>
+ * &lt;enumeration value="hu"/>
+ * &lt;enumeration value="hy"/>
+ * &lt;enumeration value="id"/>
+ * &lt;enumeration value="is"/>
+ * &lt;enumeration value="it"/>
+ * &lt;enumeration value="ja"/>
+ * &lt;enumeration value="jv"/>
+ * &lt;enumeration value="ka"/>
+ * &lt;enumeration value="kg"/>
+ * &lt;enumeration value="ko"/>
+ * &lt;enumeration value="ku"/>
+ * &lt;enumeration value="kw"/>
+ * &lt;enumeration value="ky"/>
+ * &lt;enumeration value="lb"/>
+ * &lt;enumeration value="li"/>
+ * &lt;enumeration value="ln"/>
+ * &lt;enumeration value="lt"/>
+ * &lt;enumeration value="lv"/>
+ * &lt;enumeration value="mg"/>
+ * &lt;enumeration value="mk"/>
+ * &lt;enumeration value="mn"/>
+ * &lt;enumeration value="mo"/>
+ * &lt;enumeration value="ms"/>
+ * &lt;enumeration value="mt"/>
+ * &lt;enumeration value="my"/>
+ * &lt;enumeration value="nb"/>
+ * &lt;enumeration value="ne"/>
+ * &lt;enumeration value="nl"/>
+ * &lt;enumeration value="nn"/>
+ * &lt;enumeration value="no"/>
+ * &lt;enumeration value="pl"/>
+ * &lt;enumeration value="pt"/>
+ * &lt;enumeration value="rm"/>
+ * &lt;enumeration value="ro"/>
+ * &lt;enumeration value="ru"/>
+ * &lt;enumeration value="sc"/>
+ * &lt;enumeration value="se"/>
+ * &lt;enumeration value="sk"/>
+ * &lt;enumeration value="sl"/>
+ * &lt;enumeration value="so"/>
+ * &lt;enumeration value="sq"/>
+ * &lt;enumeration value="sr"/>
+ * &lt;enumeration value="sv"/>
+ * &lt;enumeration value="sw"/>
+ * &lt;enumeration value="tk"/>
+ * &lt;enumeration value="tr"/>
+ * &lt;enumeration value="ty"/>
+ * &lt;enumeration value="uk"/>
+ * &lt;enumeration value="ur"/>
+ * &lt;enumeration value="uz"/>
+ * &lt;enumeration value="vi"/>
+ * &lt;enumeration value="yi"/>
+ * &lt;enumeration value="zh"/>
+ * &lt;enumeration value="cu"/>
+ * &lt;enumeration value="eo"/>
+ * &lt;enumeration value="la"/>
+ * &lt;enumeration value="oc"/>
+ * &lt;enumeration value="vo"/>
+ * &lt;/restriction>
+ * &lt;/simpleType>
+ * </pre>
+ *
+ */
+@XmlType(name = "LanguageType")
+@XmlEnum
+public enum LanguageType {
+
+ @XmlEnumValue("ab")
+ AB("ab"),
+ @XmlEnumValue("af")
+ AF("af"),
+ @XmlEnumValue("an")
+ AN("an"),
+ @XmlEnumValue("ar")
+ AR("ar"),
+ @XmlEnumValue("as")
+ AS("as"),
+ @XmlEnumValue("az")
+ AZ("az"),
+ @XmlEnumValue("be")
+ BE("be"),
+ @XmlEnumValue("bg")
+ BG("bg"),
+ @XmlEnumValue("bn")
+ BN("bn"),
+ @XmlEnumValue("bo")
+ BO("bo"),
+ @XmlEnumValue("br")
+ BR("br"),
+ @XmlEnumValue("bs")
+ BS("bs"),
+ @XmlEnumValue("ca")
+ CA("ca"),
+ @XmlEnumValue("ce")
+ CE("ce"),
+ @XmlEnumValue("co")
+ CO("co"),
+ @XmlEnumValue("cs")
+ CS("cs"),
+ @XmlEnumValue("cy")
+ CY("cy"),
+ @XmlEnumValue("da")
+ DA("da"),
+ @XmlEnumValue("de")
+ DE("de"),
+ @XmlEnumValue("el")
+ EL("el"),
+ @XmlEnumValue("en")
+ EN("en"),
+ @XmlEnumValue("es")
+ ES("es"),
+ @XmlEnumValue("et")
+ ET("et"),
+ @XmlEnumValue("eu")
+ EU("eu"),
+ @XmlEnumValue("fa")
+ FA("fa"),
+ @XmlEnumValue("fi")
+ FI("fi"),
+ @XmlEnumValue("fj")
+ FJ("fj"),
+ @XmlEnumValue("fo")
+ FO("fo"),
+ @XmlEnumValue("fr")
+ FR("fr"),
+ @XmlEnumValue("fy")
+ FY("fy"),
+ @XmlEnumValue("ga")
+ GA("ga"),
+ @XmlEnumValue("gd")
+ GD("gd"),
+ @XmlEnumValue("gl")
+ GL("gl"),
+ @XmlEnumValue("gv")
+ GV("gv"),
+ @XmlEnumValue("grc")
+ GRC("grc"),
+ @XmlEnumValue("gsw")
+ GSW("gsw"),
+ @XmlEnumValue("he")
+ HE("he"),
+ @XmlEnumValue("hi")
+ HI("hi"),
+ @XmlEnumValue("hr")
+ HR("hr"),
+ @XmlEnumValue("ht")
+ HT("ht"),
+ @XmlEnumValue("hu")
+ HU("hu"),
+ @XmlEnumValue("hy")
+ HY("hy"),
+ @XmlEnumValue("id")
+ ID("id"),
+ @XmlEnumValue("is")
+ IS("is"),
+ @XmlEnumValue("it")
+ IT("it"),
+ @XmlEnumValue("ja")
+ JA("ja"),
+ @XmlEnumValue("jv")
+ JV("jv"),
+ @XmlEnumValue("ka")
+ KA("ka"),
+ @XmlEnumValue("kg")
+ KG("kg"),
+ @XmlEnumValue("ko")
+ KO("ko"),
+ @XmlEnumValue("ku")
+ KU("ku"),
+ @XmlEnumValue("kw")
+ KW("kw"),
+ @XmlEnumValue("ky")
+ KY("ky"),
+ @XmlEnumValue("lb")
+ LB("lb"),
+ @XmlEnumValue("li")
+ LI("li"),
+ @XmlEnumValue("ln")
+ LN("ln"),
+ @XmlEnumValue("lt")
+ LT("lt"),
+ @XmlEnumValue("lv")
+ LV("lv"),
+ @XmlEnumValue("mg")
+ MG("mg"),
+ @XmlEnumValue("mk")
+ MK("mk"),
+ @XmlEnumValue("mn")
+ MN("mn"),
+ @XmlEnumValue("mo")
+ MO("mo"),
+ @XmlEnumValue("ms")
+ MS("ms"),
+ @XmlEnumValue("mt")
+ MT("mt"),
+ @XmlEnumValue("my")
+ MY("my"),
+ @XmlEnumValue("nb")
+ NB("nb"),
+ @XmlEnumValue("ne")
+ NE("ne"),
+ @XmlEnumValue("nl")
+ NL("nl"),
+ @XmlEnumValue("nn")
+ NN("nn"),
+ @XmlEnumValue("no")
+ NO("no"),
+ @XmlEnumValue("pl")
+ PL("pl"),
+ @XmlEnumValue("pt")
+ PT("pt"),
+ @XmlEnumValue("rm")
+ RM("rm"),
+ @XmlEnumValue("ro")
+ RO("ro"),
+ @XmlEnumValue("ru")
+ RU("ru"),
+ @XmlEnumValue("sc")
+ SC("sc"),
+ @XmlEnumValue("se")
+ SE("se"),
+ @XmlEnumValue("sk")
+ SK("sk"),
+ @XmlEnumValue("sl")
+ SL("sl"),
+ @XmlEnumValue("so")
+ SO("so"),
+ @XmlEnumValue("sq")
+ SQ("sq"),
+ @XmlEnumValue("sr")
+ SR("sr"),
+ @XmlEnumValue("sv")
+ SV("sv"),
+ @XmlEnumValue("sw")
+ SW("sw"),
+ @XmlEnumValue("tk")
+ TK("tk"),
+ @XmlEnumValue("tr")
+ TR("tr"),
+ @XmlEnumValue("ty")
+ TY("ty"),
+ @XmlEnumValue("uk")
+ UK("uk"),
+ @XmlEnumValue("ur")
+ UR("ur"),
+ @XmlEnumValue("uz")
+ UZ("uz"),
+ @XmlEnumValue("vi")
+ VI("vi"),
+ @XmlEnumValue("yi")
+ YI("yi"),
+ @XmlEnumValue("zh")
+ ZH("zh"),
+ @XmlEnumValue("cu")
+ CU("cu"),
+ @XmlEnumValue("eo")
+ EO("eo"),
+ @XmlEnumValue("la")
+ LA("la"),
+ @XmlEnumValue("oc")
+ OC("oc"),
+ @XmlEnumValue("vo")
+ VO("vo");
+ private final String value;
+
+ LanguageType(String v) {
+ value = v;
+ }
+
+ public String value() {
+ return value;
+ }
+
+ public static LanguageType fromValue(String v) {
+ for (LanguageType c: LanguageType.values()) {
+ if (c.value.equals(v)) {
+ return c;
+ }
+ }
+ throw new IllegalArgumentException(v);
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/LanguagesOfInstructionAndExaminationType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/LanguagesOfInstructionAndExaminationType.java
new file mode 100644
index 000000000..575d3b867
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/LanguagesOfInstructionAndExaminationType.java
@@ -0,0 +1,227 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._2_0.academic.generaldiploma;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for LanguagesOfInstructionAndExaminationType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="LanguagesOfInstructionAndExaminationType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="Language" maxOccurs="unbounded">
+ * &lt;complexType>
+ * &lt;complexContent>
+ * &lt;extension base="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}RichTextTagType">
+ * &lt;attribute name="language" use="required" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}LanguageType" />
+ * &lt;attribute name="percent" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}PercentType" />
+ * &lt;attribute name="instruction" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />
+ * &lt;attribute name="examination" type="{http://www.w3.org/2001/XMLSchema}boolean" />
+ * &lt;/extension>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * &lt;/element>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "LanguagesOfInstructionAndExaminationType", propOrder = {
+ "language"
+})
+public class LanguagesOfInstructionAndExaminationType {
+
+ @XmlElement(name = "Language", required = true)
+ protected List<LanguagesOfInstructionAndExaminationType.Language> language;
+
+ /**
+ * Gets the value of the language property.
+ *
+ * <p>
+ * 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 <CODE>set</CODE> method for the language property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getLanguage().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link LanguagesOfInstructionAndExaminationType.Language }
+ *
+ *
+ */
+ public List<LanguagesOfInstructionAndExaminationType.Language> getLanguage() {
+ if (language == null) {
+ language = new ArrayList<LanguagesOfInstructionAndExaminationType.Language>();
+ }
+ return this.language;
+ }
+
+
+ /**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType>
+ * &lt;complexContent>
+ * &lt;extension base="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}RichTextTagType">
+ * &lt;attribute name="language" use="required" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}LanguageType" />
+ * &lt;attribute name="percent" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}PercentType" />
+ * &lt;attribute name="instruction" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />
+ * &lt;attribute name="examination" type="{http://www.w3.org/2001/XMLSchema}boolean" />
+ * &lt;/extension>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+ @XmlAccessorType(XmlAccessType.FIELD)
+ @XmlType(name = "")
+ public static class Language
+ extends RichTextTagType
+ {
+
+ @XmlAttribute(name = "language", required = true)
+ protected LanguageType language;
+ @XmlAttribute(name = "percent")
+ protected BigDecimal percent;
+ @XmlAttribute(name = "instruction")
+ protected Boolean instruction;
+ @XmlAttribute(name = "examination")
+ protected Boolean examination;
+
+ /**
+ * Gets the value of the language property.
+ *
+ * @return
+ * possible object is
+ * {@link LanguageType }
+ *
+ */
+ public LanguageType getLanguage() {
+ return language;
+ }
+
+ /**
+ * Sets the value of the language property.
+ *
+ * @param value
+ * allowed object is
+ * {@link LanguageType }
+ *
+ */
+ public void setLanguage(LanguageType value) {
+ this.language = value;
+ }
+
+ /**
+ * Gets the value of the percent property.
+ *
+ * @return
+ * possible object is
+ * {@link BigDecimal }
+ *
+ */
+ public BigDecimal getPercent() {
+ return percent;
+ }
+
+ /**
+ * Sets the value of the percent property.
+ *
+ * @param value
+ * allowed object is
+ * {@link BigDecimal }
+ *
+ */
+ public void setPercent(BigDecimal value) {
+ this.percent = value;
+ }
+
+ /**
+ * Gets the value of the instruction property.
+ *
+ * @return
+ * possible object is
+ * {@link Boolean }
+ *
+ */
+ public boolean isInstruction() {
+ if (instruction == null) {
+ return true;
+ } else {
+ return instruction;
+ }
+ }
+
+ /**
+ * Sets the value of the instruction property.
+ *
+ * @param value
+ * allowed object is
+ * {@link Boolean }
+ *
+ */
+ public void setInstruction(Boolean value) {
+ this.instruction = value;
+ }
+
+ /**
+ * Gets the value of the examination property.
+ *
+ * @return
+ * possible object is
+ * {@link Boolean }
+ *
+ */
+ public Boolean isExamination() {
+ return examination;
+ }
+
+ /**
+ * Sets the value of the examination property.
+ *
+ * @param value
+ * allowed object is
+ * {@link Boolean }
+ *
+ */
+ public void setExamination(Boolean value) {
+ this.examination = value;
+ }
+
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/LocalGradeType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/LocalGradeType.java
new file mode 100644
index 000000000..de3b86c98
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/LocalGradeType.java
@@ -0,0 +1,243 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._2_0.academic.generaldiploma;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlValue;
+import javax.xml.datatype.XMLGregorianCalendar;
+
+
+/**
+ * <p>Java class for LocalGradeType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="LocalGradeType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="AcademicYear" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}AcademicYearType" minOccurs="0"/>
+ * &lt;element name="DateIssued" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}DateType" minOccurs="0"/>
+ * &lt;element name="Grade" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}PlainTextType"/>
+ * &lt;element name="Source" minOccurs="0">
+ * &lt;complexType>
+ * &lt;simpleContent>
+ * &lt;extension base="&lt;urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma>PlainTextType">
+ * &lt;attribute name="source" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}SourceGradeType" />
+ * &lt;/extension>
+ * &lt;/simpleContent>
+ * &lt;/complexType>
+ * &lt;/element>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "LocalGradeType", propOrder = {
+ "academicYear",
+ "dateIssued",
+ "grade",
+ "source"
+})
+public class LocalGradeType {
+
+ @XmlElement(name = "AcademicYear")
+ protected String academicYear;
+ @XmlElement(name = "DateIssued")
+ protected XMLGregorianCalendar dateIssued;
+ @XmlElement(name = "Grade", required = true)
+ protected String grade;
+ @XmlElement(name = "Source")
+ protected LocalGradeType.Source source;
+
+ /**
+ * Gets the value of the academicYear property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getAcademicYear() {
+ return academicYear;
+ }
+
+ /**
+ * Sets the value of the academicYear property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setAcademicYear(String value) {
+ this.academicYear = value;
+ }
+
+ /**
+ * Gets the value of the dateIssued property.
+ *
+ * @return
+ * possible object is
+ * {@link XMLGregorianCalendar }
+ *
+ */
+ public XMLGregorianCalendar getDateIssued() {
+ return dateIssued;
+ }
+
+ /**
+ * Sets the value of the dateIssued property.
+ *
+ * @param value
+ * allowed object is
+ * {@link XMLGregorianCalendar }
+ *
+ */
+ public void setDateIssued(XMLGregorianCalendar value) {
+ this.dateIssued = value;
+ }
+
+ /**
+ * Gets the value of the grade property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getGrade() {
+ return grade;
+ }
+
+ /**
+ * Sets the value of the grade property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setGrade(String value) {
+ this.grade = value;
+ }
+
+ /**
+ * Gets the value of the source property.
+ *
+ * @return
+ * possible object is
+ * {@link LocalGradeType.Source }
+ *
+ */
+ public LocalGradeType.Source getSource() {
+ return source;
+ }
+
+ /**
+ * Sets the value of the source property.
+ *
+ * @param value
+ * allowed object is
+ * {@link LocalGradeType.Source }
+ *
+ */
+ public void setSource(LocalGradeType.Source value) {
+ this.source = value;
+ }
+
+
+ /**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType>
+ * &lt;simpleContent>
+ * &lt;extension base="&lt;urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma>PlainTextType">
+ * &lt;attribute name="source" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}SourceGradeType" />
+ * &lt;/extension>
+ * &lt;/simpleContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+ @XmlAccessorType(XmlAccessType.FIELD)
+ @XmlType(name = "", propOrder = {
+ "value"
+ })
+ public static class Source {
+
+ @XmlValue
+ protected String value;
+ @XmlAttribute(name = "source")
+ protected SourceGradeType source;
+
+ /**
+ * Gets the value of the value property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getValue() {
+ return value;
+ }
+
+ /**
+ * Sets the value of the value property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setValue(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Gets the value of the source property.
+ *
+ * @return
+ * possible object is
+ * {@link SourceGradeType }
+ *
+ */
+ public SourceGradeType getSource() {
+ return source;
+ }
+
+ /**
+ * Sets the value of the source property.
+ *
+ * @param value
+ * allowed object is
+ * {@link SourceGradeType }
+ *
+ */
+ public void setSource(SourceGradeType value) {
+ this.source = value;
+ }
+
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/MimeType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/MimeType.java
new file mode 100644
index 000000000..45a3bc403
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/MimeType.java
@@ -0,0 +1,73 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._2_0.academic.generaldiploma;
+
+import javax.xml.bind.annotation.XmlEnum;
+import javax.xml.bind.annotation.XmlEnumValue;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for MimeType.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * <p>
+ * <pre>
+ * &lt;simpleType name="MimeType">
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ * &lt;enumeration value="image/gif"/>
+ * &lt;enumeration value="image/jpeg"/>
+ * &lt;enumeration value="image/pjpeg"/>
+ * &lt;enumeration value="image/png"/>
+ * &lt;enumeration value="image/tiff"/>
+ * &lt;enumeration value="text/html"/>
+ * &lt;enumeration value="application/pdf"/>
+ * &lt;/restriction>
+ * &lt;/simpleType>
+ * </pre>
+ *
+ */
+@XmlType(name = "MimeType")
+@XmlEnum
+public enum MimeType {
+
+ @XmlEnumValue("image/gif")
+ IMAGE_GIF("image/gif"),
+ @XmlEnumValue("image/jpeg")
+ IMAGE_JPEG("image/jpeg"),
+ @XmlEnumValue("image/pjpeg")
+ IMAGE_PJPEG("image/pjpeg"),
+ @XmlEnumValue("image/png")
+ IMAGE_PNG("image/png"),
+ @XmlEnumValue("image/tiff")
+ IMAGE_TIFF("image/tiff"),
+ @XmlEnumValue("text/html")
+ TEXT_HTML("text/html"),
+ @XmlEnumValue("application/pdf")
+ APPLICATION_PDF("application/pdf");
+ private final String value;
+
+ MimeType(String v) {
+ value = v;
+ }
+
+ public String value() {
+ return value;
+ }
+
+ public static MimeType fromValue(String v) {
+ for (MimeType c: MimeType.values()) {
+ if (c.value.equals(v)) {
+ return c;
+ }
+ }
+ throw new IllegalArgumentException(v);
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/MobilityProgrammeCourseUnitType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/MobilityProgrammeCourseUnitType.java
new file mode 100644
index 000000000..d254e5f4d
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/MobilityProgrammeCourseUnitType.java
@@ -0,0 +1,274 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._2_0.academic.generaldiploma;
+
+import java.math.BigDecimal;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlValue;
+
+
+/**
+ * <p>Java class for MobilityProgrammeCourseUnitType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="MobilityProgrammeCourseUnitType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="Code" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}PlainTextType" minOccurs="0"/>
+ * &lt;element name="Title">
+ * &lt;complexType>
+ * &lt;simpleContent>
+ * &lt;extension base="&lt;urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma>PlainTextType">
+ * &lt;attribute name="language" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}LanguageType" />
+ * &lt;/extension>
+ * &lt;/simpleContent>
+ * &lt;/complexType>
+ * &lt;/element>
+ * &lt;element name="ECTSCredits" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}PositiveDecimalType" minOccurs="0"/>
+ * &lt;element name="AdditionalInformation" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}RichTextTagType" minOccurs="0"/>
+ * &lt;/sequence>
+ * &lt;attribute name="isInTheLearningAgreement" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "MobilityProgrammeCourseUnitType", propOrder = {
+ "code",
+ "title",
+ "ectsCredits",
+ "additionalInformation"
+})
+public class MobilityProgrammeCourseUnitType {
+
+ @XmlElement(name = "Code")
+ protected String code;
+ @XmlElement(name = "Title", required = true)
+ protected MobilityProgrammeCourseUnitType.Title title;
+ @XmlElement(name = "ECTSCredits")
+ protected BigDecimal ectsCredits;
+ @XmlElement(name = "AdditionalInformation")
+ protected RichTextTagType additionalInformation;
+ @XmlAttribute(name = "isInTheLearningAgreement")
+ protected Boolean isInTheLearningAgreement;
+
+ /**
+ * Gets the value of the code property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getCode() {
+ return code;
+ }
+
+ /**
+ * Sets the value of the code property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setCode(String value) {
+ this.code = value;
+ }
+
+ /**
+ * Gets the value of the title property.
+ *
+ * @return
+ * possible object is
+ * {@link MobilityProgrammeCourseUnitType.Title }
+ *
+ */
+ public MobilityProgrammeCourseUnitType.Title getTitle() {
+ return title;
+ }
+
+ /**
+ * Sets the value of the title property.
+ *
+ * @param value
+ * allowed object is
+ * {@link MobilityProgrammeCourseUnitType.Title }
+ *
+ */
+ public void setTitle(MobilityProgrammeCourseUnitType.Title value) {
+ this.title = value;
+ }
+
+ /**
+ * Gets the value of the ectsCredits property.
+ *
+ * @return
+ * possible object is
+ * {@link BigDecimal }
+ *
+ */
+ public BigDecimal getECTSCredits() {
+ return ectsCredits;
+ }
+
+ /**
+ * Sets the value of the ectsCredits property.
+ *
+ * @param value
+ * allowed object is
+ * {@link BigDecimal }
+ *
+ */
+ public void setECTSCredits(BigDecimal value) {
+ this.ectsCredits = value;
+ }
+
+ /**
+ * Gets the value of the additionalInformation property.
+ *
+ * @return
+ * possible object is
+ * {@link RichTextTagType }
+ *
+ */
+ public RichTextTagType getAdditionalInformation() {
+ return additionalInformation;
+ }
+
+ /**
+ * Sets the value of the additionalInformation property.
+ *
+ * @param value
+ * allowed object is
+ * {@link RichTextTagType }
+ *
+ */
+ public void setAdditionalInformation(RichTextTagType value) {
+ this.additionalInformation = value;
+ }
+
+ /**
+ * Gets the value of the isInTheLearningAgreement property.
+ *
+ * @return
+ * possible object is
+ * {@link Boolean }
+ *
+ */
+ public boolean isIsInTheLearningAgreement() {
+ if (isInTheLearningAgreement == null) {
+ return true;
+ } else {
+ return isInTheLearningAgreement;
+ }
+ }
+
+ /**
+ * Sets the value of the isInTheLearningAgreement property.
+ *
+ * @param value
+ * allowed object is
+ * {@link Boolean }
+ *
+ */
+ public void setIsInTheLearningAgreement(Boolean value) {
+ this.isInTheLearningAgreement = value;
+ }
+
+
+ /**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType>
+ * &lt;simpleContent>
+ * &lt;extension base="&lt;urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma>PlainTextType">
+ * &lt;attribute name="language" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}LanguageType" />
+ * &lt;/extension>
+ * &lt;/simpleContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+ @XmlAccessorType(XmlAccessType.FIELD)
+ @XmlType(name = "", propOrder = {
+ "value"
+ })
+ public static class Title {
+
+ @XmlValue
+ protected String value;
+ @XmlAttribute(name = "language")
+ protected LanguageType language;
+
+ /**
+ * Gets the value of the value property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getValue() {
+ return value;
+ }
+
+ /**
+ * Sets the value of the value property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setValue(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Gets the value of the language property.
+ *
+ * @return
+ * possible object is
+ * {@link LanguageType }
+ *
+ */
+ public LanguageType getLanguage() {
+ return language;
+ }
+
+ /**
+ * Sets the value of the language property.
+ *
+ * @param value
+ * allowed object is
+ * {@link LanguageType }
+ *
+ */
+ public void setLanguage(LanguageType value) {
+ this.language = value;
+ }
+
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/MobilityProgrammeCoursesUnitsType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/MobilityProgrammeCoursesUnitsType.java
new file mode 100644
index 000000000..1cc243487
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/MobilityProgrammeCoursesUnitsType.java
@@ -0,0 +1,76 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._2_0.academic.generaldiploma;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for MobilityProgrammeCoursesUnitsType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="MobilityProgrammeCoursesUnitsType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="CourseUnit" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}MobilityProgrammeCourseUnitType" maxOccurs="unbounded"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "MobilityProgrammeCoursesUnitsType", propOrder = {
+ "courseUnit"
+})
+public class MobilityProgrammeCoursesUnitsType {
+
+ @XmlElement(name = "CourseUnit", required = true)
+ protected List<MobilityProgrammeCourseUnitType> courseUnit;
+
+ /**
+ * Gets the value of the courseUnit property.
+ *
+ * <p>
+ * 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 <CODE>set</CODE> method for the courseUnit property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getCourseUnit().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link MobilityProgrammeCourseUnitType }
+ *
+ *
+ */
+ public List<MobilityProgrammeCourseUnitType> getCourseUnit() {
+ if (courseUnit == null) {
+ courseUnit = new ArrayList<MobilityProgrammeCourseUnitType>();
+ }
+ return this.courseUnit;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/MobilityProgrammeType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/MobilityProgrammeType.java
new file mode 100644
index 000000000..5ef23530a
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/MobilityProgrammeType.java
@@ -0,0 +1,266 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._2_0.academic.generaldiploma;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.datatype.XMLGregorianCalendar;
+
+
+/**
+ * <p>Java class for MobilityProgrammeType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="MobilityProgrammeType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="Type" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}PlainTextType" minOccurs="0"/>
+ * &lt;element name="FieldOfStudy" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}PlainTextType" minOccurs="0"/>
+ * &lt;element name="Country" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}CountryTextCodeType"/>
+ * &lt;element name="ReceivingInstitutionName" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}PlainTextType"/>
+ * &lt;element name="AcademicYear" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}AcademicYearType" minOccurs="0"/>
+ * &lt;element name="DateFrom" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}DateType" minOccurs="0"/>
+ * &lt;element name="DateTo" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}DateType" minOccurs="0"/>
+ * &lt;element name="CoursesUnits" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}MobilityProgrammeCoursesUnitsType"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "MobilityProgrammeType", propOrder = {
+ "type",
+ "fieldOfStudy",
+ "country",
+ "receivingInstitutionName",
+ "academicYear",
+ "dateFrom",
+ "dateTo",
+ "coursesUnits"
+})
+public class MobilityProgrammeType {
+
+ @XmlElement(name = "Type")
+ protected String type;
+ @XmlElement(name = "FieldOfStudy")
+ protected String fieldOfStudy;
+ @XmlElement(name = "Country", required = true)
+ protected CountryTextCodeType country;
+ @XmlElement(name = "ReceivingInstitutionName", required = true)
+ protected String receivingInstitutionName;
+ @XmlElement(name = "AcademicYear")
+ protected String academicYear;
+ @XmlElement(name = "DateFrom")
+ protected XMLGregorianCalendar dateFrom;
+ @XmlElement(name = "DateTo")
+ protected XMLGregorianCalendar dateTo;
+ @XmlElement(name = "CoursesUnits", required = true)
+ protected MobilityProgrammeCoursesUnitsType coursesUnits;
+
+ /**
+ * Gets the value of the type property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getType() {
+ return type;
+ }
+
+ /**
+ * Sets the value of the type property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setType(String value) {
+ this.type = value;
+ }
+
+ /**
+ * Gets the value of the fieldOfStudy property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getFieldOfStudy() {
+ return fieldOfStudy;
+ }
+
+ /**
+ * Sets the value of the fieldOfStudy property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setFieldOfStudy(String value) {
+ this.fieldOfStudy = value;
+ }
+
+ /**
+ * Gets the value of the country property.
+ *
+ * @return
+ * possible object is
+ * {@link CountryTextCodeType }
+ *
+ */
+ public CountryTextCodeType getCountry() {
+ return country;
+ }
+
+ /**
+ * Sets the value of the country property.
+ *
+ * @param value
+ * allowed object is
+ * {@link CountryTextCodeType }
+ *
+ */
+ public void setCountry(CountryTextCodeType value) {
+ this.country = value;
+ }
+
+ /**
+ * Gets the value of the receivingInstitutionName property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getReceivingInstitutionName() {
+ return receivingInstitutionName;
+ }
+
+ /**
+ * Sets the value of the receivingInstitutionName property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setReceivingInstitutionName(String value) {
+ this.receivingInstitutionName = value;
+ }
+
+ /**
+ * Gets the value of the academicYear property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getAcademicYear() {
+ return academicYear;
+ }
+
+ /**
+ * Sets the value of the academicYear property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setAcademicYear(String value) {
+ this.academicYear = value;
+ }
+
+ /**
+ * Gets the value of the dateFrom property.
+ *
+ * @return
+ * possible object is
+ * {@link XMLGregorianCalendar }
+ *
+ */
+ public XMLGregorianCalendar getDateFrom() {
+ return dateFrom;
+ }
+
+ /**
+ * Sets the value of the dateFrom property.
+ *
+ * @param value
+ * allowed object is
+ * {@link XMLGregorianCalendar }
+ *
+ */
+ public void setDateFrom(XMLGregorianCalendar value) {
+ this.dateFrom = value;
+ }
+
+ /**
+ * Gets the value of the dateTo property.
+ *
+ * @return
+ * possible object is
+ * {@link XMLGregorianCalendar }
+ *
+ */
+ public XMLGregorianCalendar getDateTo() {
+ return dateTo;
+ }
+
+ /**
+ * Sets the value of the dateTo property.
+ *
+ * @param value
+ * allowed object is
+ * {@link XMLGregorianCalendar }
+ *
+ */
+ public void setDateTo(XMLGregorianCalendar value) {
+ this.dateTo = value;
+ }
+
+ /**
+ * Gets the value of the coursesUnits property.
+ *
+ * @return
+ * possible object is
+ * {@link MobilityProgrammeCoursesUnitsType }
+ *
+ */
+ public MobilityProgrammeCoursesUnitsType getCoursesUnits() {
+ return coursesUnits;
+ }
+
+ /**
+ * Sets the value of the coursesUnits property.
+ *
+ * @param value
+ * allowed object is
+ * {@link MobilityProgrammeCoursesUnitsType }
+ *
+ */
+ public void setCoursesUnits(MobilityProgrammeCoursesUnitsType value) {
+ this.coursesUnits = value;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/ModeOfDeliveryType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/ModeOfDeliveryType.java
new file mode 100644
index 000000000..bfff6cbda
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/ModeOfDeliveryType.java
@@ -0,0 +1,61 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._2_0.academic.generaldiploma;
+
+import javax.xml.bind.annotation.XmlEnum;
+import javax.xml.bind.annotation.XmlEnumValue;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for ModeOfDeliveryType.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * <p>
+ * <pre>
+ * &lt;simpleType name="ModeOfDeliveryType">
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ * &lt;enumeration value="FaceToFace"/>
+ * &lt;enumeration value="DistanceLearning"/>
+ * &lt;enumeration value="Other"/>
+ * &lt;/restriction>
+ * &lt;/simpleType>
+ * </pre>
+ *
+ */
+@XmlType(name = "ModeOfDeliveryType")
+@XmlEnum
+public enum ModeOfDeliveryType {
+
+ @XmlEnumValue("FaceToFace")
+ FACE_TO_FACE("FaceToFace"),
+ @XmlEnumValue("DistanceLearning")
+ DISTANCE_LEARNING("DistanceLearning"),
+ @XmlEnumValue("Other")
+ OTHER("Other");
+ private final String value;
+
+ ModeOfDeliveryType(String v) {
+ value = v;
+ }
+
+ public String value() {
+ return value;
+ }
+
+ public static ModeOfDeliveryType fromValue(String v) {
+ for (ModeOfDeliveryType c: ModeOfDeliveryType.values()) {
+ if (c.value.equals(v)) {
+ return c;
+ }
+ }
+ throw new IllegalArgumentException(v);
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/ModeOfStudyType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/ModeOfStudyType.java
new file mode 100644
index 000000000..4d9e43d8d
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/ModeOfStudyType.java
@@ -0,0 +1,67 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._2_0.academic.generaldiploma;
+
+import javax.xml.bind.annotation.XmlEnum;
+import javax.xml.bind.annotation.XmlEnumValue;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for ModeOfStudyType.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * <p>
+ * <pre>
+ * &lt;simpleType name="ModeOfStudyType">
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ * &lt;enumeration value="FullTime"/>
+ * &lt;enumeration value="ParTime"/>
+ * &lt;enumeration value="Distance"/>
+ * &lt;enumeration value="eLearning"/>
+ * &lt;enumeration value="Another"/>
+ * &lt;/restriction>
+ * &lt;/simpleType>
+ * </pre>
+ *
+ */
+@XmlType(name = "ModeOfStudyType")
+@XmlEnum
+public enum ModeOfStudyType {
+
+ @XmlEnumValue("FullTime")
+ FULL_TIME("FullTime"),
+ @XmlEnumValue("ParTime")
+ PAR_TIME("ParTime"),
+ @XmlEnumValue("Distance")
+ DISTANCE("Distance"),
+ @XmlEnumValue("eLearning")
+ E_LEARNING("eLearning"),
+ @XmlEnumValue("Another")
+ ANOTHER("Another");
+ private final String value;
+
+ ModeOfStudyType(String v) {
+ value = v;
+ }
+
+ public String value() {
+ return value;
+ }
+
+ public static ModeOfStudyType fromValue(String v) {
+ for (ModeOfStudyType c: ModeOfStudyType.values()) {
+ if (c.value.equals(v)) {
+ return c;
+ }
+ }
+ throw new IllegalArgumentException(v);
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/MultilingualGeneralDiplomaType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/MultilingualGeneralDiplomaType.java
new file mode 100644
index 000000000..7a3479a1f
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/MultilingualGeneralDiplomaType.java
@@ -0,0 +1,110 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._2_0.academic.generaldiploma;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+import eu.stork.peps.complex.attributes.org.w3._2000._09.xmldsig.SignatureType;
+
+
+/**
+ * <p>Java class for MultilingualGeneralDiplomaType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="MultilingualGeneralDiplomaType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element ref="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}GeneralDiploma" maxOccurs="unbounded"/>
+ * &lt;element ref="{http://www.w3.org/2000/09/xmldsig#}Signature" maxOccurs="unbounded" minOccurs="0"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "MultilingualGeneralDiplomaType", propOrder = {
+ "generalDiploma",
+ "signature"
+})
+public class MultilingualGeneralDiplomaType {
+
+ @XmlElement(name = "GeneralDiploma", required = true)
+ protected List<GeneralDiplomaType> generalDiploma;
+ @XmlElement(name = "Signature", namespace = "http://www.w3.org/2000/09/xmldsig#")
+ protected List<SignatureType> signature;
+
+ /**
+ * Gets the value of the generalDiploma property.
+ *
+ * <p>
+ * 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 <CODE>set</CODE> method for the generalDiploma property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getGeneralDiploma().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link GeneralDiplomaType }
+ *
+ *
+ */
+ public List<GeneralDiplomaType> getGeneralDiploma() {
+ if (generalDiploma == null) {
+ generalDiploma = new ArrayList<GeneralDiplomaType>();
+ }
+ return this.generalDiploma;
+ }
+
+ /**
+ * Gets the value of the signature property.
+ *
+ * <p>
+ * 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 <CODE>set</CODE> method for the signature property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getSignature().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link SignatureType }
+ *
+ *
+ */
+ public List<SignatureType> getSignature() {
+ if (signature == null) {
+ signature = new ArrayList<SignatureType>();
+ }
+ return this.signature;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/NameAndStatusOfAwardingInstitutionType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/NameAndStatusOfAwardingInstitutionType.java
new file mode 100644
index 000000000..8662aef80
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/NameAndStatusOfAwardingInstitutionType.java
@@ -0,0 +1,142 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._2_0.academic.generaldiploma;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for NameAndStatusOfAwardingInstitutionType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="NameAndStatusOfAwardingInstitutionType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="AwardingInstitution" maxOccurs="unbounded">
+ * &lt;complexType>
+ * &lt;complexContent>
+ * &lt;extension base="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}InstitutionType">
+ * &lt;attribute name="awardingInstitutionID" type="{http://www.w3.org/2001/XMLSchema}string" default="DEF-IAW" />
+ * &lt;/extension>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * &lt;/element>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "NameAndStatusOfAwardingInstitutionType", propOrder = {
+ "awardingInstitution"
+})
+public class NameAndStatusOfAwardingInstitutionType {
+
+ @XmlElement(name = "AwardingInstitution", required = true)
+ protected List<NameAndStatusOfAwardingInstitutionType.AwardingInstitution> awardingInstitution;
+
+ /**
+ * Gets the value of the awardingInstitution property.
+ *
+ * <p>
+ * 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 <CODE>set</CODE> method for the awardingInstitution property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getAwardingInstitution().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link NameAndStatusOfAwardingInstitutionType.AwardingInstitution }
+ *
+ *
+ */
+ public List<NameAndStatusOfAwardingInstitutionType.AwardingInstitution> getAwardingInstitution() {
+ if (awardingInstitution == null) {
+ awardingInstitution = new ArrayList<NameAndStatusOfAwardingInstitutionType.AwardingInstitution>();
+ }
+ return this.awardingInstitution;
+ }
+
+
+ /**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType>
+ * &lt;complexContent>
+ * &lt;extension base="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}InstitutionType">
+ * &lt;attribute name="awardingInstitutionID" type="{http://www.w3.org/2001/XMLSchema}string" default="DEF-IAW" />
+ * &lt;/extension>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+ @XmlAccessorType(XmlAccessType.FIELD)
+ @XmlType(name = "")
+ public static class AwardingInstitution
+ extends InstitutionType
+ {
+
+ @XmlAttribute(name = "awardingInstitutionID")
+ protected String awardingInstitutionID;
+
+ /**
+ * Gets the value of the awardingInstitutionID property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getAwardingInstitutionID() {
+ if (awardingInstitutionID == null) {
+ return "DEF-IAW";
+ } else {
+ return awardingInstitutionID;
+ }
+ }
+
+ /**
+ * Sets the value of the awardingInstitutionID property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setAwardingInstitutionID(String value) {
+ this.awardingInstitutionID = value;
+ }
+
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/NameAndStatusOfInstitutionAdministeringStudiesType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/NameAndStatusOfInstitutionAdministeringStudiesType.java
new file mode 100644
index 000000000..2ab19b491
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/NameAndStatusOfInstitutionAdministeringStudiesType.java
@@ -0,0 +1,142 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._2_0.academic.generaldiploma;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for NameAndStatusOfInstitutionAdministeringStudiesType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="NameAndStatusOfInstitutionAdministeringStudiesType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="InstitutionAdministeringStudies" maxOccurs="unbounded">
+ * &lt;complexType>
+ * &lt;complexContent>
+ * &lt;extension base="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}InstitutionType">
+ * &lt;attribute name="institutionAdministeringStudiesID" type="{http://www.w3.org/2001/XMLSchema}string" default="DEF-IAS" />
+ * &lt;/extension>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * &lt;/element>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "NameAndStatusOfInstitutionAdministeringStudiesType", propOrder = {
+ "institutionAdministeringStudies"
+})
+public class NameAndStatusOfInstitutionAdministeringStudiesType {
+
+ @XmlElement(name = "InstitutionAdministeringStudies", required = true)
+ protected List<NameAndStatusOfInstitutionAdministeringStudiesType.InstitutionAdministeringStudies> institutionAdministeringStudies;
+
+ /**
+ * Gets the value of the institutionAdministeringStudies property.
+ *
+ * <p>
+ * 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 <CODE>set</CODE> method for the institutionAdministeringStudies property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getInstitutionAdministeringStudies().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link NameAndStatusOfInstitutionAdministeringStudiesType.InstitutionAdministeringStudies }
+ *
+ *
+ */
+ public List<NameAndStatusOfInstitutionAdministeringStudiesType.InstitutionAdministeringStudies> getInstitutionAdministeringStudies() {
+ if (institutionAdministeringStudies == null) {
+ institutionAdministeringStudies = new ArrayList<NameAndStatusOfInstitutionAdministeringStudiesType.InstitutionAdministeringStudies>();
+ }
+ return this.institutionAdministeringStudies;
+ }
+
+
+ /**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType>
+ * &lt;complexContent>
+ * &lt;extension base="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}InstitutionType">
+ * &lt;attribute name="institutionAdministeringStudiesID" type="{http://www.w3.org/2001/XMLSchema}string" default="DEF-IAS" />
+ * &lt;/extension>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+ @XmlAccessorType(XmlAccessType.FIELD)
+ @XmlType(name = "")
+ public static class InstitutionAdministeringStudies
+ extends InstitutionType
+ {
+
+ @XmlAttribute(name = "institutionAdministeringStudiesID")
+ protected String institutionAdministeringStudiesID;
+
+ /**
+ * Gets the value of the institutionAdministeringStudiesID property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getInstitutionAdministeringStudiesID() {
+ if (institutionAdministeringStudiesID == null) {
+ return "DEF-IAS";
+ } else {
+ return institutionAdministeringStudiesID;
+ }
+ }
+
+ /**
+ * Sets the value of the institutionAdministeringStudiesID property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setInstitutionAdministeringStudiesID(String value) {
+ this.institutionAdministeringStudiesID = value;
+ }
+
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/ObjectFactory.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/ObjectFactory.java
new file mode 100644
index 000000000..699ca76c7
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/ObjectFactory.java
@@ -0,0 +1,632 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._2_0.academic.generaldiploma;
+
+import javax.xml.bind.JAXBElement;
+import javax.xml.bind.annotation.XmlElementDecl;
+import javax.xml.bind.annotation.XmlRegistry;
+import javax.xml.namespace.QName;
+
+
+/**
+ * This object contains factory methods for each
+ * Java content interface and Java element interface
+ * generated in the eu.stork.names.tc.stork._2_0.academic.generaldiploma package.
+ * <p>An ObjectFactory allows you to programatically
+ * construct new instances of the Java representation
+ * for XML content. The Java representation of XML
+ * content can consist of schema derived interfaces
+ * and classes representing the binding of schema
+ * type definitions, element declarations and model
+ * groups. Factory methods for each of these are
+ * provided in this class.
+ *
+ */
+@XmlRegistry
+public class ObjectFactory {
+
+ private final static QName _MultilingualGeneralDiploma_QNAME = new QName("urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma", "MultilingualGeneralDiploma");
+ private final static QName _GeneralDiploma_QNAME = new QName("urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma", "GeneralDiploma");
+ private final static QName _RichTextTagTypeBreakLine_QNAME = new QName("urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma", "BreakLine");
+ private final static QName _RichTextTagTypeAttachedRef_QNAME = new QName("urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma", "AttachedRef");
+ private final static QName _RichTextTagTypeItalic_QNAME = new QName("urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma", "Italic");
+ private final static QName _RichTextTagTypeUnderline_QNAME = new QName("urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma", "Underline");
+ private final static QName _RichTextTagTypeBold_QNAME = new QName("urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma", "Bold");
+
+ /**
+ * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: eu.stork.names.tc.stork._2_0.academic.generaldiploma
+ *
+ */
+ public ObjectFactory() {
+ }
+
+ /**
+ * Create an instance of {@link LanguagesOfInstructionAndExaminationType }
+ *
+ */
+ public LanguagesOfInstructionAndExaminationType createLanguagesOfInstructionAndExaminationType() {
+ return new LanguagesOfInstructionAndExaminationType();
+ }
+
+ /**
+ * Create an instance of {@link RichTextTagType }
+ *
+ */
+ public RichTextTagType createRichTextTagType() {
+ return new RichTextTagType();
+ }
+
+ /**
+ * Create an instance of {@link NameAndStatusOfInstitutionAdministeringStudiesType }
+ *
+ */
+ public NameAndStatusOfInstitutionAdministeringStudiesType createNameAndStatusOfInstitutionAdministeringStudiesType() {
+ return new NameAndStatusOfInstitutionAdministeringStudiesType();
+ }
+
+ /**
+ * Create an instance of {@link InstitutionType }
+ *
+ */
+ public InstitutionType createInstitutionType() {
+ return new InstitutionType();
+ }
+
+ /**
+ * Create an instance of {@link MobilityProgrammeCourseUnitType }
+ *
+ */
+ public MobilityProgrammeCourseUnitType createMobilityProgrammeCourseUnitType() {
+ return new MobilityProgrammeCourseUnitType();
+ }
+
+ /**
+ * Create an instance of {@link InformationIdentifyingTheHolderOfTheQualificationType }
+ *
+ */
+ public InformationIdentifyingTheHolderOfTheQualificationType createInformationIdentifyingTheHolderOfTheQualificationType() {
+ return new InformationIdentifyingTheHolderOfTheQualificationType();
+ }
+
+ /**
+ * Create an instance of {@link CourseUnitType }
+ *
+ */
+ public CourseUnitType createCourseUnitType() {
+ return new CourseUnitType();
+ }
+
+ /**
+ * Create an instance of {@link LocalGradeType }
+ *
+ */
+ public LocalGradeType createLocalGradeType() {
+ return new LocalGradeType();
+ }
+
+ /**
+ * Create an instance of {@link InformationOnTheContentsAndResultsGainedType }
+ *
+ */
+ public InformationOnTheContentsAndResultsGainedType createInformationOnTheContentsAndResultsGainedType() {
+ return new InformationOnTheContentsAndResultsGainedType();
+ }
+
+ /**
+ * Create an instance of {@link InformationOnTheLevelOfTheQualificationType }
+ *
+ */
+ public InformationOnTheLevelOfTheQualificationType createInformationOnTheLevelOfTheQualificationType() {
+ return new InformationOnTheLevelOfTheQualificationType();
+ }
+
+ /**
+ * Create an instance of {@link NameAndStatusOfAwardingInstitutionType }
+ *
+ */
+ public NameAndStatusOfAwardingInstitutionType createNameAndStatusOfAwardingInstitutionType() {
+ return new NameAndStatusOfAwardingInstitutionType();
+ }
+
+ /**
+ * Create an instance of {@link InformationOnTheFunctionOfTheQualificationType }
+ *
+ */
+ public InformationOnTheFunctionOfTheQualificationType createInformationOnTheFunctionOfTheQualificationType() {
+ return new InformationOnTheFunctionOfTheQualificationType();
+ }
+
+ /**
+ * Create an instance of {@link MultilingualGeneralDiplomaType }
+ *
+ */
+ public MultilingualGeneralDiplomaType createMultilingualGeneralDiplomaType() {
+ return new MultilingualGeneralDiplomaType();
+ }
+
+ /**
+ * Create an instance of {@link GeneralDiplomaType }
+ *
+ */
+ public GeneralDiplomaType createGeneralDiplomaType() {
+ return new GeneralDiplomaType();
+ }
+
+ /**
+ * Create an instance of {@link ExtensionContentType }
+ *
+ */
+ public ExtensionContentType createExtensionContentType() {
+ return new ExtensionContentType();
+ }
+
+ /**
+ * Create an instance of {@link CountryTextCodeType }
+ *
+ */
+ public CountryTextCodeType createCountryTextCodeType() {
+ return new CountryTextCodeType();
+ }
+
+ /**
+ * Create an instance of {@link AttachedImageURLType }
+ *
+ */
+ public AttachedImageURLType createAttachedImageURLType() {
+ return new AttachedImageURLType();
+ }
+
+ /**
+ * Create an instance of {@link CourseStructureDiagramType }
+ *
+ */
+ public CourseStructureDiagramType createCourseStructureDiagramType() {
+ return new CourseStructureDiagramType();
+ }
+
+ /**
+ * Create an instance of {@link CourseUnitWorkPlacementType }
+ *
+ */
+ public CourseUnitWorkPlacementType createCourseUnitWorkPlacementType() {
+ return new CourseUnitWorkPlacementType();
+ }
+
+ /**
+ * Create an instance of {@link InformationIdentifyingTheQualificationType }
+ *
+ */
+ public InformationIdentifyingTheQualificationType createInformationIdentifyingTheQualificationType() {
+ return new InformationIdentifyingTheQualificationType();
+ }
+
+ /**
+ * Create an instance of {@link MobilityProgrammeCoursesUnitsType }
+ *
+ */
+ public MobilityProgrammeCoursesUnitsType createMobilityProgrammeCoursesUnitsType() {
+ return new MobilityProgrammeCoursesUnitsType();
+ }
+
+ /**
+ * Create an instance of {@link QualificationType }
+ *
+ */
+ public QualificationType createQualificationType() {
+ return new QualificationType();
+ }
+
+ /**
+ * Create an instance of {@link CertificationOfTheSupplementType }
+ *
+ */
+ public CertificationOfTheSupplementType createCertificationOfTheSupplementType() {
+ return new CertificationOfTheSupplementType();
+ }
+
+ /**
+ * Create an instance of {@link AttachedFileURLType }
+ *
+ */
+ public AttachedFileURLType createAttachedFileURLType() {
+ return new AttachedFileURLType();
+ }
+
+ /**
+ * Create an instance of {@link ProgrammeRequirementsType }
+ *
+ */
+ public ProgrammeRequirementsType createProgrammeRequirementsType() {
+ return new ProgrammeRequirementsType();
+ }
+
+ /**
+ * Create an instance of {@link CourseUnitWorkPlacementsType }
+ *
+ */
+ public CourseUnitWorkPlacementsType createCourseUnitWorkPlacementsType() {
+ return new CourseUnitWorkPlacementsType();
+ }
+
+ /**
+ * Create an instance of {@link AdditionalInformationType }
+ *
+ */
+ public AdditionalInformationType createAdditionalInformationType() {
+ return new AdditionalInformationType();
+ }
+
+ /**
+ * Create an instance of {@link GradingSchemeAndGradeDistributionGuidanceType }
+ *
+ */
+ public GradingSchemeAndGradeDistributionGuidanceType createGradingSchemeAndGradeDistributionGuidanceType() {
+ return new GradingSchemeAndGradeDistributionGuidanceType();
+ }
+
+ /**
+ * Create an instance of {@link AttachmentsType }
+ *
+ */
+ public AttachmentsType createAttachmentsType() {
+ return new AttachmentsType();
+ }
+
+ /**
+ * Create an instance of {@link CourseUnitLanguageOfInstructionType }
+ *
+ */
+ public CourseUnitLanguageOfInstructionType createCourseUnitLanguageOfInstructionType() {
+ return new CourseUnitLanguageOfInstructionType();
+ }
+
+ /**
+ * Create an instance of {@link CoursesAttendedInOtherInstitutionInMobilityProgramsType }
+ *
+ */
+ public CoursesAttendedInOtherInstitutionInMobilityProgramsType createCoursesAttendedInOtherInstitutionInMobilityProgramsType() {
+ return new CoursesAttendedInOtherInstitutionInMobilityProgramsType();
+ }
+
+ /**
+ * Create an instance of {@link FamilyNameType }
+ *
+ */
+ public FamilyNameType createFamilyNameType() {
+ return new FamilyNameType();
+ }
+
+ /**
+ * Create an instance of {@link CoursesGroupsType }
+ *
+ */
+ public CoursesGroupsType createCoursesGroupsType() {
+ return new CoursesGroupsType();
+ }
+
+ /**
+ * Create an instance of {@link TitleConferredType }
+ *
+ */
+ public TitleConferredType createTitleConferredType() {
+ return new TitleConferredType();
+ }
+
+ /**
+ * Create an instance of {@link OfficialStampType }
+ *
+ */
+ public OfficialStampType createOfficialStampType() {
+ return new OfficialStampType();
+ }
+
+ /**
+ * Create an instance of {@link CourseUnitStudentPerformanceType }
+ *
+ */
+ public CourseUnitStudentPerformanceType createCourseUnitStudentPerformanceType() {
+ return new CourseUnitStudentPerformanceType();
+ }
+
+ /**
+ * Create an instance of {@link GivenNameType }
+ *
+ */
+ public GivenNameType createGivenNameType() {
+ return new GivenNameType();
+ }
+
+ /**
+ * Create an instance of {@link CoursesUnitsType }
+ *
+ */
+ public CoursesUnitsType createCoursesUnitsType() {
+ return new CoursesUnitsType();
+ }
+
+ /**
+ * Create an instance of {@link MobilityProgrammeType }
+ *
+ */
+ public MobilityProgrammeType createMobilityProgrammeType() {
+ return new MobilityProgrammeType();
+ }
+
+ /**
+ * Create an instance of {@link ProgrammeDetailsType }
+ *
+ */
+ public ProgrammeDetailsType createProgrammeDetailsType() {
+ return new ProgrammeDetailsType();
+ }
+
+ /**
+ * Create an instance of {@link OfficialCertifyingType }
+ *
+ */
+ public OfficialCertifyingType createOfficialCertifyingType() {
+ return new OfficialCertifyingType();
+ }
+
+ /**
+ * Create an instance of {@link CourseUnitLanguagesOfInstructionType }
+ *
+ */
+ public CourseUnitLanguagesOfInstructionType createCourseUnitLanguagesOfInstructionType() {
+ return new CourseUnitLanguagesOfInstructionType();
+ }
+
+ /**
+ * Create an instance of {@link AttachedImageDataType }
+ *
+ */
+ public AttachedImageDataType createAttachedImageDataType() {
+ return new AttachedImageDataType();
+ }
+
+ /**
+ * Create an instance of {@link AttachedType }
+ *
+ */
+ public AttachedType createAttachedType() {
+ return new AttachedType();
+ }
+
+ /**
+ * Create an instance of {@link CoursesGroupType }
+ *
+ */
+ public CoursesGroupType createCoursesGroupType() {
+ return new CoursesGroupType();
+ }
+
+ /**
+ * Create an instance of {@link AddressType }
+ *
+ */
+ public AddressType createAddressType() {
+ return new AddressType();
+ }
+
+ /**
+ * Create an instance of {@link AttachedFileDataType }
+ *
+ */
+ public AttachedFileDataType createAttachedFileDataType() {
+ return new AttachedFileDataType();
+ }
+
+ /**
+ * Create an instance of {@link ContactInformationType }
+ *
+ */
+ public ContactInformationType createContactInformationType() {
+ return new ContactInformationType();
+ }
+
+ /**
+ * Create an instance of {@link OfficialsCertifyingType }
+ *
+ */
+ public OfficialsCertifyingType createOfficialsCertifyingType() {
+ return new OfficialsCertifyingType();
+ }
+
+ /**
+ * Create an instance of {@link LanguagesOfInstructionAndExaminationType.Language }
+ *
+ */
+ public LanguagesOfInstructionAndExaminationType.Language createLanguagesOfInstructionAndExaminationTypeLanguage() {
+ return new LanguagesOfInstructionAndExaminationType.Language();
+ }
+
+ /**
+ * Create an instance of {@link RichTextTagType.AttachedRef }
+ *
+ */
+ public RichTextTagType.AttachedRef createRichTextTagTypeAttachedRef() {
+ return new RichTextTagType.AttachedRef();
+ }
+
+ /**
+ * Create an instance of {@link NameAndStatusOfInstitutionAdministeringStudiesType.InstitutionAdministeringStudies }
+ *
+ */
+ public NameAndStatusOfInstitutionAdministeringStudiesType.InstitutionAdministeringStudies createNameAndStatusOfInstitutionAdministeringStudiesTypeInstitutionAdministeringStudies() {
+ return new NameAndStatusOfInstitutionAdministeringStudiesType.InstitutionAdministeringStudies();
+ }
+
+ /**
+ * Create an instance of {@link InstitutionType.AttachedImageRef }
+ *
+ */
+ public InstitutionType.AttachedImageRef createInstitutionTypeAttachedImageRef() {
+ return new InstitutionType.AttachedImageRef();
+ }
+
+ /**
+ * Create an instance of {@link MobilityProgrammeCourseUnitType.Title }
+ *
+ */
+ public MobilityProgrammeCourseUnitType.Title createMobilityProgrammeCourseUnitTypeTitle() {
+ return new MobilityProgrammeCourseUnitType.Title();
+ }
+
+ /**
+ * Create an instance of {@link InformationIdentifyingTheHolderOfTheQualificationType.Gender }
+ *
+ */
+ public InformationIdentifyingTheHolderOfTheQualificationType.Gender createInformationIdentifyingTheHolderOfTheQualificationTypeGender() {
+ return new InformationIdentifyingTheHolderOfTheQualificationType.Gender();
+ }
+
+ /**
+ * Create an instance of {@link CourseUnitType.Type }
+ *
+ */
+ public CourseUnitType.Type createCourseUnitTypeType() {
+ return new CourseUnitType.Type();
+ }
+
+ /**
+ * Create an instance of {@link CourseUnitType.YearOfStudy }
+ *
+ */
+ public CourseUnitType.YearOfStudy createCourseUnitTypeYearOfStudy() {
+ return new CourseUnitType.YearOfStudy();
+ }
+
+ /**
+ * Create an instance of {@link CourseUnitType.Level }
+ *
+ */
+ public CourseUnitType.Level createCourseUnitTypeLevel() {
+ return new CourseUnitType.Level();
+ }
+
+ /**
+ * Create an instance of {@link CourseUnitType.ModeOfDelivery }
+ *
+ */
+ public CourseUnitType.ModeOfDelivery createCourseUnitTypeModeOfDelivery() {
+ return new CourseUnitType.ModeOfDelivery();
+ }
+
+ /**
+ * Create an instance of {@link LocalGradeType.Source }
+ *
+ */
+ public LocalGradeType.Source createLocalGradeTypeSource() {
+ return new LocalGradeType.Source();
+ }
+
+ /**
+ * Create an instance of {@link InformationOnTheContentsAndResultsGainedType.ModeOfStudy }
+ *
+ */
+ public InformationOnTheContentsAndResultsGainedType.ModeOfStudy createInformationOnTheContentsAndResultsGainedTypeModeOfStudy() {
+ return new InformationOnTheContentsAndResultsGainedType.ModeOfStudy();
+ }
+
+ /**
+ * Create an instance of {@link InformationOnTheLevelOfTheQualificationType.Level }
+ *
+ */
+ public InformationOnTheLevelOfTheQualificationType.Level createInformationOnTheLevelOfTheQualificationTypeLevel() {
+ return new InformationOnTheLevelOfTheQualificationType.Level();
+ }
+
+ /**
+ * Create an instance of {@link InformationOnTheLevelOfTheQualificationType.OfficialLengthOfProgramme }
+ *
+ */
+ public InformationOnTheLevelOfTheQualificationType.OfficialLengthOfProgramme createInformationOnTheLevelOfTheQualificationTypeOfficialLengthOfProgramme() {
+ return new InformationOnTheLevelOfTheQualificationType.OfficialLengthOfProgramme();
+ }
+
+ /**
+ * Create an instance of {@link NameAndStatusOfAwardingInstitutionType.AwardingInstitution }
+ *
+ */
+ public NameAndStatusOfAwardingInstitutionType.AwardingInstitution createNameAndStatusOfAwardingInstitutionTypeAwardingInstitution() {
+ return new NameAndStatusOfAwardingInstitutionType.AwardingInstitution();
+ }
+
+ /**
+ * Create an instance of {@link InformationOnTheFunctionOfTheQualificationType.ProfessionalStatus }
+ *
+ */
+ public InformationOnTheFunctionOfTheQualificationType.ProfessionalStatus createInformationOnTheFunctionOfTheQualificationTypeProfessionalStatus() {
+ return new InformationOnTheFunctionOfTheQualificationType.ProfessionalStatus();
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link MultilingualGeneralDiplomaType }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma", name = "MultilingualGeneralDiploma")
+ public JAXBElement<MultilingualGeneralDiplomaType> createMultilingualGeneralDiploma(MultilingualGeneralDiplomaType value) {
+ return new JAXBElement<MultilingualGeneralDiplomaType>(_MultilingualGeneralDiploma_QNAME, MultilingualGeneralDiplomaType.class, null, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link GeneralDiplomaType }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma", name = "GeneralDiploma")
+ public JAXBElement<GeneralDiplomaType> createGeneralDiploma(GeneralDiplomaType value) {
+ return new JAXBElement<GeneralDiplomaType>(_GeneralDiploma_QNAME, GeneralDiplomaType.class, null, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma", name = "BreakLine", scope = RichTextTagType.class)
+ public JAXBElement<String> createRichTextTagTypeBreakLine(String value) {
+ return new JAXBElement<String>(_RichTextTagTypeBreakLine_QNAME, String.class, RichTextTagType.class, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link RichTextTagType.AttachedRef }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma", name = "AttachedRef", scope = RichTextTagType.class)
+ public JAXBElement<RichTextTagType.AttachedRef> createRichTextTagTypeAttachedRef(RichTextTagType.AttachedRef value) {
+ return new JAXBElement<RichTextTagType.AttachedRef>(_RichTextTagTypeAttachedRef_QNAME, RichTextTagType.AttachedRef.class, RichTextTagType.class, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma", name = "Italic", scope = RichTextTagType.class)
+ public JAXBElement<String> createRichTextTagTypeItalic(String value) {
+ return new JAXBElement<String>(_RichTextTagTypeItalic_QNAME, String.class, RichTextTagType.class, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma", name = "Underline", scope = RichTextTagType.class)
+ public JAXBElement<String> createRichTextTagTypeUnderline(String value) {
+ return new JAXBElement<String>(_RichTextTagTypeUnderline_QNAME, String.class, RichTextTagType.class, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma", name = "Bold", scope = RichTextTagType.class)
+ public JAXBElement<String> createRichTextTagTypeBold(String value) {
+ return new JAXBElement<String>(_RichTextTagTypeBold_QNAME, String.class, RichTextTagType.class, value);
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/OfficialCertifyingType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/OfficialCertifyingType.java
new file mode 100644
index 000000000..6564cad3a
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/OfficialCertifyingType.java
@@ -0,0 +1,157 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._2_0.academic.generaldiploma;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for OfficialCertifyingType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="OfficialCertifyingType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="FamilyName" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}FamilyNameType"/>
+ * &lt;element name="GivenName" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}GivenNameType"/>
+ * &lt;element name="Capacity" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}PlainTextType" minOccurs="0"/>
+ * &lt;/sequence>
+ * &lt;attribute name="awardingInstitutionID" type="{http://www.w3.org/2001/XMLSchema}string" default="DEF-IAW" />
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "OfficialCertifyingType", propOrder = {
+ "familyName",
+ "givenName",
+ "capacity"
+})
+public class OfficialCertifyingType {
+
+ @XmlElement(name = "FamilyName", required = true)
+ protected FamilyNameType familyName;
+ @XmlElement(name = "GivenName", required = true)
+ protected GivenNameType givenName;
+ @XmlElement(name = "Capacity")
+ protected String capacity;
+ @XmlAttribute(name = "awardingInstitutionID")
+ protected String awardingInstitutionID;
+
+ /**
+ * Gets the value of the familyName property.
+ *
+ * @return
+ * possible object is
+ * {@link FamilyNameType }
+ *
+ */
+ public FamilyNameType getFamilyName() {
+ return familyName;
+ }
+
+ /**
+ * Sets the value of the familyName property.
+ *
+ * @param value
+ * allowed object is
+ * {@link FamilyNameType }
+ *
+ */
+ public void setFamilyName(FamilyNameType value) {
+ this.familyName = value;
+ }
+
+ /**
+ * Gets the value of the givenName property.
+ *
+ * @return
+ * possible object is
+ * {@link GivenNameType }
+ *
+ */
+ public GivenNameType getGivenName() {
+ return givenName;
+ }
+
+ /**
+ * Sets the value of the givenName property.
+ *
+ * @param value
+ * allowed object is
+ * {@link GivenNameType }
+ *
+ */
+ public void setGivenName(GivenNameType value) {
+ this.givenName = value;
+ }
+
+ /**
+ * Gets the value of the capacity property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getCapacity() {
+ return capacity;
+ }
+
+ /**
+ * Sets the value of the capacity property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setCapacity(String value) {
+ this.capacity = value;
+ }
+
+ /**
+ * Gets the value of the awardingInstitutionID property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getAwardingInstitutionID() {
+ if (awardingInstitutionID == null) {
+ return "DEF-IAW";
+ } else {
+ return awardingInstitutionID;
+ }
+ }
+
+ /**
+ * Sets the value of the awardingInstitutionID property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setAwardingInstitutionID(String value) {
+ this.awardingInstitutionID = value;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/OfficialStampType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/OfficialStampType.java
new file mode 100644
index 000000000..61966f341
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/OfficialStampType.java
@@ -0,0 +1,101 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._2_0.academic.generaldiploma;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for OfficialStampType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="OfficialStampType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="Description" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}PlainTextType"/>
+ * &lt;/sequence>
+ * &lt;attribute name="awardingInstitutionID" type="{http://www.w3.org/2001/XMLSchema}string" default="DEF-IAW" />
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "OfficialStampType", propOrder = {
+ "description"
+})
+public class OfficialStampType {
+
+ @XmlElement(name = "Description", required = true)
+ protected String description;
+ @XmlAttribute(name = "awardingInstitutionID")
+ protected String awardingInstitutionID;
+
+ /**
+ * Gets the value of the description property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getDescription() {
+ return description;
+ }
+
+ /**
+ * Sets the value of the description property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setDescription(String value) {
+ this.description = value;
+ }
+
+ /**
+ * Gets the value of the awardingInstitutionID property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getAwardingInstitutionID() {
+ if (awardingInstitutionID == null) {
+ return "DEF-IAW";
+ } else {
+ return awardingInstitutionID;
+ }
+ }
+
+ /**
+ * Sets the value of the awardingInstitutionID property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setAwardingInstitutionID(String value) {
+ this.awardingInstitutionID = value;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/OfficialsCertifyingType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/OfficialsCertifyingType.java
new file mode 100644
index 000000000..dbb17d0bc
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/OfficialsCertifyingType.java
@@ -0,0 +1,76 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._2_0.academic.generaldiploma;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for OfficialsCertifyingType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="OfficialsCertifyingType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="OfficialCertifying" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}OfficialCertifyingType" maxOccurs="unbounded"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "OfficialsCertifyingType", propOrder = {
+ "officialCertifying"
+})
+public class OfficialsCertifyingType {
+
+ @XmlElement(name = "OfficialCertifying", required = true)
+ protected List<OfficialCertifyingType> officialCertifying;
+
+ /**
+ * Gets the value of the officialCertifying property.
+ *
+ * <p>
+ * 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 <CODE>set</CODE> method for the officialCertifying property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getOfficialCertifying().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link OfficialCertifyingType }
+ *
+ *
+ */
+ public List<OfficialCertifyingType> getOfficialCertifying() {
+ if (officialCertifying == null) {
+ officialCertifying = new ArrayList<OfficialCertifyingType>();
+ }
+ return this.officialCertifying;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/ProgrammeDetailsType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/ProgrammeDetailsType.java
new file mode 100644
index 000000000..c5255c9ee
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/ProgrammeDetailsType.java
@@ -0,0 +1,97 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._2_0.academic.generaldiploma;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for ProgrammeDetailsType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="ProgrammeDetailsType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="CourseStructureDiagram" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}CourseStructureDiagramType"/>
+ * &lt;element name="CoursesAttendedInOtherInstitutionInMobilityPrograms" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}CoursesAttendedInOtherInstitutionInMobilityProgramsType" minOccurs="0"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "ProgrammeDetailsType", propOrder = {
+ "courseStructureDiagram",
+ "coursesAttendedInOtherInstitutionInMobilityPrograms"
+})
+public class ProgrammeDetailsType {
+
+ @XmlElement(name = "CourseStructureDiagram", required = true)
+ protected CourseStructureDiagramType courseStructureDiagram;
+ @XmlElement(name = "CoursesAttendedInOtherInstitutionInMobilityPrograms")
+ protected CoursesAttendedInOtherInstitutionInMobilityProgramsType coursesAttendedInOtherInstitutionInMobilityPrograms;
+
+ /**
+ * Gets the value of the courseStructureDiagram property.
+ *
+ * @return
+ * possible object is
+ * {@link CourseStructureDiagramType }
+ *
+ */
+ public CourseStructureDiagramType getCourseStructureDiagram() {
+ return courseStructureDiagram;
+ }
+
+ /**
+ * Sets the value of the courseStructureDiagram property.
+ *
+ * @param value
+ * allowed object is
+ * {@link CourseStructureDiagramType }
+ *
+ */
+ public void setCourseStructureDiagram(CourseStructureDiagramType value) {
+ this.courseStructureDiagram = value;
+ }
+
+ /**
+ * Gets the value of the coursesAttendedInOtherInstitutionInMobilityPrograms property.
+ *
+ * @return
+ * possible object is
+ * {@link CoursesAttendedInOtherInstitutionInMobilityProgramsType }
+ *
+ */
+ public CoursesAttendedInOtherInstitutionInMobilityProgramsType getCoursesAttendedInOtherInstitutionInMobilityPrograms() {
+ return coursesAttendedInOtherInstitutionInMobilityPrograms;
+ }
+
+ /**
+ * Sets the value of the coursesAttendedInOtherInstitutionInMobilityPrograms property.
+ *
+ * @param value
+ * allowed object is
+ * {@link CoursesAttendedInOtherInstitutionInMobilityProgramsType }
+ *
+ */
+ public void setCoursesAttendedInOtherInstitutionInMobilityPrograms(CoursesAttendedInOtherInstitutionInMobilityProgramsType value) {
+ this.coursesAttendedInOtherInstitutionInMobilityPrograms = value;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/ProgrammeRequirementsType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/ProgrammeRequirementsType.java
new file mode 100644
index 000000000..fac1755c3
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/ProgrammeRequirementsType.java
@@ -0,0 +1,97 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._2_0.academic.generaldiploma;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for ProgrammeRequirementsType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="ProgrammeRequirementsType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="Requirements" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}RichTextTagType"/>
+ * &lt;element name="KeyLearningOutcomes" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}RichTextTagType" minOccurs="0"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "ProgrammeRequirementsType", propOrder = {
+ "requirements",
+ "keyLearningOutcomes"
+})
+public class ProgrammeRequirementsType {
+
+ @XmlElement(name = "Requirements", required = true)
+ protected RichTextTagType requirements;
+ @XmlElement(name = "KeyLearningOutcomes")
+ protected RichTextTagType keyLearningOutcomes;
+
+ /**
+ * Gets the value of the requirements property.
+ *
+ * @return
+ * possible object is
+ * {@link RichTextTagType }
+ *
+ */
+ public RichTextTagType getRequirements() {
+ return requirements;
+ }
+
+ /**
+ * Sets the value of the requirements property.
+ *
+ * @param value
+ * allowed object is
+ * {@link RichTextTagType }
+ *
+ */
+ public void setRequirements(RichTextTagType value) {
+ this.requirements = value;
+ }
+
+ /**
+ * Gets the value of the keyLearningOutcomes property.
+ *
+ * @return
+ * possible object is
+ * {@link RichTextTagType }
+ *
+ */
+ public RichTextTagType getKeyLearningOutcomes() {
+ return keyLearningOutcomes;
+ }
+
+ /**
+ * Sets the value of the keyLearningOutcomes property.
+ *
+ * @param value
+ * allowed object is
+ * {@link RichTextTagType }
+ *
+ */
+ public void setKeyLearningOutcomes(RichTextTagType value) {
+ this.keyLearningOutcomes = value;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/QualificationType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/QualificationType.java
new file mode 100644
index 000000000..209094e4f
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/QualificationType.java
@@ -0,0 +1,152 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._2_0.academic.generaldiploma;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for QualificationType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="QualificationType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="Name" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}PlainTextType"/>
+ * &lt;element name="AdditionalInformation" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}RichTextTagType" minOccurs="0"/>
+ * &lt;/sequence>
+ * &lt;attribute name="localID" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}PlainTextType" />
+ * &lt;attribute name="nationalID" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}PlainTextType" />
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "QualificationType", propOrder = {
+ "name",
+ "additionalInformation"
+})
+public class QualificationType {
+
+ @XmlElement(name = "Name", required = true)
+ protected String name;
+ @XmlElement(name = "AdditionalInformation")
+ protected RichTextTagType additionalInformation;
+ @XmlAttribute(name = "localID")
+ protected String localID;
+ @XmlAttribute(name = "nationalID")
+ protected String nationalID;
+
+ /**
+ * Gets the value of the name property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * Sets the value of the name property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setName(String value) {
+ this.name = value;
+ }
+
+ /**
+ * Gets the value of the additionalInformation property.
+ *
+ * @return
+ * possible object is
+ * {@link RichTextTagType }
+ *
+ */
+ public RichTextTagType getAdditionalInformation() {
+ return additionalInformation;
+ }
+
+ /**
+ * Sets the value of the additionalInformation property.
+ *
+ * @param value
+ * allowed object is
+ * {@link RichTextTagType }
+ *
+ */
+ public void setAdditionalInformation(RichTextTagType value) {
+ this.additionalInformation = value;
+ }
+
+ /**
+ * Gets the value of the localID property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getLocalID() {
+ return localID;
+ }
+
+ /**
+ * Sets the value of the localID property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setLocalID(String value) {
+ this.localID = value;
+ }
+
+ /**
+ * Gets the value of the nationalID property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getNationalID() {
+ return nationalID;
+ }
+
+ /**
+ * Sets the value of the nationalID property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setNationalID(String value) {
+ this.nationalID = value;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/RichTextTagType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/RichTextTagType.java
new file mode 100644
index 000000000..8d1906142
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/RichTextTagType.java
@@ -0,0 +1,197 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._2_0.academic.generaldiploma;
+
+import java.io.Serializable;
+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.XmlAttribute;
+import javax.xml.bind.annotation.XmlElementRef;
+import javax.xml.bind.annotation.XmlElementRefs;
+import javax.xml.bind.annotation.XmlIDREF;
+import javax.xml.bind.annotation.XmlMixed;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlSeeAlso;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlValue;
+
+
+/**
+ * <p>Java class for RichTextTagType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="RichTextTagType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;choice maxOccurs="unbounded" minOccurs="0">
+ * &lt;element name="Bold" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}PlainTextType"/>
+ * &lt;element name="BreakLine" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}EmptyType"/>
+ * &lt;element name="Italic" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}PlainTextType"/>
+ * &lt;element name="Underline" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}PlainTextType"/>
+ * &lt;element name="AttachedRef">
+ * &lt;complexType>
+ * &lt;simpleContent>
+ * &lt;extension base="&lt;urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma>PlainTextType">
+ * &lt;attribute name="attachedID" use="required" type="{http://www.w3.org/2001/XMLSchema}IDREF" />
+ * &lt;/extension>
+ * &lt;/simpleContent>
+ * &lt;/complexType>
+ * &lt;/element>
+ * &lt;/choice>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "RichTextTagType", propOrder = {
+ "content"
+})
+@XmlSeeAlso({
+ eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._2_0.academic.generaldiploma.InformationOnTheFunctionOfTheQualificationType.ProfessionalStatus.class,
+ eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._2_0.academic.generaldiploma.InformationOnTheLevelOfTheQualificationType.Level.class,
+ eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._2_0.academic.generaldiploma.InformationOnTheLevelOfTheQualificationType.OfficialLengthOfProgramme.class,
+ eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._2_0.academic.generaldiploma.InformationOnTheContentsAndResultsGainedType.ModeOfStudy.class,
+ eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._2_0.academic.generaldiploma.LanguagesOfInstructionAndExaminationType.Language.class
+})
+public class RichTextTagType {
+
+ @XmlElementRefs({
+ @XmlElementRef(name = "Underline", namespace = "urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma", type = JAXBElement.class, required = false),
+ @XmlElementRef(name = "BreakLine", namespace = "urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma", type = JAXBElement.class, required = false),
+ @XmlElementRef(name = "AttachedRef", namespace = "urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma", type = JAXBElement.class, required = false),
+ @XmlElementRef(name = "Italic", namespace = "urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma", type = JAXBElement.class, required = false),
+ @XmlElementRef(name = "Bold", namespace = "urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma", type = JAXBElement.class, required = false)
+ })
+ @XmlMixed
+ protected List<Serializable> content;
+
+ /**
+ * Gets the value of the content property.
+ *
+ * <p>
+ * 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 <CODE>set</CODE> method for the content property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getContent().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link JAXBElement }{@code <}{@link String }{@code >}
+ * {@link JAXBElement }{@code <}{@link String }{@code >}
+ * {@link JAXBElement }{@code <}{@link String }{@code >}
+ * {@link String }
+ * {@link JAXBElement }{@code <}{@link String }{@code >}
+ * {@link JAXBElement }{@code <}{@link RichTextTagType.AttachedRef }{@code >}
+ *
+ *
+ */
+ public List<Serializable> getContent() {
+ if (content == null) {
+ content = new ArrayList<Serializable>();
+ }
+ return this.content;
+ }
+
+
+ /**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType>
+ * &lt;simpleContent>
+ * &lt;extension base="&lt;urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma>PlainTextType">
+ * &lt;attribute name="attachedID" use="required" type="{http://www.w3.org/2001/XMLSchema}IDREF" />
+ * &lt;/extension>
+ * &lt;/simpleContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+ @XmlAccessorType(XmlAccessType.FIELD)
+ @XmlType(name = "", propOrder = {
+ "value"
+ })
+ public static class AttachedRef {
+
+ @XmlValue
+ protected String value;
+ @XmlAttribute(name = "attachedID", required = true)
+ @XmlIDREF
+ @XmlSchemaType(name = "IDREF")
+ protected Object attachedID;
+
+ /**
+ * Gets the value of the value property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getValue() {
+ return value;
+ }
+
+ /**
+ * Sets the value of the value property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setValue(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Gets the value of the attachedID property.
+ *
+ * @return
+ * possible object is
+ * {@link Object }
+ *
+ */
+ public Object getAttachedID() {
+ return attachedID;
+ }
+
+ /**
+ * Sets the value of the attachedID property.
+ *
+ * @param value
+ * allowed object is
+ * {@link Object }
+ *
+ */
+ public void setAttachedID(Object value) {
+ this.attachedID = value;
+ }
+
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/SourceGradeType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/SourceGradeType.java
new file mode 100644
index 000000000..2fc0d4292
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/SourceGradeType.java
@@ -0,0 +1,61 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._2_0.academic.generaldiploma;
+
+import javax.xml.bind.annotation.XmlEnum;
+import javax.xml.bind.annotation.XmlEnumValue;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for SourceGradeType.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * <p>
+ * <pre>
+ * &lt;simpleType name="SourceGradeType">
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ * &lt;enumeration value="Recognized"/>
+ * &lt;enumeration value="MobilityProgramme"/>
+ * &lt;enumeration value="Another"/>
+ * &lt;/restriction>
+ * &lt;/simpleType>
+ * </pre>
+ *
+ */
+@XmlType(name = "SourceGradeType")
+@XmlEnum
+public enum SourceGradeType {
+
+ @XmlEnumValue("Recognized")
+ RECOGNIZED("Recognized"),
+ @XmlEnumValue("MobilityProgramme")
+ MOBILITY_PROGRAMME("MobilityProgramme"),
+ @XmlEnumValue("Another")
+ ANOTHER("Another");
+ private final String value;
+
+ SourceGradeType(String v) {
+ value = v;
+ }
+
+ public String value() {
+ return value;
+ }
+
+ public static SourceGradeType fromValue(String v) {
+ for (SourceGradeType c: SourceGradeType.values()) {
+ if (c.value.equals(v)) {
+ return c;
+ }
+ }
+ throw new IllegalArgumentException(v);
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/TitleConferredType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/TitleConferredType.java
new file mode 100644
index 000000000..2ca949caa
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/TitleConferredType.java
@@ -0,0 +1,69 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._2_0.academic.generaldiploma;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for TitleConferredType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="TitleConferredType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="Name" type="{urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma}PlainTextType"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "TitleConferredType", propOrder = {
+ "name"
+})
+public class TitleConferredType {
+
+ @XmlElement(name = "Name", required = true)
+ protected String name;
+
+ /**
+ * Gets the value of the name property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * Sets the value of the name property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setName(String value) {
+ this.name = value;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/package-info.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/package-info.java
new file mode 100644
index 000000000..7d2131e52
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/eu/stork/names/tc/stork/_2_0/academic/generaldiploma/package-info.java
@@ -0,0 +1,9 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+@javax.xml.bind.annotation.XmlSchema(namespace = "urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
+package eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._2_0.academic.generaldiploma;
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/org/w3/_2000/_09/xmldsig/CanonicalizationMethodType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/org/w3/_2000/_09/xmldsig/CanonicalizationMethodType.java
new file mode 100644
index 000000000..e2c2db71d
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/org/w3/_2000/_09/xmldsig/CanonicalizationMethodType.java
@@ -0,0 +1,109 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.org.w3._2000._09.xmldsig;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlMixed;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for CanonicalizationMethodType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="CanonicalizationMethodType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;any maxOccurs="unbounded" minOccurs="0"/>
+ * &lt;/sequence>
+ * &lt;attribute name="Algorithm" use="required" type="{http://www.w3.org/2001/XMLSchema}anyURI" />
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "CanonicalizationMethodType", propOrder = {
+ "content"
+})
+public class CanonicalizationMethodType {
+
+ @XmlMixed
+ @XmlAnyElement(lax = true)
+ protected List<Object> content;
+ @XmlAttribute(name = "Algorithm", required = true)
+ @XmlSchemaType(name = "anyURI")
+ protected String algorithm;
+
+ /**
+ * Gets the value of the content property.
+ *
+ * <p>
+ * 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 <CODE>set</CODE> method for the content property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getContent().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link String }
+ * {@link Object }
+ *
+ *
+ */
+ public List<Object> getContent() {
+ if (content == null) {
+ content = new ArrayList<Object>();
+ }
+ return this.content;
+ }
+
+ /**
+ * Gets the value of the algorithm property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getAlgorithm() {
+ return algorithm;
+ }
+
+ /**
+ * Sets the value of the algorithm property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setAlgorithm(String value) {
+ this.algorithm = value;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/org/w3/_2000/_09/xmldsig/DSAKeyValueType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/org/w3/_2000/_09/xmldsig/DSAKeyValueType.java
new file mode 100644
index 000000000..7f7c48206
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/org/w3/_2000/_09/xmldsig/DSAKeyValueType.java
@@ -0,0 +1,227 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.org.w3._2000._09.xmldsig;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for DSAKeyValueType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="DSAKeyValueType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;sequence minOccurs="0">
+ * &lt;element name="P" type="{http://www.w3.org/2000/09/xmldsig#}CryptoBinary"/>
+ * &lt;element name="Q" type="{http://www.w3.org/2000/09/xmldsig#}CryptoBinary"/>
+ * &lt;/sequence>
+ * &lt;element name="G" type="{http://www.w3.org/2000/09/xmldsig#}CryptoBinary" minOccurs="0"/>
+ * &lt;element name="Y" type="{http://www.w3.org/2000/09/xmldsig#}CryptoBinary"/>
+ * &lt;element name="J" type="{http://www.w3.org/2000/09/xmldsig#}CryptoBinary" minOccurs="0"/>
+ * &lt;sequence minOccurs="0">
+ * &lt;element name="Seed" type="{http://www.w3.org/2000/09/xmldsig#}CryptoBinary"/>
+ * &lt;element name="PgenCounter" type="{http://www.w3.org/2000/09/xmldsig#}CryptoBinary"/>
+ * &lt;/sequence>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "DSAKeyValueType", propOrder = {
+ "p",
+ "q",
+ "g",
+ "y",
+ "j",
+ "seed",
+ "pgenCounter"
+})
+public class DSAKeyValueType {
+
+ @XmlElement(name = "P")
+ protected byte[] p;
+ @XmlElement(name = "Q")
+ protected byte[] q;
+ @XmlElement(name = "G")
+ protected byte[] g;
+ @XmlElement(name = "Y", required = true)
+ protected byte[] y;
+ @XmlElement(name = "J")
+ protected byte[] j;
+ @XmlElement(name = "Seed")
+ protected byte[] seed;
+ @XmlElement(name = "PgenCounter")
+ protected byte[] pgenCounter;
+
+ /**
+ * Gets the value of the p property.
+ *
+ * @return
+ * possible object is
+ * byte[]
+ */
+ public byte[] getP() {
+ return p;
+ }
+
+ /**
+ * Sets the value of the p property.
+ *
+ * @param value
+ * allowed object is
+ * byte[]
+ */
+ public void setP(byte[] value) {
+ this.p = value;
+ }
+
+ /**
+ * Gets the value of the q property.
+ *
+ * @return
+ * possible object is
+ * byte[]
+ */
+ public byte[] getQ() {
+ return q;
+ }
+
+ /**
+ * Sets the value of the q property.
+ *
+ * @param value
+ * allowed object is
+ * byte[]
+ */
+ public void setQ(byte[] value) {
+ this.q = value;
+ }
+
+ /**
+ * Gets the value of the g property.
+ *
+ * @return
+ * possible object is
+ * byte[]
+ */
+ public byte[] getG() {
+ return g;
+ }
+
+ /**
+ * Sets the value of the g property.
+ *
+ * @param value
+ * allowed object is
+ * byte[]
+ */
+ public void setG(byte[] value) {
+ this.g = value;
+ }
+
+ /**
+ * Gets the value of the y property.
+ *
+ * @return
+ * possible object is
+ * byte[]
+ */
+ public byte[] getY() {
+ return y;
+ }
+
+ /**
+ * Sets the value of the y property.
+ *
+ * @param value
+ * allowed object is
+ * byte[]
+ */
+ public void setY(byte[] value) {
+ this.y = value;
+ }
+
+ /**
+ * Gets the value of the j property.
+ *
+ * @return
+ * possible object is
+ * byte[]
+ */
+ public byte[] getJ() {
+ return j;
+ }
+
+ /**
+ * Sets the value of the j property.
+ *
+ * @param value
+ * allowed object is
+ * byte[]
+ */
+ public void setJ(byte[] value) {
+ this.j = value;
+ }
+
+ /**
+ * Gets the value of the seed property.
+ *
+ * @return
+ * possible object is
+ * byte[]
+ */
+ public byte[] getSeed() {
+ return seed;
+ }
+
+ /**
+ * Sets the value of the seed property.
+ *
+ * @param value
+ * allowed object is
+ * byte[]
+ */
+ public void setSeed(byte[] value) {
+ this.seed = value;
+ }
+
+ /**
+ * Gets the value of the pgenCounter property.
+ *
+ * @return
+ * possible object is
+ * byte[]
+ */
+ public byte[] getPgenCounter() {
+ return pgenCounter;
+ }
+
+ /**
+ * Sets the value of the pgenCounter property.
+ *
+ * @param value
+ * allowed object is
+ * byte[]
+ */
+ public void setPgenCounter(byte[] value) {
+ this.pgenCounter = value;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/org/w3/_2000/_09/xmldsig/DigestMethodType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/org/w3/_2000/_09/xmldsig/DigestMethodType.java
new file mode 100644
index 000000000..9d32757cb
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/org/w3/_2000/_09/xmldsig/DigestMethodType.java
@@ -0,0 +1,111 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.org.w3._2000._09.xmldsig;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlMixed;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import org.w3c.dom.Element;
+
+
+/**
+ * <p>Java class for DigestMethodType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="DigestMethodType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;any processContents='lax' namespace='##other' maxOccurs="unbounded" minOccurs="0"/>
+ * &lt;/sequence>
+ * &lt;attribute name="Algorithm" use="required" type="{http://www.w3.org/2001/XMLSchema}anyURI" />
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "DigestMethodType", propOrder = {
+ "content"
+})
+public class DigestMethodType {
+
+ @XmlMixed
+ @XmlAnyElement(lax = true)
+ protected List<Object> content;
+ @XmlAttribute(name = "Algorithm", required = true)
+ @XmlSchemaType(name = "anyURI")
+ protected String algorithm;
+
+ /**
+ * Gets the value of the content property.
+ *
+ * <p>
+ * 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 <CODE>set</CODE> method for the content property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getContent().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link Object }
+ * {@link Element }
+ * {@link String }
+ *
+ *
+ */
+ public List<Object> getContent() {
+ if (content == null) {
+ content = new ArrayList<Object>();
+ }
+ return this.content;
+ }
+
+ /**
+ * Gets the value of the algorithm property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getAlgorithm() {
+ return algorithm;
+ }
+
+ /**
+ * Sets the value of the algorithm property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setAlgorithm(String value) {
+ this.algorithm = value;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/org/w3/_2000/_09/xmldsig/KeyInfoType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/org/w3/_2000/_09/xmldsig/KeyInfoType.java
new file mode 100644
index 000000000..638d398ae
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/org/w3/_2000/_09/xmldsig/KeyInfoType.java
@@ -0,0 +1,142 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.org.w3._2000._09.xmldsig;
+
+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.XmlAnyElement;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElementRef;
+import javax.xml.bind.annotation.XmlElementRefs;
+import javax.xml.bind.annotation.XmlID;
+import javax.xml.bind.annotation.XmlMixed;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+import org.w3c.dom.Element;
+
+
+/**
+ * <p>Java class for KeyInfoType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="KeyInfoType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;choice maxOccurs="unbounded">
+ * &lt;element ref="{http://www.w3.org/2000/09/xmldsig#}KeyName"/>
+ * &lt;element ref="{http://www.w3.org/2000/09/xmldsig#}KeyValue"/>
+ * &lt;element ref="{http://www.w3.org/2000/09/xmldsig#}RetrievalMethod"/>
+ * &lt;element ref="{http://www.w3.org/2000/09/xmldsig#}X509Data"/>
+ * &lt;element ref="{http://www.w3.org/2000/09/xmldsig#}PGPData"/>
+ * &lt;element ref="{http://www.w3.org/2000/09/xmldsig#}SPKIData"/>
+ * &lt;element ref="{http://www.w3.org/2000/09/xmldsig#}MgmtData"/>
+ * &lt;any processContents='lax' namespace='##other'/>
+ * &lt;/choice>
+ * &lt;attribute name="Id" type="{http://www.w3.org/2001/XMLSchema}ID" />
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "KeyInfoType", propOrder = {
+ "content"
+})
+public class KeyInfoType {
+
+ @XmlElementRefs({
+ @XmlElementRef(name = "PGPData", 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 = "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 = "SPKIData", 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 = "MgmtData", namespace = "http://www.w3.org/2000/09/xmldsig#", type = JAXBElement.class, required = false)
+ })
+ @XmlMixed
+ @XmlAnyElement(lax = true)
+ protected List<Object> content;
+ @XmlAttribute(name = "Id")
+ @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+ @XmlID
+ @XmlSchemaType(name = "ID")
+ protected String id;
+
+ /**
+ * Gets the value of the content property.
+ *
+ * <p>
+ * 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 <CODE>set</CODE> method for the content property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getContent().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link JAXBElement }{@code <}{@link PGPDataType }{@code >}
+ * {@link JAXBElement }{@code <}{@link X509DataType }{@code >}
+ * {@link Object }
+ * {@link JAXBElement }{@code <}{@link KeyValueType }{@code >}
+ * {@link JAXBElement }{@code <}{@link String }{@code >}
+ * {@link Element }
+ * {@link String }
+ * {@link JAXBElement }{@code <}{@link SPKIDataType }{@code >}
+ * {@link JAXBElement }{@code <}{@link RetrievalMethodType }{@code >}
+ * {@link JAXBElement }{@code <}{@link String }{@code >}
+ *
+ *
+ */
+ public List<Object> getContent() {
+ if (content == null) {
+ content = new ArrayList<Object>();
+ }
+ return this.content;
+ }
+
+ /**
+ * Gets the value of the id property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getId() {
+ return id;
+ }
+
+ /**
+ * Sets the value of the id property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setId(String value) {
+ this.id = value;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/org/w3/_2000/_09/xmldsig/KeyValueType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/org/w3/_2000/_09/xmldsig/KeyValueType.java
new file mode 100644
index 000000000..819c9d014
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/org/w3/_2000/_09/xmldsig/KeyValueType.java
@@ -0,0 +1,92 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.org.w3._2000._09.xmldsig;
+
+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.XmlAnyElement;
+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 org.w3c.dom.Element;
+
+
+/**
+ * <p>Java class for KeyValueType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="KeyValueType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;choice>
+ * &lt;element ref="{http://www.w3.org/2000/09/xmldsig#}DSAKeyValue"/>
+ * &lt;element ref="{http://www.w3.org/2000/09/xmldsig#}RSAKeyValue"/>
+ * &lt;any processContents='lax' namespace='##other'/>
+ * &lt;/choice>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "KeyValueType", propOrder = {
+ "content"
+})
+public class KeyValueType {
+
+ @XmlElementRefs({
+ @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)
+ protected List<Object> content;
+
+ /**
+ * Gets the value of the content property.
+ *
+ * <p>
+ * 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 <CODE>set</CODE> method for the content property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getContent().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link Object }
+ * {@link Element }
+ * {@link JAXBElement }{@code <}{@link DSAKeyValueType }{@code >}
+ * {@link JAXBElement }{@code <}{@link RSAKeyValueType }{@code >}
+ * {@link String }
+ *
+ *
+ */
+ public List<Object> getContent() {
+ if (content == null) {
+ content = new ArrayList<Object>();
+ }
+ return this.content;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/org/w3/_2000/_09/xmldsig/ManifestType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/org/w3/_2000/_09/xmldsig/ManifestType.java
new file mode 100644
index 000000000..8f55486fa
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/org/w3/_2000/_09/xmldsig/ManifestType.java
@@ -0,0 +1,111 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.org.w3._2000._09.xmldsig;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlID;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+
+
+/**
+ * <p>Java class for ManifestType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="ManifestType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element ref="{http://www.w3.org/2000/09/xmldsig#}Reference" maxOccurs="unbounded"/>
+ * &lt;/sequence>
+ * &lt;attribute name="Id" type="{http://www.w3.org/2001/XMLSchema}ID" />
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "ManifestType", propOrder = {
+ "reference"
+})
+public class ManifestType {
+
+ @XmlElement(name = "Reference", required = true)
+ protected List<ReferenceType> reference;
+ @XmlAttribute(name = "Id")
+ @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+ @XmlID
+ @XmlSchemaType(name = "ID")
+ protected String id;
+
+ /**
+ * Gets the value of the reference property.
+ *
+ * <p>
+ * 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 <CODE>set</CODE> method for the reference property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getReference().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link ReferenceType }
+ *
+ *
+ */
+ public List<ReferenceType> getReference() {
+ if (reference == null) {
+ reference = new ArrayList<ReferenceType>();
+ }
+ return this.reference;
+ }
+
+ /**
+ * Gets the value of the id property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getId() {
+ return id;
+ }
+
+ /**
+ * Sets the value of the id property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setId(String value) {
+ this.id = value;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/org/w3/_2000/_09/xmldsig/ObjectFactory.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/org/w3/_2000/_09/xmldsig/ObjectFactory.java
new file mode 100644
index 000000000..621d32125
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/org/w3/_2000/_09/xmldsig/ObjectFactory.java
@@ -0,0 +1,559 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.org.w3._2000._09.xmldsig;
+
+import java.math.BigInteger;
+import javax.xml.bind.JAXBElement;
+import javax.xml.bind.annotation.XmlElementDecl;
+import javax.xml.bind.annotation.XmlRegistry;
+import javax.xml.namespace.QName;
+
+
+/**
+ * This object contains factory methods for each
+ * Java content interface and Java element interface
+ * generated in the org.w3._2000._09.xmldsig package.
+ * <p>An ObjectFactory allows you to programatically
+ * construct new instances of the Java representation
+ * for XML content. The Java representation of XML
+ * content can consist of schema derived interfaces
+ * and classes representing the binding of schema
+ * type definitions, element declarations and model
+ * groups. Factory methods for each of these are
+ * provided in this class.
+ *
+ */
+@XmlRegistry
+public class ObjectFactory {
+
+ private final static QName _SignatureMethodTypeHMACOutputLength_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "HMACOutputLength");
+ private final static QName _PGPData_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "PGPData");
+ private final static QName _SPKIData_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "SPKIData");
+ private final static QName _RetrievalMethod_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "RetrievalMethod");
+ private final static QName _CanonicalizationMethod_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "CanonicalizationMethod");
+ private final static QName _SignatureProperty_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "SignatureProperty");
+ private final static QName _Manifest_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "Manifest");
+ private final static QName _Transforms_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "Transforms");
+ private final static QName _SignatureMethod_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "SignatureMethod");
+ private final static QName _KeyInfo_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "KeyInfo");
+ private final static QName _DigestMethod_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "DigestMethod");
+ private final static QName _MgmtData_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "MgmtData");
+ private final static QName _Reference_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "Reference");
+ private final static QName _RSAKeyValue_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "RSAKeyValue");
+ private final static QName _Signature_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "Signature");
+ private final static QName _DSAKeyValue_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "DSAKeyValue");
+ private final static QName _SignedInfo_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "SignedInfo");
+ private final static QName _Object_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "Object");
+ private final static QName _SignatureValue_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "SignatureValue");
+ private final static QName _Transform_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "Transform");
+ private final static QName _X509Data_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "X509Data");
+ private final static QName _DigestValue_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "DigestValue");
+ private final static QName _SignatureProperties_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "SignatureProperties");
+ private final static QName _KeyName_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "KeyName");
+ private final static QName _KeyValue_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "KeyValue");
+ private final static QName _SPKIDataTypeSPKISexp_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "SPKISexp");
+ private final static QName _PGPDataTypePGPKeyID_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "PGPKeyID");
+ private final static QName _PGPDataTypePGPKeyPacket_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "PGPKeyPacket");
+ private final static QName _X509DataTypeX509IssuerSerial_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "X509IssuerSerial");
+ private final static QName _X509DataTypeX509Certificate_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "X509Certificate");
+ private final static QName _X509DataTypeX509SKI_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "X509SKI");
+ private final static QName _X509DataTypeX509SubjectName_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "X509SubjectName");
+ private final static QName _X509DataTypeX509CRL_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "X509CRL");
+ private final static QName _TransformTypeXPath_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "XPath");
+
+ /**
+ * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: org.w3._2000._09.xmldsig
+ *
+ */
+ public ObjectFactory() {
+ }
+
+ /**
+ * Create an instance of {@link KeyInfoType }
+ *
+ */
+ public KeyInfoType createKeyInfoType() {
+ return new KeyInfoType();
+ }
+
+ /**
+ * Create an instance of {@link SignedInfoType }
+ *
+ */
+ public SignedInfoType createSignedInfoType() {
+ return new SignedInfoType();
+ }
+
+ /**
+ * Create an instance of {@link RetrievalMethodType }
+ *
+ */
+ public RetrievalMethodType createRetrievalMethodType() {
+ return new RetrievalMethodType();
+ }
+
+ /**
+ * Create an instance of {@link DigestMethodType }
+ *
+ */
+ public DigestMethodType createDigestMethodType() {
+ return new DigestMethodType();
+ }
+
+ /**
+ * Create an instance of {@link SignatureMethodType }
+ *
+ */
+ public SignatureMethodType createSignatureMethodType() {
+ return new SignatureMethodType();
+ }
+
+ /**
+ * Create an instance of {@link SPKIDataType }
+ *
+ */
+ public SPKIDataType createSPKIDataType() {
+ return new SPKIDataType();
+ }
+
+ /**
+ * Create an instance of {@link X509DataType }
+ *
+ */
+ public X509DataType createX509DataType() {
+ return new X509DataType();
+ }
+
+ /**
+ * Create an instance of {@link PGPDataType }
+ *
+ */
+ public PGPDataType createPGPDataType() {
+ return new PGPDataType();
+ }
+
+ /**
+ * Create an instance of {@link SignatureType }
+ *
+ */
+ public SignatureType createSignatureType() {
+ return new SignatureType();
+ }
+
+ /**
+ * Create an instance of {@link DSAKeyValueType }
+ *
+ */
+ public DSAKeyValueType createDSAKeyValueType() {
+ return new DSAKeyValueType();
+ }
+
+ /**
+ * Create an instance of {@link ManifestType }
+ *
+ */
+ public ManifestType createManifestType() {
+ return new ManifestType();
+ }
+
+ /**
+ * Create an instance of {@link SignatureValueType }
+ *
+ */
+ public SignatureValueType createSignatureValueType() {
+ return new SignatureValueType();
+ }
+
+ /**
+ * Create an instance of {@link TransformsType }
+ *
+ */
+ public TransformsType createTransformsType() {
+ return new TransformsType();
+ }
+
+ /**
+ * Create an instance of {@link RSAKeyValueType }
+ *
+ */
+ public RSAKeyValueType createRSAKeyValueType() {
+ return new RSAKeyValueType();
+ }
+
+ /**
+ * Create an instance of {@link TransformType }
+ *
+ */
+ public TransformType createTransformType() {
+ return new TransformType();
+ }
+
+ /**
+ * Create an instance of {@link SignaturePropertyType }
+ *
+ */
+ public SignaturePropertyType createSignaturePropertyType() {
+ return new SignaturePropertyType();
+ }
+
+ /**
+ * Create an instance of {@link KeyValueType }
+ *
+ */
+ public KeyValueType createKeyValueType() {
+ return new KeyValueType();
+ }
+
+ /**
+ * Create an instance of {@link ReferenceType }
+ *
+ */
+ public ReferenceType createReferenceType() {
+ return new ReferenceType();
+ }
+
+ /**
+ * Create an instance of {@link CanonicalizationMethodType }
+ *
+ */
+ public CanonicalizationMethodType createCanonicalizationMethodType() {
+ return new CanonicalizationMethodType();
+ }
+
+ /**
+ * Create an instance of {@link SignaturePropertiesType }
+ *
+ */
+ public SignaturePropertiesType createSignaturePropertiesType() {
+ return new SignaturePropertiesType();
+ }
+
+ /**
+ * Create an instance of {@link ObjectType }
+ *
+ */
+ public ObjectType createObjectType() {
+ return new ObjectType();
+ }
+
+ /**
+ * Create an instance of {@link X509IssuerSerialType }
+ *
+ */
+ public X509IssuerSerialType createX509IssuerSerialType() {
+ return new X509IssuerSerialType();
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link BigInteger }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#", name = "HMACOutputLength", scope = SignatureMethodType.class)
+ public JAXBElement<BigInteger> createSignatureMethodTypeHMACOutputLength(BigInteger value) {
+ return new JAXBElement<BigInteger>(_SignatureMethodTypeHMACOutputLength_QNAME, BigInteger.class, SignatureMethodType.class, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link PGPDataType }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#", name = "PGPData")
+ public JAXBElement<PGPDataType> createPGPData(PGPDataType value) {
+ return new JAXBElement<PGPDataType>(_PGPData_QNAME, PGPDataType.class, null, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link SPKIDataType }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#", name = "SPKIData")
+ public JAXBElement<SPKIDataType> createSPKIData(SPKIDataType value) {
+ return new JAXBElement<SPKIDataType>(_SPKIData_QNAME, SPKIDataType.class, null, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link RetrievalMethodType }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#", name = "RetrievalMethod")
+ public JAXBElement<RetrievalMethodType> createRetrievalMethod(RetrievalMethodType value) {
+ return new JAXBElement<RetrievalMethodType>(_RetrievalMethod_QNAME, RetrievalMethodType.class, null, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link CanonicalizationMethodType }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#", name = "CanonicalizationMethod")
+ public JAXBElement<CanonicalizationMethodType> createCanonicalizationMethod(CanonicalizationMethodType value) {
+ return new JAXBElement<CanonicalizationMethodType>(_CanonicalizationMethod_QNAME, CanonicalizationMethodType.class, null, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link SignaturePropertyType }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#", name = "SignatureProperty")
+ public JAXBElement<SignaturePropertyType> createSignatureProperty(SignaturePropertyType value) {
+ return new JAXBElement<SignaturePropertyType>(_SignatureProperty_QNAME, SignaturePropertyType.class, null, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link ManifestType }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#", name = "Manifest")
+ public JAXBElement<ManifestType> createManifest(ManifestType value) {
+ return new JAXBElement<ManifestType>(_Manifest_QNAME, ManifestType.class, null, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link TransformsType }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#", name = "Transforms")
+ public JAXBElement<TransformsType> createTransforms(TransformsType value) {
+ return new JAXBElement<TransformsType>(_Transforms_QNAME, TransformsType.class, null, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link SignatureMethodType }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#", name = "SignatureMethod")
+ public JAXBElement<SignatureMethodType> createSignatureMethod(SignatureMethodType value) {
+ return new JAXBElement<SignatureMethodType>(_SignatureMethod_QNAME, SignatureMethodType.class, null, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link KeyInfoType }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#", name = "KeyInfo")
+ public JAXBElement<KeyInfoType> createKeyInfo(KeyInfoType value) {
+ return new JAXBElement<KeyInfoType>(_KeyInfo_QNAME, KeyInfoType.class, null, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link DigestMethodType }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#", name = "DigestMethod")
+ public JAXBElement<DigestMethodType> createDigestMethod(DigestMethodType value) {
+ return new JAXBElement<DigestMethodType>(_DigestMethod_QNAME, DigestMethodType.class, null, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#", name = "MgmtData")
+ public JAXBElement<String> createMgmtData(String value) {
+ return new JAXBElement<String>(_MgmtData_QNAME, String.class, null, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link ReferenceType }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#", name = "Reference")
+ public JAXBElement<ReferenceType> createReference(ReferenceType value) {
+ return new JAXBElement<ReferenceType>(_Reference_QNAME, ReferenceType.class, null, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link RSAKeyValueType }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#", name = "RSAKeyValue")
+ public JAXBElement<RSAKeyValueType> createRSAKeyValue(RSAKeyValueType value) {
+ return new JAXBElement<RSAKeyValueType>(_RSAKeyValue_QNAME, RSAKeyValueType.class, null, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link SignatureType }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#", name = "Signature")
+ public JAXBElement<SignatureType> createSignature(SignatureType value) {
+ return new JAXBElement<SignatureType>(_Signature_QNAME, SignatureType.class, null, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link DSAKeyValueType }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#", name = "DSAKeyValue")
+ public JAXBElement<DSAKeyValueType> createDSAKeyValue(DSAKeyValueType value) {
+ return new JAXBElement<DSAKeyValueType>(_DSAKeyValue_QNAME, DSAKeyValueType.class, null, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link SignedInfoType }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#", name = "SignedInfo")
+ public JAXBElement<SignedInfoType> createSignedInfo(SignedInfoType value) {
+ return new JAXBElement<SignedInfoType>(_SignedInfo_QNAME, SignedInfoType.class, null, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link ObjectType }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#", name = "Object")
+ public JAXBElement<ObjectType> createObject(ObjectType value) {
+ return new JAXBElement<ObjectType>(_Object_QNAME, ObjectType.class, null, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link SignatureValueType }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#", name = "SignatureValue")
+ public JAXBElement<SignatureValueType> createSignatureValue(SignatureValueType value) {
+ return new JAXBElement<SignatureValueType>(_SignatureValue_QNAME, SignatureValueType.class, null, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link TransformType }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#", name = "Transform")
+ public JAXBElement<TransformType> createTransform(TransformType value) {
+ return new JAXBElement<TransformType>(_Transform_QNAME, TransformType.class, null, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link X509DataType }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#", name = "X509Data")
+ public JAXBElement<X509DataType> createX509Data(X509DataType value) {
+ return new JAXBElement<X509DataType>(_X509Data_QNAME, X509DataType.class, null, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link byte[]}{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#", name = "DigestValue")
+ public JAXBElement<byte[]> createDigestValue(byte[] value) {
+ return new JAXBElement<byte[]>(_DigestValue_QNAME, byte[].class, null, ((byte[]) value));
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link SignaturePropertiesType }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#", name = "SignatureProperties")
+ public JAXBElement<SignaturePropertiesType> createSignatureProperties(SignaturePropertiesType value) {
+ return new JAXBElement<SignaturePropertiesType>(_SignatureProperties_QNAME, SignaturePropertiesType.class, null, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#", name = "KeyName")
+ public JAXBElement<String> createKeyName(String value) {
+ return new JAXBElement<String>(_KeyName_QNAME, String.class, null, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link KeyValueType }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#", name = "KeyValue")
+ public JAXBElement<KeyValueType> createKeyValue(KeyValueType value) {
+ return new JAXBElement<KeyValueType>(_KeyValue_QNAME, KeyValueType.class, null, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link byte[]}{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#", name = "SPKISexp", scope = SPKIDataType.class)
+ public JAXBElement<byte[]> createSPKIDataTypeSPKISexp(byte[] value) {
+ return new JAXBElement<byte[]>(_SPKIDataTypeSPKISexp_QNAME, byte[].class, SPKIDataType.class, ((byte[]) value));
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link byte[]}{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#", name = "PGPKeyID", scope = PGPDataType.class)
+ public JAXBElement<byte[]> createPGPDataTypePGPKeyID(byte[] value) {
+ return new JAXBElement<byte[]>(_PGPDataTypePGPKeyID_QNAME, byte[].class, PGPDataType.class, ((byte[]) value));
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link byte[]}{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#", name = "PGPKeyPacket", scope = PGPDataType.class)
+ public JAXBElement<byte[]> createPGPDataTypePGPKeyPacket(byte[] value) {
+ return new JAXBElement<byte[]>(_PGPDataTypePGPKeyPacket_QNAME, byte[].class, PGPDataType.class, ((byte[]) value));
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link X509IssuerSerialType }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#", name = "X509IssuerSerial", scope = X509DataType.class)
+ public JAXBElement<X509IssuerSerialType> createX509DataTypeX509IssuerSerial(X509IssuerSerialType value) {
+ return new JAXBElement<X509IssuerSerialType>(_X509DataTypeX509IssuerSerial_QNAME, X509IssuerSerialType.class, X509DataType.class, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link byte[]}{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#", name = "X509Certificate", scope = X509DataType.class)
+ public JAXBElement<byte[]> createX509DataTypeX509Certificate(byte[] value) {
+ return new JAXBElement<byte[]>(_X509DataTypeX509Certificate_QNAME, byte[].class, X509DataType.class, ((byte[]) value));
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link byte[]}{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#", name = "X509SKI", scope = X509DataType.class)
+ public JAXBElement<byte[]> createX509DataTypeX509SKI(byte[] value) {
+ return new JAXBElement<byte[]>(_X509DataTypeX509SKI_QNAME, byte[].class, X509DataType.class, ((byte[]) value));
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#", name = "X509SubjectName", scope = X509DataType.class)
+ public JAXBElement<String> createX509DataTypeX509SubjectName(String value) {
+ return new JAXBElement<String>(_X509DataTypeX509SubjectName_QNAME, String.class, X509DataType.class, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link byte[]}{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#", name = "X509CRL", scope = X509DataType.class)
+ public JAXBElement<byte[]> createX509DataTypeX509CRL(byte[] value) {
+ return new JAXBElement<byte[]>(_X509DataTypeX509CRL_QNAME, byte[].class, X509DataType.class, ((byte[]) value));
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#", name = "XPath", scope = TransformType.class)
+ public JAXBElement<String> createTransformTypeXPath(String value) {
+ return new JAXBElement<String>(_TransformTypeXPath_QNAME, String.class, TransformType.class, value);
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/org/w3/_2000/_09/xmldsig/ObjectType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/org/w3/_2000/_09/xmldsig/ObjectType.java
new file mode 100644
index 000000000..0c4509139
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/org/w3/_2000/_09/xmldsig/ObjectType.java
@@ -0,0 +1,171 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.org.w3._2000._09.xmldsig;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlID;
+import javax.xml.bind.annotation.XmlMixed;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+import org.w3c.dom.Element;
+
+
+/**
+ * <p>Java class for ObjectType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="ObjectType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence maxOccurs="unbounded" minOccurs="0">
+ * &lt;any processContents='lax'/>
+ * &lt;/sequence>
+ * &lt;attribute name="Id" type="{http://www.w3.org/2001/XMLSchema}ID" />
+ * &lt;attribute name="MimeType" type="{http://www.w3.org/2001/XMLSchema}string" />
+ * &lt;attribute name="Encoding" type="{http://www.w3.org/2001/XMLSchema}anyURI" />
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "ObjectType", propOrder = {
+ "content"
+})
+public class ObjectType {
+
+ @XmlMixed
+ @XmlAnyElement(lax = true)
+ protected List<Object> content;
+ @XmlAttribute(name = "Id")
+ @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+ @XmlID
+ @XmlSchemaType(name = "ID")
+ protected String id;
+ @XmlAttribute(name = "MimeType")
+ protected String mimeType;
+ @XmlAttribute(name = "Encoding")
+ @XmlSchemaType(name = "anyURI")
+ protected String encoding;
+
+ /**
+ * Gets the value of the content property.
+ *
+ * <p>
+ * 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 <CODE>set</CODE> method for the content property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getContent().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link Object }
+ * {@link Element }
+ * {@link String }
+ *
+ *
+ */
+ public List<Object> getContent() {
+ if (content == null) {
+ content = new ArrayList<Object>();
+ }
+ return this.content;
+ }
+
+ /**
+ * Gets the value of the id property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getId() {
+ return id;
+ }
+
+ /**
+ * Sets the value of the id property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setId(String value) {
+ this.id = value;
+ }
+
+ /**
+ * Gets the value of the mimeType property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getMimeType() {
+ return mimeType;
+ }
+
+ /**
+ * Sets the value of the mimeType property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setMimeType(String value) {
+ this.mimeType = value;
+ }
+
+ /**
+ * Gets the value of the encoding property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getEncoding() {
+ return encoding;
+ }
+
+ /**
+ * Sets the value of the encoding property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setEncoding(String value) {
+ this.encoding = value;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/org/w3/_2000/_09/xmldsig/PGPDataType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/org/w3/_2000/_09/xmldsig/PGPDataType.java
new file mode 100644
index 000000000..8c0e1ceaa
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/org/w3/_2000/_09/xmldsig/PGPDataType.java
@@ -0,0 +1,105 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.org.w3._2000._09.xmldsig;
+
+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.XmlAnyElement;
+import javax.xml.bind.annotation.XmlElementRef;
+import javax.xml.bind.annotation.XmlElementRefs;
+import javax.xml.bind.annotation.XmlType;
+import org.w3c.dom.Element;
+
+
+/**
+ * <p>Java class for PGPDataType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="PGPDataType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;choice>
+ * &lt;sequence>
+ * &lt;element name="PGPKeyID" type="{http://www.w3.org/2001/XMLSchema}base64Binary"/>
+ * &lt;element name="PGPKeyPacket" type="{http://www.w3.org/2001/XMLSchema}base64Binary" minOccurs="0"/>
+ * &lt;any processContents='lax' namespace='##other' maxOccurs="unbounded" minOccurs="0"/>
+ * &lt;/sequence>
+ * &lt;sequence>
+ * &lt;element name="PGPKeyPacket" type="{http://www.w3.org/2001/XMLSchema}base64Binary"/>
+ * &lt;any processContents='lax' namespace='##other' maxOccurs="unbounded" minOccurs="0"/>
+ * &lt;/sequence>
+ * &lt;/choice>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "PGPDataType", propOrder = {
+ "content"
+})
+public class PGPDataType {
+
+ @XmlElementRefs({
+ @XmlElementRef(name = "PGPKeyPacket", namespace = "http://www.w3.org/2000/09/xmldsig#", type = JAXBElement.class, required = false),
+ @XmlElementRef(name = "PGPKeyID", namespace = "http://www.w3.org/2000/09/xmldsig#", type = JAXBElement.class, required = false)
+ })
+ @XmlAnyElement(lax = true)
+ protected List<Object> content;
+
+ /**
+ * Gets the rest of the content model.
+ *
+ * <p>
+ * You are getting this "catch-all" property because of the following reason:
+ * The field name "PGPKeyPacket" is used by two different parts of a schema. See:
+ * line 209 of file:/C:/Source/LatestSource/webgate.ec.europa.eu/branches/IS_branch/Commons/src/main/resources/schema/xmldsig-core-schema.xsd
+ * line 204 of file:/C:/Source/LatestSource/webgate.ec.europa.eu/branches/IS_branch/Commons/src/main/resources/schema/xmldsig-core-schema.xsd
+ * <p>
+ * To get rid of this property, apply a property customization to one
+ * of both of the following declarations to change their names:
+ * Gets the value of the content property.
+ *
+ * <p>
+ * 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 <CODE>set</CODE> method for the content property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getContent().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link Object }
+ * {@link JAXBElement }{@code <}{@link byte[]}{@code >}
+ * {@link Element }
+ * {@link JAXBElement }{@code <}{@link byte[]}{@code >}
+ *
+ *
+ */
+ public List<Object> getContent() {
+ if (content == null) {
+ content = new ArrayList<Object>();
+ }
+ return this.content;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/org/w3/_2000/_09/xmldsig/RSAKeyValueType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/org/w3/_2000/_09/xmldsig/RSAKeyValueType.java
new file mode 100644
index 000000000..892944965
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/org/w3/_2000/_09/xmldsig/RSAKeyValueType.java
@@ -0,0 +1,93 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.org.w3._2000._09.xmldsig;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for RSAKeyValueType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="RSAKeyValueType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="Modulus" type="{http://www.w3.org/2000/09/xmldsig#}CryptoBinary"/>
+ * &lt;element name="Exponent" type="{http://www.w3.org/2000/09/xmldsig#}CryptoBinary"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "RSAKeyValueType", propOrder = {
+ "modulus",
+ "exponent"
+})
+public class RSAKeyValueType {
+
+ @XmlElement(name = "Modulus", required = true)
+ protected byte[] modulus;
+ @XmlElement(name = "Exponent", required = true)
+ protected byte[] exponent;
+
+ /**
+ * Gets the value of the modulus property.
+ *
+ * @return
+ * possible object is
+ * byte[]
+ */
+ public byte[] getModulus() {
+ return modulus;
+ }
+
+ /**
+ * Sets the value of the modulus property.
+ *
+ * @param value
+ * allowed object is
+ * byte[]
+ */
+ public void setModulus(byte[] value) {
+ this.modulus = value;
+ }
+
+ /**
+ * Gets the value of the exponent property.
+ *
+ * @return
+ * possible object is
+ * byte[]
+ */
+ public byte[] getExponent() {
+ return exponent;
+ }
+
+ /**
+ * Sets the value of the exponent property.
+ *
+ * @param value
+ * allowed object is
+ * byte[]
+ */
+ public void setExponent(byte[] value) {
+ this.exponent = value;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/org/w3/_2000/_09/xmldsig/ReferenceType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/org/w3/_2000/_09/xmldsig/ReferenceType.java
new file mode 100644
index 000000000..117949e65
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/org/w3/_2000/_09/xmldsig/ReferenceType.java
@@ -0,0 +1,214 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.org.w3._2000._09.xmldsig;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlID;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+
+
+/**
+ * <p>Java class for ReferenceType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="ReferenceType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element ref="{http://www.w3.org/2000/09/xmldsig#}Transforms" minOccurs="0"/>
+ * &lt;element ref="{http://www.w3.org/2000/09/xmldsig#}DigestMethod"/>
+ * &lt;element ref="{http://www.w3.org/2000/09/xmldsig#}DigestValue"/>
+ * &lt;/sequence>
+ * &lt;attribute name="Id" type="{http://www.w3.org/2001/XMLSchema}ID" />
+ * &lt;attribute name="URI" type="{http://www.w3.org/2001/XMLSchema}anyURI" />
+ * &lt;attribute name="Type" type="{http://www.w3.org/2001/XMLSchema}anyURI" />
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "ReferenceType", propOrder = {
+ "transforms",
+ "digestMethod",
+ "digestValue"
+})
+public class ReferenceType {
+
+ @XmlElement(name = "Transforms")
+ protected TransformsType transforms;
+ @XmlElement(name = "DigestMethod", required = true)
+ protected DigestMethodType digestMethod;
+ @XmlElement(name = "DigestValue", required = true)
+ protected byte[] digestValue;
+ @XmlAttribute(name = "Id")
+ @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+ @XmlID
+ @XmlSchemaType(name = "ID")
+ protected String id;
+ @XmlAttribute(name = "URI")
+ @XmlSchemaType(name = "anyURI")
+ protected String uri;
+ @XmlAttribute(name = "Type")
+ @XmlSchemaType(name = "anyURI")
+ protected String type;
+
+ /**
+ * Gets the value of the transforms property.
+ *
+ * @return
+ * possible object is
+ * {@link TransformsType }
+ *
+ */
+ public TransformsType getTransforms() {
+ return transforms;
+ }
+
+ /**
+ * Sets the value of the transforms property.
+ *
+ * @param value
+ * allowed object is
+ * {@link TransformsType }
+ *
+ */
+ public void setTransforms(TransformsType value) {
+ this.transforms = value;
+ }
+
+ /**
+ * Gets the value of the digestMethod property.
+ *
+ * @return
+ * possible object is
+ * {@link DigestMethodType }
+ *
+ */
+ public DigestMethodType getDigestMethod() {
+ return digestMethod;
+ }
+
+ /**
+ * Sets the value of the digestMethod property.
+ *
+ * @param value
+ * allowed object is
+ * {@link DigestMethodType }
+ *
+ */
+ public void setDigestMethod(DigestMethodType value) {
+ this.digestMethod = value;
+ }
+
+ /**
+ * Gets the value of the digestValue property.
+ *
+ * @return
+ * possible object is
+ * byte[]
+ */
+ public byte[] getDigestValue() {
+ return digestValue;
+ }
+
+ /**
+ * Sets the value of the digestValue property.
+ *
+ * @param value
+ * allowed object is
+ * byte[]
+ */
+ public void setDigestValue(byte[] value) {
+ this.digestValue = value;
+ }
+
+ /**
+ * Gets the value of the id property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getId() {
+ return id;
+ }
+
+ /**
+ * Sets the value of the id property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setId(String value) {
+ this.id = value;
+ }
+
+ /**
+ * Gets the value of the uri property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getURI() {
+ return uri;
+ }
+
+ /**
+ * Sets the value of the uri property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setURI(String value) {
+ this.uri = value;
+ }
+
+ /**
+ * Gets the value of the type property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getType() {
+ return type;
+ }
+
+ /**
+ * Sets the value of the type property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setType(String value) {
+ this.type = value;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/org/w3/_2000/_09/xmldsig/RetrievalMethodType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/org/w3/_2000/_09/xmldsig/RetrievalMethodType.java
new file mode 100644
index 000000000..a8da5c998
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/org/w3/_2000/_09/xmldsig/RetrievalMethodType.java
@@ -0,0 +1,127 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.org.w3._2000._09.xmldsig;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for RetrievalMethodType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="RetrievalMethodType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element ref="{http://www.w3.org/2000/09/xmldsig#}Transforms" minOccurs="0"/>
+ * &lt;/sequence>
+ * &lt;attribute name="URI" type="{http://www.w3.org/2001/XMLSchema}anyURI" />
+ * &lt;attribute name="Type" type="{http://www.w3.org/2001/XMLSchema}anyURI" />
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "RetrievalMethodType", propOrder = {
+ "transforms"
+})
+public class RetrievalMethodType {
+
+ @XmlElement(name = "Transforms")
+ protected TransformsType transforms;
+ @XmlAttribute(name = "URI")
+ @XmlSchemaType(name = "anyURI")
+ protected String uri;
+ @XmlAttribute(name = "Type")
+ @XmlSchemaType(name = "anyURI")
+ protected String type;
+
+ /**
+ * Gets the value of the transforms property.
+ *
+ * @return
+ * possible object is
+ * {@link TransformsType }
+ *
+ */
+ public TransformsType getTransforms() {
+ return transforms;
+ }
+
+ /**
+ * Sets the value of the transforms property.
+ *
+ * @param value
+ * allowed object is
+ * {@link TransformsType }
+ *
+ */
+ public void setTransforms(TransformsType value) {
+ this.transforms = value;
+ }
+
+ /**
+ * Gets the value of the uri property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getURI() {
+ return uri;
+ }
+
+ /**
+ * Sets the value of the uri property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setURI(String value) {
+ this.uri = value;
+ }
+
+ /**
+ * Gets the value of the type property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getType() {
+ return type;
+ }
+
+ /**
+ * Sets the value of the type property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setType(String value) {
+ this.type = value;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/org/w3/_2000/_09/xmldsig/SPKIDataType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/org/w3/_2000/_09/xmldsig/SPKIDataType.java
new file mode 100644
index 000000000..a8154f49f
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/org/w3/_2000/_09/xmldsig/SPKIDataType.java
@@ -0,0 +1,83 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.org.w3._2000._09.xmldsig;
+
+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.XmlAnyElement;
+import javax.xml.bind.annotation.XmlElementRef;
+import javax.xml.bind.annotation.XmlType;
+import org.w3c.dom.Element;
+
+
+/**
+ * <p>Java class for SPKIDataType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="SPKIDataType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence maxOccurs="unbounded">
+ * &lt;element name="SPKISexp" type="{http://www.w3.org/2001/XMLSchema}base64Binary"/>
+ * &lt;any processContents='lax' namespace='##other' minOccurs="0"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "SPKIDataType", propOrder = {
+ "spkiSexpAndAny"
+})
+public class SPKIDataType {
+
+ @XmlElementRef(name = "SPKISexp", namespace = "http://www.w3.org/2000/09/xmldsig#", type = JAXBElement.class)
+ @XmlAnyElement(lax = true)
+ protected List<Object> spkiSexpAndAny;
+
+ /**
+ * Gets the value of the spkiSexpAndAny property.
+ *
+ * <p>
+ * 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 <CODE>set</CODE> method for the spkiSexpAndAny property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getSPKISexpAndAny().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link Element }
+ * {@link JAXBElement }{@code <}{@link byte[]}{@code >}
+ * {@link Object }
+ *
+ *
+ */
+ public List<Object> getSPKISexpAndAny() {
+ if (spkiSexpAndAny == null) {
+ spkiSexpAndAny = new ArrayList<Object>();
+ }
+ return this.spkiSexpAndAny;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/org/w3/_2000/_09/xmldsig/SignatureMethodType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/org/w3/_2000/_09/xmldsig/SignatureMethodType.java
new file mode 100644
index 000000000..20c22bd5b
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/org/w3/_2000/_09/xmldsig/SignatureMethodType.java
@@ -0,0 +1,115 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.org.w3._2000._09.xmldsig;
+
+import java.math.BigInteger;
+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.XmlAnyElement;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElementRef;
+import javax.xml.bind.annotation.XmlMixed;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for SignatureMethodType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="SignatureMethodType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="HMACOutputLength" type="{http://www.w3.org/2000/09/xmldsig#}HMACOutputLengthType" minOccurs="0"/>
+ * &lt;any namespace='##other' maxOccurs="unbounded" minOccurs="0"/>
+ * &lt;/sequence>
+ * &lt;attribute name="Algorithm" use="required" type="{http://www.w3.org/2001/XMLSchema}anyURI" />
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "SignatureMethodType", propOrder = {
+ "content"
+})
+public class SignatureMethodType {
+
+ @XmlElementRef(name = "HMACOutputLength", namespace = "http://www.w3.org/2000/09/xmldsig#", type = JAXBElement.class, required = false)
+ @XmlMixed
+ @XmlAnyElement(lax = true)
+ protected List<Object> content;
+ @XmlAttribute(name = "Algorithm", required = true)
+ @XmlSchemaType(name = "anyURI")
+ protected String algorithm;
+
+ /**
+ * Gets the value of the content property.
+ *
+ * <p>
+ * 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 <CODE>set</CODE> method for the content property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getContent().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link JAXBElement }{@code <}{@link BigInteger }{@code >}
+ * {@link Object }
+ * {@link String }
+ *
+ *
+ */
+ public List<Object> getContent() {
+ if (content == null) {
+ content = new ArrayList<Object>();
+ }
+ return this.content;
+ }
+
+ /**
+ * Gets the value of the algorithm property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getAlgorithm() {
+ return algorithm;
+ }
+
+ /**
+ * Sets the value of the algorithm property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setAlgorithm(String value) {
+ this.algorithm = value;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/org/w3/_2000/_09/xmldsig/SignaturePropertiesType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/org/w3/_2000/_09/xmldsig/SignaturePropertiesType.java
new file mode 100644
index 000000000..163e314d3
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/org/w3/_2000/_09/xmldsig/SignaturePropertiesType.java
@@ -0,0 +1,111 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.org.w3._2000._09.xmldsig;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlID;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+
+
+/**
+ * <p>Java class for SignaturePropertiesType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="SignaturePropertiesType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element ref="{http://www.w3.org/2000/09/xmldsig#}SignatureProperty" maxOccurs="unbounded"/>
+ * &lt;/sequence>
+ * &lt;attribute name="Id" type="{http://www.w3.org/2001/XMLSchema}ID" />
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "SignaturePropertiesType", propOrder = {
+ "signatureProperty"
+})
+public class SignaturePropertiesType {
+
+ @XmlElement(name = "SignatureProperty", required = true)
+ protected List<SignaturePropertyType> signatureProperty;
+ @XmlAttribute(name = "Id")
+ @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+ @XmlID
+ @XmlSchemaType(name = "ID")
+ protected String id;
+
+ /**
+ * Gets the value of the signatureProperty property.
+ *
+ * <p>
+ * 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 <CODE>set</CODE> method for the signatureProperty property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getSignatureProperty().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link SignaturePropertyType }
+ *
+ *
+ */
+ public List<SignaturePropertyType> getSignatureProperty() {
+ if (signatureProperty == null) {
+ signatureProperty = new ArrayList<SignaturePropertyType>();
+ }
+ return this.signatureProperty;
+ }
+
+ /**
+ * Gets the value of the id property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getId() {
+ return id;
+ }
+
+ /**
+ * Sets the value of the id property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setId(String value) {
+ this.id = value;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/org/w3/_2000/_09/xmldsig/SignaturePropertyType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/org/w3/_2000/_09/xmldsig/SignaturePropertyType.java
new file mode 100644
index 000000000..1963a7399
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/org/w3/_2000/_09/xmldsig/SignaturePropertyType.java
@@ -0,0 +1,144 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.org.w3._2000._09.xmldsig;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlID;
+import javax.xml.bind.annotation.XmlMixed;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+import org.w3c.dom.Element;
+
+
+/**
+ * <p>Java class for SignaturePropertyType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="SignaturePropertyType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;choice maxOccurs="unbounded">
+ * &lt;any processContents='lax' namespace='##other'/>
+ * &lt;/choice>
+ * &lt;attribute name="Target" use="required" type="{http://www.w3.org/2001/XMLSchema}anyURI" />
+ * &lt;attribute name="Id" type="{http://www.w3.org/2001/XMLSchema}ID" />
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "SignaturePropertyType", propOrder = {
+ "content"
+})
+public class SignaturePropertyType {
+
+ @XmlMixed
+ @XmlAnyElement(lax = true)
+ protected List<Object> content;
+ @XmlAttribute(name = "Target", required = true)
+ @XmlSchemaType(name = "anyURI")
+ protected String target;
+ @XmlAttribute(name = "Id")
+ @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+ @XmlID
+ @XmlSchemaType(name = "ID")
+ protected String id;
+
+ /**
+ * Gets the value of the content property.
+ *
+ * <p>
+ * 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 <CODE>set</CODE> method for the content property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getContent().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link Object }
+ * {@link Element }
+ * {@link String }
+ *
+ *
+ */
+ public List<Object> getContent() {
+ if (content == null) {
+ content = new ArrayList<Object>();
+ }
+ return this.content;
+ }
+
+ /**
+ * Gets the value of the target property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getTarget() {
+ return target;
+ }
+
+ /**
+ * Sets the value of the target property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setTarget(String value) {
+ this.target = value;
+ }
+
+ /**
+ * Gets the value of the id property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getId() {
+ return id;
+ }
+
+ /**
+ * Sets the value of the id property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setId(String value) {
+ this.id = value;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/org/w3/_2000/_09/xmldsig/SignatureType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/org/w3/_2000/_09/xmldsig/SignatureType.java
new file mode 100644
index 000000000..3e7a1b97c
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/org/w3/_2000/_09/xmldsig/SignatureType.java
@@ -0,0 +1,195 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.org.w3._2000._09.xmldsig;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlID;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+
+
+/**
+ * <p>Java class for SignatureType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="SignatureType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element ref="{http://www.w3.org/2000/09/xmldsig#}SignedInfo"/>
+ * &lt;element ref="{http://www.w3.org/2000/09/xmldsig#}SignatureValue"/>
+ * &lt;element ref="{http://www.w3.org/2000/09/xmldsig#}KeyInfo" minOccurs="0"/>
+ * &lt;element ref="{http://www.w3.org/2000/09/xmldsig#}Object" maxOccurs="unbounded" minOccurs="0"/>
+ * &lt;/sequence>
+ * &lt;attribute name="Id" type="{http://www.w3.org/2001/XMLSchema}ID" />
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "SignatureType", propOrder = {
+ "signedInfo",
+ "signatureValue",
+ "keyInfo",
+ "object"
+})
+public class SignatureType {
+
+ @XmlElement(name = "SignedInfo", required = true)
+ protected SignedInfoType signedInfo;
+ @XmlElement(name = "SignatureValue", required = true)
+ protected SignatureValueType signatureValue;
+ @XmlElement(name = "KeyInfo")
+ protected KeyInfoType keyInfo;
+ @XmlElement(name = "Object")
+ protected List<ObjectType> object;
+ @XmlAttribute(name = "Id")
+ @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+ @XmlID
+ @XmlSchemaType(name = "ID")
+ protected String id;
+
+ /**
+ * Gets the value of the signedInfo property.
+ *
+ * @return
+ * possible object is
+ * {@link SignedInfoType }
+ *
+ */
+ public SignedInfoType getSignedInfo() {
+ return signedInfo;
+ }
+
+ /**
+ * Sets the value of the signedInfo property.
+ *
+ * @param value
+ * allowed object is
+ * {@link SignedInfoType }
+ *
+ */
+ public void setSignedInfo(SignedInfoType value) {
+ this.signedInfo = value;
+ }
+
+ /**
+ * Gets the value of the signatureValue property.
+ *
+ * @return
+ * possible object is
+ * {@link SignatureValueType }
+ *
+ */
+ public SignatureValueType getSignatureValue() {
+ return signatureValue;
+ }
+
+ /**
+ * Sets the value of the signatureValue property.
+ *
+ * @param value
+ * allowed object is
+ * {@link SignatureValueType }
+ *
+ */
+ public void setSignatureValue(SignatureValueType value) {
+ this.signatureValue = value;
+ }
+
+ /**
+ * Gets the value of the keyInfo property.
+ *
+ * @return
+ * possible object is
+ * {@link KeyInfoType }
+ *
+ */
+ public KeyInfoType getKeyInfo() {
+ return keyInfo;
+ }
+
+ /**
+ * Sets the value of the keyInfo property.
+ *
+ * @param value
+ * allowed object is
+ * {@link KeyInfoType }
+ *
+ */
+ public void setKeyInfo(KeyInfoType value) {
+ this.keyInfo = value;
+ }
+
+ /**
+ * Gets the value of the object property.
+ *
+ * <p>
+ * 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 <CODE>set</CODE> method for the object property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getObject().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link ObjectType }
+ *
+ *
+ */
+ public List<ObjectType> getObject() {
+ if (object == null) {
+ object = new ArrayList<ObjectType>();
+ }
+ return this.object;
+ }
+
+ /**
+ * Gets the value of the id property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getId() {
+ return id;
+ }
+
+ /**
+ * Sets the value of the id property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setId(String value) {
+ this.id = value;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/org/w3/_2000/_09/xmldsig/SignatureValueType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/org/w3/_2000/_09/xmldsig/SignatureValueType.java
new file mode 100644
index 000000000..6ae095c5a
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/org/w3/_2000/_09/xmldsig/SignatureValueType.java
@@ -0,0 +1,99 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.org.w3._2000._09.xmldsig;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlID;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlValue;
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+
+
+/**
+ * <p>Java class for SignatureValueType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="SignatureValueType">
+ * &lt;simpleContent>
+ * &lt;extension base="&lt;http://www.w3.org/2001/XMLSchema>base64Binary">
+ * &lt;attribute name="Id" type="{http://www.w3.org/2001/XMLSchema}ID" />
+ * &lt;/extension>
+ * &lt;/simpleContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "SignatureValueType", propOrder = {
+ "value"
+})
+public class SignatureValueType {
+
+ @XmlValue
+ protected byte[] value;
+ @XmlAttribute(name = "Id")
+ @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+ @XmlID
+ @XmlSchemaType(name = "ID")
+ protected String id;
+
+ /**
+ * Gets the value of the value property.
+ *
+ * @return
+ * possible object is
+ * byte[]
+ */
+ public byte[] getValue() {
+ return value;
+ }
+
+ /**
+ * Sets the value of the value property.
+ *
+ * @param value
+ * allowed object is
+ * byte[]
+ */
+ public void setValue(byte[] value) {
+ this.value = value;
+ }
+
+ /**
+ * Gets the value of the id property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getId() {
+ return id;
+ }
+
+ /**
+ * Sets the value of the id property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setId(String value) {
+ this.id = value;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/org/w3/_2000/_09/xmldsig/SignedInfoType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/org/w3/_2000/_09/xmldsig/SignedInfoType.java
new file mode 100644
index 000000000..cc82093ef
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/org/w3/_2000/_09/xmldsig/SignedInfoType.java
@@ -0,0 +1,167 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.org.w3._2000._09.xmldsig;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlID;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+
+
+/**
+ * <p>Java class for SignedInfoType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="SignedInfoType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element ref="{http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod"/>
+ * &lt;element ref="{http://www.w3.org/2000/09/xmldsig#}SignatureMethod"/>
+ * &lt;element ref="{http://www.w3.org/2000/09/xmldsig#}Reference" maxOccurs="unbounded"/>
+ * &lt;/sequence>
+ * &lt;attribute name="Id" type="{http://www.w3.org/2001/XMLSchema}ID" />
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "SignedInfoType", propOrder = {
+ "canonicalizationMethod",
+ "signatureMethod",
+ "reference"
+})
+public class SignedInfoType {
+
+ @XmlElement(name = "CanonicalizationMethod", required = true)
+ protected CanonicalizationMethodType canonicalizationMethod;
+ @XmlElement(name = "SignatureMethod", required = true)
+ protected SignatureMethodType signatureMethod;
+ @XmlElement(name = "Reference", required = true)
+ protected List<ReferenceType> reference;
+ @XmlAttribute(name = "Id")
+ @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+ @XmlID
+ @XmlSchemaType(name = "ID")
+ protected String id;
+
+ /**
+ * Gets the value of the canonicalizationMethod property.
+ *
+ * @return
+ * possible object is
+ * {@link CanonicalizationMethodType }
+ *
+ */
+ public CanonicalizationMethodType getCanonicalizationMethod() {
+ return canonicalizationMethod;
+ }
+
+ /**
+ * Sets the value of the canonicalizationMethod property.
+ *
+ * @param value
+ * allowed object is
+ * {@link CanonicalizationMethodType }
+ *
+ */
+ public void setCanonicalizationMethod(CanonicalizationMethodType value) {
+ this.canonicalizationMethod = value;
+ }
+
+ /**
+ * Gets the value of the signatureMethod property.
+ *
+ * @return
+ * possible object is
+ * {@link SignatureMethodType }
+ *
+ */
+ public SignatureMethodType getSignatureMethod() {
+ return signatureMethod;
+ }
+
+ /**
+ * Sets the value of the signatureMethod property.
+ *
+ * @param value
+ * allowed object is
+ * {@link SignatureMethodType }
+ *
+ */
+ public void setSignatureMethod(SignatureMethodType value) {
+ this.signatureMethod = value;
+ }
+
+ /**
+ * Gets the value of the reference property.
+ *
+ * <p>
+ * 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 <CODE>set</CODE> method for the reference property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getReference().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link ReferenceType }
+ *
+ *
+ */
+ public List<ReferenceType> getReference() {
+ if (reference == null) {
+ reference = new ArrayList<ReferenceType>();
+ }
+ return this.reference;
+ }
+
+ /**
+ * Gets the value of the id property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getId() {
+ return id;
+ }
+
+ /**
+ * Sets the value of the id property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setId(String value) {
+ this.id = value;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/org/w3/_2000/_09/xmldsig/TransformType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/org/w3/_2000/_09/xmldsig/TransformType.java
new file mode 100644
index 000000000..a56f59f0e
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/org/w3/_2000/_09/xmldsig/TransformType.java
@@ -0,0 +1,116 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.org.w3._2000._09.xmldsig;
+
+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.XmlAnyElement;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElementRef;
+import javax.xml.bind.annotation.XmlMixed;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import org.w3c.dom.Element;
+
+
+/**
+ * <p>Java class for TransformType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="TransformType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;choice maxOccurs="unbounded" minOccurs="0">
+ * &lt;any processContents='lax' namespace='##other'/>
+ * &lt;element name="XPath" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ * &lt;/choice>
+ * &lt;attribute name="Algorithm" use="required" type="{http://www.w3.org/2001/XMLSchema}anyURI" />
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "TransformType", propOrder = {
+ "content"
+})
+public class TransformType {
+
+ @XmlElementRef(name = "XPath", namespace = "http://www.w3.org/2000/09/xmldsig#", type = JAXBElement.class, required = false)
+ @XmlMixed
+ @XmlAnyElement(lax = true)
+ protected List<Object> content;
+ @XmlAttribute(name = "Algorithm", required = true)
+ @XmlSchemaType(name = "anyURI")
+ protected String algorithm;
+
+ /**
+ * Gets the value of the content property.
+ *
+ * <p>
+ * 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 <CODE>set</CODE> method for the content property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getContent().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link Object }
+ * {@link JAXBElement }{@code <}{@link String }{@code >}
+ * {@link Element }
+ * {@link String }
+ *
+ *
+ */
+ public List<Object> getContent() {
+ if (content == null) {
+ content = new ArrayList<Object>();
+ }
+ return this.content;
+ }
+
+ /**
+ * Gets the value of the algorithm property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getAlgorithm() {
+ return algorithm;
+ }
+
+ /**
+ * Sets the value of the algorithm property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setAlgorithm(String value) {
+ this.algorithm = value;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/org/w3/_2000/_09/xmldsig/TransformsType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/org/w3/_2000/_09/xmldsig/TransformsType.java
new file mode 100644
index 000000000..e326030fd
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/org/w3/_2000/_09/xmldsig/TransformsType.java
@@ -0,0 +1,76 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.org.w3._2000._09.xmldsig;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for TransformsType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="TransformsType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element ref="{http://www.w3.org/2000/09/xmldsig#}Transform" maxOccurs="unbounded"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "TransformsType", propOrder = {
+ "transform"
+})
+public class TransformsType {
+
+ @XmlElement(name = "Transform", required = true)
+ protected List<TransformType> transform;
+
+ /**
+ * Gets the value of the transform property.
+ *
+ * <p>
+ * 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 <CODE>set</CODE> method for the transform property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getTransform().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link TransformType }
+ *
+ *
+ */
+ public List<TransformType> getTransform() {
+ if (transform == null) {
+ transform = new ArrayList<TransformType>();
+ }
+ return this.transform;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/org/w3/_2000/_09/xmldsig/X509DataType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/org/w3/_2000/_09/xmldsig/X509DataType.java
new file mode 100644
index 000000000..2fac2e33a
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/org/w3/_2000/_09/xmldsig/X509DataType.java
@@ -0,0 +1,100 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.org.w3._2000._09.xmldsig;
+
+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.XmlAnyElement;
+import javax.xml.bind.annotation.XmlElementRef;
+import javax.xml.bind.annotation.XmlElementRefs;
+import javax.xml.bind.annotation.XmlType;
+import org.w3c.dom.Element;
+
+
+/**
+ * <p>Java class for X509DataType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="X509DataType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence maxOccurs="unbounded">
+ * &lt;choice>
+ * &lt;element name="X509IssuerSerial" type="{http://www.w3.org/2000/09/xmldsig#}X509IssuerSerialType"/>
+ * &lt;element name="X509SKI" type="{http://www.w3.org/2001/XMLSchema}base64Binary"/>
+ * &lt;element name="X509SubjectName" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ * &lt;element name="X509Certificate" type="{http://www.w3.org/2001/XMLSchema}base64Binary"/>
+ * &lt;element name="X509CRL" type="{http://www.w3.org/2001/XMLSchema}base64Binary"/>
+ * &lt;any processContents='lax' namespace='##other'/>
+ * &lt;/choice>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "X509DataType", propOrder = {
+ "x509IssuerSerialOrX509SKIOrX509SubjectName"
+})
+public class X509DataType {
+
+ @XmlElementRefs({
+ @XmlElementRef(name = "X509SubjectName", 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 = "X509CRL", 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 = "X509IssuerSerial", namespace = "http://www.w3.org/2000/09/xmldsig#", type = JAXBElement.class, required = false)
+ })
+ @XmlAnyElement(lax = true)
+ protected List<Object> x509IssuerSerialOrX509SKIOrX509SubjectName;
+
+ /**
+ * Gets the value of the x509IssuerSerialOrX509SKIOrX509SubjectName property.
+ *
+ * <p>
+ * 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 <CODE>set</CODE> method for the x509IssuerSerialOrX509SKIOrX509SubjectName property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getX509IssuerSerialOrX509SKIOrX509SubjectName().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link JAXBElement }{@code <}{@link byte[]}{@code >}
+ * {@link JAXBElement }{@code <}{@link byte[]}{@code >}
+ * {@link Object }
+ * {@link Element }
+ * {@link JAXBElement }{@code <}{@link String }{@code >}
+ * {@link JAXBElement }{@code <}{@link X509IssuerSerialType }{@code >}
+ * {@link JAXBElement }{@code <}{@link byte[]}{@code >}
+ *
+ *
+ */
+ public List<Object> getX509IssuerSerialOrX509SKIOrX509SubjectName() {
+ if (x509IssuerSerialOrX509SKIOrX509SubjectName == null) {
+ x509IssuerSerialOrX509SKIOrX509SubjectName = new ArrayList<Object>();
+ }
+ return this.x509IssuerSerialOrX509SKIOrX509SubjectName;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/org/w3/_2000/_09/xmldsig/X509IssuerSerialType.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/org/w3/_2000/_09/xmldsig/X509IssuerSerialType.java
new file mode 100644
index 000000000..48c70e6d0
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/org/w3/_2000/_09/xmldsig/X509IssuerSerialType.java
@@ -0,0 +1,98 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+
+package eu.stork.peps.complex.attributes.org.w3._2000._09.xmldsig;
+
+import java.math.BigInteger;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for X509IssuerSerialType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="X509IssuerSerialType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="X509IssuerName" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ * &lt;element name="X509SerialNumber" type="{http://www.w3.org/2001/XMLSchema}integer"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "X509IssuerSerialType", propOrder = {
+ "x509IssuerName",
+ "x509SerialNumber"
+})
+public class X509IssuerSerialType {
+
+ @XmlElement(name = "X509IssuerName", required = true)
+ protected String x509IssuerName;
+ @XmlElement(name = "X509SerialNumber", required = true)
+ protected BigInteger x509SerialNumber;
+
+ /**
+ * Gets the value of the x509IssuerName property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getX509IssuerName() {
+ return x509IssuerName;
+ }
+
+ /**
+ * Sets the value of the x509IssuerName property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setX509IssuerName(String value) {
+ this.x509IssuerName = value;
+ }
+
+ /**
+ * Gets the value of the x509SerialNumber property.
+ *
+ * @return
+ * possible object is
+ * {@link BigInteger }
+ *
+ */
+ public BigInteger getX509SerialNumber() {
+ return x509SerialNumber;
+ }
+
+ /**
+ * Sets the value of the x509SerialNumber property.
+ *
+ * @param value
+ * allowed object is
+ * {@link BigInteger }
+ *
+ */
+ public void setX509SerialNumber(BigInteger value) {
+ this.x509SerialNumber = value;
+ }
+
+}
diff --git a/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/org/w3/_2000/_09/xmldsig/package-info.java b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/org/w3/_2000/_09/xmldsig/package-info.java
new file mode 100644
index 000000000..9d0e537e4
--- /dev/null
+++ b/id/server/stork2-commons/src/main/java/eu/stork/peps/complex/attributes/org/w3/_2000/_09/xmldsig/package-info.java
@@ -0,0 +1,9 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2014.04.12 at 12:22:50 PM GMT
+//
+
+@javax.xml.bind.annotation.XmlSchema(namespace = "http://www.w3.org/2000/09/xmldsig#", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
+package eu.stork.peps.complex.attributes.org.w3._2000._09.xmldsig;
diff --git a/id/server/stork2-commons/src/main/resources/StorkcomplexAttributes.xsd b/id/server/stork2-commons/src/main/resources/StorkcomplexAttributes.xsd
deleted file mode 100644
index ab9e89712..000000000
--- a/id/server/stork2-commons/src/main/resources/StorkcomplexAttributes.xsd
+++ /dev/null
@@ -1,338 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xs:schema elementFormDefault="qualified"
- targetNamespace="urn:eu:stork:names:tc:STORK:1.0:assertion"
- xmlns:xs="http://www.w3.org/2001/XMLSchema"
- xmlns:storkp="urn:eu:stork:names:tc:STORK:1.0:protocol"
- xmlns:stork="urn:eu:stork:names:tc:STORK:1.0:assertion">
- <!--QAA -->
- <xs:element name="QualityAuthenticationAssuranceLevel"
- type="stork:QualityAuthenticationAssuranceLevelType" />
- <xs:element name="spSector" type="stork:SPSectorType" />
- <xs:element name="spApplication" type="stork:SPApplicationType" />
- <xs:element name="spCountry" type="stork:CountryCodeType" />
- <xs:element name="CitizenCountryCode" type="stork:CountryCodeType" />
- <xs:element name="RequestedAttribute" type="stork:RequestedAttributeType" />
- <xs:element name="AttributeValue" type="xs:anyType" />
- <xs:element name="canonicalResidenceAddress" type="stork:canonicalAddressType" />
- <xs:element name="countryCodeAddress" type="stork:CountryCodeType" />
-
- <xs:element name="hasDegree" type="stork:hasDegreeType" />
- <xs:element name="isStudent" type="stork:isStudentType" />
- <xs:element name="isAcademicStaff" type="stork:isAcademicStaffType" />
- <xs:element name="isTeacherOf" type="stork:isTeacherOfType" />
- <xs:element name="isCourseCoordinator" type="stork:isCourseCoordinatorType" />
- <xs:element name="isAdminStaff" type="stork:isAdminStaffType" />
- <xs:element name="habilitation" type="stork:habilitationType" />
- <xs:element name="acTitle" type="stork:acTitleType" />
- <xs:element name="hasAccountInBank" type="stork:hasAccountInBankType" />
- <xs:element name="isHealthCareProfessional" type="stork:isHealthCareProfessionalType" />
- <xs:element name="canonicalRegisteredAddress" type="stork:canonicalAddressType" />
- <xs:element name="AQAA"
- type="stork:QualityAuthenticationAssuranceLevelType" />
- <xs:element name="mandate" type="stork:mandateType" />
- <xs:element name="study" type="stork:studyType" />
- <xs:element name="HCPType" type="stork:HCPType" />
- <xs:element name="isHealthCareProfessional_deprecated" type="stork:isHealthCareProfessional_deprecatedType" />
-
- <xs:attribute name="AttributeStatus" type="stork:AttributeStatusType" />
-
- <xs:simpleType name="SPSectorType">
- <xs:restriction base="xs:string">
- <xs:minLength value="1" />
- <xs:maxLength value="20" />
- </xs:restriction>
- </xs:simpleType>
-
- <xs:simpleType name="SPApplicationType">
- <xs:restriction base="xs:string">
- <xs:minLength value="1" />
- <xs:maxLength value="100" />
- </xs:restriction>
- </xs:simpleType>
-
- <xs:simpleType name="AttributeStatusType">
- <xs:restriction base="xs:string">
- <xs:enumeration value="Available" />
- <xs:enumeration value="NotAvailable" />
- <xs:enumeration value="Withheld" />
- </xs:restriction>
- </xs:simpleType>
-
- <xs:simpleType name="studyType">
- <xs:restriction base="xs:string">
- <xs:minLength value="2" />
- <xs:maxLength value="5" />
- </xs:restriction>
- </xs:simpleType>
-
- <xs:simpleType name="LevelType">
- <xs:restriction base="xs:string">
- <xs:minLength value="1" />
- <xs:maxLength value="1" />
- </xs:restriction>
- </xs:simpleType>
-
- <xs:simpleType name="currencyType">
- <xs:restriction base="xs:string">
- <xs:minLength value="3" />
- <xs:maxLength value="3" />
- </xs:restriction>
- </xs:simpleType>
-
- <xs:simpleType name="occupationType">
- <xs:restriction base="xs:string">
- <xs:minLength value="1" />
- <xs:maxLength value="1" />
- </xs:restriction>
- </xs:simpleType>
-
- <xs:simpleType name="titleNormalisedType">
- <xs:restriction base="xs:string">
- <xs:minLength value="1" />
- <xs:maxLength value="1" />
- </xs:restriction>
- </xs:simpleType>
-
- <xs:simpleType name="HCPType">
- <xs:restriction base="xs:string">
- <xs:minLength value="1" />
- <xs:maxLength value="1" />
- </xs:restriction>
- </xs:simpleType>
-
- <xs:simpleType name="specialisationType">
- <xs:restriction base="xs:string">
- <xs:minLength value="1" />
- <xs:maxLength value="1" />
- </xs:restriction>
- </xs:simpleType>
-
-
- <xs:simpleType name="QualityAuthenticationAssuranceLevelType">
- <xs:restriction base="xs:integer">
- <xs:minInclusive value="1" />
- <xs:maxInclusive value="4" />
- </xs:restriction>
- </xs:simpleType>
-
- <xs:complexType name="canonicalAddressType">
- <xs:sequence>
- <xs:element name="countryCodeAddress" type="stork:CountryCodeType" />
- <xs:element name="state" type="xs:string" minOccurs="0" />
- <xs:element name="municipalityCode" type="xs:string"
- minOccurs="0" />
- <xs:element name="town" type="xs:string" />
- <xs:element name="postalCode" type="xs:string" />
- <xs:element name="streetName" type="xs:string" />
- <xs:element name="streetNumber" type="xs:string"
- minOccurs="0" />
- <xs:element name="apartmentNumber" type="xs:string"
- minOccurs="0" />
- </xs:sequence>
- </xs:complexType>
-
- <xs:complexType name="hasDegreeType">
- <xs:sequence>
- <xs:element name="study" type="stork:studyType" />
- <xs:element name="level" type="stork:LevelType" />
- <xs:element name="yearObtained" type="xs:integer" />
- <xs:element name="nameOfInstitution" type="xs:string" />
- <xs:element name="AQAA"
- type="stork:QualityAuthenticationAssuranceLevelType" />
- </xs:sequence>
- </xs:complexType>
-
- <xs:complexType name="isAcademicStaffType">
- <xs:sequence>
- <xs:element name="nameOfInstitution" type="xs:string" />
- <xs:element name="occupation" type="stork:occupationType" />
- <xs:element name="knowledgearea" type="xs:string" />
- <xs:element name="AQAA"
- type="stork:QualityAuthenticationAssuranceLevelType" />
- </xs:sequence>
- </xs:complexType>
-
- <xs:complexType name="isTeacherOfType">
- <xs:sequence>
- <xs:element name="nameOfInstitution" type="xs:string" />
- <xs:element name="course" type="xs:string" />
- <xs:element name="role" type="xs:string" />
- <xs:element name="AQAA"
- type="stork:QualityAuthenticationAssuranceLevelType" />
- </xs:sequence>
- </xs:complexType>
-
- <xs:complexType name="isCourseCoordinatorType">
- <xs:sequence>
- <xs:element name="courseCoodinator" type="xs:string" />
- <xs:element name="AQAA"
- type="stork:QualityAuthenticationAssuranceLevelType" />
- </xs:sequence>
- </xs:complexType>
-
- <xs:complexType name="isAdminStaffType">
- <xs:sequence>
- <xs:element name="adminStaff" type="xs:string" />
- <xs:element name="AQAA"
- type="stork:QualityAuthenticationAssuranceLevelType" />
- </xs:sequence>
- </xs:complexType>
-
- <xs:complexType name="habilitation">
- <xs:sequence>
- <xs:element name="ability" type="xs:string" />
- <xs:element name="AQAA"
- type="stork:QualityAuthenticationAssuranceLevelType" />
- </xs:sequence>
- </xs:complexType>
-
- <xs:complexType name="acTitleType">
- <xs:sequence>
- <xs:element name="titleNormalised" type="stork:titleNormalisedType" />
- <xs:element name="AQAA"
- type="stork:QualityAuthenticationAssuranceLevelType" />
- </xs:sequence>
- </xs:complexType>
-
- <xs:complexType name="hasAccountInBankType">
- <xs:sequence>
- <xs:element name="bankName" type="xs:string" />
- <xs:element name="AQAA"
- type="stork:QualityAuthenticationAssuranceLevelType" />
- </xs:sequence>
- </xs:complexType>
-
- <xs:complexType name="isHCPType">
- <xs:sequence>
- <xs:element name="nameOfOrganisation" type="xs:string" />
- <xs:element name="HCPType" type="stork:HCPType" />
- <xs:element name="specialisation" type="stork:specialisationType" />
- <xs:element name="AQAA"
- type="stork:QualityAuthenticationAssuranceLevelType" />
- </xs:sequence>
- </xs:complexType>
-
- <xs:complexType name="representationPersonType">
- <xs:choice>
- <xs:sequence>
- <xs:element name="eIdentifier" type="xs:string" />
- <xs:element name="givenName" type="xs:string" />
- <xs:element name="surname" type="xs:string" />
- <xs:element name="dateOfBirth" type="xs:string" />
- </xs:sequence>
- <xs:sequence>
- <xs:element name="eLPIdentifier" type="xs:string" />
- <xs:element name="name" type="xs:string" />
- <xs:element name="address" type="xs:string" />
- <xs:element name="canonicalAddress" type="stork:canonicalAddressType" />
- <xs:element name="type" type="xs:string" />
- </xs:sequence>
- </xs:choice>
- </xs:complexType>
-
- <xs:complexType name="mandateType">
- <xs:sequence>
- <xs:element name="represented" type="stork:representationPersonType" />
- <xs:element name="representing" type="stork:representationPersonType" />
- <xs:element name="mandateContent" type="stork:mandateContentType" />
- </xs:sequence>
- </xs:complexType>
-
- <xs:complexType name="mandateContentType">
- <xs:sequence>
- <xs:element name="validFrom" type="xs:date" />
- <xs:element name="validTo" type="xs:date" />
- <xs:element name="transactionLimit" type="xs:integer" />
- <xs:element name="transactionLimitCurrency" type="stork:currencyType" />
- <xs:element name="isJoint" type="xs:string" />
- <xs:element name="ischained" type="xs:boolean" />
- <xs:element name="typePower" type="xs:string" />
- </xs:sequence>
- </xs:complexType>
-
- <xs:simpleType name="CountryCodeType">
- <xs:restriction base="xs:token">
- <xs:pattern value="[A-Z]{2}" />
- </xs:restriction>
- </xs:simpleType>
-
- <xs:complexType name="RequestedAttributeType">
- <xs:sequence>
- <xs:element minOccurs="0" maxOccurs="unbounded" ref="stork:AttributeValue" />
- </xs:sequence>
- <xs:attribute name="Name" use="required" type="xs:string" />
- <xs:attribute name="NameFormat" use="required" type="xs:anyURI" />
- <xs:attribute name="FriendlyName" use="optional" type="xs:string" />
- <xs:attribute name="isRequired" use="optional" type="xs:boolean" />
- <xs:anyAttribute namespace="##other" processContents="lax" />
- </xs:complexType>
-
- <xs:complexType name="isStudentType">
- <xs:sequence>
- <xs:element ref="stork:study" />
- <xs:element name="nameOfInstitution" type="xs:string" />
- <xs:element name="course" type="xs:integer" />
- <xs:element name="AQAA"
- type="stork:QualityAuthenticationAssuranceLevelType" />
- </xs:sequence>
- </xs:complexType>
-
- <xs:complexType name="habilitationType">
- <xs:sequence>
- <xs:element name="ability" type="xs:string" />
- <xs:element name="AQAA"
- type="stork:QualityAuthenticationAssuranceLevelType" />
- </xs:sequence>
- </xs:complexType>
-
- <xs:complexType name="isHealthCareProfessional_deprecatedType">
- <xs:sequence>
- <xs:element name="nameOfOrganisation" type="xs:string" />
- <xs:element ref="stork:HCPType" />
- <xs:element ref="stork:specialisation" />
- <xs:element name="AQAA"
- type="stork:QualityAuthenticationAssuranceLevelType" />
- </xs:sequence>
- </xs:complexType>
-
- <xs:element name="specialisation" type="stork:specialisationType" />
- <xs:simpleType name="medical">
- <xs:restriction base="xs:string">
- <xs:maxLength value="2" />
- <xs:minLength value="2" />
- </xs:restriction>
- </xs:simpleType>
-
- <xs:complexType name="isHealthCareProfessionalType">
- <xs:sequence>
- <xs:element name="typeOfHCP">
- <xs:simpleType>
- <xs:restriction base="xs:anyURI">
- <xs:enumeration value="dentist" />
- <xs:enumeration value="nurse" />
- <xs:enumeration value="pharmacist" />
- <xs:enumeration value="physician" />
- <xs:enumeration value="nurse midwife" />
- <xs:enumeration value="admission clerk" />
- <xs:enumeration value="ancillary services" />
- <xs:enumeration value="clinical services" />
- </xs:restriction>
- </xs:simpleType>
- </xs:element>
- <xs:element name="nameOfOrganisation" type="xs:string" />
- <xs:element name="typeOfOrganisation">
- <xs:simpleType>
- <xs:restriction base="xs:anyURI">
- <xs:enumeration value="Hospital" />
- <xs:enumeration value="Resident Physician" />
- <xs:enumeration value="Pharmacy" />
- <xs:enumeration value="Other" />
- <xs:enumeration value="Unknown" />
- </xs:restriction>
- </xs:simpleType>
- </xs:element>
- <xs:element name="AQAA" type="stork:QualityAuthenticationAssuranceLevelType" />
- </xs:sequence>
- </xs:complexType>
-
-</xs:schema>
diff --git a/id/server/stork2-commons/src/main/resources/schema/StorkcomplexAttributes.xsd b/id/server/stork2-commons/src/main/resources/schema/StorkcomplexAttributes.xsd
new file mode 100644
index 000000000..1dfd6b319
--- /dev/null
+++ b/id/server/stork2-commons/src/main/resources/schema/StorkcomplexAttributes.xsd
@@ -0,0 +1,396 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema elementFormDefault="qualified" targetNamespace="urn:eu:stork:names:tc:STORK:1.0:assertion" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:storkp="urn:eu:stork:names:tc:STORK:1.0:protocol" xmlns:stork="urn:eu:stork:names:tc:STORK:1.0:assertion" xmlns:dps="urn:crue:academic:xsd:language:diplomasupplement" xmlns:gdp="urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma">
+<xs:import namespace="urn:crue:academic:xsd:language:diplomasupplement" schemaLocation="crue-academic-language-diplomasupplement-schema-1_1.xsd"/>
+<xs:import namespace="urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma" schemaLocation="diploma.xsd"/>
+<!--QAA -->
+<xs:element name="QualityAuthenticationAssuranceLevel" type="stork:QualityAuthenticationAssuranceLevelType"/>
+<xs:element name="spSector" type="stork:SPSectorType"/>
+<xs:element name="spApplication" type="stork:SPApplicationType"/>
+<xs:element name="spCountry" type="stork:CountryCodeType"/>
+<xs:element name="CitizenCountryCode" type="stork:CountryCodeType"/>
+<xs:element name="RequestedAttribute" type="stork:RequestedAttributeType"/>
+<xs:element name="AttributeValue" type="xs:anyType"/>
+<xs:element name="canonicalResidenceAddress" type="stork:canonicalAddressType"/>
+<xs:element name="countryCodeAddress" type="stork:CountryCodeType"/>
+<xs:element name="diplomaSupplement" type="stork:diplomaSupplementType"/>
+<xs:element name="currentStudiesSupplement" type="stork:currentStudiesType"/>
+<!-- We'll leave these new attributes for release 4 -->
+<!-- <xs:element name="languageQualification" type="stork:languageQualificationType" /> -->
+<!-- <xs:element name="academicRecommendation" type="stork:academicRecommendationType" /> -->
+<xs:element name="hasDegree" type="stork:hasDegreeType"/>
+<xs:element name="isStudent" type="stork:isStudentType"/>
+<xs:element name="isAcademicStaff" type="stork:isAcademicStaffType"/>
+<xs:element name="isTeacherOf" type="stork:isTeacherOfType"/>
+<xs:element name="isCourseCoordinator" type="stork:isCourseCoordinatorType"/>
+<xs:element name="isAdminStaff" type="stork:isAdminStaffType"/>
+<xs:element name="habilitation" type="stork:habilitationType"/>
+<xs:element name="acTitle" type="stork:acTitleType"/>
+<xs:element name="hasAccountInBank" type="stork:hasAccountInBankType"/>
+<xs:element name="isHealthCareProfessional" type="stork:isHealthCareProfessionalType"/>
+<xs:element name="isHealthCareProfessional_deprecated" type="stork:isHealthCareProfessional_deprecatedType"/>
+<xs:element name="canonicalRegisteredAddress" type="stork:canonicalAddressType"/>
+<xs:element name="AQAA" type="stork:QualityAuthenticationAssuranceLevelType"/>
+<xs:element name="mandate" type="stork:mandateType"/>
+<xs:element name="representationPerson" type="stork:representationPersonType"/>
+<xs:element name="mandateContent" type="stork:mandateContentType"/>
+<xs:element name="study" type="stork:studyType"/>
+<xs:element name="HCPType" type="stork:HCPType"/>
+<xs:attribute name="AttributeStatus" type="stork:AttributeStatusType"/>
+<xs:simpleType name="SPSectorType">
+<xs:restriction base="xs:string">
+<xs:minLength value="1"/>
+<xs:maxLength value="20"/>
+</xs:restriction>
+</xs:simpleType>
+<xs:simpleType name="SPApplicationType">
+<xs:restriction base="xs:string">
+<xs:minLength value="1"/>
+<xs:maxLength value="100"/>
+</xs:restriction>
+</xs:simpleType>
+<xs:simpleType name="AttributeStatusType">
+<xs:restriction base="xs:string">
+<xs:enumeration value="Available"/>
+<xs:enumeration value="NotAvailable"/>
+<xs:enumeration value="Withheld"/>
+</xs:restriction>
+</xs:simpleType>
+<xs:simpleType name="studyType">
+<xs:restriction base="xs:string"/>
+</xs:simpleType>
+<xs:simpleType name="LevelType">
+<xs:restriction base="xs:string">
+<xs:minLength value="1"/>
+<xs:maxLength value="1"/>
+</xs:restriction>
+</xs:simpleType>
+<xs:simpleType name="currencyType">
+<xs:restriction base="xs:string">
+<xs:minLength value="3"/>
+<xs:maxLength value="3"/>
+</xs:restriction>
+</xs:simpleType>
+<xs:simpleType name="occupationType">
+<xs:restriction base="xs:string">
+<xs:minLength value="1"/>
+<xs:maxLength value="1"/>
+</xs:restriction>
+</xs:simpleType>
+<xs:simpleType name="teacherRoleType">
+<xs:restriction base="xs:string">
+<xs:minLength value="1"/>
+<xs:maxLength value="1"/>
+</xs:restriction>
+</xs:simpleType>
+<xs:simpleType name="titleNormalisedType">
+<xs:restriction base="xs:string">
+<xs:minLength value="1"/>
+<xs:maxLength value="1"/>
+</xs:restriction>
+</xs:simpleType>
+<xs:simpleType name="HCPType">
+<xs:restriction base="xs:string">
+<xs:minLength value="1"/>
+<xs:maxLength value="1"/>
+</xs:restriction>
+</xs:simpleType>
+<xs:simpleType name="specialisationType">
+<xs:restriction base="xs:string">
+<xs:minLength value="1"/>
+<xs:maxLength value="1"/>
+</xs:restriction>
+</xs:simpleType>
+<xs:simpleType name="QualityAuthenticationAssuranceLevelType">
+<xs:restriction base="xs:integer">
+<xs:minInclusive value="1"/>
+<xs:maxInclusive value="4"/>
+</xs:restriction>
+</xs:simpleType>
+<xs:complexType name="canonicalAddressType">
+<xs:sequence>
+<xs:element name="countryCodeAddress" type="stork:CountryCodeType"/>
+<xs:element name="state" type="xs:string" minOccurs="0"/>
+<xs:element name="municipalityCode" type="xs:string" minOccurs="0"/>
+<xs:element name="town" type="xs:string"/>
+<xs:element name="postalCode" type="xs:string"/>
+<xs:element name="streetName" type="xs:string"/>
+<xs:element name="streetNumber" type="xs:string" minOccurs="0"/>
+<xs:element name="apartmentNumber" type="xs:string" minOccurs="0"/>
+</xs:sequence>
+</xs:complexType>
+<xs:complexType name="hasDegreeType">
+<xs:sequence>
+<xs:element name="study" type="stork:studyType"/>
+<xs:element name="level" type="stork:LevelType"/>
+<xs:element name="yearObtained" type="xs:integer"/>
+<xs:element name="nameOfInstitution" type="xs:string"/>
+<xs:element name="AQAA" type="stork:QualityAuthenticationAssuranceLevelType"/>
+</xs:sequence>
+</xs:complexType>
+<xs:complexType name="isAcademicStaffType">
+<xs:sequence>
+<xs:element name="nameOfInstitution" type="xs:string"/>
+<xs:element name="occupation" type="stork:occupationType"/>
+<xs:element name="knowledgeArea" type="xs:string" minOccurs="0"/>
+<xs:element name="AQAA" type="stork:QualityAuthenticationAssuranceLevelType"/>
+</xs:sequence>
+</xs:complexType>
+<xs:complexType name="isTeacherOfType">
+<xs:sequence>
+<xs:element name="nameOfInstitution" type="xs:string"/>
+<xs:element name="course" type="xs:string"/>
+<xs:element name="role" type="stork:teacherRoleType"/>
+<xs:element name="AQAA" type="stork:QualityAuthenticationAssuranceLevelType"/>
+</xs:sequence>
+</xs:complexType>
+<xs:complexType name="isCourseCoordinatorType">
+<xs:sequence>
+<xs:element name="courseCoodinator" type="xs:string"/>
+<xs:element name="AQAA" type="stork:QualityAuthenticationAssuranceLevelType"/>
+</xs:sequence>
+</xs:complexType>
+<xs:complexType name="isAdminStaffType">
+<xs:sequence>
+<xs:element name="adminStaff" type="xs:string"/>
+<xs:element name="AQAA" type="stork:QualityAuthenticationAssuranceLevelType"/>
+</xs:sequence>
+</xs:complexType>
+<xs:complexType name="habilitation">
+<xs:sequence>
+<xs:element name="ability" type="xs:string"/>
+<xs:element name="AQAA" type="stork:QualityAuthenticationAssuranceLevelType"/>
+</xs:sequence>
+</xs:complexType>
+<xs:complexType name="acTitleType">
+<xs:sequence>
+<xs:element name="titleNormalised" type="stork:titleNormalisedType"/>
+<xs:element name="AQAA" type="stork:QualityAuthenticationAssuranceLevelType"/>
+</xs:sequence>
+</xs:complexType>
+<xs:complexType name="hasAccountInBankType">
+<xs:sequence>
+<xs:element name="bankName" type="xs:string"/>
+<xs:element name="AQAA" type="stork:QualityAuthenticationAssuranceLevelType"/>
+</xs:sequence>
+</xs:complexType>
+<xs:complexType name="isHCPType">
+<xs:sequence>
+<xs:element name="nameOfOrganisation" type="xs:string"/>
+<xs:element name="HCPType" type="stork:HCPType"/>
+<xs:element name="specialisation" type="stork:specialisationType"/>
+<xs:element name="AQAA" type="stork:QualityAuthenticationAssuranceLevelType"/>
+</xs:sequence>
+</xs:complexType>
+<xs:complexType name="representationPersonType">
+<xs:choice>
+<xs:sequence>
+<xs:element name="eIdentifier" type="xs:string"/>
+<xs:element name="givenName" type="xs:string"/>
+<xs:element name="surname" type="xs:string"/>
+<xs:element name="dateOfBirth" type="xs:string"/>
+</xs:sequence>
+<xs:sequence>
+<xs:element name="eLPIdentifier" type="xs:string"/>
+<xs:element name="legalName" type="xs:string"/>
+<xs:element name="textRegisteredAddress" type="xs:string"/>
+<xs:element name="canonicalRegisteredAddress" type="stork:canonicalAddressType"/>
+<xs:element name="legalForm" type="xs:string"/>
+</xs:sequence>
+</xs:choice>
+</xs:complexType>
+<xs:complexType name="TransactionLimitRestrictionType">
+<xs:sequence>
+<xs:element name="amount" type="xs:decimal"/>
+<xs:element name="currency" type="xs:string"/>
+</xs:sequence>
+</xs:complexType>
+<xs:complexType name="TimeRestrictionType">
+<xs:sequence>
+<xs:element name="validFrom" type="xs:date"/>
+<xs:element name="validTo" type="xs:date"/>
+</xs:sequence>
+</xs:complexType>
+<!-- <xs:complexType name="originalMandateType"> -->
+<!-- <xs:simpleContent> -->
+<!-- <xs:extension base="xs:base64Binary"> -->
+<!-- <xs:attribute -->
+<!-- name="type" -->
+<!-- type="xs:string"> -->
+<!-- </xs:attribute> -->
+<!-- </xs:extension> -->
+<!-- </xs:simpleContent> -->
+<!-- </xs:complexType> -->
+<xs:complexType name="mandateContentType">
+<xs:sequence>
+<xs:element name="typePower" type="xs:string"/>
+<!-- Misspelled attribute typeOfPower-->
+<xs:element name="typeOfPower" type="xs:string"/>
+<xs:element name="timeRestriction" type="stork:TimeRestrictionType"/>
+
+<xs:element name="isJoined" type="xs:string"/>
+<!-- Misspelled attribute isJoint-->
+<xs:element name="isJoint" type="xs:string"/>
+<xs:element name="isChained" type="xs:boolean"/>
+<xs:element name="originalMandate" type="xs:base64Binary"/>
+<xs:element name="originalMandateType" type="xs:string"/>
+<xs:element name="transactionLimit" type="stork:TransactionLimitRestrictionType"/>
+<xs:element name="AQAA" type="stork:QualityAuthenticationAssuranceLevelType"/>
+</xs:sequence>
+</xs:complexType>
+<xs:complexType name="mandateType">
+<xs:sequence>
+<xs:element name="represented" type="stork:representationPersonType"/>
+<xs:element name="representing" type="stork:representationPersonType"/>
+<!-- Misspelled attribute representative-->
+<xs:element name="representative" type="stork:representationPersonType"/>
+<xs:element name="mandateContent" type="stork:mandateContentType" maxOccurs="unbounded"/>
+</xs:sequence>
+</xs:complexType>
+<xs:simpleType name="CountryCodeType">
+<xs:restriction base="xs:token">
+<xs:pattern value="[A-Z]{2}"/>
+</xs:restriction>
+</xs:simpleType>
+<xs:complexType name="RequestedAttributeType">
+<xs:sequence>
+<xs:element minOccurs="0" maxOccurs="unbounded" ref="stork:AttributeValue"/>
+</xs:sequence>
+<xs:attribute name="Name" use="required" type="xs:string"/>
+<xs:attribute name="NameFormat" use="required" type="xs:anyURI"/>
+<xs:attribute name="FriendlyName" use="optional" type="xs:string"/>
+<xs:attribute name="isRequired" use="optional" type="xs:boolean"/>
+<xs:anyAttribute namespace="##other" processContents="lax"/>
+</xs:complexType>
+<xs:complexType name="isStudentType">
+<xs:sequence>
+<xs:element ref="stork:study" minOccurs="0"/>
+<xs:element name="nameOfInstitution" type="xs:string"/>
+<xs:element name="course" type="xs:string" minOccurs="0"/>
+<xs:element name="AQAA" type="stork:QualityAuthenticationAssuranceLevelType"/>
+</xs:sequence>
+</xs:complexType>
+<xs:complexType name="habilitationType">
+<xs:sequence>
+<xs:element name="ability" type="xs:string"/>
+<xs:element name="AQAA" type="stork:QualityAuthenticationAssuranceLevelType"/>
+</xs:sequence>
+</xs:complexType>
+<xs:complexType name="isHealthCareProfessional_deprecatedType">
+<xs:sequence>
+<xs:element name="nameOfOrganisation" type="xs:string"/>
+<xs:element ref="stork:HCPType"/>
+<xs:element ref="stork:specialisation"/>
+<xs:element name="AQAA" type="stork:QualityAuthenticationAssuranceLevelType"/>
+</xs:sequence>
+</xs:complexType>
+<xs:complexType name="diplomaSupplementType">
+<xs:sequence>
+<xs:choice>
+<xs:element ref="dps:MultilingualDiplomaSupplement"/>
+<xs:element ref="dps:DiplomaSupplement"/>
+<xs:element ref="gdp:MultilingualGeneralDiploma"/>
+<xs:element ref="gdp:GeneralDiploma"/>
+</xs:choice>
+<xs:element name="AQAA" type="stork:QualityAuthenticationAssuranceLevelType"/>
+<xs:any minOccurs="0"/>
+</xs:sequence>
+</xs:complexType>
+<xs:complexType name="currentStudiesType">
+<xs:sequence>
+<xs:choice>
+<xs:element ref="gdp:MultilingualGeneralDiploma"/>
+<xs:element ref="gdp:GeneralDiploma"/>
+</xs:choice>
+<xs:element name="yearOfStudy" type="xs:integer"/>
+<xs:element name="isEligibleForInternship" type="xs:boolean"/>
+<xs:element name="AQAA" type="stork:QualityAuthenticationAssuranceLevelType"/>
+<xs:any minOccurs="0"/>
+</xs:sequence>
+</xs:complexType>
+<!-- We'll leave these new attributes for release 4 -->
+<!--
+ <xs:complexType name="languageQualificationType">
+ <xs:sequence>
+ <xs:element name="language" type="stork:languageType" />
+ <xs:element name="name" type="xs:string" />
+ <xs:element name="acronym" type="xs:string" minOccurs="0"/>
+ <xs:element name="cefrLevel" type="stork:cefrLevelType" minOccurs="0"/>
+ <xs:element name="international" type="xs:boolean" minOccurs="0"/>
+ <xs:element name="AQAA"
+ type="stork:QualityAuthenticationAssuranceLevelType" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="academicRecommendationType">
+ <xs:sequence>
+ <xs:element name="fullNameOfRecommender" type="xs:string" />
+ <xs:element name="institution" type="xs:string" />
+ <xs:element name="affiliation" type="xs:string" />
+ <xs:element name="knowledgeArea" type="xs:string" minOccurs="0" />
+ <xs:element name="contactEmail" type="xs:string" />
+ <xs:element name="contactPhone" type="xs:string" minOccurs="0" />
+ <xs:element name="comment" type="xs:string" minOccurs="0" />
+ <xs:element name="AQAA"
+ type="stork:QualityAuthenticationAssuranceLevelType" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:simpleType name="languageType">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="2" />
+ <xs:maxLength value="3" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="cefrLevelType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="A1" />
+ <xs:enumeration value="A2" />
+ <xs:enumeration value="B1" />
+ <xs:enumeration value="B2" />
+ <xs:enumeration value="C1" />
+ <xs:enumeration value="C2" />
+ </xs:restriction>
+ </xs:simpleType>
+
+-->
+<xs:element name="specialisation" type="stork:specialisationType"/>
+<xs:simpleType name="medical">
+<xs:restriction base="xs:string">
+<xs:maxLength value="2"/>
+<xs:minLength value="2"/>
+</xs:restriction>
+</xs:simpleType>
+
+ <xs:complexType name="isHealthCareProfessionalType">
+ <xs:sequence>
+ <xs:element name="typeOfHCP">
+ <xs:simpleType>
+ <xs:restriction base="xs:anyURI">
+ <xs:enumeration value="dentist" />
+ <xs:enumeration value="nurse" />
+ <xs:enumeration value="pharmacist" />
+ <xs:enumeration value="physician" />
+ <xs:enumeration value="nurse midwife" />
+ <xs:enumeration value="admission clerk" />
+ <xs:enumeration value="ancillary services" />
+ <xs:enumeration value="clinical services" />
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:element>
+ <xs:element name="nameOfOrganisation" type="xs:string" />
+ <xs:element name="typeOfOrganisation">
+ <xs:simpleType>
+ <xs:restriction base="xs:anyURI">
+ <xs:enumeration value="Hospital" />
+ <xs:enumeration value="Resident Physician" />
+ <xs:enumeration value="Pharmacy" />
+ <xs:enumeration value="Other" />
+ <xs:enumeration value="Unknown" />
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:element>
+ <xs:element name="AQAA" type="stork:QualityAuthenticationAssuranceLevelType" />
+ </xs:sequence>
+ </xs:complexType>
+</xs:schema>
diff --git a/id/server/stork2-commons/src/main/resources/schema/crue-academic-language-diplomasupplement-schema-1_1.xsd b/id/server/stork2-commons/src/main/resources/schema/crue-academic-language-diplomasupplement-schema-1_1.xsd
new file mode 100644
index 000000000..3728a7904
--- /dev/null
+++ b/id/server/stork2-commons/src/main/resources/schema/crue-academic-language-diplomasupplement-schema-1_1.xsd
@@ -0,0 +1,3778 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<xs:schema xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"
+ xmlns:aclan="urn:crue:academic:xsd:language:diplomasupplement"
+ attributeFormDefault="unqualified"
+ elementFormDefault="qualified"
+ targetNamespace="urn:crue:academic:xsd:language:diplomasupplement"
+ version="1.1"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema">
+
+ <xs:import schemaLocation="xmldsig-core-schema.xsd"
+ namespace="http://www.w3.org/2000/09/xmldsig#" />
+
+ <xs:simpleType name="AcademicYearType">
+ <xs:annotation>
+ <xs:documentation xml:lang="es">Academic year constraint YYYY-YY. (e.g. 2005-06, 2006-07, ...)</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:pattern value="(19|20)\d\d\-\d\d" />
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="CountryType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">ISO 3166-1-alpha-2</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="AD">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Andorra</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="AE">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">United Arab Emirates</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="AF">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Afghanistan</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="AG">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Antigua and Barbuda</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="AL">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Albania</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="AM">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Armenia</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="AO">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Angola</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="AR">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Argentina</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="AT">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Austria</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="AU">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Australia</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="AZ">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Azerbaijan</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="BA">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Bosnia and Herzegovina</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="BB">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Barbados</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="BD">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Bangladesh</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="BE">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Belgium</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="BF">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Burkina Faso</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="BG">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Bulgaria</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="BH">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Bahrain</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="BI">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Burundi</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="BJ">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Benin</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="BN">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Brunei Darussalam</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="BO">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Bolivia</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="BR">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Brazil</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="BS">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Bahamas</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="BT">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Bhutan</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="BW">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Botswana</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="BY">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Belarus</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="BZ">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Belize</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="CA">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Canada</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="CD">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Congo, Democratic Republic of the</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="CF">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Central African Republic</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="CG">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Congo, Republic of the</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="CH">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Switzerland</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="CI">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Cote d/Ivoire</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="CL">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Chile</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="CM">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Cameroon</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="CN">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">China</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="CO">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Colombia</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="CR">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Costa Rica</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="CU">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Cuba</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="CV">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Cape Verde</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="CY">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Cyprus</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="CZ">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Czech Republic</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="DE">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Germany</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="DJ">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Djibouti</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="DK">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Denmark</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="DM">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Dominica</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="DO">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Dominican Republic</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="DZ">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Algeria</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="EC">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Ecuador</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="EE">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Estonia</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="EG">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Egypt</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="ER">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Eritrea</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="ES">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Spain</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="ET">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Ethiopia</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="FI">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Finland</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="FJ">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Fiji</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="FM">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Federated States of Micronesia</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="FR">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">France</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="GA">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Gabon</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="GB">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">United Kingdom</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="GD">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Grenada</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="GE">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Georgia</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="GH">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Ghana</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="GL">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Greenland</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="GM">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Gambia</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="GN">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Guinea</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="GQ">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Equatorial Guinea</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="GR">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Greece</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="GT">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Guatemala</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="GW">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Guinea-Bissau</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="GY">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Guyana</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="HN">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Honduras</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="HR">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Croatia</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="HT">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Haiti</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="HU">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Hungary</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="ID">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Indonesia</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="IE">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Ireland</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="IL">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Israel</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="IN">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">India</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="IQ">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Iraq</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="IR">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Iran</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="IS">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Iceland</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="IT">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Italy</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="JM">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Jamaica</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="JO">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Jordan</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="JP">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Japan</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="KE">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Kenya</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="KG">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Kyrgyzstan</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="KH">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Cambodia</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="KI">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Kiribati</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="KM">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Comoros</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="KN">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Saint Kitts and Nevis</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="KP">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Korea, Democratic People/s Republic</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="KR">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Korea, Republic of</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="KW">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Kuwait</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="KZ">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Kazakstan</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="LA">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Lao People/s Democratic Republic</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="LB">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Lebanon</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="LC">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Saint Lucia</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="LI">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Liechtenstein</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="LK">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Sri Lanka</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="LR">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Liberia</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="LS">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Lesotho</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="LT">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Lithuania</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="LU">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Luxembourg</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="LV">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Latvia</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="LY">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Libyan Arab Jamahiriya</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="MA">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Morocco</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="MC">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Monaco</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="MD">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Moldova, Republic of</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="ME">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Montenegro</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="MG">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Madagascar</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="MH">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Marshall Islands</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="MK">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Macedonia, the former Yugoslav Republic of</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="ML">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Mali</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="MM">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Myanmar</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="MN">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Mongolia</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="MR">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Mauritania</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="MT">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Malta</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="MU">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Mauritius</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="MV">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Maldives</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="MW">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Malawi</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="MX">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Mexico</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="MY">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Malaysia</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="MZ">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Mozambique</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="NA">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Namibia</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="NE">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Niger</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="NG">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Nigeria</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="NI">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Nicaragua</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="NL">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Netherlands</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="NO">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Norway</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="NP">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Nepal</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="NR">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Nauru</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="NU">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Niue</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="NZ">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">New Zealand</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="OM">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Oman</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="PA">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Panama</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="PE">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Peru</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="PG">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Papua New Guinea</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="PH">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Philippines</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="PK">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Pakistan</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="PL">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Poland</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="PR">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Puerto Rico</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="PS">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Palestinian Territory, Occupied</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="PT">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Portugal</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="PW">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Palau</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="PY">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Paraguay</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="QA">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Qatar</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="RO">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Romania</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="RS">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Serbia</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="RU">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Russian Federation</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="RW">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Rwanda</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="SA">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Saudi Arabia</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="SB">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Solomon Islands</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="SC">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Seychelles</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="SD">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Sudan</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="SE">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Sweden</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="SG">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Singapore</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="SI">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Slovenia</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="SK">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Slovakia</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="SL">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Sierra Leone</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="SM">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">San Marino</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="SN">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Senegal</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="SO">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Somalia</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="SR">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Suriname</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="ST">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Sao Tome and Principe</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="SV">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">El Salvador</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="SY">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Syrian Arab Republic</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="SZ">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Swaziland</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="TD">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Chad</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="TG">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Togo</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="TH">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Thailand</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="TJ">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Tajikistan</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="TL">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Timor-Leste</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="TM">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Turkmenistan</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="TN">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Tunisia</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="TO">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Tonga</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="TR">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Turkey</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="TT">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Trindidad and Tobago</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="TV">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Tuvalu</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="TZ">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Tanzania, United republic of</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="UA">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Ukraina</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="UG">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Uganda</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="US">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">United States</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="UY">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Uruguay</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="UZ">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Uzbekistan</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="VA">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Holy See (Vatican City State)</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="VC">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Saint Vincent and the Granadines</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="VE">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Venezuela</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="VN">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Viet Nam</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="VU">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Vanuatu</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="WS">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Samoa</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="YE">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Yemen</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="ZA">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">South Africa</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="ZM">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Zambia</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="ZW">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Zimbabwe</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="CourseUnitTypeType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Type of course unit</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="Compulsory">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Compulsory</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="Optional">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Optional</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="DateType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Date format yyyy-mm-dd. Ex.: 2013-05-04, ...</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:date" />
+ </xs:simpleType>
+ <xs:simpleType name="ECTSGradingScaleType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">ECTS grading scale</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="A">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Top 10%</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="B">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Next 25%</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="C">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Next 30%</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="D">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Next 25%</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="E">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Lowest 10%</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="FX">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Fail</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="F">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Fail</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="EmailAddressType">
+ <xs:annotation>
+ <xs:documentation xml:lang="es">E-Mail address constraint</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string" />
+ </xs:simpleType>
+ <xs:simpleType name="EHEAFrameworkType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">EHEA Framework (Bologna: Framework of Qualifications/European Qualifications Framework)</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="FirstCycle">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">First Cycle</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="SecondCycle">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Second Cycle</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="ThirdCycle">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Third Cycle</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="EmptyType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Empty text constraint</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Empty text constraint</xs:documentation>
+ </xs:annotation>
+ <xs:maxLength value="0" />
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="GenderType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Gender</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="Female">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Female</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="Male">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Male</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="ImageMimeType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">MIME: Type image</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="aclan:MimeType">
+ <xs:enumeration value="image/gif">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">GIF image</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="image/jpeg">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">JPEG JFIF image</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="image/pjpeg">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">JPEG JFIF image</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="image/png">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Portable Network Graphics</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="image/tiff">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Tag Image File Format</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="ISCED1997Type">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">International Standard Classification of Education (ISCED) 1997</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="0">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Level 0: Pre-primary education</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="1">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Level 1: Primary education or first stage of basic education</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="2">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Level 2: Lower secondary education or second stage of basic education</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="3">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Level 3: Upper secondary education</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="4">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Level 4: Post-secondary non-tertiary education</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="5A">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Level 5A: First stage of tertiary education: largely theoretically based programmes intended to provide qualifications for gaining entry into more advanced research programmes and professions with higher skills requirements</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="5B">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Level 5B: First stage of tertiary education: shorter, more practical/technical/occupationally specific prgrammes leading to professional qualifications</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="6">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Level 6: Second stage of tertiary education (leading to an advanced research qualification)</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="ISCED2011Type">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">International Standard Classification of Education (ISCED) 2011</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="0">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Level 0: Early childhood Education</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="1">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Level 1: Primary education</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="2">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Level 2: Lower secondary education</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="3">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Level 3: Upper secondary education</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="4">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Level 4: Post-secondary non-tertiary education</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="5">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Level 5: Short-cycle teriary education</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="6">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Level 6: Bachelor or equivalent</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="7">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Level 7: Master or equivalent</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="8">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Level 8: Doctoral or equivalent</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="LanguageType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">ISO 639-1 languages</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="ab">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Abkhazian</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="af">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Afrikaans</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="an">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Aragonese</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="ar">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Arabic</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="as">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Assamese</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="az">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Azerbaijani</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="be">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Belarusian</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="bg">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Bulgarian</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="bn">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Bengali</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="bo">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Tibetan</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="br">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Breton</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="bs">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Bosnian</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="ca">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Catalan / Valencian</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="ce">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Chechen</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="co">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Corsican</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="cs">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Czech</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="cy">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Welsh</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="da">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Danish</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="de">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">German</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="el">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Greek</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="en">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">English</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="es">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Spanish / Castilian</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="et">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Estonian</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="eu">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Basque</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="fa">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Persian</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="fi">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Finnish</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="fj">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Fijian</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="fo">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Faroese</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="fr">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">French</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="fy">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Western Frisian</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="ga">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Irish</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="gd">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Gaelic / Scottish Gaelic</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="gl">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Galician</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="gv">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Manx</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="grc">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Ancient Greek</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="gsw">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Alemanic; Swiss German</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="he">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Hebrew</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="hi">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Hindi</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="hr">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Croatian</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="ht">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Haitian; Haitian Creole</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="hu">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Hungarian</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="hy">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Armenian</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="id">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Indonesian</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="is">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Icelandic</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="it">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Italian</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="ja">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Japanese</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="jv">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Javanese</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="ka">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Georgian</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="kg">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Kongo</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="ko">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Korean</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="ku">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Kurdish</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="kw">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Cornish</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="ky">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Kirghiz</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="lb">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Luxembourgish; Letzeburgesch</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="li">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Limburgan; Limburger; Limburgish</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="ln">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Lingala</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="lt">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Lithuanian</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="lv">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Latvian</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="mg">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Malagasy</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="mk">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Macedonian</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="mn">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Mongolian</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="mo">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Moldavian</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="ms">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Malay</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="mt">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Maltese</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="my">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Burmese</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="nb">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Norwegian (Bokmål)</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="ne">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Nepali</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="nl">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Dutch</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="nn">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Norwegian (Nynorsk)</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="no">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Norwegian</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="pl">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Polish</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="pt">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Portuguese</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="rm">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Raeto-Romance</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="ro">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Romanian</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="ru">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Russian</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="sc">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Sardinian</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="se">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Northern Sami</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="sk">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Slovak</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="sl">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Slovenian</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="so">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Somali</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="sq">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Albanian</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="sr">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Serbian</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="sv">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Swedish</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="sw">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Swahili</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="tk">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Turkmen</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="tr">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Turkish</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="ty">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Tahitian</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="uk">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Ukrainian</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="ur">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Urdu</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="uz">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Uzbek</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="vi">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Vietnamese</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="yi">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Yiddish</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="zh">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Chinese</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="cu">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Church Slavic</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="eo">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Esperanto</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="la">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Latin</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="oc">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Occitan (post 1500); Provençal</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="vo">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">VVolapük</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="MimeType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">MIME types</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="image/gif">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">GIF image</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="image/jpeg">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">JPEG JFIF image</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="image/pjpeg">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">JPEG JFIF image</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="image/png">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Portable Network Graphics</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="image/tiff">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Tag Image File Format</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="text/html">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">HTML</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="application/pdf">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Portable Document Format</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="ModeOfStudyType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Mode of study</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="FullTime">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Full time</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="ParTime">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Par time</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="Distance">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Distance</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="eLearning">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">eLearning</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="Another">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Another</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="ModeOfDeliveryType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Model of delivery</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="FaceToFace">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Face-to-face</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="DistanceLearning">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Distance learning</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="NFQType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">National Framework of Qualifications (NFQ) Level </xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string" />
+ </xs:simpleType>
+ <xs:simpleType name="PlainTextType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Plain text constraint</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Non empty text</xs:documentation>
+ </xs:annotation>
+ <xs:minLength value="1" />
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="PercentType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Percent constraint</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:decimal">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Restriction between 0 and 100</xs:documentation>
+ </xs:annotation>
+ <xs:maxInclusive value="100" />
+ <xs:minInclusive value="0" />
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="PositiveDecimalType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Positive decimal number</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:decimal">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Positive decimal numbers restriction</xs:documentation>
+ </xs:annotation>
+ <xs:minInclusive value="0" />
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="PositiveIntegerType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Positive integer number</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:int">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Positive integer numbers restriction</xs:documentation>
+ </xs:annotation>
+ <xs:minInclusive value="0" />
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="SourceGradeType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Source of the course unit performance</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="Recognized">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Recognized</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="MobilityProgramme">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Course unit attended in mobility programme</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="Another">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Another</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="URLType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Uniform Resource Locator (URL)</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:anyURI">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">http and https restriction</xs:documentation>
+ </xs:annotation>
+ <xs:pattern value="http://.*" />
+ <xs:pattern value="https://.*" />
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="AdditionalInformationType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Additional information</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="SpecificInformation"
+ type="aclan:RichTextTagType"
+ minOccurs="0">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Specific information</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="OtherSources"
+ type="aclan:RichTextTagType"
+ minOccurs="0">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Other sources</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="AddressType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Address</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="Line"
+ type="aclan:PlainTextType"
+ maxOccurs="unbounded">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Name, street, PO box, ...</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="City"
+ type="aclan:PlainTextType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">City</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="StateOrRegion"
+ type="aclan:PlainTextType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">State or region</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="PostalCode"
+ type="aclan:PlainTextType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Postal code</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="Country">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Country</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:simpleContent>
+ <xs:extension base="aclan:PlainTextType">
+ <xs:attribute name="country"
+ type="aclan:CountryType"
+ use="required">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Country code ISO 3166-1-alpha-2</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="AttachedFileDataType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Data file</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="Description"
+ type="aclan:PlainTextType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Description</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="Mime"
+ type="aclan:MimeType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">MIME type code</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="Data"
+ type="xs:base64Binary">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Base64 binary data</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="AttachedFileURLType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">URL reference to the file</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="Description"
+ type="aclan:PlainTextType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Description</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="Mime"
+ type="aclan:MimeType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">MIME type code</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="URL"
+ type="aclan:URLType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">URL</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="AttachedImageDataType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Image data file</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="Description"
+ type="aclan:PlainTextType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Description</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="Mime"
+ type="aclan:ImageMimeType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">MIME type image code</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="Data"
+ type="xs:base64Binary">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Base64 binary data</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="AttachedImageURLType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">URL reference to the image file</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="Description"
+ type="aclan:PlainTextType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Description</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="Mime"
+ type="aclan:ImageMimeType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">MIME type image code</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="URL"
+ type="aclan:URLType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">URL</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="AttachedType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Attachment resource</xs:documentation>
+ </xs:annotation>
+ <xs:choice>
+ <xs:element name="FileData"
+ type="aclan:AttachedFileDataType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Data file</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="FileURI"
+ type="aclan:AttachedFileURLType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">URL reference to the file</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="ImageData"
+ type="aclan:AttachedImageDataType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Image data file</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="ImageURI"
+ type="aclan:AttachedImageURLType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">URL reference to the image file</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:choice>
+ <xs:attribute name="attachedID"
+ type="xs:ID"
+ use="required">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Attached identifier</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:complexType>
+ <xs:complexType name="AttachmentsType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Attachments resources</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="Attached"
+ type="aclan:AttachedType"
+ maxOccurs="unbounded">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Attachment resource</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="CertificationOfTheSupplementType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Certification of the Supplement</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="CertificationDate"
+ type="aclan:DateType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Date was issued</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="OfficialsCertifying"
+ type="aclan:OfficialsCertifyingType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Officials certifying</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="OfficialStamp"
+ type="aclan:OfficialStampType"
+ minOccurs="0">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Official stamp or seal of the institution</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="ContactInformationType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Contact information</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="Address"
+ type="aclan:AddressType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Address</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="PhoneNumber"
+ type="aclan:PlainTextType"
+ minOccurs="0"
+ maxOccurs="unbounded">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Phone number</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="Email"
+ type="aclan:EmailAddressType"
+ minOccurs="0"
+ maxOccurs="unbounded">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">E-Mail address</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="WebSite"
+ type="aclan:URLType"
+ minOccurs="0"
+ maxOccurs="unbounded">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Web site</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="CoursesAttendedInOtherInstitutionInMobilityProgramsType">
+ <xs:sequence>
+ <xs:element name="MobilityProgramme"
+ type="aclan:MobilityProgrammeType"
+ maxOccurs="unbounded">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Mobility programme</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="CourseStructureDiagramType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Course structure diagram</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="CoursesGroups"
+ type="aclan:CoursesGroupsType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Courses groups</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="CoursesUnits"
+ type="aclan:CoursesUnitsType"
+ minOccurs="0">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Course units</xs:documentation>
+ </xs:annotation>
+ <xs:key name="CourseUnitCodeUQ">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Unique: Course unit code</xs:documentation>
+ </xs:annotation>
+ <xs:selector xpath="aclan:CourseUnit/aclan:Code" />
+ <xs:field xpath="." />
+ </xs:key>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="CoursesUnitsType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Course units</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="CourseUnit"
+ type="aclan:CourseUnitType"
+ maxOccurs="unbounded">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Course unit</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="CourseUnitLanguagesOfInstructionType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Language of instruction</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="Language"
+ type="aclan:CourseUnitLanguageOfInstructionType"
+ maxOccurs="unbounded">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Language of instruction</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="CourseUnitStudentPerformanceType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Student performance</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="LocalGrade"
+ type="aclan:LocalGradeType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Local grade</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="ECTSGrade"
+ type="aclan:ECTSGradingScaleType"
+ minOccurs="0">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">ECTS grade</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="CourseUnitType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Course unit</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="Code"
+ type="aclan:PlainTextType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Course unit code</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="ScientificArea"
+ type="aclan:PlainTextType"
+ minOccurs="0" />
+ <xs:element name="Title"
+ type="aclan:PlainTextType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Course unit title</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="Theme"
+ type="aclan:PlainTextType"
+ minOccurs="0">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Theme (example: Academic project)</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="Type">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Type of course unit</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:simpleContent>
+ <xs:extension base="aclan:PlainTextType">
+ <xs:attribute name="type"
+ type="aclan:CourseUnitTypeType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Type of course unit code</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="YearOfStudy"
+ minOccurs="0">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Year of study</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:simpleContent>
+ <xs:extension base="aclan:PlainTextType">
+ <xs:attribute name="year"
+ type="aclan:PositiveDecimalType"
+ use="required">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Year of study</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="Level"
+ minOccurs="0">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Level of course unit</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:simpleContent>
+ <xs:extension base="aclan:PlainTextType">
+ <xs:attribute name="eheaFramework"
+ type="aclan:EHEAFrameworkType"
+ use="required">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">EHEA Framework code</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="ECTSCredits"
+ type="aclan:PositiveDecimalType"
+ minOccurs="0">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Number of ECTS credits</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="LocalCredits"
+ type="aclan:PositiveDecimalType"
+ minOccurs="0">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Number of local credits</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="Hours"
+ type="aclan:PositiveDecimalType"
+ minOccurs="0">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Number of hours</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="LanguagesOfInstruction"
+ type="aclan:CourseUnitLanguagesOfInstructionType"
+ minOccurs="0">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Languages of instruction</xs:documentation>
+ </xs:annotation>
+ <xs:unique name="LanguagesOfInstructionUQ">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Unique: Language</xs:documentation>
+ </xs:annotation>
+ <xs:selector xpath="aclan:Language" />
+ <xs:field xpath="@language" />
+ </xs:unique>
+ </xs:element>
+ <xs:element name="ModeOfDelivery"
+ minOccurs="0">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Mode of delivery</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:simpleContent>
+ <xs:extension base="aclan:PlainTextType">
+ <xs:attribute name="modeOfDelivery"
+ type="aclan:ModeOfDeliveryType"
+ use="required">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Mode of delivery oode</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="WorkPlacements"
+ type="aclan:CourseUnitWorkPlacementsType"
+ minOccurs="0">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Work placements</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="StudentPerformance"
+ type="aclan:CourseUnitStudentPerformanceType"
+ minOccurs="0">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Student performance</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="NameOfLecturers"
+ type="aclan:RichTextTagType"
+ minOccurs="0">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Name of lecturer(s)</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="LearningOutcomes"
+ type="aclan:RichTextTagType"
+ minOccurs="0">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Learning outcomes of the course unit</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="PrerequisitesAndCorequisites"
+ type="aclan:RichTextTagType"
+ minOccurs="0">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Prerequisites and co-requisites</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="RecomendedOptionalProgrammeComponents"
+ type="aclan:RichTextTagType"
+ minOccurs="0">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Recomended optional programme components</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="CourseContents"
+ type="aclan:RichTextTagType"
+ minOccurs="0">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Course contents</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="RecomendedOrRequiredReading"
+ type="aclan:RichTextTagType"
+ minOccurs="0">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Recomended or required reading</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="PlanedLearningActivitiesAndTeachingMethod"
+ type="aclan:RichTextTagType"
+ minOccurs="0">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Planed learning activities and teaching method</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="AssesmentMethodsAndCriteria"
+ type="aclan:RichTextTagType"
+ minOccurs="0">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Assesment methods and criteria</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="Observations"
+ type="aclan:RichTextTagType"
+ minOccurs="0">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Observations</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:sequence>
+ <xs:attribute name="groupID"
+ type="xs:string"
+ use="required">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Group identifier</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="institutionAdministeringStudiesID"
+ type="xs:string"
+ use="required">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Institution administering studies identifier </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="isRequiredByTheProgramme"
+ type="xs:boolean"
+ default="true">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Is required by the programme?</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:complexType>
+ <xs:complexType name="CourseUnitWorkPlacementsType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Course unit work placements</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="WorkPlacement"
+ type="aclan:CourseUnitWorkPlacementType"
+ maxOccurs="unbounded">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Work placement</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="CourseUnitWorkPlacementType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Course unit work placement</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="CollaboratingInstitution"
+ type="aclan:PlainTextType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Name of collaborating institution</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="DateFrom"
+ type="aclan:DateType"
+ minOccurs="0">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Date from</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="DateTo"
+ type="aclan:DateType"
+ minOccurs="0">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Date to</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="TrainingHours"
+ type="aclan:PositiveDecimalType"
+ minOccurs="0">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Training Hours</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="CourseUnitLanguageOfInstructionType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Language of instruction</xs:documentation>
+ </xs:annotation>
+ <xs:simpleContent>
+ <xs:extension base="aclan:PlainTextType">
+ <xs:attribute name="language"
+ type="aclan:LanguageType"
+ use="required">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Language code ISO 639-1 of the Supplement</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ <xs:complexType name="DiplomaSupplementType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Diploma Supplement</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="InformationIdentifyingTheHolderOfTheQualification"
+ type="aclan:InformationIdentifyingTheHolderOfTheQualificationType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Information identifying the holder of the qualification</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="InformationIdentifyingTheQualification"
+ type="aclan:InformationIdentifyingTheQualificationType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Information identifying the qualification</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="InformationOnTheLevelOfTheQualification"
+ type="aclan:InformationOnTheLevelOfTheQualificationType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Information on the level of the qualification</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="InformationOnTheContentsAndResultsGained"
+ type="aclan:InformationOnTheContentsAndResultsGainedType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Information on the contents and results gained</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="InformationOnTheFunctionOfTheQualification"
+ type="aclan:InformationOnTheFunctionOfTheQualificationType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Information on the function of the qualification</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="AdditionalInformation"
+ type="aclan:AdditionalInformationType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Additional informationType</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="CertificationOfTheSupplement"
+ type="aclan:CertificationOfTheSupplementType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Certification of the Supplement</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="InformationOnTheNationalHigherEducationSystem"
+ type="aclan:RichTextTagType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Information on the national higher education system</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="Attachments"
+ type="aclan:AttachmentsType"
+ minOccurs="0">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Attachments resources</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="ExtensionContent"
+ type="aclan:ExtensionContentType"
+ minOccurs="0"
+ maxOccurs="unbounded">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Extension content</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="dsig:Signature"
+ minOccurs="0"
+ maxOccurs="unbounded">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Digital signature</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:sequence>
+ <xs:attribute name="language"
+ type="aclan:LanguageType"
+ use="required">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Language code ISO 639-1 of the Supplement</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="isTheOriginalLanguage"
+ type="xs:boolean"
+ use="required">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Indicate if language is the original language</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:complexType>
+ <xs:complexType name="ExtensionContentType"
+ mixed="true">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Extension content</xs:documentation>
+ </xs:annotation>
+ <xs:sequence minOccurs="0"
+ maxOccurs="unbounded">
+ <xs:any namespace="##any"
+ processContents="lax" />
+ </xs:sequence>
+ <xs:attribute name="id"
+ type="xs:string"
+ use="optional" />
+ </xs:complexType>
+ <xs:complexType name="FamilyNameType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Family name(s)</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="Surname"
+ type="aclan:PlainTextType"
+ maxOccurs="unbounded">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Surname</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="GivenNameType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Given name(s)</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="Name"
+ type="aclan:PlainTextType"
+ maxOccurs="unbounded">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Name</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="GradingSchemeAndGradeDistributionGuidanceType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Grading scheme and grade distribution guidance</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="GradingScheme"
+ type="aclan:RichTextTagType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Grading scheme</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="GradeDistributionGuidance"
+ type="aclan:RichTextTagType"
+ minOccurs="0">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Grade distribution guidance</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="CoursesGroupsType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Courses groups</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="Name"
+ type="aclan:PlainTextType"
+ minOccurs="0">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Groups set name</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="HeaderInformation"
+ type="aclan:RichTextTagType"
+ minOccurs="0">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Header information</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="CoursesGroup"
+ type="aclan:CoursesGroupType"
+ minOccurs="0"
+ maxOccurs="unbounded">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Courses group</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="FooterInformation"
+ type="aclan:RichTextTagType"
+ minOccurs="0">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Footer information</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="CoursesGroupType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Courses group</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="Name"
+ type="aclan:PlainTextType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Name of the group</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="HeaderInformation"
+ type="aclan:RichTextTagType"
+ minOccurs="0">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Header information</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="CoursesGroup"
+ type="aclan:CoursesGroupType"
+ minOccurs="0"
+ maxOccurs="unbounded">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Courses group</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="FooterInformation"
+ type="aclan:RichTextTagType"
+ minOccurs="0">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Footer information</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:sequence>
+ <xs:attribute name="groupID"
+ type="xs:string"
+ use="required">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Group identifier</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:complexType>
+ <xs:complexType name="InformationIdentifyingTheHolderOfTheQualificationType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Information identifying the holder of the qualification</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="FamilyName"
+ type="aclan:FamilyNameType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Family name(s)</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="GivenName"
+ type="aclan:GivenNameType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Given name(s)</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="DateOfBirth"
+ type="aclan:DateType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Date of birth</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="StudentIdentificationNumber"
+ type="aclan:PlainTextType"
+ minOccurs="0">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Student identification number or code</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="CountryOfBirth"
+ minOccurs="0">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Country of birth</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:simpleContent>
+ <xs:extension base="aclan:PlainTextType">
+ <xs:attribute name="country"
+ type="aclan:CountryType"
+ use="optional">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Country code ISO 3166-1-alpha-2</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="PlaceOfBirth"
+ type="aclan:PlainTextType"
+ minOccurs="0">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Place of birth</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="Gender"
+ minOccurs="0">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Gender</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:simpleContent>
+ <xs:extension base="aclan:PlainTextType">
+ <xs:attribute name="gender"
+ type="aclan:GenderType"
+ use="required">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Gender code</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="InformationIdentifyingTheQualificationType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Information identifying the qualification</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="Qualification"
+ type="aclan:QualificationType">
+ <xs:annotation>
+ <xs:documentation xml:lang="es">Qualification</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="TitleConferred"
+ type="aclan:TitleConferredType"
+ minOccurs="0">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Title conferred</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="MainFieldsOfStudy"
+ type="aclan:RichTextTagType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Main fields of study</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="NameAndStatusOfAwardingInstitution"
+ type="aclan:NameAndStatusOfAwardingInstitutionType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Name and status of awarding institution</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="NameAndStatusOfInstitutionAdministeringStudies"
+ type="aclan:NameAndStatusOfInstitutionAdministeringStudiesType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Name and status of institution administering studies</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="LanguagesOfInstructionAndExamination"
+ type="aclan:LanguagesOfInstructionAndExaminationType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Language of instruction and examination</xs:documentation>
+ </xs:annotation>
+ <xs:unique name="LanguageOfInstructionAndExaminationUQ">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Unique: Language of instruction and examinatio</xs:documentation>
+ </xs:annotation>
+ <xs:selector xpath="aclan:Language" />
+ <xs:field xpath="@language" />
+ </xs:unique>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="InformationOnTheContentsAndResultsGainedType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Information on the contents and results gained</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="ModeOfStudy">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Mode of study</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:complexContent>
+ <xs:extension base="aclan:RichTextTagType">
+ <xs:attribute name="modeOfStudy"
+ type="aclan:ModeOfStudyType"
+ use="required">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Mode of study</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="ProgrammeRequirements"
+ type="aclan:ProgrammeRequirementsType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Programme requirements</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="ProgrammeDetails"
+ type="aclan:ProgrammeDetailsType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Programme details</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="GradingSchemeAndGradeDistributionGuidance"
+ type="aclan:GradingSchemeAndGradeDistributionGuidanceType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Grading scheme and grade distribution guidance</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="OverallClassificationOfTheQualification"
+ type="aclan:RichTextTagType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Overall classification of the qualification</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="InformationOnTheFunctionOfTheQualificationType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Information on the function of the qualification type</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="AccessToFurtherStudy"
+ type="aclan:RichTextTagType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Access to further study</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="ProfessionalStatus"
+ minOccurs="0">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Professional status</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:complexContent>
+ <xs:extension base="aclan:RichTextTagType">
+ <xs:attribute name="isRegulatedProfession"
+ type="xs:boolean"
+ use="optional">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Is regulated profession</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="InformationOnTheLevelOfTheQualificationType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Information on the level of the qualification</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="Level">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Level ff the qualification</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:complexContent>
+ <xs:extension base="aclan:RichTextTagType">
+ <xs:attribute name="isced1997"
+ type="aclan:ISCED1997Type"
+ use="optional">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">ISCED 1997 code</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="isced2011"
+ type="aclan:ISCED2011Type"
+ use="optional">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">ISCED 2011 code</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="eheaFramework"
+ type="aclan:EHEAFrameworkType"
+ use="optional">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">EHEA Framework code</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="nfq"
+ type="aclan:NFQType"
+ use="optional">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">NFQ code</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="OfficialLengthOfProgramme">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Official length of programme</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:complexContent>
+ <xs:extension base="aclan:RichTextTagType">
+ <xs:attribute name="ectsCredits"
+ type="aclan:PositiveDecimalType"
+ use="optional">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Number of ECTS credits</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="years"
+ type="aclan:PositiveDecimalType"
+ use="required">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Number of years</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="semesters"
+ type="aclan:PositiveIntegerType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Number of semesters</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="AccessRequirements"
+ type="aclan:RichTextTagType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Access requirements</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="InstitutionType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Name and status of the institution</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="Name"
+ type="aclan:PlainTextType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Name of the institution</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="Status"
+ type="aclan:PlainTextType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Status of the institution</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="Country">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Country of the institution</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:simpleContent>
+ <xs:extension base="aclan:PlainTextType">
+ <xs:attribute name="country"
+ type="aclan:CountryType"
+ use="required">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Country code ISO 3166-1-alpha-2</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="AdditionalInformation"
+ type="aclan:RichTextTagType"
+ minOccurs="0">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Additional Information about the institution</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="ContactInformation"
+ type="aclan:ContactInformationType"
+ minOccurs="0">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Contact information</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="AttachedImageRef"
+ minOccurs="0">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Logo of the institution reference</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:simpleContent>
+ <xs:extension base="aclan:PlainTextType">
+ <xs:attribute name="attachedID"
+ type="xs:IDREF"
+ use="required">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Attached identifier reference</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ <xs:attribute name="nationalID"
+ type="aclan:PlainTextType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">National identification code or number of the institution</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="erasmusID"
+ type="aclan:PlainTextType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">ERASMUS code of the institution</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:complexType>
+ <xs:complexType name="LanguagesOfInstructionAndExaminationType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Language of instruction and examination</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="Language"
+ maxOccurs="unbounded">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Language of instruction and examination</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:complexContent>
+ <xs:extension base="aclan:RichTextTagType">
+ <xs:attribute name="language"
+ type="aclan:LanguageType"
+ use="required">
+ <xs:annotation>
+ <xs:documentation xml:lang="es">Language code ISO 639-1</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="percent"
+ type="aclan:PercentType">
+ <xs:annotation>
+ <xs:documentation xml:lang="es">Percent</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="LocalGradeType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Local grade</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="AcademicYear"
+ type="aclan:AcademicYearType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Academic year</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="DateIssued"
+ type="aclan:DateType"
+ minOccurs="0">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Date issued</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="Grade"
+ type="aclan:PlainTextType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Grade</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="Source"
+ minOccurs="0">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Source grade</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:simpleContent>
+ <xs:extension base="aclan:PlainTextType">
+ <xs:attribute name="source"
+ type="aclan:SourceGradeType"
+ use="required">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Source grade code</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="MobilityProgrammeCoursesUnitsType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Mobility programme courses units</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="CourseUnit"
+ type="aclan:MobilityProgrammeCourseUnitType"
+ maxOccurs="unbounded">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Course unit</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="MobilityProgrammeCourseUnitType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Mobility programme course unit</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="Code"
+ type="aclan:PlainTextType"
+ minOccurs="0">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Course unit code</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="Title">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Course unit title</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:simpleContent>
+ <xs:extension base="aclan:PlainTextType">
+ <xs:attribute name="language"
+ type="aclan:LanguageType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Language code ISO 639-1</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="ECTSCredits"
+ type="aclan:PositiveDecimalType"
+ minOccurs="0">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Number of ECTS credits</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="AdditionalInformation"
+ type="aclan:RichTextTagType"
+ minOccurs="0">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Additional information</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:sequence>
+ <xs:attribute name="isInTheLearningAgreement"
+ type="xs:boolean"
+ default="true">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Is in the learning agreement?</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:complexType>
+ <xs:complexType name="MobilityProgrammeType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Mobility programme</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="Type"
+ type="aclan:PlainTextType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Mobility programme type (e.g. ERASMUS, ISEP, ...)</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="FieldOfStudy"
+ type="aclan:PlainTextType"
+ minOccurs="0">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Field of study</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="Country">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Country</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:simpleContent>
+ <xs:extension base="aclan:PlainTextType">
+ <xs:attribute name="country"
+ type="aclan:CountryType"
+ use="required">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Country code ISO 3166-1-alpha-2</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="ReceivingInstitutionName"
+ type="aclan:PlainTextType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Receiving institution</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="AcademicYear"
+ type="aclan:AcademicYearType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Academic year</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="DateFrom"
+ type="aclan:DateType"
+ minOccurs="0">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Study period (Date from)</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="DateTo"
+ type="aclan:DateType"
+ minOccurs="0">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Study period (Date to)</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="CoursesUnits"
+ type="aclan:MobilityProgrammeCoursesUnitsType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Course units</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="MultilingualDiplomaSupplementType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Multilingual Diploma Supplement (DS)</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element ref="aclan:DiplomaSupplement"
+ minOccurs="2"
+ maxOccurs="unbounded">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Diploma Supplement</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="dsig:Signature"
+ minOccurs="0"
+ maxOccurs="unbounded">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Digital signature</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="NameAndStatusOfAwardingInstitutionType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Name and status of awarding institution</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="AwardingInstitution"
+ maxOccurs="unbounded">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Awarding institution</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:complexContent>
+ <xs:extension base="aclan:InstitutionType">
+ <xs:attribute name="awardingInstitutionID"
+ type="xs:string"
+ use="required">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Awarding institution identifier</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="NameAndStatusOfInstitutionAdministeringStudiesType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Name and status of institution administering studies</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="InstitutionAdministeringStudies"
+ maxOccurs="unbounded">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Institution administering studies</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:complexContent>
+ <xs:extension base="aclan:InstitutionType">
+ <xs:attribute name="institutionAdministeringStudiesID"
+ type="xs:string"
+ use="required">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Institution administering studies identifier</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="OfficialCertifyingType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Official certifying the DS</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="FamilyName"
+ type="aclan:FamilyNameType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Family name(s)</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="GivenName"
+ type="aclan:GivenNameType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Given name(s)</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="Capacity"
+ type="aclan:PlainTextType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Official capacity</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:sequence>
+ <xs:attribute name="awardingInstitutionID"
+ type="xs:string"
+ use="required">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Identifier of awarding institution</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:complexType>
+ <xs:complexType name="OfficialsCertifyingType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Officials certifying</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="OfficialCertifying"
+ type="aclan:OfficialCertifyingType"
+ maxOccurs="unbounded">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Official certifying</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="OfficialStampType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Official stamp or seal of the institution</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="Description"
+ type="aclan:PlainTextType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Stamp description</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:sequence>
+ <xs:attribute name="awardingInstitutionID"
+ type="xs:string"
+ use="required">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Identifier of awarding institution</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:complexType>
+ <xs:complexType name="ProgrammeDetailsType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Programme details</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="CourseStructureDiagram"
+ type="aclan:CourseStructureDiagramType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Course structure diagram</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="CoursesAttendedInOtherInstitutionInMobilityPrograms"
+ type="aclan:CoursesAttendedInOtherInstitutionInMobilityProgramsType"
+ minOccurs="0">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Courses attended in other institution in mobility programs</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="ProgrammeRequirementsType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Programme requirements</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="Requirements"
+ type="aclan:RichTextTagType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Programme requirements</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="KeyLearningOutcomes"
+ type="aclan:RichTextTagType"
+ minOccurs="0">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Key learning outcomes of the programme</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="QualificationType">
+ <xs:annotation>
+ <xs:documentation xml:lang="es">Qualification</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="Name"
+ type="aclan:PlainTextType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Name of the qualification</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="AdditionalInformation"
+ type="aclan:RichTextTagType"
+ minOccurs="0">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Additional information about the qualification</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:sequence>
+ <xs:attribute name="localID"
+ type="aclan:PlainTextType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Local identification code or number of the qualification</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="nationalID"
+ type="aclan:PlainTextType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">National identification code or number of the qualification</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:complexType>
+ <xs:complexType name="RichTextTagType"
+ mixed="true">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Rich text tag</xs:documentation>
+ </xs:annotation>
+ <xs:choice minOccurs="0"
+ maxOccurs="unbounded">
+ <xs:element name="Bold"
+ type="aclan:PlainTextType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Specifies bold text</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="BreakLine"
+ type="aclan:EmptyType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Specifies break line</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="Italic"
+ type="aclan:PlainTextType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Specifies italic text</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="Underline"
+ type="aclan:PlainTextType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Specifies underline text</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="AttachedRef">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Specifies reference to the attached resource </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:simpleContent>
+ <xs:extension base="aclan:PlainTextType">
+ <xs:attribute name="attachedID"
+ type="xs:IDREF"
+ use="required">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Attached identifier reference</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ </xs:element>
+ </xs:choice>
+ </xs:complexType>
+ <xs:complexType name="TitleConferredType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Title conferred</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="Name"
+ type="aclan:PlainTextType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Name of the title conferred</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:element name="DiplomaSupplement"
+ type="aclan:DiplomaSupplementType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Diploma Supplement</xs:documentation>
+ </xs:annotation>
+ <!--Primary Keys-->
+ <xs:key name="GroupIDPK">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Primary Key: Group identifier</xs:documentation>
+ </xs:annotation>
+ <xs:selector xpath=".//aclan:CoursesGroup" />
+ <xs:field xpath="@groupID" />
+ </xs:key>
+ <xs:key name="AwardingInstitutionIDPK">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Primary Key: Awarding institution identifier</xs:documentation>
+ </xs:annotation>
+ <xs:selector xpath=".//aclan:AwardingInstitution" />
+ <xs:field xpath="@awardingInstitutionID" />
+ </xs:key>
+ <xs:key name="InstitutionAdministeringStudiesIDPK">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Primary Key: Intitution administering studies identifier</xs:documentation>
+ </xs:annotation>
+ <xs:selector xpath=".//aclan:InstitutionAdministeringStudies" />
+ <xs:field xpath="@institutionAdministeringStudiesID" />
+ </xs:key>
+ <!--Foreign Keys-->
+ <xs:keyref name="GroupFK"
+ refer="aclan:GroupIDPK">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Foreign Key: Group identifier</xs:documentation>
+ </xs:annotation>
+ <xs:selector xpath=".//aclan:CourseStructureDiagram/aclan:CoursesUnits/aclan:CourseUnit" />
+ <xs:field xpath="@groupID" />
+ </xs:keyref>
+ <xs:keyref name="AwardingInstitutionOfficialCertifyingFK"
+ refer="aclan:AwardingInstitutionIDPK">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Foreign Key: Awarding institution (Official Stamp) identifier</xs:documentation>
+ </xs:annotation>
+ <xs:selector xpath=".//aclan:OfficialCertifying" />
+ <xs:field xpath="@awardingInstitutionID" />
+ </xs:keyref>
+ <xs:keyref name="AwardingInstitutionOfficialStampFK"
+ refer="aclan:AwardingInstitutionIDPK">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Foreign Key: Awarding institution (Official Stamp) identifier</xs:documentation>
+ </xs:annotation>
+ <xs:selector xpath=".//aclan:OfficialStamp" />
+ <xs:field xpath="@awardingInstitutionID" />
+ </xs:keyref>
+ <xs:keyref name="InstitutionAdministeringStudiesFK"
+ refer="aclan:InstitutionAdministeringStudiesIDPK">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Foreign Key: Institution administering studies identifier</xs:documentation>
+ </xs:annotation>
+ <xs:selector xpath=".//aclan:ProgrammeDetails/aclan:CourseStructureDiagram/aclan:CoursesUnits/aclan:CourseUnit" />
+ <xs:field xpath="@institutionAdministeringStudiesID" />
+ </xs:keyref>
+ </xs:element>
+ <xs:element name="MultilingualDiplomaSupplement"
+ type="aclan:MultilingualDiplomaSupplementType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Multilingual Diploma Supplement</xs:documentation>
+ </xs:annotation>
+ <!--Unique Keys-->
+ <xs:unique name="DiplomaSupplementLanguageUQ">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">Unique: Diploma Supplement language</xs:documentation>
+ </xs:annotation>
+ <xs:selector xpath="aclan:DiplomaSupplement" />
+ <xs:field xpath="@language" />
+ </xs:unique>
+ </xs:element>
+</xs:schema>
diff --git a/id/server/stork2-commons/src/main/resources/schema/diploma.xsd b/id/server/stork2-commons/src/main/resources/schema/diploma.xsd
new file mode 100644
index 000000000..bea3d03f1
--- /dev/null
+++ b/id/server/stork2-commons/src/main/resources/schema/diploma.xsd
@@ -0,0 +1,1687 @@
+<?xml version="1.0" encoding="utf-8"?>
+<xs:schema xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"
+ xmlns:gd="urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="urn:eu:stork:names:tc:STORK:2.0:academic:generaldiploma"
+ elementFormDefault="qualified"
+ attributeFormDefault="unqualified" version="1.1">
+
+ <xs:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="xmldsig-core-schema.xsd"/>
+
+ <xs:simpleType name="AcademicYearType">
+ <xs:restriction base="xs:string"/>
+ </xs:simpleType>
+
+ <xs:simpleType name="CountryType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="AD">
+ </xs:enumeration>
+ <xs:enumeration value="AE">
+ </xs:enumeration>
+ <xs:enumeration value="AF">
+ </xs:enumeration>
+ <xs:enumeration value="AG">
+ </xs:enumeration>
+ <xs:enumeration value="AL">
+ </xs:enumeration>
+ <xs:enumeration value="AM">
+ </xs:enumeration>
+ <xs:enumeration value="AO">
+ </xs:enumeration>
+ <xs:enumeration value="AR">
+ </xs:enumeration>
+ <xs:enumeration value="AT">
+ </xs:enumeration>
+ <xs:enumeration value="AU">
+ </xs:enumeration>
+ <xs:enumeration value="AZ">
+ </xs:enumeration>
+ <xs:enumeration value="BA">
+ </xs:enumeration>
+ <xs:enumeration value="BB">
+ </xs:enumeration>
+ <xs:enumeration value="BD">
+ </xs:enumeration>
+ <xs:enumeration value="BE">
+ </xs:enumeration>
+ <xs:enumeration value="BF">
+ </xs:enumeration>
+ <xs:enumeration value="BG">
+ </xs:enumeration>
+ <xs:enumeration value="BH">
+ </xs:enumeration>
+ <xs:enumeration value="BI">
+ </xs:enumeration>
+ <xs:enumeration value="BJ">
+ </xs:enumeration>
+ <xs:enumeration value="BN">
+ </xs:enumeration>
+ <xs:enumeration value="BO">
+ </xs:enumeration>
+ <xs:enumeration value="BR">
+ </xs:enumeration>
+ <xs:enumeration value="BS">
+ </xs:enumeration>
+ <xs:enumeration value="BT">
+ </xs:enumeration>
+ <xs:enumeration value="BW">
+ </xs:enumeration>
+ <xs:enumeration value="BY">
+ </xs:enumeration>
+ <xs:enumeration value="BZ">
+ </xs:enumeration>
+ <xs:enumeration value="CA">
+ </xs:enumeration>
+ <xs:enumeration value="CD">
+ </xs:enumeration>
+ <xs:enumeration value="CF">
+ </xs:enumeration>
+ <xs:enumeration value="CG">
+ </xs:enumeration>
+ <xs:enumeration value="CH">
+ </xs:enumeration>
+ <xs:enumeration value="CI">
+ </xs:enumeration>
+ <xs:enumeration value="CL">
+ </xs:enumeration>
+ <xs:enumeration value="CM">
+ </xs:enumeration>
+ <xs:enumeration value="CN">
+ </xs:enumeration>
+ <xs:enumeration value="CO">
+ </xs:enumeration>
+ <xs:enumeration value="CR">
+ </xs:enumeration>
+ <xs:enumeration value="CU">
+ </xs:enumeration>
+ <xs:enumeration value="CV">
+ </xs:enumeration>
+ <xs:enumeration value="CY">
+ </xs:enumeration>
+ <xs:enumeration value="CZ">
+ </xs:enumeration>
+ <xs:enumeration value="DE">
+ </xs:enumeration>
+ <xs:enumeration value="DJ">
+ </xs:enumeration>
+ <xs:enumeration value="DK">
+ </xs:enumeration>
+ <xs:enumeration value="DM">
+ </xs:enumeration>
+ <xs:enumeration value="DO">
+ </xs:enumeration>
+ <xs:enumeration value="DZ">
+ </xs:enumeration>
+ <xs:enumeration value="EC">
+ </xs:enumeration>
+ <xs:enumeration value="EE">
+ </xs:enumeration>
+ <xs:enumeration value="EG">
+ </xs:enumeration>
+ <xs:enumeration value="ER">
+ </xs:enumeration>
+ <xs:enumeration value="ES">
+ </xs:enumeration>
+ <xs:enumeration value="ET">
+ </xs:enumeration>
+ <xs:enumeration value="FI">
+ </xs:enumeration>
+ <xs:enumeration value="FJ">
+ </xs:enumeration>
+ <xs:enumeration value="FM">
+ </xs:enumeration>
+ <xs:enumeration value="FR">
+ </xs:enumeration>
+ <xs:enumeration value="GA">
+ </xs:enumeration>
+ <xs:enumeration value="GB">
+ </xs:enumeration>
+ <xs:enumeration value="GD">
+ </xs:enumeration>
+ <xs:enumeration value="GE">
+ </xs:enumeration>
+ <xs:enumeration value="GH">
+ </xs:enumeration>
+ <xs:enumeration value="GL">
+ </xs:enumeration>
+ <xs:enumeration value="GM">
+ </xs:enumeration>
+ <xs:enumeration value="GN">
+ </xs:enumeration>
+ <xs:enumeration value="GQ">
+ </xs:enumeration>
+ <xs:enumeration value="GR">
+ </xs:enumeration>
+ <xs:enumeration value="GT">
+ </xs:enumeration>
+ <xs:enumeration value="GW">
+ </xs:enumeration>
+ <xs:enumeration value="GY">
+ </xs:enumeration>
+ <xs:enumeration value="HN">
+ </xs:enumeration>
+ <xs:enumeration value="HR">
+ </xs:enumeration>
+ <xs:enumeration value="HT">
+ </xs:enumeration>
+ <xs:enumeration value="HU">
+ </xs:enumeration>
+ <xs:enumeration value="ID">
+ </xs:enumeration>
+ <xs:enumeration value="IE">
+ </xs:enumeration>
+ <xs:enumeration value="IL">
+ </xs:enumeration>
+ <xs:enumeration value="IN">
+ </xs:enumeration>
+ <xs:enumeration value="IQ">
+ </xs:enumeration>
+ <xs:enumeration value="IR">
+ </xs:enumeration>
+ <xs:enumeration value="IS">
+ </xs:enumeration>
+ <xs:enumeration value="IT">
+ </xs:enumeration>
+ <xs:enumeration value="JM">
+ </xs:enumeration>
+ <xs:enumeration value="JO">
+ </xs:enumeration>
+ <xs:enumeration value="JP">
+ </xs:enumeration>
+ <xs:enumeration value="KE">
+ </xs:enumeration>
+ <xs:enumeration value="KG">
+ </xs:enumeration>
+ <xs:enumeration value="KH">
+ </xs:enumeration>
+ <xs:enumeration value="KI">
+ </xs:enumeration>
+ <xs:enumeration value="KM">
+ </xs:enumeration>
+ <xs:enumeration value="KN">
+ </xs:enumeration>
+ <xs:enumeration value="KP">
+ </xs:enumeration>
+ <xs:enumeration value="KR">
+ </xs:enumeration>
+ <xs:enumeration value="KW">
+ </xs:enumeration>
+ <xs:enumeration value="KZ">
+ </xs:enumeration>
+ <xs:enumeration value="LA">
+ </xs:enumeration>
+ <xs:enumeration value="LB">
+ </xs:enumeration>
+ <xs:enumeration value="LC">
+ </xs:enumeration>
+ <xs:enumeration value="LI">
+ </xs:enumeration>
+ <xs:enumeration value="LK">
+ </xs:enumeration>
+ <xs:enumeration value="LR">
+ </xs:enumeration>
+ <xs:enumeration value="LS">
+ </xs:enumeration>
+ <xs:enumeration value="LT">
+ </xs:enumeration>
+ <xs:enumeration value="LU">
+ </xs:enumeration>
+ <xs:enumeration value="LV">
+ </xs:enumeration>
+ <xs:enumeration value="LY">
+ </xs:enumeration>
+ <xs:enumeration value="MA">
+ </xs:enumeration>
+ <xs:enumeration value="MC">
+ </xs:enumeration>
+ <xs:enumeration value="MD">
+ </xs:enumeration>
+ <xs:enumeration value="ME">
+ </xs:enumeration>
+ <xs:enumeration value="MG">
+ </xs:enumeration>
+ <xs:enumeration value="MH">
+ </xs:enumeration>
+ <xs:enumeration value="MK">
+ </xs:enumeration>
+ <xs:enumeration value="ML">
+ </xs:enumeration>
+ <xs:enumeration value="MM">
+ </xs:enumeration>
+ <xs:enumeration value="MN">
+ </xs:enumeration>
+ <xs:enumeration value="MR">
+ </xs:enumeration>
+ <xs:enumeration value="MT">
+ </xs:enumeration>
+ <xs:enumeration value="MU">
+ </xs:enumeration>
+ <xs:enumeration value="MV">
+ </xs:enumeration>
+ <xs:enumeration value="MW">
+ </xs:enumeration>
+ <xs:enumeration value="MX">
+ </xs:enumeration>
+ <xs:enumeration value="MY">
+ </xs:enumeration>
+ <xs:enumeration value="MZ">
+ </xs:enumeration>
+ <xs:enumeration value="NA">
+ </xs:enumeration>
+ <xs:enumeration value="NE">
+ </xs:enumeration>
+ <xs:enumeration value="NG">
+ </xs:enumeration>
+ <xs:enumeration value="NI">
+ </xs:enumeration>
+ <xs:enumeration value="NL">
+ </xs:enumeration>
+ <xs:enumeration value="NO">
+ </xs:enumeration>
+ <xs:enumeration value="NP">
+ </xs:enumeration>
+ <xs:enumeration value="NR">
+ </xs:enumeration>
+ <xs:enumeration value="NU">
+ </xs:enumeration>
+ <xs:enumeration value="NZ">
+ </xs:enumeration>
+ <xs:enumeration value="OM">
+ </xs:enumeration>
+ <xs:enumeration value="PA">
+ </xs:enumeration>
+ <xs:enumeration value="PE">
+ </xs:enumeration>
+ <xs:enumeration value="PG">
+ </xs:enumeration>
+ <xs:enumeration value="PH">
+ </xs:enumeration>
+ <xs:enumeration value="PK">
+ </xs:enumeration>
+ <xs:enumeration value="PL">
+ </xs:enumeration>
+ <xs:enumeration value="PR">
+ </xs:enumeration>
+ <xs:enumeration value="PS">
+ </xs:enumeration>
+ <xs:enumeration value="PT">
+ </xs:enumeration>
+ <xs:enumeration value="PW">
+ </xs:enumeration>
+ <xs:enumeration value="PY">
+ </xs:enumeration>
+ <xs:enumeration value="QA">
+ </xs:enumeration>
+ <xs:enumeration value="RO">
+ </xs:enumeration>
+ <xs:enumeration value="RS">
+ </xs:enumeration>
+ <xs:enumeration value="RU">
+ </xs:enumeration>
+ <xs:enumeration value="RW">
+ </xs:enumeration>
+ <xs:enumeration value="SA">
+ </xs:enumeration>
+ <xs:enumeration value="SB">
+ </xs:enumeration>
+ <xs:enumeration value="SC">
+ </xs:enumeration>
+ <xs:enumeration value="SD">
+ </xs:enumeration>
+ <xs:enumeration value="SE">
+ </xs:enumeration>
+ <xs:enumeration value="SG">
+ </xs:enumeration>
+ <xs:enumeration value="SI">
+ </xs:enumeration>
+ <xs:enumeration value="SK">
+ </xs:enumeration>
+ <xs:enumeration value="SL">
+ </xs:enumeration>
+ <xs:enumeration value="SM">
+ </xs:enumeration>
+ <xs:enumeration value="SN">
+ </xs:enumeration>
+ <xs:enumeration value="SO">
+ </xs:enumeration>
+ <xs:enumeration value="SR">
+ </xs:enumeration>
+ <xs:enumeration value="ST">
+ </xs:enumeration>
+ <xs:enumeration value="SV">
+ </xs:enumeration>
+ <xs:enumeration value="SY">
+ </xs:enumeration>
+ <xs:enumeration value="SZ">
+ </xs:enumeration>
+ <xs:enumeration value="TD">
+ </xs:enumeration>
+ <xs:enumeration value="TG">
+ </xs:enumeration>
+ <xs:enumeration value="TH">
+ </xs:enumeration>
+ <xs:enumeration value="TJ">
+ </xs:enumeration>
+ <xs:enumeration value="TL">
+ </xs:enumeration>
+ <xs:enumeration value="TM">
+ </xs:enumeration>
+ <xs:enumeration value="TN">
+ </xs:enumeration>
+ <xs:enumeration value="TO">
+ </xs:enumeration>
+ <xs:enumeration value="TR">
+ </xs:enumeration>
+ <xs:enumeration value="TT">
+ </xs:enumeration>
+ <xs:enumeration value="TV">
+ </xs:enumeration>
+ <xs:enumeration value="TZ">
+ </xs:enumeration>
+ <xs:enumeration value="UA">
+ </xs:enumeration>
+ <xs:enumeration value="UG">
+ </xs:enumeration>
+ <xs:enumeration value="US">
+ </xs:enumeration>
+ <xs:enumeration value="UY">
+ </xs:enumeration>
+ <xs:enumeration value="UZ">
+ </xs:enumeration>
+ <xs:enumeration value="VA">
+ </xs:enumeration>
+ <xs:enumeration value="VC">
+ </xs:enumeration>
+ <xs:enumeration value="VE">
+ </xs:enumeration>
+ <xs:enumeration value="VN">
+ </xs:enumeration>
+ <xs:enumeration value="VU">
+ </xs:enumeration>
+ <xs:enumeration value="WS">
+ </xs:enumeration>
+ <xs:enumeration value="YE">
+ </xs:enumeration>
+ <xs:enumeration value="ZA">
+ </xs:enumeration>
+ <xs:enumeration value="ZM">
+ </xs:enumeration>
+ <xs:enumeration value="ZW">
+ </xs:enumeration>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="CourseUnitTypeType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="Compulsory">
+ </xs:enumeration>
+ <xs:enumeration value="Optional">
+ </xs:enumeration>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="DateType">
+ <xs:restriction base="xs:date"/>
+ </xs:simpleType>
+ <xs:simpleType name="ECTSGradingScaleType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="A">
+ </xs:enumeration>
+ <xs:enumeration value="B">
+ </xs:enumeration>
+ <xs:enumeration value="C">
+ </xs:enumeration>
+ <xs:enumeration value="D">
+ </xs:enumeration>
+ <xs:enumeration value="E">
+ </xs:enumeration>
+ <xs:enumeration value="FX">
+ </xs:enumeration>
+ <xs:enumeration value="F">
+ </xs:enumeration>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="EmailAddressType">
+ <xs:restriction base="xs:string"/>
+ </xs:simpleType>
+ <xs:simpleType name="EHEAFrameworkType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="FirstCycle">
+ </xs:enumeration>
+ <xs:enumeration value="SecondCycle">
+ </xs:enumeration>
+ <xs:enumeration value="ThirdCycle">
+ </xs:enumeration>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="EmptyType">
+ <xs:restriction base="xs:string">
+ <xs:maxLength value="0"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="GenderType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="Female">
+ </xs:enumeration>
+ <xs:enumeration value="Male">
+ </xs:enumeration>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="ImageMimeType">
+ <xs:restriction base="gd:MimeType">
+ <xs:enumeration value="image/gif">
+ </xs:enumeration>
+ <xs:enumeration value="image/jpeg">
+ </xs:enumeration>
+ <xs:enumeration value="image/pjpeg">
+ </xs:enumeration>
+ <xs:enumeration value="image/png">
+ </xs:enumeration>
+ <xs:enumeration value="image/tiff">
+ </xs:enumeration>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="ISCED1997Type">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="0">
+ </xs:enumeration>
+ <xs:enumeration value="1">
+ </xs:enumeration>
+ <xs:enumeration value="2">
+ </xs:enumeration>
+ <xs:enumeration value="3">
+ </xs:enumeration>
+ <xs:enumeration value="4">
+ </xs:enumeration>
+ <xs:enumeration value="5A">
+ </xs:enumeration>
+ <xs:enumeration value="5B">
+ </xs:enumeration>
+ <xs:enumeration value="6">
+ </xs:enumeration>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="ISCED2011Type">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="0">
+ </xs:enumeration>
+ <xs:enumeration value="1">
+ </xs:enumeration>
+ <xs:enumeration value="2">
+ </xs:enumeration>
+ <xs:enumeration value="3">
+ </xs:enumeration>
+ <xs:enumeration value="4">
+ </xs:enumeration>
+ <xs:enumeration value="5">
+ </xs:enumeration>
+ <xs:enumeration value="6">
+ </xs:enumeration>
+ <xs:enumeration value="7">
+ </xs:enumeration>
+ <xs:enumeration value="8">
+ </xs:enumeration>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="LanguageType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="ab">
+ </xs:enumeration>
+ <xs:enumeration value="af">
+ </xs:enumeration>
+ <xs:enumeration value="an">
+ </xs:enumeration>
+ <xs:enumeration value="ar">
+ </xs:enumeration>
+ <xs:enumeration value="as">
+ </xs:enumeration>
+ <xs:enumeration value="az">
+ </xs:enumeration>
+ <xs:enumeration value="be">
+ </xs:enumeration>
+ <xs:enumeration value="bg">
+ </xs:enumeration>
+ <xs:enumeration value="bn">
+ </xs:enumeration>
+ <xs:enumeration value="bo">
+ </xs:enumeration>
+ <xs:enumeration value="br">
+ </xs:enumeration>
+ <xs:enumeration value="bs">
+ </xs:enumeration>
+ <xs:enumeration value="ca">
+ </xs:enumeration>
+ <xs:enumeration value="ce">
+ </xs:enumeration>
+ <xs:enumeration value="co">
+ </xs:enumeration>
+ <xs:enumeration value="cs">
+ </xs:enumeration>
+ <xs:enumeration value="cy">
+ </xs:enumeration>
+ <xs:enumeration value="da">
+ </xs:enumeration>
+ <xs:enumeration value="de">
+ </xs:enumeration>
+ <xs:enumeration value="el">
+ </xs:enumeration>
+ <xs:enumeration value="en">
+ </xs:enumeration>
+ <xs:enumeration value="es">
+ </xs:enumeration>
+ <xs:enumeration value="et">
+ </xs:enumeration>
+ <xs:enumeration value="eu">
+ </xs:enumeration>
+ <xs:enumeration value="fa">
+ </xs:enumeration>
+ <xs:enumeration value="fi">
+ </xs:enumeration>
+ <xs:enumeration value="fj">
+ </xs:enumeration>
+ <xs:enumeration value="fo">
+ </xs:enumeration>
+ <xs:enumeration value="fr">
+ </xs:enumeration>
+ <xs:enumeration value="fy">
+ </xs:enumeration>
+ <xs:enumeration value="ga">
+ </xs:enumeration>
+ <xs:enumeration value="gd">
+ </xs:enumeration>
+ <xs:enumeration value="gl">
+ </xs:enumeration>
+ <xs:enumeration value="gv">
+ </xs:enumeration>
+ <xs:enumeration value="grc">
+ </xs:enumeration>
+ <xs:enumeration value="gsw">
+ </xs:enumeration>
+ <xs:enumeration value="he">
+ </xs:enumeration>
+ <xs:enumeration value="hi">
+ </xs:enumeration>
+ <xs:enumeration value="hr">
+ </xs:enumeration>
+ <xs:enumeration value="ht">
+ </xs:enumeration>
+ <xs:enumeration value="hu">
+ </xs:enumeration>
+ <xs:enumeration value="hy">
+ </xs:enumeration>
+ <xs:enumeration value="id">
+ </xs:enumeration>
+ <xs:enumeration value="is">
+ </xs:enumeration>
+ <xs:enumeration value="it">
+ </xs:enumeration>
+ <xs:enumeration value="ja">
+ </xs:enumeration>
+ <xs:enumeration value="jv">
+ </xs:enumeration>
+ <xs:enumeration value="ka">
+ </xs:enumeration>
+ <xs:enumeration value="kg">
+ </xs:enumeration>
+ <xs:enumeration value="ko">
+ </xs:enumeration>
+ <xs:enumeration value="ku">
+ </xs:enumeration>
+ <xs:enumeration value="kw">
+ </xs:enumeration>
+ <xs:enumeration value="ky">
+ </xs:enumeration>
+ <xs:enumeration value="lb">
+ </xs:enumeration>
+ <xs:enumeration value="li">
+ </xs:enumeration>
+ <xs:enumeration value="ln">
+ </xs:enumeration>
+ <xs:enumeration value="lt">
+ </xs:enumeration>
+ <xs:enumeration value="lv">
+ </xs:enumeration>
+ <xs:enumeration value="mg">
+ </xs:enumeration>
+ <xs:enumeration value="mk">
+ </xs:enumeration>
+ <xs:enumeration value="mn">
+ </xs:enumeration>
+ <xs:enumeration value="mo">
+ </xs:enumeration>
+ <xs:enumeration value="ms">
+ </xs:enumeration>
+ <xs:enumeration value="mt">
+ </xs:enumeration>
+ <xs:enumeration value="my">
+ </xs:enumeration>
+ <xs:enumeration value="nb">
+ </xs:enumeration>
+ <xs:enumeration value="ne">
+ </xs:enumeration>
+ <xs:enumeration value="nl">
+ </xs:enumeration>
+ <xs:enumeration value="nn">
+ </xs:enumeration>
+ <xs:enumeration value="no">
+ </xs:enumeration>
+ <xs:enumeration value="pl">
+ </xs:enumeration>
+ <xs:enumeration value="pt">
+ </xs:enumeration>
+ <xs:enumeration value="rm">
+ </xs:enumeration>
+ <xs:enumeration value="ro">
+ </xs:enumeration>
+ <xs:enumeration value="ru">
+ </xs:enumeration>
+ <xs:enumeration value="sc">
+ </xs:enumeration>
+ <xs:enumeration value="se">
+ </xs:enumeration>
+ <xs:enumeration value="sk">
+ </xs:enumeration>
+ <xs:enumeration value="sl">
+ </xs:enumeration>
+ <xs:enumeration value="so">
+ </xs:enumeration>
+ <xs:enumeration value="sq">
+ </xs:enumeration>
+ <xs:enumeration value="sr">
+ </xs:enumeration>
+ <xs:enumeration value="sv">
+ </xs:enumeration>
+ <xs:enumeration value="sw">
+ </xs:enumeration>
+ <xs:enumeration value="tk">
+ </xs:enumeration>
+ <xs:enumeration value="tr">
+ </xs:enumeration>
+ <xs:enumeration value="ty">
+ </xs:enumeration>
+ <xs:enumeration value="uk">
+ </xs:enumeration>
+ <xs:enumeration value="ur">
+ </xs:enumeration>
+ <xs:enumeration value="uz">
+ </xs:enumeration>
+ <xs:enumeration value="vi">
+ </xs:enumeration>
+ <xs:enumeration value="yi">
+ </xs:enumeration>
+ <xs:enumeration value="zh">
+ </xs:enumeration>
+ <xs:enumeration value="cu">
+ </xs:enumeration>
+ <xs:enumeration value="eo">
+ </xs:enumeration>
+ <xs:enumeration value="la">
+ </xs:enumeration>
+ <xs:enumeration value="oc">
+ </xs:enumeration>
+ <xs:enumeration value="vo">
+ </xs:enumeration>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="MimeType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="image/gif">
+ </xs:enumeration>
+ <xs:enumeration value="image/jpeg">
+ </xs:enumeration>
+ <xs:enumeration value="image/pjpeg">
+ </xs:enumeration>
+ <xs:enumeration value="image/png">
+ </xs:enumeration>
+ <xs:enumeration value="image/tiff">
+ </xs:enumeration>
+ <xs:enumeration value="text/html">
+ </xs:enumeration>
+ <xs:enumeration value="application/pdf">
+ </xs:enumeration>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="ModeOfStudyType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="FullTime">
+ </xs:enumeration>
+ <xs:enumeration value="ParTime">
+ </xs:enumeration>
+ <xs:enumeration value="Distance">
+ </xs:enumeration>
+ <xs:enumeration value="eLearning">
+ </xs:enumeration>
+ <xs:enumeration value="Another">
+ </xs:enumeration>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="ModeOfDeliveryType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="FaceToFace">
+ </xs:enumeration>
+ <xs:enumeration value="DistanceLearning">
+ </xs:enumeration>
+ <xs:enumeration value="Other">
+ </xs:enumeration>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="NFQType">
+ <xs:restriction base="xs:string"/>
+ </xs:simpleType>
+ <xs:simpleType name="PlainTextType">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="PercentType">
+ <xs:restriction base="xs:decimal">
+ <xs:maxInclusive value="100"/>
+ <xs:minInclusive value="0"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="PositiveDecimalType">
+ <xs:restriction base="xs:decimal">
+ <xs:minInclusive value="0"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="PositiveIntegerType">
+ <xs:restriction base="xs:int">
+ <xs:minInclusive value="0"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="SourceGradeType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="Recognized">
+ </xs:enumeration>
+ <xs:enumeration value="MobilityProgramme">
+ </xs:enumeration>
+ <xs:enumeration value="Another">
+ </xs:enumeration>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="URLType">
+ <xs:restriction base="xs:anyURI"/>
+ </xs:simpleType>
+
+
+
+
+ <!-- Complex types -->
+
+ <xs:complexType name="CountryTextCodeType">
+ <xs:simpleContent>
+ <xs:extension base="gd:PlainTextType">
+ <xs:attribute name="country" type="gd:CountryType" use="optional">
+ </xs:attribute>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+
+
+ <xs:complexType name="AdditionalInformationType">
+ <xs:sequence>
+ <xs:element name="SpecificInformation" type="gd:RichTextTagType" minOccurs="0">
+ </xs:element>
+ <xs:element name="OtherSources" type="gd:RichTextTagType" minOccurs="0">
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+
+
+ <xs:complexType name="AddressType">
+ <xs:sequence>
+ <xs:element name="Line" type="gd:PlainTextType" maxOccurs="unbounded">
+ </xs:element>
+ <xs:element name="City" type="gd:PlainTextType" minOccurs="0">
+ </xs:element>
+ <xs:element name="StateOrRegion" type="gd:PlainTextType" minOccurs="0">
+ </xs:element>
+ <xs:element name="PostalCode" type="gd:PlainTextType" minOccurs="0">
+ </xs:element>
+ <xs:element name="Country" type="gd:CountryTextCodeType" minOccurs="0">
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+
+
+ <xs:complexType name="AttachedFileDataType">
+ <xs:sequence>
+ <xs:element name="Description" type="gd:PlainTextType">
+ </xs:element>
+ <xs:element name="Mime" type="gd:MimeType">
+ </xs:element>
+ <xs:element name="Data" type="xs:base64Binary">
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+
+
+ <xs:complexType name="AttachedFileURLType">
+ <xs:sequence>
+ <xs:element name="Description" type="gd:PlainTextType">
+ </xs:element>
+ <xs:element name="Mime" type="gd:MimeType">
+ </xs:element>
+ <xs:element name="URL" type="gd:URLType">
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+
+
+ <xs:complexType name="AttachedImageDataType">
+ <xs:sequence>
+ <xs:element name="Description" type="gd:PlainTextType">
+ </xs:element>
+ <xs:element name="Mime" type="gd:ImageMimeType">
+ </xs:element>
+ <xs:element name="Data" type="xs:base64Binary">
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+
+
+ <xs:complexType name="AttachedImageURLType">
+ <xs:sequence>
+ <xs:element name="Description" type="gd:PlainTextType">
+ </xs:element>
+ <xs:element name="Mime" type="gd:ImageMimeType">
+ </xs:element>
+ <xs:element name="URL" type="gd:URLType">
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+
+
+ <xs:complexType name="AttachedType">
+ <xs:choice>
+ <xs:element name="FileData" type="gd:AttachedFileDataType">
+ </xs:element>
+ <xs:element name="FileURI" type="gd:AttachedFileURLType">
+ </xs:element>
+ <xs:element name="ImageData" type="gd:AttachedImageDataType">
+ </xs:element>
+ <xs:element name="ImageURI" type="gd:AttachedImageURLType">
+ </xs:element>
+ </xs:choice>
+ <xs:attribute name="attachedID" type="xs:ID" use="required">
+ </xs:attribute>
+ </xs:complexType>
+
+
+ <xs:complexType name="AttachmentsType">
+ <xs:sequence>
+ <xs:element name="Attached" type="gd:AttachedType" maxOccurs="unbounded">
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+
+
+ <xs:complexType name="CertificationOfTheSupplementType">
+ <xs:sequence>
+ <xs:element name="CertificationDate" type="gd:DateType" minOccurs="0">
+ </xs:element>
+ <xs:element name="OfficialsCertifying" type="gd:OfficialsCertifyingType" minOccurs="0">
+ </xs:element>
+ <xs:element name="OfficialStamp" type="gd:OfficialStampType" minOccurs="0">
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+
+
+ <xs:complexType name="ContactInformationType">
+ <xs:sequence>
+ <xs:element name="Address" type="gd:AddressType" minOccurs="0">
+ </xs:element>
+ <xs:element name="PhoneNumber" type="gd:PlainTextType" minOccurs="0" maxOccurs="unbounded">
+ </xs:element>
+ <xs:element name="Email" type="gd:EmailAddressType" minOccurs="0" maxOccurs="unbounded">
+ </xs:element>
+ <xs:element name="WebSite" type="gd:URLType" minOccurs="0" maxOccurs="unbounded">
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+
+
+ <xs:complexType name="CoursesAttendedInOtherInstitutionInMobilityProgramsType">
+ <xs:sequence>
+ <xs:element name="MobilityProgramme" type="gd:MobilityProgrammeType" maxOccurs="unbounded">
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+
+
+ <xs:complexType name="CourseStructureDiagramType">
+ <xs:sequence>
+ <xs:element name="CoursesGroups" type="gd:CoursesGroupsType" minOccurs="0">
+ </xs:element>
+ <xs:element name="CoursesUnits" type="gd:CoursesUnitsType" minOccurs="0">
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+
+
+ <xs:complexType name="CoursesUnitsType">
+ <xs:sequence>
+ <xs:element name="CourseUnit" type="gd:CourseUnitType" maxOccurs="unbounded">
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+
+
+ <xs:complexType name="CourseUnitLanguagesOfInstructionType">
+ <xs:sequence>
+ <xs:element name="Language" type="gd:CourseUnitLanguageOfInstructionType" maxOccurs="unbounded">
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+
+
+ <xs:complexType name="CourseUnitStudentPerformanceType">
+ <xs:sequence>
+ <xs:element name="LocalGrade" type="gd:LocalGradeType">
+ </xs:element>
+ <xs:element name="ECTSGrade" type="gd:ECTSGradingScaleType" minOccurs="0">
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+
+
+
+
+
+ <xs:complexType name="CourseUnitType">
+ <xs:sequence>
+ <!--I've marked the course code as optional. Therefore, I had to remove the key that was defined for this field-->
+ <xs:element name="Code" type="gd:PlainTextType" minOccurs="0">
+ </xs:element>
+ <xs:element name="ScientificArea" type="gd:PlainTextType" minOccurs="0"/>
+ <xs:element name="Title" type="gd:PlainTextType">
+ </xs:element>
+ <xs:element name="Theme" type="gd:PlainTextType" minOccurs="0">
+ </xs:element>
+ <xs:element name="Type" minOccurs="0">
+ <xs:complexType>
+ <xs:simpleContent>
+ <xs:extension base="gd:PlainTextType">
+ <xs:attribute name="type" type="gd:CourseUnitTypeType" use="optional">
+ </xs:attribute>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="YearOfStudy" minOccurs="0">
+ <xs:complexType>
+ <xs:simpleContent>
+ <xs:extension base="gd:PlainTextType">
+ <xs:attribute name="year" type="gd:PositiveDecimalType" use="optional">
+ </xs:attribute>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="Level" minOccurs="0">
+ <xs:complexType>
+ <xs:simpleContent>
+ <xs:extension base="gd:PlainTextType">
+ <xs:attribute name="eheaFramework" type="gd:EHEAFrameworkType" use="optional">
+ </xs:attribute>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="ECTSCredits" type="gd:PositiveDecimalType" minOccurs="0">
+ </xs:element>
+ <xs:element name="LocalCredits" type="gd:PositiveDecimalType" minOccurs="0">
+ </xs:element>
+ <xs:element name="Hours" type="gd:PositiveDecimalType" minOccurs="0">
+ </xs:element>
+ <xs:element name="LanguagesOfInstruction" type="gd:CourseUnitLanguagesOfInstructionType" minOccurs="0">
+ <xs:unique name="LanguagesOfInstructionUQ">
+ <xs:selector xpath="gd:Language"/>
+ <xs:field xpath="@language"/>
+ </xs:unique>
+ </xs:element>
+ <xs:element name="ModeOfDelivery" minOccurs="0">
+ <xs:complexType>
+ <xs:simpleContent>
+ <xs:extension base="gd:PlainTextType">
+ <xs:attribute name="modeOfDelivery" type="gd:ModeOfDeliveryType" use="optional">
+ </xs:attribute>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="WorkPlacements" type="gd:CourseUnitWorkPlacementsType" minOccurs="0">
+ </xs:element>
+ <xs:element name="StudentPerformance" type="gd:CourseUnitStudentPerformanceType" minOccurs="0">
+ </xs:element>
+ <xs:element name="NameOfLecturers" type="gd:RichTextTagType" minOccurs="0">
+ </xs:element>
+ <xs:element name="LearningOutcomes" type="gd:RichTextTagType" minOccurs="0">
+ </xs:element>
+ <xs:element name="PrerequisitesAndCorequisites" type="gd:RichTextTagType" minOccurs="0">
+ </xs:element>
+ <xs:element name="PrerequisitesScholarshipLevel" type="gd:RichTextTagType" minOccurs="0">
+ </xs:element>
+ <xs:element name="PrerequisitesOtherTitles" type="gd:RichTextTagType" minOccurs="0">
+ </xs:element>
+ <xs:element name="RecomendedOptionalProgrammeComponents" type="gd:RichTextTagType" minOccurs="0">
+ </xs:element>
+ <xs:element name="CourseContents" type="gd:RichTextTagType" minOccurs="0">
+ </xs:element>
+ <xs:element name="RecomendedOrRequiredReading" type="gd:RichTextTagType" minOccurs="0">
+ </xs:element>
+ <xs:element name="PlanedLearningActivitiesAndTeachingMethod" type="gd:RichTextTagType" minOccurs="0">
+ </xs:element>
+ <xs:element name="AssesmentMethodsAndCriteria" type="gd:RichTextTagType" minOccurs="0">
+ </xs:element>
+ <xs:element name="Observations" type="gd:RichTextTagType" minOccurs="0">
+ </xs:element>
+ </xs:sequence>
+ <xs:attribute name="groupID" type="xs:string" use="optional">
+ </xs:attribute>
+ <xs:attribute name="institutionAdministeringStudiesID" type="xs:string" use="optional" default="DEF-IAS">
+ </xs:attribute>
+ <xs:attribute name="isRequiredByTheProgramme" type="xs:boolean" default="true">
+ </xs:attribute>
+ </xs:complexType>
+
+
+
+
+
+ <xs:complexType name="CourseUnitWorkPlacementsType">
+ <xs:sequence>
+ <xs:element name="WorkPlacement" type="gd:CourseUnitWorkPlacementType" maxOccurs="unbounded">
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="CourseUnitWorkPlacementType">
+ <xs:sequence>
+ <xs:element name="CollaboratingInstitution" type="gd:PlainTextType">
+ </xs:element>
+ <xs:element name="DateFrom" type="gd:DateType" minOccurs="0">
+ </xs:element>
+ <xs:element name="DateTo" type="gd:DateType" minOccurs="0">
+ </xs:element>
+ <xs:element name="TrainingHours" type="gd:PositiveDecimalType" minOccurs="0">
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+
+
+
+ <xs:complexType name="CourseUnitLanguageOfInstructionType">
+ <xs:simpleContent>
+ <xs:extension base="gd:PlainTextType">
+ <xs:attribute name="language" type="gd:LanguageType" use="required">
+ </xs:attribute>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+
+
+ <!-- Root element type: GeneralDiploma -->
+
+ <xs:complexType name="GeneralDiplomaType">
+ <xs:sequence>
+ <xs:element name="InformationIdentifyingTheHolderOfTheQualification" type="gd:InformationIdentifyingTheHolderOfTheQualificationType">
+ </xs:element>
+ <xs:element name="InformationIdentifyingTheQualification" type="gd:InformationIdentifyingTheQualificationType">
+ </xs:element>
+ <xs:element name="InformationOnTheLevelOfTheQualification" type="gd:InformationOnTheLevelOfTheQualificationType" minOccurs="0">
+ </xs:element>
+ <!--Course and per-course qualifications information. We set it to optional to allow representing diplomas without course info-->
+ <xs:element name="InformationOnTheContentsAndResultsGained" type="gd:InformationOnTheContentsAndResultsGainedType" minOccurs="0">
+ </xs:element>
+ <xs:element name="InformationOnTheFunctionOfTheQualification" type="gd:InformationOnTheFunctionOfTheQualificationType" minOccurs="0">
+ </xs:element>
+ <xs:element name="AdditionalInformation" type="gd:AdditionalInformationType" minOccurs="0">
+ </xs:element>
+ <xs:element name="CertificationOfTheSupplement" type="gd:CertificationOfTheSupplementType" minOccurs="0">
+ </xs:element>
+ <xs:element name="InformationOnTheNationalHigherEducationSystem" type="gd:RichTextTagType" minOccurs="0">
+ </xs:element>
+ <xs:element name="Attachments" type="gd:AttachmentsType" minOccurs="0">
+ </xs:element>
+ <xs:element name="ExtensionContent" type="gd:ExtensionContentType" minOccurs="0" maxOccurs="unbounded">
+ </xs:element>
+ <xs:element ref="dsig:Signature" minOccurs="0" maxOccurs="unbounded">
+ </xs:element>
+ </xs:sequence>
+ <xs:attribute name="language" type="gd:LanguageType" use="required">
+ </xs:attribute>
+ <xs:attribute name="isTheOriginalLanguage" type="xs:boolean" use="required">
+ </xs:attribute>
+ </xs:complexType>
+
+
+ <!-- Can hold anything as extension -->
+ <xs:complexType name="ExtensionContentType" mixed="true">
+ <xs:sequence minOccurs="0" maxOccurs="unbounded">
+ <xs:any namespace="##any" processContents="lax"/>
+ </xs:sequence>
+ <xs:attribute name="id" type="xs:string" use="optional"/>
+ </xs:complexType>
+
+
+ <xs:complexType name="FamilyNameType">
+ <xs:sequence>
+ <xs:element name="Surname" type="gd:PlainTextType" maxOccurs="unbounded">
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+
+
+ <xs:complexType name="GivenNameType">
+ <xs:sequence>
+ <xs:element name="Name" type="gd:PlainTextType" maxOccurs="unbounded">
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+
+
+ <xs:complexType name="GradingSchemeAndGradeDistributionGuidanceType">
+ <xs:sequence>
+ <xs:element name="GradingScheme" type="gd:RichTextTagType">
+ </xs:element>
+ <xs:element name="GradeDistributionGuidance" type="gd:RichTextTagType" minOccurs="0">
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+
+
+ <xs:complexType name="CoursesGroupsType">
+ <xs:sequence>
+ <xs:element name="Name" type="gd:PlainTextType" minOccurs="0">
+ </xs:element>
+ <xs:element name="HeaderInformation" type="gd:RichTextTagType" minOccurs="0">
+ </xs:element>
+ <xs:element name="CoursesGroup" type="gd:CoursesGroupType" minOccurs="0" maxOccurs="unbounded">
+ </xs:element>
+ <xs:element name="FooterInformation" type="gd:RichTextTagType" minOccurs="0">
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+
+ <!--Allows a hierarchy of course groups, but each ID must be unique regardless the level it is defined-->
+ <xs:complexType name="CoursesGroupType">
+ <xs:sequence>
+ <xs:element name="Name" type="gd:PlainTextType">
+ </xs:element>
+ <xs:element name="HeaderInformation" type="gd:RichTextTagType" minOccurs="0">
+ </xs:element>
+ <xs:element name="CoursesGroup" type="gd:CoursesGroupType" minOccurs="0" maxOccurs="unbounded">
+ </xs:element>
+ <xs:element name="FooterInformation" type="gd:RichTextTagType" minOccurs="0">
+ </xs:element>
+ </xs:sequence>
+ <xs:attribute name="groupID" type="xs:string" use="required">
+ </xs:attribute>
+ </xs:complexType>
+
+
+
+ <xs:complexType name="InformationIdentifyingTheHolderOfTheQualificationType">
+ <xs:sequence>
+ <xs:element name="FamilyName" type="gd:FamilyNameType">
+ </xs:element>
+ <xs:element name="GivenName" type="gd:GivenNameType">
+ </xs:element>
+ <xs:element name="DateOfBirth" type="gd:DateType" minOccurs="0">
+ </xs:element>
+ <xs:element name="StudentIdentificationNumber" type="gd:PlainTextType" minOccurs="0">
+ </xs:element>
+ <xs:element name="CountryOfBirth" type="gd:CountryTextCodeType" minOccurs="0">
+ </xs:element>
+ <xs:element name="PlaceOfBirth" type="gd:PlainTextType" minOccurs="0">
+ </xs:element>
+ <xs:element name="Gender" minOccurs="0">
+ <xs:complexType>
+ <xs:simpleContent>
+ <xs:extension base="gd:PlainTextType">
+ <xs:attribute name="gender" type="gd:GenderType" use="required">
+ </xs:attribute>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+
+
+ <!--Required at least the name of the awarding institution, institution administering studies and the name of the qualification-->
+ <xs:complexType name="InformationIdentifyingTheQualificationType">
+ <xs:sequence>
+ <xs:element name="Qualification" type="gd:QualificationType">
+ </xs:element>
+ <xs:element name="TitleConferred" type="gd:TitleConferredType" minOccurs="0">
+ </xs:element>
+ <xs:element name="MainFieldsOfStudy" type="gd:RichTextTagType" minOccurs="0">
+ </xs:element>
+ <xs:element name="NameAndStatusOfAwardingInstitution" type="gd:NameAndStatusOfAwardingInstitutionType">
+ </xs:element>
+ <xs:element name="NameAndStatusOfInstitutionAdministeringStudies" type="gd:NameAndStatusOfInstitutionAdministeringStudiesType">
+ </xs:element>
+ <xs:element name="LanguagesOfInstructionAndExamination" type="gd:LanguagesOfInstructionAndExaminationType" minOccurs="0">
+ <xs:unique name="LanguageOfInstructionAndExaminationUQ">
+ <xs:selector xpath="gd:Language"/>
+ <xs:field xpath="@language"/>
+ </xs:unique>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+
+
+
+ <xs:complexType name="InformationOnTheContentsAndResultsGainedType">
+ <xs:sequence>
+ <xs:element name="ModeOfStudy" minOccurs="0">
+ <xs:complexType>
+ <xs:complexContent>
+ <xs:extension base="gd:RichTextTagType">
+ <xs:attribute name="modeOfStudy" type="gd:ModeOfStudyType" use="optional">
+ </xs:attribute>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="ProgrammeRequirements" type="gd:ProgrammeRequirementsType" minOccurs="0">
+ </xs:element>
+ <xs:element name="ProgrammeDetails" type="gd:ProgrammeDetailsType" minOccurs="0">
+ </xs:element>
+ <xs:element name="GradingSchemeAndGradeDistributionGuidance" type="gd:GradingSchemeAndGradeDistributionGuidanceType" minOccurs="0">
+ </xs:element>
+ <xs:element name="OverallClassificationOfTheQualification" type="gd:RichTextTagType" minOccurs="0">
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+
+
+
+ <xs:complexType name="InformationOnTheFunctionOfTheQualificationType">
+ <xs:sequence>
+ <xs:element name="AccessToFurtherStudy" type="gd:RichTextTagType" minOccurs="0">
+ </xs:element>
+ <xs:element name="ProfessionalStatus" minOccurs="0">
+ <xs:complexType>
+ <xs:complexContent>
+ <xs:extension base="gd:RichTextTagType">
+ <xs:attribute name="isRegulatedProfession" type="xs:boolean" use="optional">
+ </xs:attribute>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+
+
+
+ <xs:complexType name="InformationOnTheLevelOfTheQualificationType">
+ <xs:sequence>
+ <xs:element name="Level">
+ <xs:complexType>
+ <xs:complexContent>
+ <xs:extension base="gd:RichTextTagType">
+ <xs:attribute name="isced1997" type="gd:ISCED1997Type" use="optional">
+ </xs:attribute>
+ <xs:attribute name="isced2011" type="gd:ISCED2011Type" use="optional">
+ </xs:attribute>
+ <xs:attribute name="eheaFramework" type="gd:EHEAFrameworkType" use="optional">
+ </xs:attribute>
+ <xs:attribute name="nfq" type="gd:NFQType" use="optional">
+ </xs:attribute>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="OfficialLengthOfProgramme">
+ <xs:complexType>
+ <xs:complexContent>
+ <xs:extension base="gd:RichTextTagType">
+ <xs:attribute name="ectsCredits" type="gd:PositiveDecimalType" use="optional">
+ </xs:attribute>
+ <xs:attribute name="years" type="gd:PositiveDecimalType" use="optional">
+ </xs:attribute>
+ <xs:attribute name="semesters" type="gd:PositiveIntegerType" use="optional">
+ </xs:attribute>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="AccessRequirements" type="gd:RichTextTagType" minOccurs="0">
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+
+
+
+ <xs:complexType name="InstitutionType">
+ <xs:sequence>
+ <xs:element name="Name" type="gd:PlainTextType">
+ </xs:element>
+ <xs:element name="Status" type="gd:PlainTextType" minOccurs="0">
+ </xs:element>
+ <xs:element name="Country" type="gd:CountryTextCodeType" minOccurs="0">
+ </xs:element>
+ <xs:element name="AdditionalInformation" type="gd:RichTextTagType" minOccurs="0">
+ </xs:element>
+ <xs:element name="ContactInformation" type="gd:ContactInformationType" minOccurs="0">
+ </xs:element>
+ <xs:element name="AttachedImageRef" minOccurs="0">
+ <xs:complexType>
+ <xs:simpleContent>
+ <xs:extension base="gd:PlainTextType">
+ <xs:attribute name="attachedID" type="xs:IDREF" use="required">
+ </xs:attribute>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ <xs:attribute name="nationalID" type="gd:PlainTextType" use="optional">
+ </xs:attribute>
+ <xs:attribute name="erasmusID" type="gd:PlainTextType" use="optional">
+ </xs:attribute>
+ </xs:complexType>
+
+
+ <!-- Added optional boolean values to differentiate languages used for instruction and evaluation-->
+ <xs:complexType name="LanguagesOfInstructionAndExaminationType">
+ <xs:sequence>
+ <xs:element name="Language" maxOccurs="unbounded">
+ <xs:complexType>
+ <xs:complexContent>
+ <xs:extension base="gd:RichTextTagType">
+ <xs:attribute name="language" type="gd:LanguageType" use="required">
+ </xs:attribute>
+ <xs:attribute name="percent" type="gd:PercentType" use="optional">
+ </xs:attribute>
+ <xs:attribute name="instruction" type="xs:boolean" default="true">
+ </xs:attribute>
+ <xs:attribute name="examination" type="xs:boolean" use="optional">
+ </xs:attribute>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+
+
+
+ <xs:complexType name="LocalGradeType">
+ <xs:sequence>
+ <xs:element name="AcademicYear" type="gd:AcademicYearType" minOccurs="0">
+ </xs:element>
+ <xs:element name="DateIssued" type="gd:DateType" minOccurs="0">
+ </xs:element>
+ <xs:element name="Grade" type="gd:PlainTextType">
+ </xs:element>
+ <xs:element name="Source" minOccurs="0">
+ <xs:complexType>
+ <xs:simpleContent>
+ <xs:extension base="gd:PlainTextType">
+ <xs:attribute name="source" type="gd:SourceGradeType" use="optional">
+ </xs:attribute>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+
+
+
+ <xs:complexType name="MobilityProgrammeCoursesUnitsType">
+ <xs:sequence>
+ <xs:element name="CourseUnit" type="gd:MobilityProgrammeCourseUnitType" maxOccurs="unbounded">
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+
+
+ <xs:complexType name="MobilityProgrammeCourseUnitType">
+ <xs:sequence>
+ <xs:element name="Code" type="gd:PlainTextType" minOccurs="0">
+ </xs:element>
+ <xs:element name="Title">
+ <xs:complexType>
+ <xs:simpleContent>
+ <xs:extension base="gd:PlainTextType">
+ <xs:attribute name="language" type="gd:LanguageType">
+ </xs:attribute>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="ECTSCredits" type="gd:PositiveDecimalType" minOccurs="0">
+ </xs:element>
+ <xs:element name="AdditionalInformation" type="gd:RichTextTagType" minOccurs="0">
+ </xs:element>
+ </xs:sequence>
+ <xs:attribute name="isInTheLearningAgreement" type="xs:boolean" default="true">
+ </xs:attribute>
+ </xs:complexType>
+
+
+
+ <xs:complexType name="MobilityProgrammeType">
+ <xs:sequence>
+ <xs:element name="Type" type="gd:PlainTextType" minOccurs="0">
+ </xs:element>
+ <xs:element name="FieldOfStudy" type="gd:PlainTextType" minOccurs="0">
+ </xs:element>
+ <xs:element name="Country" type="gd:CountryTextCodeType">
+ </xs:element>
+ <xs:element name="ReceivingInstitutionName" type="gd:PlainTextType">
+ </xs:element>
+ <xs:element name="AcademicYear" type="gd:AcademicYearType" minOccurs="0">
+ </xs:element>
+ <xs:element name="DateFrom" type="gd:DateType" minOccurs="0">
+ </xs:element>
+ <xs:element name="DateTo" type="gd:DateType" minOccurs="0">
+ </xs:element>
+ <xs:element name="CoursesUnits" type="gd:MobilityProgrammeCoursesUnitsType">
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+
+
+
+ <!-- Root element type: MultilingualGeneralDiploma -->
+
+ <xs:complexType name="MultilingualGeneralDiplomaType">
+ <xs:sequence>
+ <xs:element ref="gd:GeneralDiploma" minOccurs="1" maxOccurs="unbounded">
+ </xs:element>
+ <xs:element ref="dsig:Signature" minOccurs="0" maxOccurs="unbounded">
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+
+ <!-- awardingInstitutionID has a default value if only one is added.
+ Schema won't validate if two are added without this attr being set-->
+ <xs:complexType name="NameAndStatusOfAwardingInstitutionType">
+ <xs:sequence>
+ <xs:element name="AwardingInstitution" maxOccurs="unbounded">
+ <xs:complexType>
+ <xs:complexContent>
+ <xs:extension base="gd:InstitutionType">
+ <xs:attribute name="awardingInstitutionID" type="xs:string" use="optional" default="DEF-IAW">
+ </xs:attribute>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+
+ <!-- institutionAdministeringStudiesID has a default value if only one is added.
+ Schema won't validate if two are added without this attr being set-->
+ <xs:complexType name="NameAndStatusOfInstitutionAdministeringStudiesType">
+ <xs:sequence>
+ <xs:element name="InstitutionAdministeringStudies" maxOccurs="unbounded">
+ <xs:complexType>
+ <xs:complexContent>
+ <xs:extension base="gd:InstitutionType">
+ <xs:attribute name="institutionAdministeringStudiesID" type="xs:string" use="optional" default="DEF-IAS">
+ </xs:attribute>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+
+
+ <xs:complexType name="OfficialCertifyingType">
+ <xs:sequence>
+ <xs:element name="FamilyName" type="gd:FamilyNameType">
+ </xs:element>
+ <xs:element name="GivenName" type="gd:GivenNameType">
+ </xs:element>
+ <xs:element name="Capacity" type="gd:PlainTextType" minOccurs="0">
+ </xs:element>
+ </xs:sequence>
+ <xs:attribute name="awardingInstitutionID" type="xs:string" use="optional" default="DEF-IAW">
+ </xs:attribute>
+ </xs:complexType>
+
+
+ <xs:complexType name="OfficialsCertifyingType">
+ <xs:sequence>
+ <xs:element name="OfficialCertifying" type="gd:OfficialCertifyingType" maxOccurs="unbounded">
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+
+
+ <!--This is intended for printed out diplomas, to set up an area where the document can be physically stamped-->
+ <xs:complexType name="OfficialStampType">
+ <xs:sequence>
+ <xs:element name="Description" type="gd:PlainTextType">
+ </xs:element>
+ </xs:sequence>
+ <xs:attribute name="awardingInstitutionID" type="xs:string" use="optional" default="DEF-IAW">
+ </xs:attribute>
+ </xs:complexType>
+
+
+ <xs:complexType name="ProgrammeDetailsType">
+ <xs:sequence>
+ <xs:element name="CourseStructureDiagram" type="gd:CourseStructureDiagramType">
+ </xs:element>
+ <xs:element name="CoursesAttendedInOtherInstitutionInMobilityPrograms" type="gd:CoursesAttendedInOtherInstitutionInMobilityProgramsType" minOccurs="0">
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+
+
+ <xs:complexType name="ProgrammeRequirementsType">
+ <xs:sequence>
+ <xs:element name="Requirements" type="gd:RichTextTagType">
+ </xs:element>
+ <xs:element name="KeyLearningOutcomes" type="gd:RichTextTagType" minOccurs="0">
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+
+
+ <xs:complexType name="QualificationType">
+ <xs:sequence>
+ <xs:element name="Name" type="gd:PlainTextType">
+ </xs:element>
+ <xs:element name="AdditionalInformation" type="gd:RichTextTagType" minOccurs="0">
+ </xs:element>
+ </xs:sequence>
+ <xs:attribute name="localID" type="gd:PlainTextType" use="optional">
+ </xs:attribute>
+ <xs:attribute name="nationalID" type="gd:PlainTextType" use="optional">
+ </xs:attribute>
+ </xs:complexType>
+
+
+ <xs:complexType name="RichTextTagType" mixed="true">
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element name="Bold" type="gd:PlainTextType">
+ </xs:element>
+ <xs:element name="BreakLine" type="gd:EmptyType">
+ </xs:element>
+ <xs:element name="Italic" type="gd:PlainTextType">
+ </xs:element>
+ <xs:element name="Underline" type="gd:PlainTextType">
+ </xs:element>
+ <xs:element name="AttachedRef">
+ <xs:complexType>
+ <xs:simpleContent>
+ <xs:extension base="gd:PlainTextType">
+ <xs:attribute name="attachedID" type="xs:IDREF" use="required">
+ </xs:attribute>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ </xs:element>
+ </xs:choice>
+ </xs:complexType>
+
+
+ <xs:complexType name="TitleConferredType">
+ <xs:sequence>
+ <xs:element name="Name" type="gd:PlainTextType">
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+
+
+
+
+ <!-- Root element: GeneralDiploma -->
+
+ <xs:element name="GeneralDiploma" type="gd:GeneralDiplomaType">
+ <!--Primary Keys--> <!-- TODO: revisar estas restricciones que tengan sentido y deban seguir existiendo -->
+ <xs:key name="GroupIDPK">
+ <xs:selector xpath=".//gd:CoursesGroup"/>
+ <xs:field xpath="@groupID"/>
+ </xs:key>
+ <xs:key name="AwardingInstitutionIDPK">
+ <xs:selector xpath=".//gd:AwardingInstitution"/>
+ <xs:field xpath="@awardingInstitutionID"/>
+ </xs:key>
+ <xs:key name="InstitutionAdministeringStudiesIDPK">
+ <xs:selector xpath=".//gd:InstitutionAdministeringStudies"/>
+ <xs:field xpath="@institutionAdministeringStudiesID"/>
+ </xs:key>
+ <!--Foreign Keys-->
+ <xs:keyref name="GroupFK" refer="gd:GroupIDPK">
+ <xs:selector xpath=".//gd:CourseStructureDiagram/gd:CoursesUnits/gd:CourseUnit"/>
+ <xs:field xpath="@groupID"/>
+ </xs:keyref>
+ <xs:keyref name="AwardingInstitutionOfficialCertifyingFK" refer="gd:AwardingInstitutionIDPK">
+ <xs:selector xpath=".//gd:OfficialCertifying"/>
+ <xs:field xpath="@awardingInstitutionID"/>
+ </xs:keyref>
+ <xs:keyref name="AwardingInstitutionOfficialStampFK" refer="gd:AwardingInstitutionIDPK">
+ <xs:selector xpath=".//gd:OfficialStamp"/>
+ <xs:field xpath="@awardingInstitutionID"/>
+ </xs:keyref>
+ <xs:keyref name="InstitutionAdministeringStudiesFK" refer="gd:InstitutionAdministeringStudiesIDPK">
+ <xs:selector xpath=".//gd:ProgrammeDetails/gd:CourseStructureDiagram/gd:CoursesUnits/gd:CourseUnit"/>
+ <xs:field xpath="@institutionAdministeringStudiesID"/>
+ </xs:keyref>
+ </xs:element>
+
+
+ <!-- Root element: MultilingualGeneralDiploma -->
+
+ <xs:element name="MultilingualGeneralDiploma" type="gd:MultilingualGeneralDiplomaType">
+ <!--Unique Keys--> <!-- Language codes of each Diploma must be unique -->
+ <xs:unique name="GeneralDiplomaLanguageUQ">
+ <xs:selector xpath="gd:GeneralDiploma"/>
+ <xs:field xpath="@language"/>
+ </xs:unique>
+ </xs:element>
+</xs:schema>
+
+
+<!-- TODO: añadir cambios CSI, IS-SKRA --> \ No newline at end of file
diff --git a/id/server/stork2-commons/src/main/resources/schema/xmldsig-core-schema.xsd b/id/server/stork2-commons/src/main/resources/schema/xmldsig-core-schema.xsd
new file mode 100644
index 000000000..e75c806e0
--- /dev/null
+++ b/id/server/stork2-commons/src/main/resources/schema/xmldsig-core-schema.xsd
@@ -0,0 +1,309 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!-- Schema for XML Signatures
+ http://www.w3.org/2000/09/xmldsig#
+ $Revision: 1.1 $ on $Date: 2002/02/08 20:32:26 $ by $Author: reagle $
+
+ Copyright 2001 The Internet Society and W3C (Massachusetts Institute
+ of Technology, Institut National de Recherche en Informatique et en
+ Automatique, Keio University). All Rights Reserved.
+ http://www.w3.org/Consortium/Legal/
+
+ This document is governed by the W3C Software License [1] as described
+ in the FAQ [2].
+
+ [1] http://www.w3.org/Consortium/Legal/copyright-software-19980720
+ [2] http://www.w3.org/Consortium/Legal/IPR-FAQ-20000620.html#DTD
+-->
+
+
+<schema xmlns="http://www.w3.org/2001/XMLSchema"
+ xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
+ targetNamespace="http://www.w3.org/2000/09/xmldsig#"
+ version="0.1" elementFormDefault="qualified">
+
+<!-- Basic Types Defined for Signatures -->
+
+<simpleType name="CryptoBinary">
+ <restriction base="base64Binary">
+ </restriction>
+</simpleType>
+
+<!-- Start Signature -->
+
+<element name="Signature" type="ds:SignatureType"/>
+<complexType name="SignatureType">
+ <sequence>
+ <element ref="ds:SignedInfo"/>
+ <element ref="ds:SignatureValue"/>
+ <element ref="ds:KeyInfo" minOccurs="0"/>
+ <element ref="ds:Object" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="Id" type="ID" use="optional"/>
+</complexType>
+
+ <element name="SignatureValue" type="ds:SignatureValueType"/>
+ <complexType name="SignatureValueType">
+ <simpleContent>
+ <extension base="base64Binary">
+ <attribute name="Id" type="ID" use="optional"/>
+ </extension>
+ </simpleContent>
+ </complexType>
+
+<!-- Start SignedInfo -->
+
+<element name="SignedInfo" type="ds:SignedInfoType"/>
+<complexType name="SignedInfoType">
+ <sequence>
+ <element ref="ds:CanonicalizationMethod"/>
+ <element ref="ds:SignatureMethod"/>
+ <element ref="ds:Reference" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="Id" type="ID" use="optional"/>
+</complexType>
+
+ <element name="CanonicalizationMethod" type="ds:CanonicalizationMethodType"/>
+ <complexType name="CanonicalizationMethodType" mixed="true">
+ <sequence>
+ <any namespace="##any" minOccurs="0" maxOccurs="unbounded"/>
+ <!-- (0,unbounded) elements from (1,1) namespace -->
+ </sequence>
+ <attribute name="Algorithm" type="anyURI" use="required"/>
+ </complexType>
+
+ <element name="SignatureMethod" type="ds:SignatureMethodType"/>
+ <complexType name="SignatureMethodType" mixed="true">
+ <sequence>
+ <element name="HMACOutputLength" minOccurs="0" type="ds:HMACOutputLengthType"/>
+ <any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
+ <!-- (0,unbounded) elements from (1,1) external namespace -->
+ </sequence>
+ <attribute name="Algorithm" type="anyURI" use="required"/>
+ </complexType>
+
+<!-- Start Reference -->
+
+<element name="Reference" type="ds:ReferenceType"/>
+<complexType name="ReferenceType">
+ <sequence>
+ <element ref="ds:Transforms" minOccurs="0"/>
+ <element ref="ds:DigestMethod"/>
+ <element ref="ds:DigestValue"/>
+ </sequence>
+ <attribute name="Id" type="ID" use="optional"/>
+ <attribute name="URI" type="anyURI" use="optional"/>
+ <attribute name="Type" type="anyURI" use="optional"/>
+</complexType>
+
+ <element name="Transforms" type="ds:TransformsType"/>
+ <complexType name="TransformsType">
+ <sequence>
+ <element ref="ds:Transform" maxOccurs="unbounded"/>
+ </sequence>
+ </complexType>
+
+ <element name="Transform" type="ds:TransformType"/>
+ <complexType name="TransformType" mixed="true">
+ <choice minOccurs="0" maxOccurs="unbounded">
+ <any namespace="##other" processContents="lax"/>
+ <!-- (1,1) elements from (0,unbounded) namespaces -->
+ <element name="XPath" type="string"/>
+ </choice>
+ <attribute name="Algorithm" type="anyURI" use="required"/>
+ </complexType>
+
+<!-- End Reference -->
+
+<element name="DigestMethod" type="ds:DigestMethodType"/>
+<complexType name="DigestMethodType" mixed="true">
+ <sequence>
+ <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="Algorithm" type="anyURI" use="required"/>
+</complexType>
+
+<element name="DigestValue" type="ds:DigestValueType"/>
+<simpleType name="DigestValueType">
+ <restriction base="base64Binary"/>
+</simpleType>
+
+<!-- End SignedInfo -->
+
+<!-- Start KeyInfo -->
+
+<element name="KeyInfo" type="ds:KeyInfoType"/>
+<complexType name="KeyInfoType" mixed="true">
+ <choice maxOccurs="unbounded">
+ <element ref="ds:KeyName"/>
+ <element ref="ds:KeyValue"/>
+ <element ref="ds:RetrievalMethod"/>
+ <element ref="ds:X509Data"/>
+ <element ref="ds:PGPData"/>
+ <element ref="ds:SPKIData"/>
+ <element ref="ds:MgmtData"/>
+ <any processContents="lax" namespace="##other"/>
+ <!-- (1,1) elements from (0,unbounded) namespaces -->
+ </choice>
+ <attribute name="Id" type="ID" use="optional"/>
+</complexType>
+
+ <element name="KeyName" type="string"/>
+ <element name="MgmtData" type="string"/>
+
+ <element name="KeyValue" type="ds:KeyValueType"/>
+ <complexType name="KeyValueType" mixed="true">
+ <choice>
+ <element ref="ds:DSAKeyValue"/>
+ <element ref="ds:RSAKeyValue"/>
+ <any namespace="##other" processContents="lax"/>
+ </choice>
+ </complexType>
+
+ <element name="RetrievalMethod" type="ds:RetrievalMethodType"/>
+ <complexType name="RetrievalMethodType">
+ <sequence>
+ <element ref="ds:Transforms" minOccurs="0"/>
+ </sequence>
+ <attribute name="URI" type="anyURI"/>
+ <attribute name="Type" type="anyURI" use="optional"/>
+ </complexType>
+
+<!-- Start X509Data -->
+
+<element name="X509Data" type="ds:X509DataType"/>
+<complexType name="X509DataType">
+ <sequence maxOccurs="unbounded">
+ <choice>
+ <element name="X509IssuerSerial" type="ds:X509IssuerSerialType"/>
+ <element name="X509SKI" type="base64Binary"/>
+ <element name="X509SubjectName" type="string"/>
+ <element name="X509Certificate" type="base64Binary"/>
+ <element name="X509CRL" type="base64Binary"/>
+ <any namespace="##other" processContents="lax"/>
+ </choice>
+ </sequence>
+</complexType>
+
+<complexType name="X509IssuerSerialType">
+ <sequence>
+ <element name="X509IssuerName" type="string"/>
+ <element name="X509SerialNumber" type="integer"/>
+ </sequence>
+</complexType>
+
+<!-- End X509Data -->
+
+<!-- Begin PGPData -->
+
+<element name="PGPData" type="ds:PGPDataType"/>
+<complexType name="PGPDataType">
+ <choice>
+ <sequence>
+ <element name="PGPKeyID" type="base64Binary"/>
+ <element name="PGPKeyPacket" type="base64Binary" minOccurs="0"/>
+ <any namespace="##other" processContents="lax" minOccurs="0"
+ maxOccurs="unbounded"/>
+ </sequence>
+ <sequence>
+ <element name="PGPKeyPacket" type="base64Binary"/>
+ <any namespace="##other" processContents="lax" minOccurs="0"
+ maxOccurs="unbounded"/>
+ </sequence>
+ </choice>
+</complexType>
+
+<!-- End PGPData -->
+
+<!-- Begin SPKIData -->
+
+<element name="SPKIData" type="ds:SPKIDataType"/>
+<complexType name="SPKIDataType">
+ <sequence maxOccurs="unbounded">
+ <element name="SPKISexp" type="base64Binary"/>
+ <any namespace="##other" processContents="lax" minOccurs="0"/>
+ </sequence>
+</complexType>
+
+<!-- End SPKIData -->
+
+<!-- End KeyInfo -->
+
+<!-- Start Object (Manifest, SignatureProperty) -->
+
+<element name="Object" type="ds:ObjectType"/>
+<complexType name="ObjectType" mixed="true">
+ <sequence minOccurs="0" maxOccurs="unbounded">
+ <any namespace="##any" processContents="lax"/>
+ </sequence>
+ <attribute name="Id" type="ID" use="optional"/>
+ <attribute name="MimeType" type="string" use="optional"/> <!-- add a grep facet -->
+ <attribute name="Encoding" type="anyURI" use="optional"/>
+</complexType>
+
+<element name="Manifest" type="ds:ManifestType"/>
+<complexType name="ManifestType">
+ <sequence>
+ <element ref="ds:Reference" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="Id" type="ID" use="optional"/>
+</complexType>
+
+<element name="SignatureProperties" type="ds:SignaturePropertiesType"/>
+<complexType name="SignaturePropertiesType">
+ <sequence>
+ <element ref="ds:SignatureProperty" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="Id" type="ID" use="optional"/>
+</complexType>
+
+ <element name="SignatureProperty" type="ds:SignaturePropertyType"/>
+ <complexType name="SignaturePropertyType" mixed="true">
+ <choice maxOccurs="unbounded">
+ <any namespace="##other" processContents="lax"/>
+ <!-- (1,1) elements from (1,unbounded) namespaces -->
+ </choice>
+ <attribute name="Target" type="anyURI" use="required"/>
+ <attribute name="Id" type="ID" use="optional"/>
+ </complexType>
+
+<!-- End Object (Manifest, SignatureProperty) -->
+
+<!-- Start Algorithm Parameters -->
+
+<simpleType name="HMACOutputLengthType">
+ <restriction base="integer"/>
+</simpleType>
+
+<!-- Start KeyValue Element-types -->
+
+<element name="DSAKeyValue" type="ds:DSAKeyValueType"/>
+<complexType name="DSAKeyValueType">
+ <sequence>
+ <sequence minOccurs="0">
+ <element name="P" type="ds:CryptoBinary"/>
+ <element name="Q" type="ds:CryptoBinary"/>
+ </sequence>
+ <element name="G" type="ds:CryptoBinary" minOccurs="0"/>
+ <element name="Y" type="ds:CryptoBinary"/>
+ <element name="J" type="ds:CryptoBinary" minOccurs="0"/>
+ <sequence minOccurs="0">
+ <element name="Seed" type="ds:CryptoBinary"/>
+ <element name="PgenCounter" type="ds:CryptoBinary"/>
+ </sequence>
+ </sequence>
+</complexType>
+
+<element name="RSAKeyValue" type="ds:RSAKeyValueType"/>
+<complexType name="RSAKeyValueType">
+ <sequence>
+ <element name="Modulus" type="ds:CryptoBinary"/>
+ <element name="Exponent" type="ds:CryptoBinary"/>
+ </sequence>
+</complexType>
+
+<!-- End KeyValue Element-types -->
+
+<!-- End Signature -->
+
+</schema>
diff --git a/id/server/stork2-commons/src/test/java/eu/stork/peps/tests/ComplexAttributesMarshalling.java b/id/server/stork2-commons/src/test/java/eu/stork/peps/tests/ComplexAttributesMarshalling.java
index d411a2f42..fc6e65f70 100644
--- a/id/server/stork2-commons/src/test/java/eu/stork/peps/tests/ComplexAttributesMarshalling.java
+++ b/id/server/stork2-commons/src/test/java/eu/stork/peps/tests/ComplexAttributesMarshalling.java
@@ -1,22 +1,11 @@
/*
- * This work is Open Source and licensed by the European Commission under the
- * conditions of the European Public License v1.1
- *
- * (http://www.osor.eu/eupl/european-union-public-licence-eupl-v.1.1);
- *
- * any use of this file implies acceptance of the conditions of this license.
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations
- * under the License.
- *
- * ---
- *
- * Test cases for marshalling complex attributes.
- *
- * Implemented are two testcases for marshalling and unmarshalling. These testcases are
- * for canonical residenc address and has bank account.
+ * This work is Open Source and licensed by the European Commission under the conditions of the European Public License
+ * v1.1 (http://www.osor.eu/eupl/european-union-public-licence-eupl-v.1.1); any use of this file implies acceptance of
+ * the conditions of this license. Unless required by applicable law or agreed to in writing, software distributed under
+ * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied. See the License for the specific language governing permissions and limitations under the License. --- Test
+ * cases for marshalling complex attributes. Implemented are two testcases for marshalling and unmarshalling. These
+ * testcases are for canonical residenc address and has bank account.
*/
package eu.stork.peps.tests;
@@ -24,6 +13,7 @@ package eu.stork.peps.tests;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
+import java.io.StringWriter;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBElement;
@@ -32,38 +22,55 @@ import javax.xml.bind.Marshaller;
import javax.xml.bind.Unmarshaller;
import javax.xml.transform.stream.StreamSource;
+import org.joda.time.DateTime;
import org.junit.Test;
-import eu.stork.peps.complex.attributes.CanonicalAddressType;
-import eu.stork.peps.complex.attributes.HasAccountInBankType;
-import eu.stork.peps.complex.attributes.ObjectFactory;
+import eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._1_0.assertion.CanonicalAddressType;
+import eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._1_0.assertion.HasAccountInBankType;
+import eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._1_0.assertion.MandateContentType;
+import eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._1_0.assertion.MandateType;
+import eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._1_0.assertion.ObjectFactory;
+import eu.stork.peps.complex.attributes.eu.stork.names.tc.stork._1_0.assertion.RepresentationPersonType;
/**
- * @author Advania
- *
- * Examples on how to use the jaxb marshaller.
- *
- * The classes are created from the StorkcomplexAttributes.xsd schema located in resources.
- *
+ * @author Advania Examples on how to use the jaxb marshaller. The classes are created from the
+ * StorkcomplexAttributes.xsd schema located in resources.
* @version $Revision: 1.00 $, $Date: 2014-17-02 11:15:00 $
*
*/
public class ComplexAttributesMarshalling {
+ MandateContentType mtObject = new MandateContentType();
+ RepresentationPersonType rpObject = new RepresentationPersonType();
+ RepresentationPersonType rptObject = new RepresentationPersonType();
+
+ void initMandateValues() {
+ // Fill in the information ...
+ mtObject.setIsChained(false);
+ // mtObject.setIsJoined("IsJoined");
+ mtObject.setTypeOfPower("The Force");
+ mtObject.setIsChained(false);
+ // ... fill in info for the representative
+ rpObject.setTextRegisteredAddress("Address at some street");
+ rpObject.setDateOfBirth(DateTime.now().toString());
+ rpObject.setEIdentifier("123456");
+ rpObject.setGivenName("Name of some person");
+ rpObject.setLegalForm("Type of person");
+ // .... fill in the info for the represented
+ rptObject.setTextRegisteredAddress("Another Address at some street");
+ rptObject.setDateOfBirth(DateTime.now().toString());
+ rptObject.setEIdentifier("654321");
+ rptObject.setGivenName("Another Name of some person");
+ rptObject.setLegalForm("Yet another type of person");
+ }
+
/**
- * Test marshalling canonical address
- * <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+ * Test marshalling canonical address <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
* <canonicalResidenceAddress xmlns="urn:eu:stork:names:tc:STORK:1.0:assertion">
- * <countryCodeAddress>IS</countryCodeAddress>
- * <state>Reykjavik</state>
- * <municipalityCode>RVK</municipalityCode>
- * <town>Reykjavik</town>
- * <postalCode>101</postalCode>
- * <streetName>Laugavegur</streetName>
- * <streetNumber>1</streetNumber>
- * <apartmentNumber>10</apartmentNumber>
- * </canonicalResidenceAddress>
+ * <countryCodeAddress>IS</countryCodeAddress> <state>Reykjavik</state> <municipalityCode>RVK</municipalityCode>
+ * <town>Reykjavik</town> <postalCode>101</postalCode> <streetName>Laugavegur</streetName>
+ * <streetNumber>1</streetNumber> <apartmentNumber>10</apartmentNumber> </canonicalResidenceAddress>
*/
@Test
public void testMarshallCanonicalResidencAddress()
@@ -88,30 +95,133 @@ public class ComplexAttributesMarshalling {
m.marshal(objf.createCanonicalResidenceAddress(object), new FileOutputStream("CanonicalAddressType.xml"));
m.marshal(objf.createCanonicalResidenceAddress(object), System.out);
}
- catch (JAXBException e )
- {
- e.printStackTrace();
-
- } catch (FileNotFoundException e) {
+ catch ( Exception e ) {
e.printStackTrace();
+ }
+ }
+
+ @Test
+ public void testForDiana() {
+ initMandateValues();
+ try {
+ // Create the marshallers'
+
+ final JAXBContext mandateTypeContext = JAXBContext.newInstance(MandateType.class);
+ final Marshaller mandateMarshaller = mandateTypeContext.createMarshaller();
+ final Unmarshaller mandateUnmarshaller = mandateTypeContext.createUnmarshaller();
+
+ // final JAXBContext MandateContentTypecontext = JAXBContext.newInstance(MandateContentType.class);
+ // final Marshaller mandM = MandateContentTypecontext.createMarshaller();
+ //
+ // final JAXBContext RepresentationPersonTypecontext =
+ // JAXBContext.newInstance(RepresentationPersonType.class);
+ // final Marshaller repM = RepresentationPersonTypecontext.createMarshaller();
+ //
+
+ final ObjectFactory objf = new ObjectFactory();
+ MandateType mandate = new MandateType();
+ RepresentationPersonType representative = new RepresentationPersonType();
+ representative.setDateOfBirth("1990-01-01");
+ representative.setGivenName("Bilbo");
+ representative.setSurname("Baggins");
+ representative.setEIdentifier("IT/IT/12345678990");
+ mandate.setRepresentative(representative);
+
+ RepresentationPersonType represented = new RepresentationPersonType();
+ represented.setTextRegisteredAddress("Via....");
+ represented.setELPIdentifier("IT/1111111");
+ represented.setLegalName("Shire Corp.");
+ mandate.setRepresented(represented);
+
+ MandateContentType mandateContent1 = new MandateContentType();
+ // OriginalMandateType omt1 = new OriginalMandateType();
+ // omt1.setMimeType("text/plain");
+ // omt1.setValue("Chief executive officer".getBytes());
+ mandateContent1.setOriginalMandate("Chief executive officer".getBytes());
+ mandateContent1.setOriginalMandateType("text/plain");
+ MandateContentType mandateContent2 = new MandateContentType();
+ // mandateContent2.setOriginalMandate(omt1);
+ mandateContent2.setOriginalMandate("Chief executive officer2".getBytes());
+ mandateContent2.setOriginalMandateType("text/plain");
+ mandate.getMandateContent().add(mandateContent1);
+ mandate.getMandateContent().add(mandateContent2);
+
+ // create a hashmap
+ // HashMap<String, String> complexMandate = new HashMap<String, String>();
+
+ // marshall the mandatecontent
+ StringWriter sw = new StringWriter();
+ mandateMarshaller.marshal(objf.createMandate(mandate), sw);
+
+ System.out.print(sw.toString());
+
+ // add it to the hashmap
+ // complexMandate.put("representative", sw.toString());
+ // sw.flush();
+ //
+ // // continue with the rest of the objects.
+ // repM.marshal(objf.createRepresentationPerson(rpObject), sw);
+ // System.out.print(sw.toString());
+ // complexMandate.put("representative", sw.toString());
+ // sw.flush();
+ //
+ // MandateType mandateType = new MandateType();
+ //
+ // repM.marshal(objf.createRepresentationPerson(rptObject), sw);
+ // System.out.print(sw.toString());
+ // complexMandate.put("represented", sw.toString());
+ // sw.flush();
+ //
+ // // add the complex values to the attr.list.
+ // PersonalAttribute pal = new PersonalAttribute();
+ //
+ // pal.setName("mandateContent");
+ // pal.setIsRequired(pal.isRequired());
+ // pal.setStatus(STORKStatusCode.STATUS_AVAILABLE.toString());
+ // pal.setComplexValue(complexMandate);
+ //
+ // System.out.println(pal.toString());
}
-
+ catch ( JAXBException e ) {
+ e.printStackTrace();
+ }
+ }
+
+ @Test
+ public void testMandateContent() {
+ initMandateValues();
+ try {
+ final MandateType object = new MandateType();
+ // Make the object ....
+ object.getMandateContent().add(mtObject);
+ object.setRepresented(rpObject);
+ object.setRepresentative(rptObject);
+
+ final JAXBContext context = JAXBContext.newInstance(MandateType.class);
+ // Create the marshaller
+ final Marshaller m = context.createMarshaller();
+ m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
+ final ObjectFactory objf = new ObjectFactory();
+ // Various types of output
+ m.marshal(objf.createMandate(object), new FileOutputStream("MandateContentType.xml"));
+ m.marshal(objf.createMandate(object), System.out);
+
+ StringWriter sw = new StringWriter();
+ m.marshal(objf.createMandate(object), sw);
+
}
+ catch ( Exception e ) {
+ e.printStackTrace();
+ }
+ }
/**
- * Test unmarshalling canonical address
- * <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+ * Test unmarshalling canonical address <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
* <canonicalResidenceAddress xmlns="urn:eu:stork:names:tc:STORK:1.0:assertion">
- * <countryCodeAddress>IS</countryCodeAddress>
- * <state>Reykjavik</state>
- * <municipalityCode>RVK</municipalityCode>
- * <town>Reykjavik</town>
- * <postalCode>101</postalCode>
- * <streetName>Laugavegur</streetName>
- * <streetNumber>1</streetNumber>
- * <apartmentNumber>10</apartmentNumber>
- * </canonicalResidenceAddress>
+ * <countryCodeAddress>IS</countryCodeAddress> <state>Reykjavik</state> <municipalityCode>RVK</municipalityCode>
+ * <town>Reykjavik</town> <postalCode>101</postalCode> <streetName>Laugavegur</streetName>
+ * <streetNumber>1</streetNumber> <apartmentNumber>10</apartmentNumber> </canonicalResidenceAddress>
*/
@Test
public void testUnmarshallCanonicalAddress()
@@ -140,12 +250,8 @@ public class ComplexAttributesMarshalling {
}
/**
- * Test marshalling has bank account
- * <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
- * <hasAccountInBank xmlns="urn:eu:stork:names:tc:STORK:1.0:assertion">
- * <bankName>Arion</bankName>
- * <AQAA>3</AQAA>
- * </hasAccountInBank>
+ * Test marshalling has bank account <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <hasAccountInBank
+ * xmlns="urn:eu:stork:names:tc:STORK:1.0:assertion"> <bankName>Arion</bankName> <AQAA>3</AQAA> </hasAccountInBank>
*/
@Test
public void testMarshallHasBankAccount()
@@ -162,22 +268,18 @@ public class ComplexAttributesMarshalling {
m.marshal(o.createHasAccountInBank(object), System.out);
}
- catch (JAXBException e )
- {
+ catch (FileNotFoundException e) {
+ e.printStackTrace();
+
+ }catch ( Exception e ) {
e.printStackTrace();
- } catch (FileNotFoundException e) {
- e.printStackTrace();
-
}
}
+
/**
- * Test unmarshalling has bank account
- * <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
- * <hasAccountInBank xmlns="urn:eu:stork:names:tc:STORK:1.0:assertion">
- * <bankName>Arion</bankName>
- * <AQAA>3</AQAA>
- * </hasAccountInBank>
+ * Test unmarshalling has bank account <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <hasAccountInBank
+ * xmlns="urn:eu:stork:names:tc:STORK:1.0:assertion"> <bankName>Arion</bankName> <AQAA>3</AQAA> </hasAccountInBank>
*/
@Test
public void testUnmarshallHasBankAccount()
diff --git a/id/server/stork2-saml-engine/pom.xml b/id/server/stork2-saml-engine/pom.xml
index 63a84998c..612e0746f 100644
--- a/id/server/stork2-saml-engine/pom.xml
+++ b/id/server/stork2-saml-engine/pom.xml
@@ -60,7 +60,6 @@
<dependency>
<groupId>org.opensaml</groupId>
<artifactId>opensaml</artifactId>
-<!-- <version>${opensaml.version}</version> -->
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
@@ -89,6 +88,11 @@
</exclusions>
</dependency>
+ <dependency>
+ <groupId>org.opensaml</groupId>
+ <artifactId>xmltooling</artifactId>
+ </dependency>
+
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
diff --git a/id/server/stork2-saml-engine/src/main/java/eu/stork/peps/auth/engine/core/impl/SignSW.java b/id/server/stork2-saml-engine/src/main/java/eu/stork/peps/auth/engine/core/impl/SignSW.java
index d415375e7..0984bb9ca 100644
--- a/id/server/stork2-saml-engine/src/main/java/eu/stork/peps/auth/engine/core/impl/SignSW.java
+++ b/id/server/stork2-saml-engine/src/main/java/eu/stork/peps/auth/engine/core/impl/SignSW.java
@@ -220,13 +220,17 @@ public class SignSW implements SAMLEngineSignI {
final String serialNum = certificate.getSerialNumber()
.toString(16);
- X509Principal issuerDN = new X509Principal(certificate.getIssuerDN().getName());
- X509Principal issuerDNConf = new X509Principal(issuer);
-
- if (serialNum.equalsIgnoreCase(serialNumber)
- && X509PrincipalUtil.equals(issuerDN, issuerDNConf)) {
- alias = aliasCert;
- find = true;
+ try {
+ X509Principal issuerDN = new X509Principal(certificate.getIssuerDN().getName());
+ X509Principal issuerDNConf = new X509Principal(issuer);
+
+ if (serialNum.equalsIgnoreCase(serialNumber)
+ && X509PrincipalUtil.equals(issuerDN, issuerDNConf)) {
+ alias = aliasCert;
+ find = true;
+ }
+ } catch (Exception ex) {
+ LOG.error("Exception during signing: " + ex.getMessage()); // Added as a workaround for Bouncycastle email error
}
}
if (!find) {
diff --git a/pom.xml b/pom.xml
index ecd22a778..c3d6f9630 100644
--- a/pom.xml
+++ b/pom.xml
@@ -216,12 +216,12 @@
<dependency>
<groupId>org.opensaml</groupId>
<artifactId>opensaml</artifactId>
- <version>2.6.3</version>
+ <version>2.6.4</version>
</dependency>
<dependency>
<groupId>org.opensaml</groupId>
<artifactId>xmltooling</artifactId>
- <version>1.4.3</version>
+ <version>1.4.4</version>
</dependency>
@@ -289,6 +289,11 @@
<version>3.1</version>
</dependency>
<dependency>
+ <groupId>org.apache.httpcomponents</groupId>
+ <artifactId>httpclient</artifactId>
+ <version>4.3.6</version>
+ </dependency>
+ <dependency>
<groupId>dav4j</groupId>
<artifactId>dav4j</artifactId>
<version>0.1</version>
diff --git a/repository/xalan-bin-dist/xml-apis/2.11.0/xml-apis-2.11.0.pom b/repository/xalan-bin-dist/xml-apis/2.11.0/xml-apis-2.11.0.pom
index 97e64f3aa..d722b867d 100644
--- a/repository/xalan-bin-dist/xml-apis/2.11.0/xml-apis-2.11.0.pom
+++ b/repository/xalan-bin-dist/xml-apis/2.11.0/xml-apis-2.11.0.pom
@@ -6,4 +6,4 @@
<artifactId>xml-apis</artifactId>
<version>2.11.0</version>
<description>Artifactory auto generated POM</description>
-</project> \ No newline at end of file
+</project>
diff --git a/spss/handbook/conf/moa-spss/certstore/toBeAdded/a-sign-Premium-Test-Sig-02.20141124-20241118.SerNo3969edc1.cer b/spss/handbook/conf/moa-spss/certstore/toBeAdded/a-sign-Premium-Test-Sig-02.20141124-20241118.SerNo3969edc1.cer
new file mode 100644
index 000000000..1bb449441
--- /dev/null
+++ b/spss/handbook/conf/moa-spss/certstore/toBeAdded/a-sign-Premium-Test-Sig-02.20141124-20241118.SerNo3969edc1.cer
Binary files differ
diff --git a/spss/handbook/conf/moa-spss/certstore/toBeAdded/a-sign-Premium-enc-02.20140701-20240701.SerNo144dfd.cer b/spss/handbook/conf/moa-spss/certstore/toBeAdded/a-sign-Premium-enc-02.20140701-20240701.SerNo144dfd.cer
new file mode 100644
index 000000000..6c0c042b4
--- /dev/null
+++ b/spss/handbook/conf/moa-spss/certstore/toBeAdded/a-sign-Premium-enc-02.20140701-20240701.SerNo144dfd.cer
Binary files differ
diff --git a/spss/handbook/conf/moa-spss/certstore/toBeAdded/a-sign-Test-Qual-01.20141117-20241111.SerNo16120f.cer b/spss/handbook/conf/moa-spss/certstore/toBeAdded/a-sign-Test-Qual-01.20141117-20241111.SerNo16120f.cer
new file mode 100644
index 000000000..60bc9a557
--- /dev/null
+++ b/spss/handbook/conf/moa-spss/certstore/toBeAdded/a-sign-Test-Qual-01.20141117-20241111.SerNo16120f.cer
@@ -0,0 +1,23 @@
+-----BEGIN CERTIFICATE-----
+MIID2zCCAsOgAwIBAgIDFhIPMA0GCSqGSIb3DQEBBQUAMIGTMQswCQYDVQQGEwJB
+VDFIMEYGA1UECgw/QS1UcnVzdCBHZXMuIGYuIFNpY2hlcmhlaXRzc3lzdGVtZSBp
+bSBlbGVrdHIuIERhdGVudmVya2VociBHbWJIMRwwGgYDVQQLDBNhLXNpZ24tVEVT
+VC1RdWFsLTAxMRwwGgYDVQQDDBNhLXNpZ24tVEVTVC1RdWFsLTAxMB4XDTE0MTEx
+NzA3NDAzNloXDTI0MTExMTA2NDAzNlowgZMxCzAJBgNVBAYTAkFUMUgwRgYDVQQK
+DD9BLVRydXN0IEdlcy4gZi4gU2ljaGVyaGVpdHNzeXN0ZW1lIGltIGVsZWt0ci4g
+RGF0ZW52ZXJrZWhyIEdtYkgxHDAaBgNVBAsME2Etc2lnbi1URVNULVF1YWwtMDEx
+HDAaBgNVBAMME2Etc2lnbi1URVNULVF1YWwtMDEwggEiMA0GCSqGSIb3DQEBAQUA
+A4IBDwAwggEKAoIBAQD4TRgyXzhxJ2AkndX0RPY771f64dsJrReEeuShLRK5io0B
+kJWc4t7wuD1B98cJ0MUPlMmOJ2Ckc/vuLhQUyY3qEUmhMhixCUIcdHQ5yH3H0yMV
+HxyJxAG83fE8M25kpKA4TzzMW8KPd2S63wbpPElyEy7vrllrLxvdQRSDpMZMvRg8
+fvoDGAehxsnKKwlXZuMq1aSBzfMz3cMBDKxvqzDIz7yC1iWNkdiwog3a5a5PbViK
+shhZ0h+bx9WFDpiN6ooPQgcGhjD+NqIDoiOr7CUFHp+HiC6xIsEFJaBHTf3dRZ61
+0r1FDABx0Yj8+wlXSQLYq/1nR/QMwsvH0Cz1qYTPAgMBAAGjNjA0MA8GA1UdEwEB
+/wQFMAMBAf8wEQYDVR0OBAoECE8h1CulBqTdMA4GA1UdDwEB/wQEAwIBBjANBgkq
+hkiG9w0BAQUFAAOCAQEAimFu+xTm3UdyU+fO+2hz4DS20OGSC9NBDkorjzhRPWoZ
+IVhUi6yH5drqSBm4/2ZYS1Ba5npzfyJwm+cLO28ljxAApfRHlbN0y83hKv7c0I7g
+zWTMRs8X8ar5Gd7d4O5jpC4PAaZ1ozSDoE06U5im6YMLaJy/0QYvf5EQBMvLdeoc
+d1vl17JYKYqYzcX2dvayikrfiglFqDaZZ66yJPBSuiyNhXpPkbXsOoyyTPtV/0Bh
+eKIQiQyJID5aZtR7D4fBAzKdp5wB9KLQXBZ80hrwqrIuy+ME0tFaBWYBi8dzQ1iq
+/E3Qz0USfGmxPMm8y/zRqsDvxZCRiSuvzBkOXbGMdA==
+-----END CERTIFICATE-----
diff --git a/spss/handbook/conf/moa-spss/certstore/toBeAdded/a-sign-corporate-light-02.20140905-20240905.SerNo153B49.cer b/spss/handbook/conf/moa-spss/certstore/toBeAdded/a-sign-corporate-light-02.20140905-20240905.SerNo153B49.cer
new file mode 100644
index 000000000..e4bd48dac
--- /dev/null
+++ b/spss/handbook/conf/moa-spss/certstore/toBeAdded/a-sign-corporate-light-02.20140905-20240905.SerNo153B49.cer
Binary files differ
diff --git a/spss/handbook/conf/moa-spss/certstore/toBeAdded/a-sign-premium-sig-02.20140701-20240701.SerNo144e10.cer b/spss/handbook/conf/moa-spss/certstore/toBeAdded/a-sign-premium-sig-02.20140701-20240701.SerNo144e10.cer
new file mode 100644
index 000000000..74c4ce3b8
--- /dev/null
+++ b/spss/handbook/conf/moa-spss/certstore/toBeAdded/a-sign-premium-sig-02.20140701-20240701.SerNo144e10.cer
Binary files differ
diff --git a/spss/handbook/conf/moa-spss/certstore/toBeAdded/a-sign-premium-sig-03.20140701-20240701.SerNo144e13.cer b/spss/handbook/conf/moa-spss/certstore/toBeAdded/a-sign-premium-sig-03.20140701-20240701.SerNo144e13.cer
new file mode 100644
index 000000000..6c50ec079
--- /dev/null
+++ b/spss/handbook/conf/moa-spss/certstore/toBeAdded/a-sign-premium-sig-03.20140701-20240701.SerNo144e13.cer
Binary files differ
diff --git a/spss/handbook/conf/moa-spss/certstore/toBeAdded/atrust_OCSP_Responder_03-1.crt b/spss/handbook/conf/moa-spss/certstore/toBeAdded/atrust_OCSP_Responder_03-1.crt
new file mode 100644
index 000000000..ebfbce9a0
--- /dev/null
+++ b/spss/handbook/conf/moa-spss/certstore/toBeAdded/atrust_OCSP_Responder_03-1.crt
Binary files differ
diff --git a/spss/handbook/conf/moa-spss/trustProfiles/certifiedSignature+Test/A-Trust-Test-Qual-02.20141124-20141118.SerNo3969edbf.cer b/spss/handbook/conf/moa-spss/trustProfiles/certifiedSignature+Test/A-Trust-Test-Qual-02.20141124-20141118.SerNo3969edbf.cer
new file mode 100644
index 000000000..d71177a4e
--- /dev/null
+++ b/spss/handbook/conf/moa-spss/trustProfiles/certifiedSignature+Test/A-Trust-Test-Qual-02.20141124-20141118.SerNo3969edbf.cer
Binary files differ
diff --git a/spss/handbook/conf/moa-spss/trustProfiles/certifiedSignature+Test/a-sign-Test-Qual-01.20141117-20241111.SerNo16120f.cer b/spss/handbook/conf/moa-spss/trustProfiles/certifiedSignature+Test/a-sign-Test-Qual-01.20141117-20241111.SerNo16120f.cer
new file mode 100644
index 000000000..60bc9a557
--- /dev/null
+++ b/spss/handbook/conf/moa-spss/trustProfiles/certifiedSignature+Test/a-sign-Test-Qual-01.20141117-20241111.SerNo16120f.cer
@@ -0,0 +1,23 @@
+-----BEGIN CERTIFICATE-----
+MIID2zCCAsOgAwIBAgIDFhIPMA0GCSqGSIb3DQEBBQUAMIGTMQswCQYDVQQGEwJB
+VDFIMEYGA1UECgw/QS1UcnVzdCBHZXMuIGYuIFNpY2hlcmhlaXRzc3lzdGVtZSBp
+bSBlbGVrdHIuIERhdGVudmVya2VociBHbWJIMRwwGgYDVQQLDBNhLXNpZ24tVEVT
+VC1RdWFsLTAxMRwwGgYDVQQDDBNhLXNpZ24tVEVTVC1RdWFsLTAxMB4XDTE0MTEx
+NzA3NDAzNloXDTI0MTExMTA2NDAzNlowgZMxCzAJBgNVBAYTAkFUMUgwRgYDVQQK
+DD9BLVRydXN0IEdlcy4gZi4gU2ljaGVyaGVpdHNzeXN0ZW1lIGltIGVsZWt0ci4g
+RGF0ZW52ZXJrZWhyIEdtYkgxHDAaBgNVBAsME2Etc2lnbi1URVNULVF1YWwtMDEx
+HDAaBgNVBAMME2Etc2lnbi1URVNULVF1YWwtMDEwggEiMA0GCSqGSIb3DQEBAQUA
+A4IBDwAwggEKAoIBAQD4TRgyXzhxJ2AkndX0RPY771f64dsJrReEeuShLRK5io0B
+kJWc4t7wuD1B98cJ0MUPlMmOJ2Ckc/vuLhQUyY3qEUmhMhixCUIcdHQ5yH3H0yMV
+HxyJxAG83fE8M25kpKA4TzzMW8KPd2S63wbpPElyEy7vrllrLxvdQRSDpMZMvRg8
+fvoDGAehxsnKKwlXZuMq1aSBzfMz3cMBDKxvqzDIz7yC1iWNkdiwog3a5a5PbViK
+shhZ0h+bx9WFDpiN6ooPQgcGhjD+NqIDoiOr7CUFHp+HiC6xIsEFJaBHTf3dRZ61
+0r1FDABx0Yj8+wlXSQLYq/1nR/QMwsvH0Cz1qYTPAgMBAAGjNjA0MA8GA1UdEwEB
+/wQFMAMBAf8wEQYDVR0OBAoECE8h1CulBqTdMA4GA1UdDwEB/wQEAwIBBjANBgkq
+hkiG9w0BAQUFAAOCAQEAimFu+xTm3UdyU+fO+2hz4DS20OGSC9NBDkorjzhRPWoZ
+IVhUi6yH5drqSBm4/2ZYS1Ba5npzfyJwm+cLO28ljxAApfRHlbN0y83hKv7c0I7g
+zWTMRs8X8ar5Gd7d4O5jpC4PAaZ1ozSDoE06U5im6YMLaJy/0QYvf5EQBMvLdeoc
+d1vl17JYKYqYzcX2dvayikrfiglFqDaZZ66yJPBSuiyNhXpPkbXsOoyyTPtV/0Bh
+eKIQiQyJID5aZtR7D4fBAzKdp5wB9KLQXBZ80hrwqrIuy+ME0tFaBWYBi8dzQ1iq
+/E3Qz0USfGmxPMm8y/zRqsDvxZCRiSuvzBkOXbGMdA==
+-----END CERTIFICATE-----
diff --git a/spss/handbook/conf/moa-spss/trustProfiles/identityLink+Test/a-sign-corporate-light-02.20140905-20240905.SrN153B49.crt b/spss/handbook/conf/moa-spss/trustProfiles/identityLink+Test/a-sign-corporate-light-02.20140905-20240905.SrN153B49.crt
new file mode 100644
index 000000000..e4bd48dac
--- /dev/null
+++ b/spss/handbook/conf/moa-spss/trustProfiles/identityLink+Test/a-sign-corporate-light-02.20140905-20240905.SrN153B49.crt
Binary files differ
diff --git a/spss/handbook/conf/moa-spss/trustProfiles/identityLink/a-sign-corporate-light-02.20140905-20240905.SrN153B49.crt b/spss/handbook/conf/moa-spss/trustProfiles/identityLink/a-sign-corporate-light-02.20140905-20240905.SrN153B49.crt
new file mode 100644
index 000000000..e4bd48dac
--- /dev/null
+++ b/spss/handbook/conf/moa-spss/trustProfiles/identityLink/a-sign-corporate-light-02.20140905-20240905.SrN153B49.crt
Binary files differ
diff --git a/spss/handbook/conf/moa-spss/trustProfiles/officialSignature/a-sign-Premium-enc-02.20140701-20240701.SerNo144dfd.cer b/spss/handbook/conf/moa-spss/trustProfiles/officialSignature/a-sign-Premium-enc-02.20140701-20240701.SerNo144dfd.cer
new file mode 100644
index 000000000..6c0c042b4
--- /dev/null
+++ b/spss/handbook/conf/moa-spss/trustProfiles/officialSignature/a-sign-Premium-enc-02.20140701-20240701.SerNo144dfd.cer
Binary files differ
diff --git a/spss/handbook/conf/moa-spss/trustProfiles/officialSignature/a-sign-corporate-light-02.20140905-20240905.SrN153B49.crt b/spss/handbook/conf/moa-spss/trustProfiles/officialSignature/a-sign-corporate-light-02.20140905-20240905.SrN153B49.crt
new file mode 100644
index 000000000..e4bd48dac
--- /dev/null
+++ b/spss/handbook/conf/moa-spss/trustProfiles/officialSignature/a-sign-corporate-light-02.20140905-20240905.SrN153B49.crt
Binary files differ
diff --git a/spss/handbook/conf/moa-spss/trustProfiles/officialSignature/a-sign-premium-sig-02.20140701-20240701.SerNo144e10.cer b/spss/handbook/conf/moa-spss/trustProfiles/officialSignature/a-sign-premium-sig-02.20140701-20240701.SerNo144e10.cer
new file mode 100644
index 000000000..74c4ce3b8
--- /dev/null
+++ b/spss/handbook/conf/moa-spss/trustProfiles/officialSignature/a-sign-premium-sig-02.20140701-20240701.SerNo144e10.cer
Binary files differ
diff --git a/spss/handbook/conf/moa-spss/trustProfiles/officialSignature/a-sign-premium-sig-03.20140701-20240701.SerNo144e13.cer b/spss/handbook/conf/moa-spss/trustProfiles/officialSignature/a-sign-premium-sig-03.20140701-20240701.SerNo144e13.cer
new file mode 100644
index 000000000..6c50ec079
--- /dev/null
+++ b/spss/handbook/conf/moa-spss/trustProfiles/officialSignature/a-sign-premium-sig-03.20140701-20240701.SerNo144e13.cer
Binary files differ
diff --git a/spss/handbook/conf/moa-spss/trustProfiles/secureSignature+Test/a-sign-Premium-Test-Sig-02.20141124-20141118.SerNo3969edc1.cer b/spss/handbook/conf/moa-spss/trustProfiles/secureSignature+Test/a-sign-Premium-Test-Sig-02.20141124-20141118.SerNo3969edc1.cer
new file mode 100644
index 000000000..1bb449441
--- /dev/null
+++ b/spss/handbook/conf/moa-spss/trustProfiles/secureSignature+Test/a-sign-Premium-Test-Sig-02.20141124-20141118.SerNo3969edc1.cer
Binary files differ
diff --git a/spss/handbook/conf/moa-spss/trustProfiles/secureSignature+Test/a-sign-Test-Qual-01.20141117-20241111.SerNo16120f.cer b/spss/handbook/conf/moa-spss/trustProfiles/secureSignature+Test/a-sign-Test-Qual-01.20141117-20241111.SerNo16120f.cer
new file mode 100644
index 000000000..60bc9a557
--- /dev/null
+++ b/spss/handbook/conf/moa-spss/trustProfiles/secureSignature+Test/a-sign-Test-Qual-01.20141117-20241111.SerNo16120f.cer
@@ -0,0 +1,23 @@
+-----BEGIN CERTIFICATE-----
+MIID2zCCAsOgAwIBAgIDFhIPMA0GCSqGSIb3DQEBBQUAMIGTMQswCQYDVQQGEwJB
+VDFIMEYGA1UECgw/QS1UcnVzdCBHZXMuIGYuIFNpY2hlcmhlaXRzc3lzdGVtZSBp
+bSBlbGVrdHIuIERhdGVudmVya2VociBHbWJIMRwwGgYDVQQLDBNhLXNpZ24tVEVT
+VC1RdWFsLTAxMRwwGgYDVQQDDBNhLXNpZ24tVEVTVC1RdWFsLTAxMB4XDTE0MTEx
+NzA3NDAzNloXDTI0MTExMTA2NDAzNlowgZMxCzAJBgNVBAYTAkFUMUgwRgYDVQQK
+DD9BLVRydXN0IEdlcy4gZi4gU2ljaGVyaGVpdHNzeXN0ZW1lIGltIGVsZWt0ci4g
+RGF0ZW52ZXJrZWhyIEdtYkgxHDAaBgNVBAsME2Etc2lnbi1URVNULVF1YWwtMDEx
+HDAaBgNVBAMME2Etc2lnbi1URVNULVF1YWwtMDEwggEiMA0GCSqGSIb3DQEBAQUA
+A4IBDwAwggEKAoIBAQD4TRgyXzhxJ2AkndX0RPY771f64dsJrReEeuShLRK5io0B
+kJWc4t7wuD1B98cJ0MUPlMmOJ2Ckc/vuLhQUyY3qEUmhMhixCUIcdHQ5yH3H0yMV
+HxyJxAG83fE8M25kpKA4TzzMW8KPd2S63wbpPElyEy7vrllrLxvdQRSDpMZMvRg8
+fvoDGAehxsnKKwlXZuMq1aSBzfMz3cMBDKxvqzDIz7yC1iWNkdiwog3a5a5PbViK
+shhZ0h+bx9WFDpiN6ooPQgcGhjD+NqIDoiOr7CUFHp+HiC6xIsEFJaBHTf3dRZ61
+0r1FDABx0Yj8+wlXSQLYq/1nR/QMwsvH0Cz1qYTPAgMBAAGjNjA0MA8GA1UdEwEB
+/wQFMAMBAf8wEQYDVR0OBAoECE8h1CulBqTdMA4GA1UdDwEB/wQEAwIBBjANBgkq
+hkiG9w0BAQUFAAOCAQEAimFu+xTm3UdyU+fO+2hz4DS20OGSC9NBDkorjzhRPWoZ
+IVhUi6yH5drqSBm4/2ZYS1Ba5npzfyJwm+cLO28ljxAApfRHlbN0y83hKv7c0I7g
+zWTMRs8X8ar5Gd7d4O5jpC4PAaZ1ozSDoE06U5im6YMLaJy/0QYvf5EQBMvLdeoc
+d1vl17JYKYqYzcX2dvayikrfiglFqDaZZ66yJPBSuiyNhXpPkbXsOoyyTPtV/0Bh
+eKIQiQyJID5aZtR7D4fBAzKdp5wB9KLQXBZ80hrwqrIuy+ME0tFaBWYBi8dzQ1iq
+/E3Qz0USfGmxPMm8y/zRqsDvxZCRiSuvzBkOXbGMdA==
+-----END CERTIFICATE-----
diff --git a/spss/server/serverws/pom.xml b/spss/server/serverws/pom.xml
index bbfb3c443..b90026252 100644
--- a/spss/server/serverws/pom.xml
+++ b/spss/server/serverws/pom.xml
@@ -109,6 +109,10 @@
<artifactId>iaik_pki_module</artifactId>
<groupId>iaik</groupId>
</exclusion>
+ <exclusion>
+ <artifactId>iaik_jce_eval_signed</artifactId>
+ <groupId>iaik</groupId>
+ </exclusion>
</exclusions>
</dependency>
<dependency>