diff --git a/iocBoot/attributes.xsd b/iocBoot/attributes.xsd new file mode 100644 index 0000000..e465853 --- /dev/null +++ b/iocBoot/attributes.xsd @@ -0,0 +1,177 @@ + + + + + + + + + + + + + + + + + + + + + Each NDAttribute (currently either PVAttribute or paramAttribute, other types may be added in the future) + is defined with an Attribute tag. + (N.B.: Unfortunately there are 2 meanings of attribute here: the NDAttribute and the XML attribute) + For each Attribute declaration, there are a number of XML attributes. + XML attributes have the syntax name="value". + + The XML attribute names are case-sensitive and must be lower case, i.e. name="xxx", not NAME="xxx". + The XML attribute values however, are case-insensitive, i.e. type="epics_pv" is equivalent to type="EPICS_PV". + + + + + + + + + + + + + + + + + + + Declares the parameter data type for type="PARAM". + It must match the actual data type in the driver + or plugin parameter library. + + + + + + + + Declares the asyn addr (address) for type="PARAM". + + + + + + + + Declares the data type that will be used to read an + EPICS Process Variable value with Channel Access. + + + + + + + + + + + words to explain this information + + + + + + + One-word mnemonic reference that determines the name of the NDAttribute. + It is required, must be unique, is case-insensitive, and must start with a letter. + It can include only letters, numbers and underscore. (No whitespace or other punctuation.) + + + + + + + + + + + + + Declares the source of the NDAttribute. It is required. + If type="EPICS_PV" then this is the name of the EPICS PV, + which is case-sensitive. + If type="PARAM" then this is the drvInfo string that is + used in EPICS database files (e.g. ADBase.template) + to identify this parameter. + + + + + + + + + + Data type that will be used to read an EPICS_PV value with channel access + Data types allowed in the driver or plugin parameter library, + and must be "INT", "DOUBLE", or "STRING" (case insensitive). + + + + + + + + (default) use integer data type + + + + + + + + + + + + Data type that will be used to read an EPICS_PV value with channel access. + The allowed values are all case insensitive but it is advised to use uppercase. + + + + + + + + + + + + + + + (default) use native Channel Access data type + + + + + + + diff --git a/iocBoot/validateXML.sh b/iocBoot/validateXML.sh new file mode 100755 index 0000000..affe735 --- /dev/null +++ b/iocBoot/validateXML.sh @@ -0,0 +1,27 @@ +#!/bin/sh + +########### SVN repository information ################### +# $Date$ +# $Author$ +# $Revision$ +# $HeadURL$ +# $Id$ +########### SVN repository information ################### + +# Validate the XML Attribute and Template files + + +# NDArray Attribute declaration files +xmllint --noout --schema ./attributes.xsd iocPerkinElmer/nexus_templates/PerkinElmerParams.xml +xmllint --noout --schema ./attributes.xsd iocPilatus/pilatusAttributes.xml +xmllint --noout --schema ./attributes.xsd iocProsilica/prosilicaAttributes.xml +xmllint --noout --schema ./attributes.xsd iocSimDetector/ROIAttributes.xml +xmllint --noout --schema ./attributes.xsd iocSimDetector/netCDFAttributes.xml +xmllint --noout --schema ./attributes.xsd iocSimDetector/simDetectorAttributes.xml + +# template files +# +# cannot validate, no XML Schema developed yet +# +#iocPerkinElmer/nexus_templates/example.xml fails to validate +#iocSimDetector/NexusTemplate.xml fails to validate