diff --git a/Doc/Common/snippets.xml b/Doc/Common/snippets.xml index 1c182a29363857b87f5ddee9a1ffb589f9409fad..69b5e5ea3da9138b1b7f65ff64f0badc8323f404 100644 --- a/Doc/Common/snippets.xml +++ b/Doc/Common/snippets.xml @@ -27,7 +27,13 @@ <figure xml:id="_fig_listing"> <title/> - <programlisting language="none"/> + <programlisting language="none">http://www.utf8-chartable.de/unicode-utf8-table.pl?start=9472&unicodeinhtml=dec + <emphasis role="red">◀──────â”</emphasis> + <emphasis role="red">│</emphasis> + <emphasis role="red">◀──────┼─â”</emphasis> + <emphasis role="red">│ │</emphasis> + <emphasis role="red">───────┘ │</emphasis> + <emphasis role="red">─────────┘</emphasis></programlisting> </figure> </section> diff --git a/Doc/Sda1/Ref/Organizer/.gitignore b/Doc/Sda1/Ref/Organizer/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..134c58e3ddb750d6773acea3346708d52f6455ba --- /dev/null +++ b/Doc/Sda1/Ref/Organizer/.gitignore @@ -0,0 +1,6 @@ +*.iml +.idea +/target/ +/.settings/ +.classpath +.project diff --git a/Doc/Sda1/Ref/Xmlschema/P/Organizer/V01_start/Readme.md b/Doc/Sda1/Ref/Organizer/V01_start/Readme.md similarity index 100% rename from Doc/Sda1/Ref/Xmlschema/P/Organizer/V01_start/Readme.md rename to Doc/Sda1/Ref/Organizer/V01_start/Readme.md diff --git a/Doc/Sda1/Ref/Xmlschema/P/Organizer/V01_start/missingEmail.xml b/Doc/Sda1/Ref/Organizer/V01_start/missingEmail.xml similarity index 100% rename from Doc/Sda1/Ref/Xmlschema/P/Organizer/V01_start/missingEmail.xml rename to Doc/Sda1/Ref/Organizer/V01_start/missingEmail.xml diff --git a/Doc/Sda1/Ref/Xmlschema/P/Organizer/V01_start/myContacts.xml b/Doc/Sda1/Ref/Organizer/V01_start/myContacts.xml similarity index 100% rename from Doc/Sda1/Ref/Xmlschema/P/Organizer/V01_start/myContacts.xml rename to Doc/Sda1/Ref/Organizer/V01_start/myContacts.xml diff --git a/Doc/Sda1/Ref/Xmlschema/P/Organizer/V01_start/organizer.xsd b/Doc/Sda1/Ref/Organizer/V01_start/organizer.xsd similarity index 100% rename from Doc/Sda1/Ref/Xmlschema/P/Organizer/V01_start/organizer.xsd rename to Doc/Sda1/Ref/Organizer/V01_start/organizer.xsd diff --git a/Doc/Sda1/Ref/Xmlschema/P/Organizer/V01_start/wrongOrder.xml b/Doc/Sda1/Ref/Organizer/V01_start/wrongOrder.xml similarity index 100% rename from Doc/Sda1/Ref/Xmlschema/P/Organizer/V01_start/wrongOrder.xml rename to Doc/Sda1/Ref/Organizer/V01_start/wrongOrder.xml diff --git a/Doc/Sda1/Ref/Xmlschema/P/Organizer/V02_optionalEmail/email.xml b/Doc/Sda1/Ref/Organizer/V02_optionalEmail/email.xml similarity index 100% rename from Doc/Sda1/Ref/Xmlschema/P/Organizer/V02_optionalEmail/email.xml rename to Doc/Sda1/Ref/Organizer/V02_optionalEmail/email.xml diff --git a/Doc/Sda1/Ref/Xmlschema/P/Organizer/V02_optionalEmail/noEmail.xml b/Doc/Sda1/Ref/Organizer/V02_optionalEmail/noEmail.xml similarity index 100% rename from Doc/Sda1/Ref/Xmlschema/P/Organizer/V02_optionalEmail/noEmail.xml rename to Doc/Sda1/Ref/Organizer/V02_optionalEmail/noEmail.xml diff --git a/Doc/Sda1/Ref/Xmlschema/P/Organizer/V02_optionalEmail/organizer.xsd b/Doc/Sda1/Ref/Organizer/V02_optionalEmail/organizer.xsd similarity index 100% rename from Doc/Sda1/Ref/Xmlschema/P/Organizer/V02_optionalEmail/organizer.xsd rename to Doc/Sda1/Ref/Organizer/V02_optionalEmail/organizer.xsd diff --git a/Doc/Sda1/Ref/Xmlschema/P/Organizer/V03_multipleContacts/contactNoRef.xml b/Doc/Sda1/Ref/Organizer/V03_multipleContacts/contactNoRef.xml similarity index 100% rename from Doc/Sda1/Ref/Xmlschema/P/Organizer/V03_multipleContacts/contactNoRef.xml rename to Doc/Sda1/Ref/Organizer/V03_multipleContacts/contactNoRef.xml diff --git a/Doc/Sda1/Ref/Xmlschema/P/Organizer/V03_multipleContacts/contacts.xml b/Doc/Sda1/Ref/Organizer/V03_multipleContacts/contacts.xml similarity index 100% rename from Doc/Sda1/Ref/Xmlschema/P/Organizer/V03_multipleContacts/contacts.xml rename to Doc/Sda1/Ref/Organizer/V03_multipleContacts/contacts.xml diff --git a/Doc/Sda1/Ref/Xmlschema/P/Organizer/V03_multipleContacts/contactsNoRef.xml b/Doc/Sda1/Ref/Organizer/V03_multipleContacts/contactsNoRef.xml similarity index 100% rename from Doc/Sda1/Ref/Xmlschema/P/Organizer/V03_multipleContacts/contactsNoRef.xml rename to Doc/Sda1/Ref/Organizer/V03_multipleContacts/contactsNoRef.xml diff --git a/Doc/Sda1/Ref/Xmlschema/P/Organizer/V03_multipleContacts/email.xml b/Doc/Sda1/Ref/Organizer/V03_multipleContacts/email.xml similarity index 100% rename from Doc/Sda1/Ref/Xmlschema/P/Organizer/V03_multipleContacts/email.xml rename to Doc/Sda1/Ref/Organizer/V03_multipleContacts/email.xml diff --git a/Doc/Sda1/Ref/Xmlschema/P/Organizer/V03_multipleContacts/organizer.svg b/Doc/Sda1/Ref/Organizer/V03_multipleContacts/organizer.svg similarity index 100% rename from Doc/Sda1/Ref/Xmlschema/P/Organizer/V03_multipleContacts/organizer.svg rename to Doc/Sda1/Ref/Organizer/V03_multipleContacts/organizer.svg diff --git a/Doc/Sda1/Ref/Xmlschema/P/Organizer/V03_multipleContacts/organizer.svg.marked.svg b/Doc/Sda1/Ref/Organizer/V03_multipleContacts/organizer.svg.marked.svg similarity index 100% rename from Doc/Sda1/Ref/Xmlschema/P/Organizer/V03_multipleContacts/organizer.svg.marked.svg rename to Doc/Sda1/Ref/Organizer/V03_multipleContacts/organizer.svg.marked.svg diff --git a/Doc/Sda1/Ref/Xmlschema/P/Organizer/V03_multipleContacts/organizer.xsd b/Doc/Sda1/Ref/Organizer/V03_multipleContacts/organizer.xsd similarity index 100% rename from Doc/Sda1/Ref/Xmlschema/P/Organizer/V03_multipleContacts/organizer.xsd rename to Doc/Sda1/Ref/Organizer/V03_multipleContacts/organizer.xsd diff --git a/Doc/Sda1/Ref/Xmlschema/P/Organizer/V03_multipleContacts/organizerNoRef.xsd b/Doc/Sda1/Ref/Organizer/V03_multipleContacts/organizerNoRef.xsd similarity index 100% rename from Doc/Sda1/Ref/Xmlschema/P/Organizer/V03_multipleContacts/organizerNoRef.xsd rename to Doc/Sda1/Ref/Organizer/V03_multipleContacts/organizerNoRef.xsd diff --git a/Doc/Sda1/Ref/Xmlschema/P/Organizer/V03_multipleContacts/organizer_raw.svg b/Doc/Sda1/Ref/Organizer/V03_multipleContacts/organizer_raw.svg similarity index 100% rename from Doc/Sda1/Ref/Xmlschema/P/Organizer/V03_multipleContacts/organizer_raw.svg rename to Doc/Sda1/Ref/Organizer/V03_multipleContacts/organizer_raw.svg diff --git a/Doc/Sda1/Ref/Xmlschema/P/Organizer/V04_birthdateElement/birthdateElement.xml b/Doc/Sda1/Ref/Organizer/V04_birthdateElement/birthdateElement.xml similarity index 100% rename from Doc/Sda1/Ref/Xmlschema/P/Organizer/V04_birthdateElement/birthdateElement.xml rename to Doc/Sda1/Ref/Organizer/V04_birthdateElement/birthdateElement.xml diff --git a/Doc/Sda1/Ref/Xmlschema/P/Organizer/V04_birthdateElement/organizer.xsd b/Doc/Sda1/Ref/Organizer/V04_birthdateElement/organizer.xsd similarity index 100% rename from Doc/Sda1/Ref/Xmlschema/P/Organizer/V04_birthdateElement/organizer.xsd rename to Doc/Sda1/Ref/Organizer/V04_birthdateElement/organizer.xsd diff --git a/Doc/Sda1/Ref/Xmlschema/P/Organizer/V05_birthdateElementDateType/birthdateElement.xml b/Doc/Sda1/Ref/Organizer/V05_birthdateElementDateType/birthdateElement.xml similarity index 100% rename from Doc/Sda1/Ref/Xmlschema/P/Organizer/V05_birthdateElementDateType/birthdateElement.xml rename to Doc/Sda1/Ref/Organizer/V05_birthdateElementDateType/birthdateElement.xml diff --git a/Doc/Sda1/Ref/Xmlschema/P/Organizer/V05_birthdateElementDateType/invalidBirthdates.xml b/Doc/Sda1/Ref/Organizer/V05_birthdateElementDateType/invalidBirthdates.xml similarity index 100% rename from Doc/Sda1/Ref/Xmlschema/P/Organizer/V05_birthdateElementDateType/invalidBirthdates.xml rename to Doc/Sda1/Ref/Organizer/V05_birthdateElementDateType/invalidBirthdates.xml diff --git a/Doc/Sda1/Ref/Xmlschema/P/Organizer/V05_birthdateElementDateType/organizer.xsd b/Doc/Sda1/Ref/Organizer/V05_birthdateElementDateType/organizer.xsd similarity index 100% rename from Doc/Sda1/Ref/Xmlschema/P/Organizer/V05_birthdateElementDateType/organizer.xsd rename to Doc/Sda1/Ref/Organizer/V05_birthdateElementDateType/organizer.xsd diff --git a/Doc/Sda1/Ref/Xmlschema/P/Organizer/V06_birthdateAttributeType/birthdateAttribute.xml b/Doc/Sda1/Ref/Organizer/V06_birthdateAttributeType/birthdateAttribute.xml similarity index 100% rename from Doc/Sda1/Ref/Xmlschema/P/Organizer/V06_birthdateAttributeType/birthdateAttribute.xml rename to Doc/Sda1/Ref/Organizer/V06_birthdateAttributeType/birthdateAttribute.xml diff --git a/Doc/Sda1/Ref/Xmlschema/P/Organizer/V06_birthdateAttributeType/invalidBirthdates.xml b/Doc/Sda1/Ref/Organizer/V06_birthdateAttributeType/invalidBirthdates.xml similarity index 100% rename from Doc/Sda1/Ref/Xmlschema/P/Organizer/V06_birthdateAttributeType/invalidBirthdates.xml rename to Doc/Sda1/Ref/Organizer/V06_birthdateAttributeType/invalidBirthdates.xml diff --git a/Doc/Sda1/Ref/Xmlschema/P/Organizer/V06_birthdateAttributeType/organizer.xsd b/Doc/Sda1/Ref/Organizer/V06_birthdateAttributeType/organizer.xsd similarity index 100% rename from Doc/Sda1/Ref/Xmlschema/P/Organizer/V06_birthdateAttributeType/organizer.xsd rename to Doc/Sda1/Ref/Organizer/V06_birthdateAttributeType/organizer.xsd diff --git a/Doc/Sda1/Ref/Xmlschema/P/Organizer/V07_emailNoSpaces/invalidEmail.xml b/Doc/Sda1/Ref/Organizer/V07_emailNoSpaces/invalidEmail.xml similarity index 100% rename from Doc/Sda1/Ref/Xmlschema/P/Organizer/V07_emailNoSpaces/invalidEmail.xml rename to Doc/Sda1/Ref/Organizer/V07_emailNoSpaces/invalidEmail.xml diff --git a/Doc/Sda1/Ref/Xmlschema/P/Organizer/V07_emailNoSpaces/mindTheUr_type.xml b/Doc/Sda1/Ref/Organizer/V07_emailNoSpaces/mindTheUr_type.xml similarity index 100% rename from Doc/Sda1/Ref/Xmlschema/P/Organizer/V07_emailNoSpaces/mindTheUr_type.xml rename to Doc/Sda1/Ref/Organizer/V07_emailNoSpaces/mindTheUr_type.xml diff --git a/Doc/Sda1/Ref/Xmlschema/P/Organizer/V07_emailNoSpaces/organizer.xsd b/Doc/Sda1/Ref/Organizer/V07_emailNoSpaces/organizer.xsd similarity index 100% rename from Doc/Sda1/Ref/Xmlschema/P/Organizer/V07_emailNoSpaces/organizer.xsd rename to Doc/Sda1/Ref/Organizer/V07_emailNoSpaces/organizer.xsd diff --git a/Doc/Sda1/Ref/Xmlschema/P/Organizer/V07_emailNoSpaces/validEmail.xml b/Doc/Sda1/Ref/Organizer/V07_emailNoSpaces/validEmail.xml similarity index 100% rename from Doc/Sda1/Ref/Xmlschema/P/Organizer/V07_emailNoSpaces/validEmail.xml rename to Doc/Sda1/Ref/Organizer/V07_emailNoSpaces/validEmail.xml diff --git a/Doc/Sda1/Ref/Xmlschema/P/Organizer/V08_correctingTypes/mindTheUr_type.xml b/Doc/Sda1/Ref/Organizer/V08_correctingTypes/mindTheUr_type.xml similarity index 100% rename from Doc/Sda1/Ref/Xmlschema/P/Organizer/V08_correctingTypes/mindTheUr_type.xml rename to Doc/Sda1/Ref/Organizer/V08_correctingTypes/mindTheUr_type.xml diff --git a/Doc/Sda1/Ref/Xmlschema/P/Organizer/V08_correctingTypes/organizer.xsd b/Doc/Sda1/Ref/Organizer/V08_correctingTypes/organizer.xsd similarity index 100% rename from Doc/Sda1/Ref/Xmlschema/P/Organizer/V08_correctingTypes/organizer.xsd rename to Doc/Sda1/Ref/Organizer/V08_correctingTypes/organizer.xsd diff --git a/Doc/Sda1/Ref/Xmlschema/P/Organizer/V08_correctingTypes/validEmail.xml b/Doc/Sda1/Ref/Organizer/V08_correctingTypes/validEmail.xml similarity index 100% rename from Doc/Sda1/Ref/Xmlschema/P/Organizer/V08_correctingTypes/validEmail.xml rename to Doc/Sda1/Ref/Organizer/V08_correctingTypes/validEmail.xml diff --git a/Doc/Sda1/Ref/Xmlschema/P/Organizer/V14_category/category.xml b/Doc/Sda1/Ref/Organizer/V14_category/category.xml similarity index 100% rename from Doc/Sda1/Ref/Xmlschema/P/Organizer/V14_category/category.xml rename to Doc/Sda1/Ref/Organizer/V14_category/category.xml diff --git a/Doc/Sda1/Ref/Xmlschema/P/Organizer/V14_category/organizer.xsd b/Doc/Sda1/Ref/Organizer/V14_category/organizer.xsd similarity index 100% rename from Doc/Sda1/Ref/Xmlschema/P/Organizer/V14_category/organizer.xsd rename to Doc/Sda1/Ref/Organizer/V14_category/organizer.xsd diff --git a/Doc/Sda1/Ref/Xmlschema/P/Organizer/V17_nickname/duplicateNickname.xml b/Doc/Sda1/Ref/Organizer/V17_nickname/duplicateNickname.xml similarity index 100% rename from Doc/Sda1/Ref/Xmlschema/P/Organizer/V17_nickname/duplicateNickname.xml rename to Doc/Sda1/Ref/Organizer/V17_nickname/duplicateNickname.xml diff --git a/Doc/Sda1/Ref/Xmlschema/P/Organizer/V17_nickname/nickname.xml b/Doc/Sda1/Ref/Organizer/V17_nickname/nickname.xml similarity index 100% rename from Doc/Sda1/Ref/Xmlschema/P/Organizer/V17_nickname/nickname.xml rename to Doc/Sda1/Ref/Organizer/V17_nickname/nickname.xml diff --git a/Doc/Sda1/Ref/Xmlschema/P/Organizer/V17_nickname/organizer.xsd b/Doc/Sda1/Ref/Organizer/V17_nickname/organizer.xsd similarity index 100% rename from Doc/Sda1/Ref/Xmlschema/P/Organizer/V17_nickname/organizer.xsd rename to Doc/Sda1/Ref/Organizer/V17_nickname/organizer.xsd diff --git a/Doc/Sda1/Ref/Xmlschema/P/Organizer/V20_primaryKeyId/id.xml b/Doc/Sda1/Ref/Organizer/V20_primaryKeyId/id.xml similarity index 100% rename from Doc/Sda1/Ref/Xmlschema/P/Organizer/V20_primaryKeyId/id.xml rename to Doc/Sda1/Ref/Organizer/V20_primaryKeyId/id.xml diff --git a/Doc/Sda1/Ref/Xmlschema/P/Organizer/V20_primaryKeyId/missingId.xml b/Doc/Sda1/Ref/Organizer/V20_primaryKeyId/missingId.xml similarity index 100% rename from Doc/Sda1/Ref/Xmlschema/P/Organizer/V20_primaryKeyId/missingId.xml rename to Doc/Sda1/Ref/Organizer/V20_primaryKeyId/missingId.xml diff --git a/Doc/Sda1/Ref/Xmlschema/P/Organizer/V20_primaryKeyId/organizer.xsd b/Doc/Sda1/Ref/Organizer/V20_primaryKeyId/organizer.xsd similarity index 100% rename from Doc/Sda1/Ref/Xmlschema/P/Organizer/V20_primaryKeyId/organizer.xsd rename to Doc/Sda1/Ref/Organizer/V20_primaryKeyId/organizer.xsd diff --git a/Doc/Sda1/Ref/Xmlschema/P/Organizer/V21_idRequired/id.xml b/Doc/Sda1/Ref/Organizer/V21_idRequired/id.xml similarity index 100% rename from Doc/Sda1/Ref/Xmlschema/P/Organizer/V21_idRequired/id.xml rename to Doc/Sda1/Ref/Organizer/V21_idRequired/id.xml diff --git a/Doc/Sda1/Ref/Xmlschema/P/Organizer/V21_idRequired/missingId.xml b/Doc/Sda1/Ref/Organizer/V21_idRequired/missingId.xml similarity index 100% rename from Doc/Sda1/Ref/Xmlschema/P/Organizer/V21_idRequired/missingId.xml rename to Doc/Sda1/Ref/Organizer/V21_idRequired/missingId.xml diff --git a/Doc/Sda1/Ref/Xmlschema/P/Organizer/V21_idRequired/organizer.xsd b/Doc/Sda1/Ref/Organizer/V21_idRequired/organizer.xsd similarity index 100% rename from Doc/Sda1/Ref/Xmlschema/P/Organizer/V21_idRequired/organizer.xsd rename to Doc/Sda1/Ref/Organizer/V21_idRequired/organizer.xsd diff --git a/Doc/Sda1/Ref/Xmlschema/P/Organizer/V30_appointment/appointment.xml b/Doc/Sda1/Ref/Organizer/V30_appointment/appointment.xml similarity index 100% rename from Doc/Sda1/Ref/Xmlschema/P/Organizer/V30_appointment/appointment.xml rename to Doc/Sda1/Ref/Organizer/V30_appointment/appointment.xml diff --git a/Doc/Sda1/Ref/Xmlschema/P/Organizer/V30_appointment/missingDate.xml b/Doc/Sda1/Ref/Organizer/V30_appointment/missingDate.xml similarity index 100% rename from Doc/Sda1/Ref/Xmlschema/P/Organizer/V30_appointment/missingDate.xml rename to Doc/Sda1/Ref/Organizer/V30_appointment/missingDate.xml diff --git a/Doc/Sda1/Ref/Xmlschema/P/Organizer/V30_appointment/organizer.xsd b/Doc/Sda1/Ref/Organizer/V30_appointment/organizer.xsd similarity index 100% rename from Doc/Sda1/Ref/Xmlschema/P/Organizer/V30_appointment/organizer.xsd rename to Doc/Sda1/Ref/Organizer/V30_appointment/organizer.xsd diff --git a/Doc/Sda1/Ref/Xmlschema/P/Organizer/V33_appointmentParticipants/appointment.xml b/Doc/Sda1/Ref/Organizer/V33_appointmentParticipants/appointment.xml similarity index 100% rename from Doc/Sda1/Ref/Xmlschema/P/Organizer/V33_appointmentParticipants/appointment.xml rename to Doc/Sda1/Ref/Organizer/V33_appointmentParticipants/appointment.xml diff --git a/Doc/Sda1/Ref/Xmlschema/P/Organizer/V33_appointmentParticipants/invalidParticipantRef.xml b/Doc/Sda1/Ref/Organizer/V33_appointmentParticipants/invalidParticipantRef.xml similarity index 100% rename from Doc/Sda1/Ref/Xmlschema/P/Organizer/V33_appointmentParticipants/invalidParticipantRef.xml rename to Doc/Sda1/Ref/Organizer/V33_appointmentParticipants/invalidParticipantRef.xml diff --git a/Doc/Sda1/Ref/Xmlschema/P/Organizer/V33_appointmentParticipants/missingParticipant.xml b/Doc/Sda1/Ref/Organizer/V33_appointmentParticipants/missingParticipant.xml similarity index 100% rename from Doc/Sda1/Ref/Xmlschema/P/Organizer/V33_appointmentParticipants/missingParticipant.xml rename to Doc/Sda1/Ref/Organizer/V33_appointmentParticipants/missingParticipant.xml diff --git a/Doc/Sda1/Ref/Xmlschema/P/Organizer/V33_appointmentParticipants/organizer.xsd b/Doc/Sda1/Ref/Organizer/V33_appointmentParticipants/organizer.xsd similarity index 97% rename from Doc/Sda1/Ref/Xmlschema/P/Organizer/V33_appointmentParticipants/organizer.xsd rename to Doc/Sda1/Ref/Organizer/V33_appointmentParticipants/organizer.xsd index ef12892537fe99ff3aff3d393258f7525db375a0..8bc2568ff7382aacb381431b02d0fc06c6fba88f 100644 --- a/Doc/Sda1/Ref/Xmlschema/P/Organizer/V33_appointmentParticipants/organizer.xsd +++ b/Doc/Sda1/Ref/Organizer/V33_appointmentParticipants/organizer.xsd @@ -21,7 +21,7 @@ <xs:field xpath="@nickname"/> </xs:unique> - <xs:keyref name="ownerOfAppointment" refer="primaryKey"> + <xs:keyref name="participants" refer="primaryKey"> <xs:annotation> <xs:documentation>Each appointment belongs to exactly one owner.</xs:documentation> </xs:annotation> diff --git a/Doc/Sda1/Ref/Xmlschema/P/Organizer/V36_appointmentUniqueParticipants/duplicateParticipants.xml b/Doc/Sda1/Ref/Organizer/V36_appointmentUniqueParticipants/duplicateParticipants.xml similarity index 100% rename from Doc/Sda1/Ref/Xmlschema/P/Organizer/V36_appointmentUniqueParticipants/duplicateParticipants.xml rename to Doc/Sda1/Ref/Organizer/V36_appointmentUniqueParticipants/duplicateParticipants.xml diff --git a/Doc/Sda1/Ref/Xmlschema/P/Organizer/V36_appointmentUniqueParticipants/organizer.xsd b/Doc/Sda1/Ref/Organizer/V36_appointmentUniqueParticipants/organizer.xsd similarity index 97% rename from Doc/Sda1/Ref/Xmlschema/P/Organizer/V36_appointmentUniqueParticipants/organizer.xsd rename to Doc/Sda1/Ref/Organizer/V36_appointmentUniqueParticipants/organizer.xsd index 0e0999b50ddd0f8949df50a14ad80ab7762e6043..fabcc275ddc084303fdfff15ef3decb03384b3c6 100644 --- a/Doc/Sda1/Ref/Xmlschema/P/Organizer/V36_appointmentUniqueParticipants/organizer.xsd +++ b/Doc/Sda1/Ref/Organizer/V36_appointmentUniqueParticipants/organizer.xsd @@ -21,7 +21,7 @@ <xs:field xpath="@nickname"/> </xs:unique> - <xs:keyref name="ownerOfAppointment" refer="primaryKey"> + <xs:keyref name="participants" refer="primaryKey"> <xs:annotation> <xs:documentation>Each appointment belongs to exactly one owner.</xs:documentation> </xs:annotation> diff --git a/Doc/Sda1/Ref/Xmlschema/P/Organizer/abook.xpr b/Doc/Sda1/Ref/Organizer/abook.xpr similarity index 100% rename from Doc/Sda1/Ref/Xmlschema/P/Organizer/abook.xpr rename to Doc/Sda1/Ref/Organizer/abook.xpr diff --git a/Doc/Sda1/Ref/Organizer/pom.xml b/Doc/Sda1/Ref/Organizer/pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..bf850f64ba449fcda513bfcdda68130d247b00bc --- /dev/null +++ b/Doc/Sda1/Ref/Organizer/pom.xml @@ -0,0 +1,80 @@ +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + + <groupId>de.hdm_stuttgart.mi.sda1</groupId> + <artifactId>organizer</artifactId> + <version>1.0-SNAPSHOT</version> + <packaging>jar</packaging> + + <name>organizer</name> + + <url>https://freedocs.mi.hdm-stuttgart.de/sd1SectToolsOfTheTrade2.html</url> + + <properties> + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> + </properties> + + <dependencies> + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <version>4.12</version> + <scope>test</scope> + </dependency> + + <dependency> + <groupId>org.apache.logging.log4j</groupId> + <artifactId>log4j-core</artifactId> + <version>2.9.1</version> + </dependency> + + </dependencies> + + <build> + <plugins> + + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-compiler-plugin</artifactId> + <version>3.7.0</version> + <configuration> + <source>1.8</source> + <target>1.8</target> + </configuration> + </plugin> + + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-javadoc-plugin</artifactId> + <version>2.10.4</version> + <configuration /> + </plugin> + + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-shade-plugin</artifactId> + <version>3.1.0</version> + <configuration> + <transformers> + <transformer + implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> + <manifestEntries> + <Main-Class>de.hdm_stuttgart.mi.sda1.App</Main-Class> + </manifestEntries> + </transformer> + </transformers> + </configuration> + <executions> + <execution> + <phase>package</phase> + <goals> + <goal>shade</goal> + </goals> + </execution> + </executions> + </plugin> + + </plugins> + </build> +</project> diff --git a/Doc/Sda1/Ref/Xmlschema/P/organizer.xpr b/Doc/Sda1/Ref/organizer.xpr similarity index 100% rename from Doc/Sda1/Ref/Xmlschema/P/organizer.xpr rename to Doc/Sda1/Ref/organizer.xpr diff --git a/Doc/Sda1/xmlschema.xml b/Doc/Sda1/xmlschema.xml index 7a01141e9915f6a8ffe9374d531109967f609bec..c208b522ca51f6c7ed89a74558d91ef5705e17ae 100644 --- a/Doc/Sda1/xmlschema.xml +++ b/Doc/Sda1/xmlschema.xml @@ -317,7 +317,7 @@ double amount = Double.parseDouble(a);</programlisting></td> <title>Element definitions</title> <para>We now introduce <filename - xlink:href="https://gitlab.mi.hdm-stuttgart.de/goik/GoikLectures/blob/master/Doc/Sda1/Ref/Xmlschema/P/Organizer/V01_start/organizer.xsd">organizer.xsd</filename> + xlink:href="https://gitlab.mi.hdm-stuttgart.de/goik/GoikLectures/blob/master/Doc/Sda1/Ref/Organizer/V01_start/organizer.xsd">organizer.xsd</filename> representing an <xref linkend="glo_XSD"/> Schema based grammar:</para> <figure xml:id="sda1_xmlschema_fig_contactXsd01"> @@ -330,10 +330,10 @@ double amount = Double.parseDouble(a);</programlisting></td> <tr> <th><filename - xlink:href="https://gitlab.mi.hdm-stuttgart.de/goik/GoikLectures/blob/master/Doc/Sda1/Ref/Xmlschema/P/Organizer/V01_start/organizer.xsd">organizer.xsd</filename></th> + xlink:href="https://gitlab.mi.hdm-stuttgart.de/goik/GoikLectures/blob/master/Doc/Sda1/Ref/Organizer/V01_start/organizer.xsd">organizer.xsd</filename></th> <th><filename - xlink:href="https://gitlab.mi.hdm-stuttgart.de/goik/GoikLectures/blob/master/Doc/Sda1/Ref/Xmlschema/P/Organizer/V01_start/myContacts.xml"> + xlink:href="https://gitlab.mi.hdm-stuttgart.de/goik/GoikLectures/blob/master/Doc/Sda1/Ref/Organizer/V01_start/myContacts.xml"> myContacts.xml</filename></th> </tr> @@ -421,7 +421,7 @@ double amount = Double.parseDouble(a);</programlisting></td> xlink:href="https://www.w3.org/TR/xmlschema11-1/#xsi_schemaLocation">noNamespaceSchemaLocation</link> <co linkends="sda1_xmlschema_fig_instanceToSchema-2" xml:id="sda1_xmlschema_fig_instanceToSchema-2-co"/> = "<link - xlink:href="https://gitlab.mi.hdm-stuttgart.de/goik/GoikLectures/blob/master/Doc/Sda1/Ref/Xmlschema/P/Organizer/V01_start/organizer.xsd">organizer.xsd</link>"> <co + xlink:href="https://gitlab.mi.hdm-stuttgart.de/goik/GoikLectures/blob/master/Doc/Sda1/Ref/Organizer/V01_start/organizer.xsd">organizer.xsd</link>"> <co linkends="sda1_xmlschema_fig_instanceToSchema-3" xml:id="sda1_xmlschema_fig_instanceToSchema-3-co"/> ... @@ -458,7 +458,7 @@ double amount = Double.parseDouble(a);</programlisting></td> xlink:href="https://www.w3.org/TR/xmlschema11-1/#xsi-namespace">http://www.w3.org/2001/XMLSchema-instance</code>" <emphasis role="red">dummy</emphasis><link xlink:href="https://www.w3.org/TR/xmlschema11-1/#xsi_schemaLocation">:noNamespaceSchemaLocation</link> = "<filename - xlink:href="https://gitlab.mi.hdm-stuttgart.de/goik/GoikLectures/blob/master/Doc/Sda1/Ref/Xmlschema/P/Organizer/V01_start/organizer.xsd">organizer.xsd</filename>"> + xlink:href="https://gitlab.mi.hdm-stuttgart.de/goik/GoikLectures/blob/master/Doc/Sda1/Ref/Organizer/V01_start/organizer.xsd">organizer.xsd</filename>"> ... </contact></programlisting> </note> @@ -476,7 +476,7 @@ double amount = Double.parseDouble(a);</programlisting></td> xml:id="sda1_xmlschema_fig_instanceToSchema-3"> <para>The root element <tag class="starttag">contact</tag> is being defined in file <filename - xlink:href="https://gitlab.mi.hdm-stuttgart.de/goik/GoikLectures/blob/master/Doc/Sda1/Ref/Xmlschema/P/Organizer/V01_start/organizer.xsd">organizer.xsd</filename>.</para> + xlink:href="https://gitlab.mi.hdm-stuttgart.de/goik/GoikLectures/blob/master/Doc/Sda1/Ref/Organizer/V01_start/organizer.xsd">organizer.xsd</filename>.</para> </callout> </calloutlist> @@ -486,7 +486,7 @@ double amount = Double.parseDouble(a);</programlisting></td> <programlisting language="none"><contact xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="<link - xlink:href="https://gitlab.mi.hdm-stuttgart.de/goik/GoikLectures/blob/master/Doc/Sda1/Ref/Xmlschema/P/Organizer/V01_start/organizer.xsd">https://mi.hdm-stuttgart.de/organizer.xsd</link>"> + xlink:href="https://gitlab.mi.hdm-stuttgart.de/goik/GoikLectures/blob/master/Doc/Sda1/Ref/Organizer/V01_start/organizer.xsd">https://mi.hdm-stuttgart.de/organizer.xsd</link>"> ... </contact></programlisting> </figure> @@ -499,7 +499,7 @@ double amount = Double.parseDouble(a);</programlisting></td> xml:id="sda1_xmlschema_fig_validateContact-1-co"/> -s <co linkends="sda1_xmlschema_fig_validateContact-2" xml:id="sda1_xmlschema_fig_validateContact-2-co"/> <link - xlink:href="https://gitlab.mi.hdm-stuttgart.de/goik/GoikLectures/blob/master/Doc/Sda1/Ref/Xmlschema/P/Organizer/V01_start/myContacts.xml">myContacts.xml</link> <co + xlink:href="https://gitlab.mi.hdm-stuttgart.de/goik/GoikLectures/blob/master/Doc/Sda1/Ref/Organizer/V01_start/myContacts.xml">myContacts.xml</link> <co linkends="sda1_xmlschema_fig_validateContact-3.2" xml:id="sda1_xmlschema_fig_validateContact-3.2-co"/> Parsing was successfull <co linkends="sda1_xmlschema_fig_validateContact-3" @@ -537,15 +537,11 @@ Parsing was successfull <co linkends="sda1_xmlschema_fig_validateContact-3" <title>Uups, we fail!</title> <informaltable border="0"> - <colgroup width="30%"/> - <colgroup width="70%"/> - <tr> - <td valign="top"><emphasis role="red">The content of element - 'contact' is not complete. One of '{email}' is - expected.</emphasis></td> + <colgroup width="30%"/> + <tr> <td valign="top"><programlisting language="xml"><contact xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="organizer.xsd"> @@ -553,6 +549,10 @@ Parsing was successfull <co linkends="sda1_xmlschema_fig_validateContact-3" <lastName>Dexter</lastName> <!-- no <email> here --> </contact></programlisting></td> + + <td valign="top"><emphasis role="red">The content of element + 'contact' is not complete. One of '{email}' is + expected.</emphasis></td> </tr> </informaltable> </figure> @@ -623,7 +623,7 @@ String s1 = new String(), s2 = new String();</programlisting> <figure xml:id="sda1_xmlschema_fig_organizerEmailOptional"> <title><link xlink:href="https://gitlab.mi.hdm-stuttgart.de/goik/GoikLectures/tree/master/Doc/Sda1/Ref/Xmlschema/P/Organizer/V02_optionalEmail">V02</link>: - Making <tag class="starttag">email</tag> optional</title> + Define <tag class="starttag">email</tag> as optional</title> <informaltable border="0"> <tr> @@ -656,25 +656,26 @@ String s1 = new String(), s2 = new String();</programlisting> <td valign="top"><programlisting language="none"><xs:element name="organizer"> <xs:complexType> <xs:sequence> - <xs:element ref="<emphasis role="red">contact</emphasis>" <co - linkends="sda1_xmlschema_fig_organizerMultipleContacts-1" - xml:id="sda1_xmlschema_fig_organizerMultipleContacts-1-co"/> - <emphasis role="red">minOccurs="0"</emphasis> <co + <xs:element <emphasis role="red">minOccurs="0"</emphasis> <co linkends="sda1_xmlschema_fig_organizerMultipleContacts-2" - xml:id="sda1_xmlschema_fig_organizerMultipleContacts-2-co"/> <emphasis - role="red">maxOccurs="unbounded"</emphasis> <co + xml:id="sda1_xmlschema_fig_organizerMultipleContacts-2-co"/> + <emphasis role="red">maxOccurs="unbounded"</emphasis> <co linkends="sda1_xmlschema_fig_organizerMultipleContacts-3" - xml:id="sda1_xmlschema_fig_organizerMultipleContacts-3-co"/>/> - </xs:sequence> - </xs:complexType> -</xs:element> -<xs:element name="<emphasis role="red">contact</emphasis>" <co + xml:id="sda1_xmlschema_fig_organizerMultipleContacts-3-co"/> + ref="<emphasis role="red">contact</emphasis>"/> <emphasis + role="red">────â”</emphasis> <co + linkends="sda1_xmlschema_fig_organizerMultipleContacts-1" + xml:id="sda1_xmlschema_fig_organizerMultipleContacts-1-co"/> + </xs:sequence> <emphasis role="red">│</emphasis> + </xs:complexType> <emphasis role="red">│</emphasis> +</xs:element> <emphasis role="red">│</emphasis> +<xs:element name="<emphasis role="red">contact</emphasis>"> <emphasis + role="red">◀─┘</emphasis> <co linkends="sda1_xmlschema_fig_organizerMultipleContacts-4" - xml:id="sda1_xmlschema_fig_organizerMultipleContacts-4-co"/>> + xml:id="sda1_xmlschema_fig_organizerMultipleContacts-4-co"/> <xs:complexType> <xs:sequence> - <xs:element name="firstName"/> - <xs:element name="lastName"/> + ... <xs:element name="email" minOccurs="0"/> </xs:sequence> </xs:complexType> @@ -696,16 +697,10 @@ String s1 = new String(), s2 = new String();</programlisting> </figure> <calloutlist> - <callout arearefs="sda1_xmlschema_fig_organizerMultipleContacts-1-co" - xml:id="sda1_xmlschema_fig_organizerMultipleContacts-1"> - <para>Referencing definition of element <tag - class="starttag">contact</tag>.</para> - </callout> - <callout arearefs="sda1_xmlschema_fig_organizerMultipleContacts-2-co" xml:id="sda1_xmlschema_fig_organizerMultipleContacts-2"> - <para>The minimum number of appearances is 0. Thus we may have no - <tag class="starttag">contact</tag> element at all.</para> + <para>The minimum number of appearances is 0: We may have no <tag + class="starttag">contact</tag> element at all.</para> </callout> <callout arearefs="sda1_xmlschema_fig_organizerMultipleContacts-3-co" @@ -715,6 +710,12 @@ String s1 = new String(), s2 = new String();</programlisting> elements.</para> </callout> + <callout arearefs="sda1_xmlschema_fig_organizerMultipleContacts-1-co" + xml:id="sda1_xmlschema_fig_organizerMultipleContacts-1"> + <para>Referencing definition of element <tag + class="starttag">contact</tag>.</para> + </callout> + <callout arearefs="sda1_xmlschema_fig_organizerMultipleContacts-4-co" xml:id="sda1_xmlschema_fig_organizerMultipleContacts-4"> <para>Definition of element contact being the reference target of @@ -844,7 +845,7 @@ String s1 = new String(), s2 = new String();</programlisting> <informaltable border="0"> <tr> <td valign="top"><programlisting language="xml"><link - xlink:href="https://gitlab.mi.hdm-stuttgart.de/goik/GoikLectures/blob/master/Doc/Sda1/Ref/Xmlschema/P/Organizer/V04_birthdateElement/organizer.xsd"><xs:element name="organizer"></link> + xlink:href="https://gitlab.mi.hdm-stuttgart.de/goik/GoikLectures/blob/master/Doc/Sda1/Ref/Organizer/V04_birthdateElement/organizer.xsd"><xs:element name="organizer"></link> <xs:complexType> <xs:sequence> <xs:element name="firstName"/> @@ -856,7 +857,7 @@ String s1 = new String(), s2 = new String();</programlisting> </xs:element></programlisting></td> <td valign="top"><programlisting language="xml"><link - xlink:href="https://gitlab.mi.hdm-stuttgart.de/goik/GoikLectures/blob/master/Doc/Sda1/Ref/Xmlschema/P/Organizer/V04_birthdateElement/birthdateElement.xml"><contact ...="organizer.xsd"></link> + xlink:href="https://gitlab.mi.hdm-stuttgart.de/goik/GoikLectures/blob/master/Doc/Sda1/Ref/Organizer/V04_birthdateElement/birthdateElement.xml"><contact ...="organizer.xsd"></link> <firstName>Eve</firstName> <lastName>Dexter</lastName> @@ -873,7 +874,7 @@ String s1 = new String(), s2 = new String();</programlisting> <informaltable border="0"> <tr> <td valign="top"><programlisting language="none"><link - xlink:href="https://gitlab.mi.hdm-stuttgart.de/goik/GoikLectures/blob/master/Doc/Sda1/Ref/Xmlschema/P/Organizer/V05_birthdateElementDateType/organizer.xsd"><xs:element name="contact"></link> + xlink:href="https://gitlab.mi.hdm-stuttgart.de/goik/GoikLectures/blob/master/Doc/Sda1/Ref/Organizer/V05_birthdateElementDateType/organizer.xsd"><xs:element name="contact"></link> <xs:complexType> <xs:sequence> <xs:element name="firstName"/> @@ -886,7 +887,7 @@ String s1 = new String(), s2 = new String();</programlisting> </xs:element></programlisting></td> <td valign="top"><programlisting language="none"><link - xlink:href="https://gitlab.mi.hdm-stuttgart.de/goik/GoikLectures/blob/master/Doc/Sda1/Ref/Xmlschema/P/Organizer/V05_birthdateElementDateType/invalidBirthdates.xml"><organizer ...="organizer.xsd"></link> + xlink:href="https://gitlab.mi.hdm-stuttgart.de/goik/GoikLectures/blob/master/Doc/Sda1/Ref/Organizer/V05_birthdateElementDateType/invalidBirthdates.xml"><organizer ...="organizer.xsd"></link> <contact > ... <!-- '1995-11-39' is not a valid value for 'date'. --> @@ -928,7 +929,7 @@ String s1 = new String(), s2 = new String();</programlisting> <informaltable border="0"> <tr> <td valign="top"><programlisting language="none"><link - xlink:href="https://gitlab.mi.hdm-stuttgart.de/goik/GoikLectures/blob/master/Doc/Sda1/Ref/Xmlschema/P/Organizer/V06_birthdateAttributeType/organizer.xsd"><xs:element name="contact"></link> + xlink:href="https://gitlab.mi.hdm-stuttgart.de/goik/GoikLectures/blob/master/Doc/Sda1/Ref/Organizer/V06_birthdateAttributeType/organizer.xsd"><xs:element name="contact"></link> <xs:complexType> <xs:sequence> <xs:element name="firstName"/> @@ -942,7 +943,7 @@ String s1 = new String(), s2 = new String();</programlisting> </xs:element></programlisting></td> <td valign="top"><programlisting language="none"><link - xlink:href="https://gitlab.mi.hdm-stuttgart.de/goik/GoikLectures/blob/master/Doc/Sda1/Ref/Xmlschema/P/Organizer/V06_birthdateAttributeType/birthdateAttribute.xml"><contact ...="organizer.xsd"</link> + xlink:href="https://gitlab.mi.hdm-stuttgart.de/goik/GoikLectures/blob/master/Doc/Sda1/Ref/Organizer/V06_birthdateAttributeType/birthdateAttribute.xml"><contact ...="organizer.xsd"</link> <emphasis role="red">birthDate="1995-11-29"</emphasis>> <firstName>Eve</firstName> <lastName>Dexter</lastName> @@ -957,7 +958,7 @@ String s1 = new String(), s2 = new String();</programlisting> <informaltable border="0"> <tr> <td valign="top"><programlisting language="none"><link - xlink:href="https://gitlab.mi.hdm-stuttgart.de/goik/GoikLectures/blob/master/Doc/Sda1/Ref/Xmlschema/P/Organizer/V06_birthdateAttributeType/organizer.xsd"><xs:element name="contact"></link> + xlink:href="https://gitlab.mi.hdm-stuttgart.de/goik/GoikLectures/blob/master/Doc/Sda1/Ref/Organizer/V06_birthdateAttributeType/organizer.xsd"><xs:element name="contact"></link> <xs:complexType> <xs:sequence> <xs:element name="firstName"/> @@ -972,7 +973,7 @@ String s1 = new String(), s2 = new String();</programlisting> <td valign="top"><programlisting language="none"><!-- birthDate is <emphasis role="red">optional</emphasis>--> -<link xlink:href="https://gitlab.mi.hdm-stuttgart.de/goik/GoikLectures/blob/master/Doc/Sda1/Ref/Xmlschema/P/Organizer/V06_birthdateAttributeType/birthdateAttribute.xml"><contact ...="organizer.xsd"</link>> +<link xlink:href="https://gitlab.mi.hdm-stuttgart.de/goik/GoikLectures/blob/master/Doc/Sda1/Ref/Organizer/V06_birthdateAttributeType/birthdateAttribute.xml"><contact ...="organizer.xsd"</link>> <firstName>Eve</firstName> <lastName>Dexter</lastName> </contact></programlisting></td> @@ -1128,7 +1129,7 @@ String s1 = new String(), s2 = new String();</programlisting> <title>Ur type</title> <programlisting language="none"><link - xlink:href="https://gitlab.mi.hdm-stuttgart.de/goik/GoikLectures/blob/master/Doc/Sda1/Ref/Xmlschema/P/Organizer/V07_emailNoSpaces/organizer.xsd"><xs:element name="contact"></link> + xlink:href="https://gitlab.mi.hdm-stuttgart.de/goik/GoikLectures/blob/master/Doc/Sda1/Ref/Organizer/V07_emailNoSpaces/organizer.xsd"><xs:element name="contact"></link> <xs:complexType> <xs:sequence> <xs:element name="firstName" <co @@ -1138,7 +1139,7 @@ String s1 = new String(), s2 = new String();</programlisting> <xs:element name="email" .../> </xs:sequence> <xs:attribute <link - xlink:href="https://gitlab.mi.hdm-stuttgart.de/goik/GoikLectures/blob/master/Doc/Sda1/Ref/Xmlschema/P/Organizer/V07_emailNoSpaces/mindTheUr_type.xml"><contact ...="organizer.xsd"></link> + xlink:href="https://gitlab.mi.hdm-stuttgart.de/goik/GoikLectures/blob/master/Doc/Sda1/Ref/Organizer/V07_emailNoSpaces/mindTheUr_type.xml"><contact ...="organizer.xsd"></link> name="birthDate" .../> <firstName>Eve <emphasis role="red"><email></emphasis>eve@my.com<emphasis role="red"></email></emphasis> <co linkends="sda1_xmlschema_fig_organizerUrType-2" @@ -1167,7 +1168,7 @@ String s1 = new String(), s2 = new String();</programlisting> xml:id="sda1_xmlschema_fig_organizerUrType-3"> <para>Even worse: Element <tag class="starttag">pre</tag> is not being defined in <filename - xlink:href="https://gitlab.mi.hdm-stuttgart.de/goik/GoikLectures/blob/master/Doc/Sda1/Ref/Xmlschema/P/Organizer/V07_emailNoSpaces/organizer.xsd">organizer.xsd</filename>!</para> + xlink:href="https://gitlab.mi.hdm-stuttgart.de/goik/GoikLectures/blob/master/Doc/Sda1/Ref/Organizer/V07_emailNoSpaces/organizer.xsd">organizer.xsd</filename>!</para> </callout> </calloutlist> @@ -1257,8 +1258,8 @@ String s1 = new String(), s2 = new String();</programlisting> </figure> </section> - <section xml:id="sda1_xmlschema_sect_constraints"> - <title>Constraints</title> + <section xml:id="sda1_xmlschema_sect_uniquenessConstraints"> + <title>Uniqueness Constraints</title> <figure xml:id="sda1_xmlschema_fig_organizerIntroduceNicknames"> <title>Introducing nicknames</title> @@ -1310,7 +1311,7 @@ String s1 = new String(), s2 = new String();</programlisting> <informaltable border="0"> <tr> <td valign="top"><programlisting language="none"><link - xlink:href="https://gitlab.mi.hdm-stuttgart.de/goik/GoikLectures/blob/master/Doc/Sda1/Ref/Xmlschema/P/Organizer/V17_nickname/organizer.xsd"><xs:element name="organizer"></link> + xlink:href="https://gitlab.mi.hdm-stuttgart.de/goik/GoikLectures/blob/master/Doc/Sda1/Ref/Organizer/V17_nickname/organizer.xsd"><xs:element name="organizer"></link> ...<xs:element ref="contact" <co linkends="sda1_xmlschema_fig_organizerContactNicknameUniqueXsd-1" xml:id="sda1_xmlschema_fig_organizerContactNicknameUniqueXsd-1-co"/>.../> @@ -1333,7 +1334,7 @@ String s1 = new String(), s2 = new String();</programlisting> </xs:element></programlisting></td> <td valign="top"><programlisting language="none"><link - xlink:href="https://gitlab.mi.hdm-stuttgart.de/goik/GoikLectures/blob/master/Doc/Sda1/Ref/Xmlschema/P/Organizer/V17_nickname/duplicateNickname.xml"><contact nickname="Blue"></link> + xlink:href="https://gitlab.mi.hdm-stuttgart.de/goik/GoikLectures/blob/master/Doc/Sda1/Ref/Organizer/V17_nickname/duplicateNickname.xml"><contact nickname="Blue"></link> <firstName>Eve </firstName> <lastName>Dexter</lastName> </contact> @@ -1440,7 +1441,7 @@ String s1 = new String(), s2 = new String();</programlisting> <informaltable border="0"> <tr> <td valign="top"><programlisting language="none"><link - xlink:href="https://gitlab.mi.hdm-stuttgart.de/goik/GoikLectures/blob/master/Doc/Sda1/Ref/Xmlschema/P/Organizer/V20_primaryKeyId/organizer.xsd"><xs:element name="organizer"></link> + xlink:href="https://gitlab.mi.hdm-stuttgart.de/goik/GoikLectures/blob/master/Doc/Sda1/Ref/Organizer/V20_primaryKeyId/organizer.xsd"><xs:element name="organizer"></link> ... <xs:element ref="contact".../> ... <xs:key name="primaryKey"> @@ -1458,7 +1459,7 @@ String s1 = new String(), s2 = new String();</programlisting> role="red"><!-- Invalid: Element "organizer" has no value for the key "primaryKey". --></emphasis> -<link xlink:href="https://gitlab.mi.hdm-stuttgart.de/goik/GoikLectures/blob/master/Doc/Sda1/Ref/Xmlschema/P/Organizer/V20_primaryKeyId/missingId.xml"><contact birthDate="1995-11-29"</link> +<link xlink:href="https://gitlab.mi.hdm-stuttgart.de/goik/GoikLectures/blob/master/Doc/Sda1/Ref/Organizer/V20_primaryKeyId/missingId.xml"><contact birthDate="1995-11-29"</link> category="businessPartner" nickname="Blue"> <firstName>Eve </firstName> @@ -1484,7 +1485,7 @@ key "primaryKey". --></emphasis> <informaltable border="0"> <tr> <td valign="top"><programlisting language="none"><link - xlink:href="https://gitlab.mi.hdm-stuttgart.de/goik/GoikLectures/blob/master/Doc/Sda1/Ref/Xmlschema/P/Organizer/V20_primaryKeyId/organizer.xsd"><xs:element name="organizer"></link> + xlink:href="https://gitlab.mi.hdm-stuttgart.de/goik/GoikLectures/blob/master/Doc/Sda1/Ref/Organizer/V20_primaryKeyId/organizer.xsd"><xs:element name="organizer"></link> ... <xs:element ref="contact".../> ... <xs:key name="primaryKey"> @@ -1500,7 +1501,7 @@ key "primaryKey". --></emphasis> role="red"><!-- Invalid: Element "organizer" has no value for the key "primaryKey". --></emphasis> -<link xlink:href="https://gitlab.mi.hdm-stuttgart.de/goik/GoikLectures/blob/master/Doc/Sda1/Ref/Xmlschema/P/Organizer/V20_primaryKeyId/missingId.xml"><contact birthDate="1995-11-29"</link> +<link xlink:href="https://gitlab.mi.hdm-stuttgart.de/goik/GoikLectures/blob/master/Doc/Sda1/Ref/Organizer/V20_primaryKeyId/missingId.xml"><contact birthDate="1995-11-29"</link> category="businessPartner" nickname="Blue"> <firstName>Eve </firstName> @@ -1511,6 +1512,209 @@ key "primaryKey". --></emphasis> </figure> </section> + <section xml:id="sda1_xmlschema_sect_referencingConstraints"> + <title>Referencing constraints</title> + + <figure xml:id="sda1_xmlschema_fig_organizerAppointment"> + <title><code>Referencing contacts</code></title> + + <programlisting language="none"><contact id="10" > + <firstName>Eve </firstName> ... </contact> +<contact id="<emphasis role="red">11</emphasis>" > <emphasis role="red">◀─────────────────────────â”</emphasis> <co + linkends="sda1_xmlschema_fig_organizerAppointment-1" + xml:id="sda1_xmlschema_fig_organizerAppointment-1-co"/> + <firstName>Joe</firstName>... </contact> <emphasis + role="red">│</emphasis> +<contact id="<emphasis role="red">12</emphasis>" ><emphasis role="red"> ◀─────────────────────────┼─â”</emphasis> <co + linkends="sda1_xmlschema_fig_organizerAppointment-2" + xml:id="sda1_xmlschema_fig_organizerAppointment-2-co"/> + <firstName>Sue</firstName>... </contact> <emphasis + role="red">│ │</emphasis> +<appointment date="2031-10-26T18:30:00"> <emphasis role="red">│ │</emphasis> + <description>Merry X-mas!</description> <emphasis role="red">│ │</emphasis> + <participant><emphasis role="red">11</emphasis></participant> <emphasis + role="red">───────────┘ │</emphasis> <co + linkends="sda1_xmlschema_fig_organizerAppointment-3" + xml:id="sda1_xmlschema_fig_organizerAppointment-3-co"/> + <participant><emphasis role="red">12</emphasis></participant> <emphasis + role="red">─────────────┘</emphasis> <co + linkends="sda1_xmlschema_fig_organizerAppointment-4" + xml:id="sda1_xmlschema_fig_organizerAppointment-4-co"/> +</appointment></programlisting> + </figure> + + <calloutlist> + <callout arearefs="sda1_xmlschema_fig_organizerAppointment-1-co" + xml:id="sda1_xmlschema_fig_organizerAppointment-1"> + <para>Defining unique contact id value <emphasis + role="red">11</emphasis>.</para> + </callout> + + <callout arearefs="sda1_xmlschema_fig_organizerAppointment-2-co" + xml:id="sda1_xmlschema_fig_organizerAppointment-2"> + <para>Defining unique contact id value <emphasis + role="red">12</emphasis>.</para> + </callout> + + <callout arearefs="sda1_xmlschema_fig_organizerAppointment-3-co" + xml:id="sda1_xmlschema_fig_organizerAppointment-3"> + <para>Referencing <tag class="starttag">contact</tag> having id + value <emphasis role="red">11</emphasis>.</para> + </callout> + + <callout arearefs="sda1_xmlschema_fig_organizerAppointment-4-co" + xml:id="sda1_xmlschema_fig_organizerAppointment-4"> + <para>Referencing <tag class="starttag">contact</tag> having id + value <emphasis role="red">12</emphasis>.</para> + </callout> + </calloutlist> + + <figure xml:id="sda1_xmlschema_fig_organizerAppointmentInvalidRef"> + <title><code>Violating referential integrity</code></title> + + <programlisting language="none"><contact id="10" > + <firstName>Eve </firstName> ... </contact> +<contact id="11" > + <firstName>Joe</firstName>... </contact> +<contact id="<emphasis role="red">12</emphasis>" > <emphasis role="red">◀──────────────────────────â”</emphasis> <co + linkends="sda1_xmlschema_fig_organizerAppointmentInvalidRef-1" + xml:id="sda1_xmlschema_fig_organizerAppointmentInvalidRef-1-co"/> + <firstName>Sue</firstName>... </contact> <emphasis + role="red">│</emphasis> +<appointment date="2031-10-26T18:30:00"> <emphasis role="red">│</emphasis> + <description>Merry X-mas!</description> <emphasis role="red">│</emphasis> + <participant><emphasis role="red">12</emphasis></participant> <emphasis + role="red">────────────┘</emphasis> <co + linkends="sda1_xmlschema_fig_organizerAppointmentInvalidRef-2" + xml:id="sda1_xmlschema_fig_organizerAppointmentInvalidRef-2-co"/> + <participant><emphasis role="red">123</emphasis></participant> <co + linkends="sda1_xmlschema_fig_organizerAppointmentInvalidRef-3" + xml:id="sda1_xmlschema_fig_organizerAppointmentInvalidRef-3-co"/> <emphasis + role="red">─────▶ ??</emphasis> +</appointment></programlisting> + </figure> + + <calloutlist> + <callout arearefs="sda1_xmlschema_fig_organizerAppointmentInvalidRef-1-co" + xml:id="sda1_xmlschema_fig_organizerAppointmentInvalidRef-1"> + <para>Defining unique contact <code>id</code> value <emphasis + role="red">12</emphasis>.</para> + </callout> + + <callout arearefs="sda1_xmlschema_fig_organizerAppointmentInvalidRef-2-co" + xml:id="sda1_xmlschema_fig_organizerAppointmentInvalidRef-2"> + <para>Referencing <tag class="starttag">contact</tag> having + <code>id</code> value <emphasis role="red">12</emphasis>.</para> + </callout> + + <callout arearefs="sda1_xmlschema_fig_organizerAppointmentInvalidRef-3-co" + xml:id="sda1_xmlschema_fig_organizerAppointmentInvalidRef-3"> + <para>Error: No such <tag class="starttag">contact id="<emphasis + role="red">123</emphasis>"</tag>.</para> + </callout> + </calloutlist> + + <figure xml:id="sda1_xmlschema_fig_organizerEnforceReferentialIntegrity"> + <title><code>Enforcing referential integrity</code></title> + + <programlisting language="none"><link + xlink:href="https://gitlab.mi.hdm-stuttgart.de/goik/GoikLectures/blob/master/Doc/Sda1/Ref/Organizer/V33_appointmentParticipants/organizer.xsd"><xs:element name="organizer"></link> + <xs:complexType><xs:sequence> ... + <xs:element ... maxOccurs="unbounded" ref="appointment"/> <emphasis + role="red">─â”</emphasis> +...<xs:key name="primaryKey"> <emphasis role="red">◀─<emphasis + role="red">─</emphasis><emphasis role="red"><emphasis role="red">─ reference ─────────</emphasis>─â”</emphasis></emphasis> <emphasis + role="red">│</emphasis> + <xs:selector xpath="contact"/> <emphasis + role="red">│</emphasis> <emphasis role="red">│</emphasis> + <xs:field xpath="@id"/> <emphasis + role="red">│</emphasis> <emphasis role="red">│</emphasis> + </xs:key> <emphasis + role="red">│</emphasis> <emphasis role="red">│</emphasis> + <xs:keyref name="participants" refer="primaryKey"> <emphasis + role="red">─┘</emphasis> <emphasis role="red">│</emphasis> <co + linkends="sda1_xmlschema_fig_organizerEnforceReferentialIntegrity-1" + xml:id="sda1_xmlschema_fig_organizerEnforceReferentialIntegrity-1-co"/> + <xs:selector xpath="appointment/participant"/> <emphasis role="red">─────â”</emphasis> <emphasis + role="red">│</emphasis> + <xs:field xpath="."/> <emphasis + role="red">│</emphasis> <emphasis role="red">│</emphasis> + </xs:keyref> <emphasis + role="red">│</emphasis> <emphasis role="red">│</emphasis> +</xs:element> <emphasis + role="red">│</emphasis> <emphasis role="red">│</emphasis> +<xs:element name="appointment"> <emphasis role="red">◀────────────────────────┼──────┘</emphasis> + <xs:complexType><xs:sequence> <emphasis + role="red">│</emphasis> + ... <xs:element name="participant" type="xs:integer" <emphasis role="red">◀─┘</emphasis> <co + linkends="sda1_xmlschema_fig_organizerEnforceReferentialIntegrity-2" + xml:id="sda1_xmlschema_fig_organizerEnforceReferentialIntegrity-2-co"/></programlisting> + </figure> + + <calloutlist> + <callout arearefs="sda1_xmlschema_fig_organizerEnforceReferentialIntegrity-1-co" + xml:id="sda1_xmlschema_fig_organizerEnforceReferentialIntegrity-1"> + <para>Multiple appointments inside <tag + class="starttag">organizer</tag>.</para> + </callout> + + <callout arearefs="sda1_xmlschema_fig_organizerEnforceReferentialIntegrity-2-co" + xml:id="sda1_xmlschema_fig_organizerEnforceReferentialIntegrity-2"> + <para>Selecting the set of all <tag + class="starttag">appointment</tag>/<tag + class="starttag">participant</tag> elements below + <quote>current</quote> element <tag + class="starttag">organizer</tag>.</para> + + <para>Note: The dot in <tag class="starttag">xs:field + xpath="."</tag> is an <xref linkend="glo_XPath"/> denoting a current + <tag class="starttag">participant</tag> element's content + <abbrev>e.g.</abbrev> the value 3 in <tag + class="starttag">participant</tag>3<tag + class="endtag">participant</tag>.</para> + </callout> + </calloutlist> + + <figure xml:id="sda1_xmlschema_fig_organizerDuplicateParticipants"> + <title><code>Participant reference duplicates</code></title> + + <programlisting language="none"> <appointment date="2031-10-26T18:30:00"> + <description>Merry X-mas!</description> + <participant><emphasis role="red">11</emphasis></participant> <emphasis + role="red">◀─<emphasis role="red">â”</emphasis></emphasis> + <participant>12</participant> <emphasis role="red">│</emphasis> + <participant><emphasis role="red">11</emphasis></participant> <emphasis + role="red">◀─┘</emphasis> + </appointment></programlisting> + </figure> + + <figure xml:id="sda1_xmlschema_fig_organizerUniqueParticipateConstraint"> + <title><code>Solution:key constraint</code></title> + + <programlisting language="none"><xs:element name="appointment"> + <xs:complexType> + <xs:sequence> + ... + <xs:element name="participant" type="xs:integer" + maxOccurs="unbounded"/> + </xs:sequence> + ... + </xs:complexType> + + <emphasis role="red"><xs:key name="uniqueParticipants"> + <xs:selector xpath="participant"/> + <xs:field xpath="."/> + </xs:key></emphasis> +</xs:element></programlisting> + </figure> + + <figure xml:id="sda1_xmlschema_fig_organizerDuplicateParticipantsError"> + <title><code>Participant reference duplicates</code></title> + + <programlisting language="none"> </programlisting> + </figure> + </section> + <section xml:id="sda1_xmlschema_sect_bestPractices"> <title>Best practices</title>