diff --git a/silecs-model/src/xml/DeploySchema.xsd b/silecs-model/src/xml/DeploySchema.xsd index 4a185a32f9f7ca1f388560b63b296835bad06583..8d75687cf10da6def7e1550324e9df40b83b31c6 100644 --- a/silecs-model/src/xml/DeploySchema.xsd +++ b/silecs-model/src/xml/DeploySchema.xsd @@ -579,14 +579,31 @@ </xs:restriction> </xs:simpleType> - <xs:simpleType name="DeviceNameType"> + <!-- Base type which just forbid characters not supported by the DB --> + <xs:simpleType name="BaseType"> <xs:restriction base="xs:string"> + <xs:pattern value="[^&<>"]*" /> + </xs:restriction> + </xs:simpleType> + + <!-- Type for named item which are not transformed into Cpp object --> + <xs:simpleType name="NonIdentifierType"> + <xs:restriction base="BaseType"> + <!-- forbid leading and trailing space characters --> + <xs:pattern value="\S|(\S.*\S)" /> + </xs:restriction> + </xs:simpleType> + + <xs:simpleType name="DeviceNameType"> + <xs:restriction base="NonIdentifierType"> <xs:minLength value="1" /> <xs:maxLength value="30" /> <!-- In FESA the deviceName is restricted to max. 30 characters --> - <xs:pattern value="[_A-Za-z][_A-Za-z0-9]*" /> </xs:restriction> </xs:simpleType> + + + <xs:simpleType name="BothProtocolType"> <xs:restriction base="xs:string"> <xs:enumeration value="DEVICE_MODE" />