From 32a98afc759d99ffea686fbca06447ca094382f2 Mon Sep 17 00:00:00 2001 From: David Gregorczyk Date: Tue, 15 Aug 2023 13:52:30 +0200 Subject: [PATCH] #210 Add sections in Volume 2 and 3. --- .../volume2/qnames/tf2-ch-a-mdpws-qnames.adoc | 23 ++++++++ asciidoc/volume2/tf2-ch-a-mdpws.adoc | 4 +- ...f3-ch-8.3.2.9.1-extension-constraints.adoc | 52 +++++++++++++++++++ ...productions-specification-type-codes.adoc} | 0 ....9.3-applicable-attribute-type-codes.adoc} | 0 ...-8.3.2.9.4-extension-coded-attribute.adoc} | 0 ...=> tf3-ch-8.3.2.9.5-extension-gender.adoc} | 0 ...2.9.6-extension-equipment-identifier.adoc} | 0 .../volume3/tf3-ch-8.3.2-biceps-content.adoc | 12 +++-- 9 files changed, 85 insertions(+), 6 deletions(-) create mode 100644 asciidoc/volume2/qnames/tf2-ch-a-mdpws-qnames.adoc create mode 100644 asciidoc/volume3/biceps-content-module/tf3-ch-8.3.2.9.1-extension-constraints.adoc rename asciidoc/volume3/biceps-content-module/{tf3-ch-8.3.2.9.1-applicable-productions-specification-type-codes.adoc => tf3-ch-8.3.2.9.2-applicable-productions-specification-type-codes.adoc} (100%) rename asciidoc/volume3/biceps-content-module/{tf3-ch-8.3.2.9.2-applicable-attribute-type-codes.adoc => tf3-ch-8.3.2.9.3-applicable-attribute-type-codes.adoc} (100%) rename asciidoc/volume3/biceps-extension-provisions/{tf3-ch-8.3.2.9.3-extension-coded-attribute.adoc => tf3-ch-8.3.2.9.4-extension-coded-attribute.adoc} (100%) rename asciidoc/volume3/biceps-extension-provisions/{tf3-ch-8.3.2.9.4-extension-gender.adoc => tf3-ch-8.3.2.9.5-extension-gender.adoc} (100%) rename asciidoc/volume3/biceps-extension-provisions/{tf3-ch-8.3.2.9.5-extension-equipment-identifier.adoc => tf3-ch-8.3.2.9.6-extension-equipment-identifier.adoc} (100%) diff --git a/asciidoc/volume2/qnames/tf2-ch-a-mdpws-qnames.adoc b/asciidoc/volume2/qnames/tf2-ch-a-mdpws-qnames.adoc new file mode 100644 index 0000000..50b662f --- /dev/null +++ b/asciidoc/volume2/qnames/tf2-ch-a-mdpws-qnames.adoc @@ -0,0 +1,23 @@ +==== Processing of QNames + +<>s are problematic when used in XML element or attribute content (see <>). +Unfortunately, the BICEPS Participant and Message Model as well some Web Services standards that are normatively referenced by <>, use <>s in XML element or attribute content. + +In order to increase interoperability between implementations of this profile, this section specifies requirements towards <> handling in XML instances. + +.R1012 +[sdpi_requirement#r1012,sdpi_req_level=shall] +**** + +A <> shall resolve the namespace of a prefixed <> in XML attribute values and content of elements to the namespace that is associated with its prefix and is valid for the smallest element, which encloses the <>, by XML content. + +**** + +.R1013 +[sdpi_requirement#r1013,sdpi_req_level=shall] +**** + +A <> shall resolve the namespace of an unprefixed <> in XML attribute values and content of elements to the default namespace that is valid for the smallest element, which encloses the <>, by XML content. + +**** + diff --git a/asciidoc/volume2/tf2-ch-a-mdpws.adoc b/asciidoc/volume2/tf2-ch-a-mdpws.adoc index b1347fe..6a30248 100644 --- a/asciidoc/volume2/tf2-ch-a-mdpws.adoc +++ b/asciidoc/volume2/tf2-ch-a-mdpws.adoc @@ -79,4 +79,6 @@ include::mdpws-compression/tf2-ch-a-mdpws-compression.adoc[] include::discovery-scopes/tf2-ch-a-mdpws-discovery-scopes.adoc[] -include::pretty-print/tf2-ch-a-mdpws-pretty-print.adoc[] \ No newline at end of file +include::pretty-print/tf2-ch-a-mdpws-pretty-print.adoc[] + +include::qnames/tf2-ch-a-mdpws-qnames.adoc[] \ No newline at end of file diff --git a/asciidoc/volume3/biceps-content-module/tf3-ch-8.3.2.9.1-extension-constraints.adoc b/asciidoc/volume3/biceps-content-module/tf3-ch-8.3.2.9.1-extension-constraints.adoc new file mode 100644 index 0000000..46e281e --- /dev/null +++ b/asciidoc/volume3/biceps-content-module/tf3-ch-8.3.2.9.1-extension-constraints.adoc @@ -0,0 +1,52 @@ +====== Extension Constraints + +[sdpi_level=+1] +====== Mixed Content + +Some XML processor APIs do not support ordered access to XML Schema _mixed content_, which is the interlacing of XML elements with text content. + +.Example of mixed content in an XML instance +[source#vol3_clause_extension_constraints_interlaced,xml] +---- + + + Here + + is some + + + interlaced + + text + + +---- + +There are APIs that do not fully implement the XML Document Object Model and hence cannot individually access text nodes (e.g. as in <>: "Here", "is some", "interlaced", and "text") in between the interlaced elements but only as concatenated text. +This makes verification measures unnecessarily complicated. +As mixed content is not required to be available in device to device communication, <> prohibits the use of mixed content types in BICEPS extensions. + +.R0019 +[sdpi_requirement#r0019,sdpi_req_level=shall] +**** +A <> shall not provide BICEPS extensions that use XML Schema mixed content types. +**** + +[#vol3_clause_extension_qname, sdpi_level=+1] +====== QName + +A <> is a tuple of a namespace plus a local name. +In its serialized form, a <> is represented by either a prefix plus the local name or without a prefix, which translates to the default namespace or no namespace if no default is specified. +As long as <>s are used as part of element or attribute names within an XML instance, its usage is well-defined. + +The use in element or attribute content however is specific to the application and hence not standardized at all. +Depending on the XML Schema awareness, each XML processor handles <>s in element or attribute content differently, to the extent that some are not round-trip-safe and others just pass through the element value to the user of the API. +While the former may lead to interoperability issues, the latter is a leaky abstraction and requires API users to gain access to the XML instance that included the <>. + +In order to strengthen interoperability and avoid leaky abstraction, <> prohibits the use of <> types in BICEPS extensions. + +.R0020 +[sdpi_requirement#r0020,sdpi_req_level=shall] +**** +A <> shall not provide BICEPS extensions that are based on or use the XML Schema QName type. +**** \ No newline at end of file diff --git a/asciidoc/volume3/biceps-content-module/tf3-ch-8.3.2.9.1-applicable-productions-specification-type-codes.adoc b/asciidoc/volume3/biceps-content-module/tf3-ch-8.3.2.9.2-applicable-productions-specification-type-codes.adoc similarity index 100% rename from asciidoc/volume3/biceps-content-module/tf3-ch-8.3.2.9.1-applicable-productions-specification-type-codes.adoc rename to asciidoc/volume3/biceps-content-module/tf3-ch-8.3.2.9.2-applicable-productions-specification-type-codes.adoc diff --git a/asciidoc/volume3/biceps-content-module/tf3-ch-8.3.2.9.2-applicable-attribute-type-codes.adoc b/asciidoc/volume3/biceps-content-module/tf3-ch-8.3.2.9.3-applicable-attribute-type-codes.adoc similarity index 100% rename from asciidoc/volume3/biceps-content-module/tf3-ch-8.3.2.9.2-applicable-attribute-type-codes.adoc rename to asciidoc/volume3/biceps-content-module/tf3-ch-8.3.2.9.3-applicable-attribute-type-codes.adoc diff --git a/asciidoc/volume3/biceps-extension-provisions/tf3-ch-8.3.2.9.3-extension-coded-attribute.adoc b/asciidoc/volume3/biceps-extension-provisions/tf3-ch-8.3.2.9.4-extension-coded-attribute.adoc similarity index 100% rename from asciidoc/volume3/biceps-extension-provisions/tf3-ch-8.3.2.9.3-extension-coded-attribute.adoc rename to asciidoc/volume3/biceps-extension-provisions/tf3-ch-8.3.2.9.4-extension-coded-attribute.adoc diff --git a/asciidoc/volume3/biceps-extension-provisions/tf3-ch-8.3.2.9.4-extension-gender.adoc b/asciidoc/volume3/biceps-extension-provisions/tf3-ch-8.3.2.9.5-extension-gender.adoc similarity index 100% rename from asciidoc/volume3/biceps-extension-provisions/tf3-ch-8.3.2.9.4-extension-gender.adoc rename to asciidoc/volume3/biceps-extension-provisions/tf3-ch-8.3.2.9.5-extension-gender.adoc diff --git a/asciidoc/volume3/biceps-extension-provisions/tf3-ch-8.3.2.9.5-extension-equipment-identifier.adoc b/asciidoc/volume3/biceps-extension-provisions/tf3-ch-8.3.2.9.6-extension-equipment-identifier.adoc similarity index 100% rename from asciidoc/volume3/biceps-extension-provisions/tf3-ch-8.3.2.9.5-extension-equipment-identifier.adoc rename to asciidoc/volume3/biceps-extension-provisions/tf3-ch-8.3.2.9.6-extension-equipment-identifier.adoc diff --git a/asciidoc/volume3/tf3-ch-8.3.2-biceps-content.adoc b/asciidoc/volume3/tf3-ch-8.3.2-biceps-content.adoc index 27e7c14..2b123df 100644 --- a/asciidoc/volume3/tf3-ch-8.3.2-biceps-content.adoc +++ b/asciidoc/volume3/tf3-ch-8.3.2-biceps-content.adoc @@ -210,15 +210,17 @@ Consequently, a manufacturer of a <> shou There are standardized extensions, like those that are specified in the PKP standards or this specification, which can be considered common knowledge and therefore do not break interoperability between different manufacturers. -include::biceps-content-module/tf3-ch-8.3.2.9.1-applicable-productions-specification-type-codes.adoc[] +include::biceps-content-module/tf3-ch-8.3.2.9.1-extension-constraints.adoc[] -include::biceps-content-module/tf3-ch-8.3.2.9.2-applicable-attribute-type-codes.adoc[] +include::biceps-content-module/tf3-ch-8.3.2.9.2-applicable-productions-specification-type-codes.adoc[] -include::biceps-extension-provisions/tf3-ch-8.3.2.9.3-extension-coded-attribute.adoc[] +include::biceps-content-module/tf3-ch-8.3.2.9.3-applicable-attribute-type-codes.adoc[] -include::biceps-extension-provisions/tf3-ch-8.3.2.9.4-extension-gender.adoc[] +include::biceps-extension-provisions/tf3-ch-8.3.2.9.4-extension-coded-attribute.adoc[] -include::biceps-extension-provisions/tf3-ch-8.3.2.9.5-extension-equipment-identifier.adoc[] +include::biceps-extension-provisions/tf3-ch-8.3.2.9.5-extension-gender.adoc[] + +include::biceps-extension-provisions/tf3-ch-8.3.2.9.6-extension-equipment-identifier.adoc[] // 8.3.2.10 include::mdib-efficieny/tf3-ch-8.3.2.10-mdib-efficiency-considerations.adoc[] \ No newline at end of file