Skip to content

Restructuring of si:list

Up to version 1.3.x of the D-SI XML scheme, si:list is a generic element name that can provide a list of si:real, si:complex or si:list elements. The underlying XSD structure was very difficult to develop and it turned out that such lists are

  • hard to understand from view on the XML specification and
  • difficult to read / write with software

Thus, splitting the si:list in sub elements with clear to understand names is suggested:

  • Element si:reaList with clear to access structur of a list comprising real elements
  • Element si:complexList with clear to access structur of a list comprising complex elements
  • Element si:list only with a selection between type si:realList, si:complexList and si:list
<xs:complexType name="listType">
  <xs:sequence>
	<!-- optional label of the list -->
	<xs:element name="label" type="xs:string" minOccurs="0"/>
	<!-- optional list time stamp -->
	<xs:element name="dateTime" type="xs:dateTime" minOccurs="0"/>
				
	<!-- selection between list of lists and list of real or complex -->
	<xs:choice>
	  <!-- either list of real -->
	  <xs:element name="reallist" type="si:realListType" minOccurs="1" maxOccurs="unbounded"/>		
	  <!-- or list of complex -->
	  <xs:element name="complexlist" type="si:complexListType" minOccurs="1"  maxOccurs="unbounded"/>
	  <!-- or list of lists -->
	  <xs:element name="list" type="si:listType" minOccurs="1"  maxOccurs="unbounded"/>
	</xs:choice>
  </xs:sequence>
</xs:complexType>

Taking into account that elements in lists can have global units: In the example of si:reaList, it is possible to globally define the unit of all real elements in the list. If a global unit is given, the real elements in the list must not provide a unit (the unit is for technical reason optional in the definition of the si:real element that is used in the list). The type of this real elements is named si:realinListType to make sufficient seperation from the stand-alone si-real element, where the unit is mandatory.

Outline of the old si:list structure image

Edited by Daniel Hutzschenreuter
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information