En este tema se describe la utilización de anotaciones para archivos origen COBOL.
Para que el compilador COBOL pase por alto las anotaciones, éstas deben aparecer como una línea de comentario. Por lo tanto, las anotaciones COBOL siempre tienen un asterisco (*) en la columna 7 para indicar un comentario COBOL.
El formato del indicador de anotación para las anotaciones COBOL tiene un formato llamativo opcional. En esta descripción, se utiliza un carácter @ (signo "arroba"). Sin embargo, se puede definir cualquier otro carácter como indicador de anotación. El indicador de anotación está posicionado en la columna 1 seguido de hasta 5 caracteres alfanuméricos.
Para habilitar la posibilidad de anotación, el usuario tiene que crear un archivo XML de acciones sinónimas. El archivo XML de acciones sinónimas es un archivo XML que define un conjunto de palabras de anotación que son equivalentes, en significado, a las acciones que ya se proporcionan por los elementos ItemExclusionArray, ItemSelectionArray y XMLNameArray del archivo de opciones del procesador por lotes.
El usuario especifica (crea) el archivo XML de acciones sinónimas en la línea de mandatos cuando se invoca el procesador por lotes (xsebatch). El mandato es: xsebatch [-annot synFile]. Para ver una descripción completa del mandato xsebatch, consulte la sección Iniciar el procesador por lotes.
Si el archivo XML de acciones sinónimas se especifica de esta manera, las normas de anotación especificadas en el archivo XML de acciones sinónimas se aplican a todos los archivos de especificación del procesador por lotes (y por lo tanto todos los servicios subsiguientes) generados en esa invocación en particular.
El usuario puede alterar temporalmente (por ejemplo, cambiar) el archivo XML de acciones sinónimas especificadas en la línea de mandatos utilizando el atributo "annotationsFile" para los elementos de mensaje de entrada y salida (InputMessage y OutputMessage) en el archivo de especificación de opciones del procesador por lotes (ServiceSpecification.xml), consulte las secciones InputMessage y OutputMessage.
Cuando se utiliza el método de línea de mandatos para crear y especificar el archivo XML de acciones sinónimas, el procesador por lotes pasa por alto los elementos ItemExclusionArray, ItemSelectionArray y XMLNameArray de los archivos de opciones de procesador por lotes y en su lugar busca las anotaciones de datos origen que se han definido en el archivo XML de acciones sinónimas.
<?xml version="1.0" encoding="UTF-8"?>
<synactions:SynonymActions xmlns:synactions="http://www.ibm.com/xmlent/annot/emf/synactions">
<synactions:ActionGroup lang="COBOL" format="fixed" indicator="@ANN">
<synactions:ExcludeItem>
<synactions:itemName annotatedAs="OMIT"/>
</synactions:ExcludeItem>
<synactions:ItemSelection>
<synactions:itemName annotatedAs="KEEP"/>
</synactions:ItemSelection>
<synactions:XMLNameSelection>
<synactions:itemName annotatedAs="OLDNAME"/>
<synactions:xmlName annotatedAs="NEWNAME"/>
</synactions:XMLNameSelection>
</synactions:ActionGroup>
</synactions:SynonymActions>
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soannot="http://www.ibm.com/xmlent/annot/emf/synactions"
targetNamespace="http://www.ibm.com/xmlent/annot/emf/synactions">
<xsd:element name="itemName">
<xsd:complexType>
<xsd:attribute use="required" name="annotatedAs" type="xsd:string"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="ExcludeItem">
<xsd:complexType>
<xsd:sequence>
<xsd:element minOccurs="1" maxOccurs="1" ref="soannot:itemName"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="XMLNameSelection">
<xsd:complexType>
<xsd:sequence>
<xsd:element minOccurs="1" maxOccurs="1" ref="soannot:itemName"/>
<xsd:element minOccurs="1" maxOccurs="1" ref="soannot:xmlName"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="ItemSelection">
<xsd:complexType>
<xsd:sequence>
<xsd:element minOccurs="1" maxOccurs="1" ref="soannot:itemName"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="ActionGroup">
<xsd:complexType>
<xsd:sequence>
<xsd:element minOccurs="1" maxOccurs="1" ref="soannot:ExcludeItem"/>
<xsd:element minOccurs="1" maxOccurs="1" ref="soannot:ItemSelection"/>
<xsd:element minOccurs="1" maxOccurs="1" ref="soannot:XMLNameSelection"/>
</xsd:sequence>
<xsd:attribute use="required" name="indicator" type="xsd:string"/>
<xsd:attribute use="optional" name="lang" type="xsd:string"/>
<xsd:attribute use="optional" name="format" type="xsd:string"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="xmlName">
<xsd:complexType>
<xsd:attribute use="required" name="annotatedAs" type="xsd:string"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="SynonymActions">
<xsd:complexType>
<xsd:sequence>
<xsd:element minOccurs="1" maxOccurs="1" ref="soannot:ActionGroup"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
o bien