In the current CPACS, most vectors are based on the stringVectorBaseType. Some have already been set on a derived doubleVectorBaseType which emulates semicolon-separated elements of type Double via complex regex keys.
The use of regex is not very robust, as it is difficult to impossible to map and validate certain types of data. For example, we cannot validate vectors that contain uID references.
This can be solved by using xsd:list, sometimes in combination with regex. I therefore propose to introduce new vector types (neglecting the annotations). xsd:list vectors are separated by a space. See cpacs4 branch for example files.
Relates to: #806
In the current CPACS, most vectors are based on the
stringVectorBaseType
. Some have already been set on a deriveddoubleVectorBaseType
which emulates semicolon-separated elements of type Double via complex regex keys.The use of regex is not very robust, as it is difficult to impossible to map and validate certain types of data. For example, we cannot validate vectors that contain uID references.
This can be solved by using xsd:list, sometimes in combination with regex. I therefore propose to introduce new vector types (neglecting the annotations).
xsd:list
vectors are separated by a space. See cpacs4 branch for example files.Double type vectors:
String vectors:
This validates the uID-references in the vector; pretty cool 😏:
Integer vectors:
The indexVectorType ensures that indices are counting from 1, not from zero. However, this needs to be realized by regex pattern:
Same with restrictions (unless someone finds a better solution at stackoverflow):