From 4b82831cc6ee1e9d8ce600384c32465f7b3c0264 Mon Sep 17 00:00:00 2001 From: Frank Fransen Date: Fri, 10 Apr 2026 14:00:46 +0000 Subject: [PATCH 01/19] Update file etsi_types.schema.json --- 103705/schema/etsi_types.schema.json | 39 ++++++++++++++++++++++++++-- 1 file changed, 37 insertions(+), 2 deletions(-) diff --git a/103705/schema/etsi_types.schema.json b/103705/schema/etsi_types.schema.json index db7eef1..4f15cea 100644 --- a/103705/schema/etsi_types.schema.json +++ b/103705/schema/etsi_types.schema.json @@ -7,12 +7,12 @@ "Pointer": { "type": "object", "title": "Pointer", - "description": "Allows one Record in a RecordSet to point to data in another Record in the same Recordset. See clause 5.4 and Annex A.2.2", + "description": "Allows one Record in a RecordSet to point to data in another Record in the same Recordset. See clause 5.4", "properties": { "destination": { "type": "string", "title": "Pointer Destination", - "description": "Identifies the Record in the RecordSet containined the referred-to data (see clause 5.3.2 and A.2.2)" + "description": "Identifies the Record in the RecordSet containined the referred-to data (see clause 5.3.2)" }, "relationship": { "type": "string", @@ -987,6 +987,41 @@ "description": "Personal Unblocking Key for PIN2" } } + }, + "SubscriberRecordsCollectionRecord": { + "type": "object", + "title": "Collection of records related to a single subscriber", + "description": "Nesting record to cluster records related to a single subscriber. Use this record to cluster Subscriber Data records when the record set contains records of multiple subscribers. See clause 5.4", + "properties": { + "subscriberInformationRecord": { + "$ref": "#/$defs/SubscriberInformationRecord", + "description": "Information about a natural person or organisation in this CollectionRecord" + }, + "registrationInformationRecord": { + "type": "array", + "items": { + "$ref": "#/$defs/RegistrationInformationRecord", + "description": "One or more registration informtion records for the subscriber in this CollectionRecord" + } + }, + "serviceInformationRecord": { + "type": "array", + "items": { + "$ref": "#/$defs/ServiceInformationRecord", + "description": "One or more service informtion records for the subscriber in this CollectionRecord" + } + }, + "paymentInformationRecord": { + "type": "array", + "items": { + "$ref": "#/$defs/PaymentInformationRecord", + "description": "One or more payment informtion records for the subscriber in this CollectionRecord" + } + }, + "required": [ + "subscriberInformationRecord" + ] + } } } } -- GitLab From edc227d7326d61454ab1714409b2527872b4ec80 Mon Sep 17 00:00:00 2001 From: Frank Fransen Date: Fri, 10 Apr 2026 14:32:18 +0000 Subject: [PATCH 02/19] Edit etsi_types.schema.json --- 103705/schema/etsi_types.schema.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/103705/schema/etsi_types.schema.json b/103705/schema/etsi_types.schema.json index 4f15cea..be32cea 100644 --- a/103705/schema/etsi_types.schema.json +++ b/103705/schema/etsi_types.schema.json @@ -997,21 +997,21 @@ "$ref": "#/$defs/SubscriberInformationRecord", "description": "Information about a natural person or organisation in this CollectionRecord" }, - "registrationInformationRecord": { + "registrationInformationRecords": { "type": "array", "items": { "$ref": "#/$defs/RegistrationInformationRecord", "description": "One or more registration informtion records for the subscriber in this CollectionRecord" } }, - "serviceInformationRecord": { + "serviceInformationRecords": { "type": "array", "items": { "$ref": "#/$defs/ServiceInformationRecord", "description": "One or more service informtion records for the subscriber in this CollectionRecord" } }, - "paymentInformationRecord": { + "paymentInformationRecords": { "type": "array", "items": { "$ref": "#/$defs/PaymentInformationRecord", -- GitLab From c449e418a2209765df7cc6de7d66f2d7dd5709a4 Mon Sep 17 00:00:00 2001 From: Frank Fransen Date: Fri, 10 Apr 2026 14:57:27 +0000 Subject: [PATCH 03/19] Add new directory --- 103705/examples/example8/.gitkeep | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 103705/examples/example8/.gitkeep diff --git a/103705/examples/example8/.gitkeep b/103705/examples/example8/.gitkeep new file mode 100644 index 0000000..e69de29 -- GitLab From b2d9dc66950ec8d23b2571f422778ed569f25b0a Mon Sep 17 00:00:00 2001 From: Frank Fransen Date: Fri, 10 Apr 2026 14:58:30 +0000 Subject: [PATCH 04/19] Upload New File --- 103705/examples/example8/description.txt | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 103705/examples/example8/description.txt diff --git a/103705/examples/example8/description.txt b/103705/examples/example8/description.txt new file mode 100644 index 0000000..c283225 --- /dev/null +++ b/103705/examples/example8/description.txt @@ -0,0 +1,7 @@ +This example shows the result of a LD request with as the target identifier a postalcode and a housenumber. Since multiple people could be a residence at this address and have one or more services at the CSP, the resulted Record Set would contain multiple SubscriberInformationRecords of the different subscribers, and multiple ServiceInformationRecords for the services of these subscribers. To ensure that that recipient of the Record Set can determine which service belongs to which subscriber, the records belonging to a single subsriber are nested in a so called SubscriberRecordsCollectionRecord. + +In this particular example John Doe and Jane Doe live at the same address. John has a telephony subscription with phone number +44 1632960124. Jane has a telephony subscription with phone number +44 1632960567, and a data access subscription. + +CSP imports the following record types in the CSP record schema: +- SubscriberInformationRecord +- ServiceInformationRecord \ No newline at end of file -- GitLab From bda8900e940fa68b9e28254d1f673f08e961e6ea Mon Sep 17 00:00:00 2001 From: Frank Fransen Date: Fri, 10 Apr 2026 14:59:04 +0000 Subject: [PATCH 05/19] Upload New File --- .../examples/example8/csp_records.schema.json | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 103705/examples/example8/csp_records.schema.json diff --git a/103705/examples/example8/csp_records.schema.json b/103705/examples/example8/csp_records.schema.json new file mode 100644 index 0000000..63212b0 --- /dev/null +++ b/103705/examples/example8/csp_records.schema.json @@ -0,0 +1,44 @@ +{ + "$id": "urn:etsi:li:103705:record-schema-id:v1.5.1", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "title": "CSP Record Schema", + "description": "Defines the valid set of Subscriber Data Records that may appear in a RecordSet (see ETSI TS 103 705 clause 6.2.4)", + "cspSchemaID": "csp.example_8", + "cspName": "csp.example.com", + "dateIssued": "2026-01-02T09:15:01Z", + "version": "1.1.1", + "$defs": { + "record": { + "oneOf": [ + { + "allOf": [ + { + "$ref": "urn:etsi:li:103705:type-schema-id:v1.5.1#/$defs/SubscriberInformationRecord" + }, + { + "properties": { + "type": { + "const": "urn:etsi:li:103705:type-schema-id:v1.5.1#/$defs/SubscriberInformationRecord" + } + } + } + ] + }, + { + "allOf": [ + { + "$ref": "urn:etsi:li:103705:type-schema-id:v1.5.1#/$defs/ServiceInformationRecord" + }, + { + "properties": { + "type": { + "const": "urn:etsi:li:103705:type-schema-id:v1.5.1#/$defs/ServiceInformationRecord" + } + } + } + ] + } + ] + } + } +} \ No newline at end of file -- GitLab From 1091ea9b27e98ef7ff109cdc585ac0c3eca5e339 Mon Sep 17 00:00:00 2001 From: Frank Fransen Date: Fri, 10 Apr 2026 14:59:21 +0000 Subject: [PATCH 06/19] Upload New File --- 103705/examples/example8/csp_results.json | 142 ++++++++++++++++++++++ 1 file changed, 142 insertions(+) create mode 100644 103705/examples/example8/csp_results.json diff --git a/103705/examples/example8/csp_results.json b/103705/examples/example8/csp_results.json new file mode 100644 index 0000000..2cc34a3 --- /dev/null +++ b/103705/examples/example8/csp_results.json @@ -0,0 +1,142 @@ +{ + "recordSetDescription": { + "etsiSchemaId": "urn:etsi:li:103705:response-schema-id:v1.5.1", + "etsiSpecificationVersion": "1.5.1", + "cspName": "csp.example.com", + "cspSchemaId": "csp.example_8", + "cspSchemaVersion": "1.0.0", + "resultSetId": "9a25db0c-d0f3-4ae5-b618-bd1a9a0056c2", + "requestReference": "LDID", + "created": "2026-01-15T09:31:56.000000Z" + }, + "recordSet": [ + { + "id": "1da91ade-f526-4e55-b5da-00000000000001", + "type": "urn:etsi:li:103705:type-schema-id:v1.5.1#/$defs/SubscriberRecordsCollectionRecord", + "subscriberInformationRecord": { + "id": "1da91ade-f526-4e55-b5da-0c8178f25001", + "type": "urn:etsi:li:103705:type-schema-id:v1.5.1#/$defs/SubscriberInformationRecord", + "validityPeriod": { + "begin": "2025-12-01T12:00:01.000000Z", + "end": "2026-01-01T17:00:00.000000Z" + }, + "subscriber": { + "person": { + "surname": "Doe", + "givenNames": "John", + "initials": "J", + "sex": "M", + "dateOfBirth": "1999-03-21", + "addresses": [ + { + "street": "streetname", + "houseNumber": "13", + "city": "City name", + "postalCode": "12345", + "typeOfAddress": "residence" + } + ] + } + } + }, + "serviceInformationRecords": [ + { + "id": "3be3fc6b-a2dd-4104-9af1-d6b1f7008003", + "type": "urn:etsi:li:103705:type-schema-id:v1.5.1#/$defs/ServiceInformationRecord", + "validityPeriod": { + "begin": "2025-12-01T12:00:01.000000Z", + "end": "2026-01-01T17:00:00.000000Z" + }, + "typeOfService": "Telephony", + "startDate": "2026-01-01", + "endDate": "2026-02-01", + "serviceIdentifiers": [ + { + "phoneNumber": "441632960124" + }, + { + "iMSI": "99999123456789" + } + ] + } + ] + }, + { + "id": "1da91ade-f526-4e55-b5da-00000000000002", + "type": "urn:etsi:li:103705:type-schema-id:v1.5.1#/$defs/SubscriberRecordsCollectionRecord", + "subscriberInformationRecord": { + "id": "2da91ade-f526-4e55-b5da-0c8178f25002", + "type": "urn:etsi:li:103705:type-schema-id:v1.5.1#/$defs/SubscriberInformationRecord", + "validityPeriod": { + "begin": "2025-12-01T12:00:01.000000Z", + "end": "2026-01-01T17:00:00.000000Z" + }, + "subscriber": { + "person": { + "surname": "Doe", + "givenNames": "Jane", + "initials": "J", + "sex": "F", + "dateOfBirth": "1999-07-11", + "addresses": [ + { + "street": "streetname", + "houseNumber": "13", + "city": "City name", + "postalCode": "12345", + "typeOfAddress": "residence" + }, + { + "street": "streetname", + "houseNumber": "13", + "city": "City name", + "postalCode": "12345", + "typeOfAddress": "installation" + } + ] + } + } + }, + "serviceInformationRecords": [ + { + "id": "4be3fc6b-a2dd-4104-9af1-d6b1f7008004", + "type": "urn:etsi:li:103705:type-schema-id:v1.5.1#/$defs/ServiceInformationRecord", + "validityPeriod": { + "begin": "2025-12-01T12:00:01.000000Z", + "end": "2026-01-01T17:00:00.000000Z" + }, + "typeOfService": "Telephony", + "startDate": "2026-01-01", + "endDate": "2026-02-01", + "serviceIdentifiers": [ + { + "phoneNumber": "441632960567" + }, + { + "iMSI": "99999123456001" + } + ] + }, + { + "id": "5be3fc6b-a2dd-4104-9af1-d6b1f7008005", + "type": "urn:etsi:li:103705:type-schema-id:v1.5.1#/$defs/ServiceInformationRecord", + "validityPeriod": { + "begin": "2025-12-01T12:00:01.000000Z", + "end": "2026-01-01T17:00:00.000000Z" + }, + "typeOfService": "DataAccess", + "startDate": "20265-01-01", + "endDate": "2026-12-31", + "serviceIdentifiers": [ + { + "iPv4Address": "203.0.113.0" + }, + { + "iPv6Address": "2001:0db8:0000:0000:0000:0000:0002:0001" + } + ] + } + ] + } + ] +} \ No newline at end of file -- GitLab From c51c5be3bc912cdc85b84b6cf6c54cedaceb6aa9 Mon Sep 17 00:00:00 2001 From: Frank Fransen Date: Fri, 10 Apr 2026 15:02:01 +0000 Subject: [PATCH 07/19] Edit csp_results.json -- GitLab From 86a87b6714600c0f5c8cf7a02cd51000d0d046a4 Mon Sep 17 00:00:00 2001 From: Frank Fransen Date: Thu, 23 Apr 2026 13:00:08 +0000 Subject: [PATCH 08/19] Edit etsi_types.schema.json --- 103705/schema/etsi_types.schema.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/103705/schema/etsi_types.schema.json b/103705/schema/etsi_types.schema.json index be32cea..8f80111 100644 --- a/103705/schema/etsi_types.schema.json +++ b/103705/schema/etsi_types.schema.json @@ -12,7 +12,7 @@ "destination": { "type": "string", "title": "Pointer Destination", - "description": "Identifies the Record in the RecordSet containined the referred-to data (see clause 5.3.2)" + "description": "Identifies the Record in the RecordSet containing the referred-to data (see clause 5.3.2)" }, "relationship": { "type": "string", @@ -1001,21 +1001,21 @@ "type": "array", "items": { "$ref": "#/$defs/RegistrationInformationRecord", - "description": "One or more registration informtion records for the subscriber in this CollectionRecord" + "description": "One or more registration information records for the subscriber in this CollectionRecord" } }, "serviceInformationRecords": { "type": "array", "items": { "$ref": "#/$defs/ServiceInformationRecord", - "description": "One or more service informtion records for the subscriber in this CollectionRecord" + "description": "One or more service information records for the subscriber in this CollectionRecord" } }, "paymentInformationRecords": { "type": "array", "items": { "$ref": "#/$defs/PaymentInformationRecord", - "description": "One or more payment informtion records for the subscriber in this CollectionRecord" + "description": "One or more payment information records for the subscriber in this CollectionRecord" } }, "required": [ -- GitLab From b27bf4fcc256e386f360c5f26bccd436daa8c890 Mon Sep 17 00:00:00 2001 From: mark Date: Wed, 29 Apr 2026 08:45:23 +0100 Subject: [PATCH 09/19] Extending testing (sorry!) --- testing/json/ts_103705_ex8_json.json | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 testing/json/ts_103705_ex8_json.json diff --git a/testing/json/ts_103705_ex8_json.json b/testing/json/ts_103705_ex8_json.json new file mode 100644 index 0000000..e869443 --- /dev/null +++ b/testing/json/ts_103705_ex8_json.json @@ -0,0 +1,11 @@ +{ + "coreSchema": "103705/schema/response.schema.json", + "supportingSchemas": [ + "103705/schema/", + "103280/TS_103_280.schema.json", + "103705/examples/example8/csp_records.schema.json" + ], + "instanceDocs": [ + "103705/examples/example8/csp_results.json" + ] +} -- GitLab From 14434db7cb08b2a793d476c6c7ede5f6a7664fbd Mon Sep 17 00:00:00 2001 From: Frank Fransen Date: Wed, 29 Apr 2026 09:56:17 +0000 Subject: [PATCH 10/19] Edit etsi_types.schema.json --- 103705/schema/etsi_types.schema.json | 35 ---------------------------- 1 file changed, 35 deletions(-) diff --git a/103705/schema/etsi_types.schema.json b/103705/schema/etsi_types.schema.json index 8f80111..31dd2ff 100644 --- a/103705/schema/etsi_types.schema.json +++ b/103705/schema/etsi_types.schema.json @@ -987,41 +987,6 @@ "description": "Personal Unblocking Key for PIN2" } } - }, - "SubscriberRecordsCollectionRecord": { - "type": "object", - "title": "Collection of records related to a single subscriber", - "description": "Nesting record to cluster records related to a single subscriber. Use this record to cluster Subscriber Data records when the record set contains records of multiple subscribers. See clause 5.4", - "properties": { - "subscriberInformationRecord": { - "$ref": "#/$defs/SubscriberInformationRecord", - "description": "Information about a natural person or organisation in this CollectionRecord" - }, - "registrationInformationRecords": { - "type": "array", - "items": { - "$ref": "#/$defs/RegistrationInformationRecord", - "description": "One or more registration information records for the subscriber in this CollectionRecord" - } - }, - "serviceInformationRecords": { - "type": "array", - "items": { - "$ref": "#/$defs/ServiceInformationRecord", - "description": "One or more service information records for the subscriber in this CollectionRecord" - } - }, - "paymentInformationRecords": { - "type": "array", - "items": { - "$ref": "#/$defs/PaymentInformationRecord", - "description": "One or more payment information records for the subscriber in this CollectionRecord" - } - }, - "required": [ - "subscriberInformationRecord" - ] - } } } } -- GitLab From e5c6eae282b43d7dda53ebdf45a0dce4c83b7198 Mon Sep 17 00:00:00 2001 From: Frank Fransen Date: Wed, 29 Apr 2026 10:02:41 +0000 Subject: [PATCH 11/19] Upload New File --- .../examples/example8/csp_types.schema.json | 78 +++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 103705/examples/example8/csp_types.schema.json diff --git a/103705/examples/example8/csp_types.schema.json b/103705/examples/example8/csp_types.schema.json new file mode 100644 index 0000000..85ee1ba --- /dev/null +++ b/103705/examples/example8/csp_types.schema.json @@ -0,0 +1,78 @@ +{ + "$id": "csp_example_types", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "title": "CSP Supplementary Schema", + "description": "JSON schema for CSP defined types (see clause 6.1 and Annex A). Two collection records are defined for collecting subscriber data records using nesting (see Clause 5.5)", + "$defs": { + "CSPSubscriberRecordsCollectionRecord": { + "type": "object", + "title": "Subscriber collection record", + "description": "Nesting record to cluster records related to a single subscriber (see clause 5.5). This record is used to cluster Subscriber Data records when the record set contains records of multiple subscribers.", + "properties": { + "subscriberInformationRecord": { + "$ref": "urn:etsi:li:103705:type-schema-id:v1.5.1#/$defs/SubscriberInformationRecord", + "description": "Information about a natural person or organisation in this CollectionRecord" + }, + "registrationInformationRecords": { + "type": "array", + "items": { + "$ref": "urn:etsi:li:103705:type-schema-id:v1.5.1#/$defs/RegistrationInformationRecord", + "description": "One or more registration information records for the subscriber in this CollectionRecord" + } + }, + "serviceInformationRecords": { + "type": "array", + "items": { + "$ref": "urn:etsi:li:103705:type-schema-id:v1.5.1#/$defs/ServiceInformationRecord", + "description": "One or more service information records for the subscriber in this CollectionRecord" + } + }, + "paymentInformationRecords": { + "type": "array", + "items": { + "$ref": "urn:etsi:li:103705:type-schema-id:v1.5.1#/$defs/PaymentInformationRecord", + "description": "One or more payment information records for the subscriber in this CollectionRecord" + } + }, + "required": [ + "subscriberInformationRecord" + ] + } + }, + "CSPSubscriptionRecordsCollectionRecord": { + "type": "object", + "title": "Subscription collection record", + "description": "Nesting record to cluster records related to a single subscription (see clause 5.5). This record is used to cluster Subscriber Data records when the record set contains records of multiple subscriptions.", + "properties": { + "serviceInformationRecord": { + "$ref": "urn:etsi:li:103705:type-schema-id:v1.5.1#/$defs/ServiceInformationRecord", + "description": "Information about the service for the subscription in this CollectionRecord" + }, + "subscriberInformationRecord": { + "type": "array", + "items": { + "$ref": "urn:etsi:li:103705:type-schema-id:v1.5.1#/$defs/SubscriberInformationRecord", + "description": "One or more subscriber information records for this CollectionRecord" + } + }, + "registrationInformationRecords": { + "type": "array", + "items": { + "$ref": "urn:etsi:li:103705:type-schema-id:v1.5.1#/$defs/RegistrationInformationRecord", + "description": "One or more registration information records for the subscription in this CollectionRecord" + } + }, + "paymentInformationRecords": { + "type": "array", + "items": { + "$ref": "urn:etsi:li:103705:type-schema-id:v1.5.1#/$defs/PaymentInformationRecord", + "description": "Information about the payment for the subscription in this CollectionRecord" + } + }, + "required": [ + "serviceInformationRecord" + ] + } + } + } +} -- GitLab From c08b60d9dce0c93425fc826db14bdd653355565b Mon Sep 17 00:00:00 2001 From: Frank Fransen Date: Wed, 29 Apr 2026 10:02:48 +0000 Subject: [PATCH 12/19] Edit csp_records.schema.json --- 103705/examples/example8/csp_records.schema.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/103705/examples/example8/csp_records.schema.json b/103705/examples/example8/csp_records.schema.json index 63212b0..6249188 100644 --- a/103705/examples/example8/csp_records.schema.json +++ b/103705/examples/example8/csp_records.schema.json @@ -5,7 +5,7 @@ "description": "Defines the valid set of Subscriber Data Records that may appear in a RecordSet (see ETSI TS 103 705 clause 6.2.4)", "cspSchemaID": "csp.example_8", "cspName": "csp.example.com", - "dateIssued": "2026-01-02T09:15:01Z", + "dateIssued": "2026-04-29T09:15:01Z", "version": "1.1.1", "$defs": { "record": { @@ -13,12 +13,12 @@ { "allOf": [ { - "$ref": "urn:etsi:li:103705:type-schema-id:v1.5.1#/$defs/SubscriberInformationRecord" + "$ref": "csp_example_types#/$defs/CSPSubscriberRecordsCollectionRecord" }, { "properties": { "type": { - "const": "urn:etsi:li:103705:type-schema-id:v1.5.1#/$defs/SubscriberInformationRecord" + "const": "csp_example_types#/$defs/CSPSubscriberRecordsCollectionRecord" } } } @@ -27,12 +27,12 @@ { "allOf": [ { - "$ref": "urn:etsi:li:103705:type-schema-id:v1.5.1#/$defs/ServiceInformationRecord" + "$ref": "csp_example_types#/$defs/CSPSubscriptionRecordsCollectionRecord" }, { "properties": { "type": { - "const": "urn:etsi:li:103705:type-schema-id:v1.5.1#/$defs/ServiceInformationRecord" + "const": "csp_example_types#/$defs/CSPSubscriptionRecordsCollectionRecord" } } } -- GitLab From b60085e0e27c58f2c542106da50243d6e7cadcfd Mon Sep 17 00:00:00 2001 From: Frank Fransen Date: Wed, 29 Apr 2026 10:04:32 +0000 Subject: [PATCH 13/19] Edit csp_results.json --- 103705/examples/example8/csp_results.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/103705/examples/example8/csp_results.json b/103705/examples/example8/csp_results.json index 2cc34a3..d048627 100644 --- a/103705/examples/example8/csp_results.json +++ b/103705/examples/example8/csp_results.json @@ -7,12 +7,12 @@ "cspSchemaVersion": "1.0.0", "resultSetId": "9a25db0c-d0f3-4ae5-b618-bd1a9a0056c2", "requestReference": "LDID", - "created": "2026-01-15T09:31:56.000000Z" + "created": "2026-04-29T09:31:56.000000Z" }, "recordSet": [ { "id": "1da91ade-f526-4e55-b5da-00000000000001", - "type": "urn:etsi:li:103705:type-schema-id:v1.5.1#/$defs/SubscriberRecordsCollectionRecord", + "type": "csp_example_types#/$defs/CSPSubscriberRecordsCollectionRecord", "subscriberInformationRecord": { "id": "1da91ade-f526-4e55-b5da-0c8178f25001", "type": "urn:etsi:li:103705:type-schema-id:v1.5.1#/$defs/SubscriberInformationRecord", @@ -63,7 +63,7 @@ }, { "id": "1da91ade-f526-4e55-b5da-00000000000002", - "type": "urn:etsi:li:103705:type-schema-id:v1.5.1#/$defs/SubscriberRecordsCollectionRecord", + "type": "csp_example_types#/$defs/CSPSubscriberRecordsCollectionRecord", "subscriberInformationRecord": { "id": "2da91ade-f526-4e55-b5da-0c8178f25002", "type": "urn:etsi:li:103705:type-schema-id:v1.5.1#/$defs/SubscriberInformationRecord", -- GitLab From 090870eb370908865186776fcb60e8b2bcb7e27e Mon Sep 17 00:00:00 2001 From: Frank Fransen Date: Wed, 29 Apr 2026 10:05:52 +0000 Subject: [PATCH 14/19] Edit description.txt --- 103705/examples/example8/description.txt | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/103705/examples/example8/description.txt b/103705/examples/example8/description.txt index c283225..9093dbd 100644 --- a/103705/examples/example8/description.txt +++ b/103705/examples/example8/description.txt @@ -1,7 +1,9 @@ -This example shows the result of a LD request with as the target identifier a postalcode and a housenumber. Since multiple people could be a residence at this address and have one or more services at the CSP, the resulted Record Set would contain multiple SubscriberInformationRecords of the different subscribers, and multiple ServiceInformationRecords for the services of these subscribers. To ensure that that recipient of the Record Set can determine which service belongs to which subscriber, the records belonging to a single subsriber are nested in a so called SubscriberRecordsCollectionRecord. +This example demonstrates how a CSP can use Nesting of records (see Clause 5.5). The example shows the result of a LD request with as the target identifier a postalcode and a house number. Since multiple people could be a residence at this address and have one or more services at the CSP, the resulted Record Set would contain multiple SubscriberInformationRecords of the different subscribers, and multiple ServiceInformationRecords for the services of these subscribers. To ensure that that recipient of the Record Set can determine which service belongs to which subscriber, the CSP uses Nesting (see Clause 5.5). In this particular example John Doe and Jane Doe live at the same address. John has a telephony subscription with phone number +44 1632960124. Jane has a telephony subscription with phone number +44 1632960567, and a data access subscription. -CSP imports the following record types in the CSP record schema: -- SubscriberInformationRecord -- ServiceInformationRecord \ No newline at end of file +In the CSP supplementary type schema two Nesting records are defined: +- CSPSubscriberRecordsCollectionRecord - for collecting records belonging to a subscriber +- CSPSubscriptionRecordsCollectionRecord - for collecting records belonging to a subscription + +The CSP record schema for this example only inports the CSPSubscriberRecordsCollectionRecord. \ No newline at end of file -- GitLab From e071cf808677c597edb8eeac28e773c117a3e84e Mon Sep 17 00:00:00 2001 From: Frank Fransen Date: Wed, 29 Apr 2026 10:31:15 +0000 Subject: [PATCH 15/19] Update file description.txt --- 103705/examples/example8/description.txt | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/103705/examples/example8/description.txt b/103705/examples/example8/description.txt index 9093dbd..b0a4c49 100644 --- a/103705/examples/example8/description.txt +++ b/103705/examples/example8/description.txt @@ -1,6 +1,12 @@ -This example demonstrates how a CSP can use Nesting of records (see Clause 5.5). The example shows the result of a LD request with as the target identifier a postalcode and a house number. Since multiple people could be a residence at this address and have one or more services at the CSP, the resulted Record Set would contain multiple SubscriberInformationRecords of the different subscribers, and multiple ServiceInformationRecords for the services of these subscribers. To ensure that that recipient of the Record Set can determine which service belongs to which subscriber, the CSP uses Nesting (see Clause 5.5). +This example demonstrates how a CSP can use Nesting of records (see Clause 5.5). The example shows the result of a +LD request with as the target identifier a postalcode and a house number. Since multiple people could be a residence +at this address and have one or more services at the CSP, the resulted Record Set would contain multiple +SubscriberInformationRecords of the different subscribers, and multiple ServiceInformationRecords for the services of +these subscribers. To ensure that that recipient of the Record Set can determine which service belongs to which subscriber, +the CSP uses Nesting (see Clause 5.5). -In this particular example John Doe and Jane Doe live at the same address. John has a telephony subscription with phone number +44 1632960124. Jane has a telephony subscription with phone number +44 1632960567, and a data access subscription. +In this particular example John Doe and Jane Doe live at the same address. John has a telephony subscription with phone +number +44 1632960124. Jane has a telephony subscription with phone number +44 1632960567, and a data access subscription. In the CSP supplementary type schema two Nesting records are defined: - CSPSubscriberRecordsCollectionRecord - for collecting records belonging to a subscriber -- GitLab From 8ef3e8f45d605e06e820c8653d751b8fef3df667 Mon Sep 17 00:00:00 2001 From: Frank Fransen Date: Wed, 29 Apr 2026 10:47:21 +0000 Subject: [PATCH 16/19] Edit ts_103705_ex8_json.json --- testing/json/ts_103705_ex8_json.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/testing/json/ts_103705_ex8_json.json b/testing/json/ts_103705_ex8_json.json index e869443..52f43e8 100644 --- a/testing/json/ts_103705_ex8_json.json +++ b/testing/json/ts_103705_ex8_json.json @@ -3,7 +3,8 @@ "supportingSchemas": [ "103705/schema/", "103280/TS_103_280.schema.json", - "103705/examples/example8/csp_records.schema.json" + "103705/examples/example8/csp_records.schema.json", + "103705/examples/example8/csp_types.schema.json" ], "instanceDocs": [ "103705/examples/example8/csp_results.json" -- GitLab From 6a902e62559c538d7aeb7f82f5f4bbd1157da8c9 Mon Sep 17 00:00:00 2001 From: Frank Fransen Date: Wed, 29 Apr 2026 11:52:23 +0000 Subject: [PATCH 17/19] Edit csp_types.schema.json --- 103705/examples/example8/csp_types.schema.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/103705/examples/example8/csp_types.schema.json b/103705/examples/example8/csp_types.schema.json index 85ee1ba..03f4686 100644 --- a/103705/examples/example8/csp_types.schema.json +++ b/103705/examples/example8/csp_types.schema.json @@ -48,7 +48,7 @@ "$ref": "urn:etsi:li:103705:type-schema-id:v1.5.1#/$defs/ServiceInformationRecord", "description": "Information about the service for the subscription in this CollectionRecord" }, - "subscriberInformationRecord": { + "subscriberInformationRecords": { "type": "array", "items": { "$ref": "urn:etsi:li:103705:type-schema-id:v1.5.1#/$defs/SubscriberInformationRecord", -- GitLab From 9f95fedbe9efcf1379a970ad815735e38c257137 Mon Sep 17 00:00:00 2001 From: Frank Fransen Date: Wed, 29 Apr 2026 12:13:24 +0000 Subject: [PATCH 18/19] Update file csp_types.schema.json --- .../examples/example8/csp_types.schema.json | 35 ------------------- 1 file changed, 35 deletions(-) diff --git a/103705/examples/example8/csp_types.schema.json b/103705/examples/example8/csp_types.schema.json index 03f4686..c002a48 100644 --- a/103705/examples/example8/csp_types.schema.json +++ b/103705/examples/example8/csp_types.schema.json @@ -38,41 +38,6 @@ "subscriberInformationRecord" ] } - }, - "CSPSubscriptionRecordsCollectionRecord": { - "type": "object", - "title": "Subscription collection record", - "description": "Nesting record to cluster records related to a single subscription (see clause 5.5). This record is used to cluster Subscriber Data records when the record set contains records of multiple subscriptions.", - "properties": { - "serviceInformationRecord": { - "$ref": "urn:etsi:li:103705:type-schema-id:v1.5.1#/$defs/ServiceInformationRecord", - "description": "Information about the service for the subscription in this CollectionRecord" - }, - "subscriberInformationRecords": { - "type": "array", - "items": { - "$ref": "urn:etsi:li:103705:type-schema-id:v1.5.1#/$defs/SubscriberInformationRecord", - "description": "One or more subscriber information records for this CollectionRecord" - } - }, - "registrationInformationRecords": { - "type": "array", - "items": { - "$ref": "urn:etsi:li:103705:type-schema-id:v1.5.1#/$defs/RegistrationInformationRecord", - "description": "One or more registration information records for the subscription in this CollectionRecord" - } - }, - "paymentInformationRecords": { - "type": "array", - "items": { - "$ref": "urn:etsi:li:103705:type-schema-id:v1.5.1#/$defs/PaymentInformationRecord", - "description": "Information about the payment for the subscription in this CollectionRecord" - } - }, - "required": [ - "serviceInformationRecord" - ] - } } } } -- GitLab From 652b8e66651ea87f827308f8730a06484d25e55c Mon Sep 17 00:00:00 2001 From: Frank Fransen Date: Wed, 29 Apr 2026 12:18:50 +0000 Subject: [PATCH 19/19] Update 2 files - /103705/examples/example8/csp_types.schema.json - /103705/examples/example8/csp_results.json --- 103705/examples/example8/csp_results.json | 2 +- .../examples/example8/csp_types.schema.json | 35 +++++++++++++++++++ 2 files changed, 36 insertions(+), 1 deletion(-) diff --git a/103705/examples/example8/csp_results.json b/103705/examples/example8/csp_results.json index d048627..f9ae7f1 100644 --- a/103705/examples/example8/csp_results.json +++ b/103705/examples/example8/csp_results.json @@ -125,7 +125,7 @@ "end": "2026-01-01T17:00:00.000000Z" }, "typeOfService": "DataAccess", - "startDate": "20265-01-01", + "startDate": "2025-01-01", "endDate": "2026-12-31", "serviceIdentifiers": [ { diff --git a/103705/examples/example8/csp_types.schema.json b/103705/examples/example8/csp_types.schema.json index c002a48..03f4686 100644 --- a/103705/examples/example8/csp_types.schema.json +++ b/103705/examples/example8/csp_types.schema.json @@ -38,6 +38,41 @@ "subscriberInformationRecord" ] } + }, + "CSPSubscriptionRecordsCollectionRecord": { + "type": "object", + "title": "Subscription collection record", + "description": "Nesting record to cluster records related to a single subscription (see clause 5.5). This record is used to cluster Subscriber Data records when the record set contains records of multiple subscriptions.", + "properties": { + "serviceInformationRecord": { + "$ref": "urn:etsi:li:103705:type-schema-id:v1.5.1#/$defs/ServiceInformationRecord", + "description": "Information about the service for the subscription in this CollectionRecord" + }, + "subscriberInformationRecords": { + "type": "array", + "items": { + "$ref": "urn:etsi:li:103705:type-schema-id:v1.5.1#/$defs/SubscriberInformationRecord", + "description": "One or more subscriber information records for this CollectionRecord" + } + }, + "registrationInformationRecords": { + "type": "array", + "items": { + "$ref": "urn:etsi:li:103705:type-schema-id:v1.5.1#/$defs/RegistrationInformationRecord", + "description": "One or more registration information records for the subscription in this CollectionRecord" + } + }, + "paymentInformationRecords": { + "type": "array", + "items": { + "$ref": "urn:etsi:li:103705:type-schema-id:v1.5.1#/$defs/PaymentInformationRecord", + "description": "Information about the payment for the subscription in this CollectionRecord" + } + }, + "required": [ + "serviceInformationRecord" + ] + } } } } -- GitLab