Adding Comments, Annotation, and Documentation Nodes to XML Schemas

The XML Schema Recommendation provides comment and annotation nodes for you to provide information that documents an XML Schema. You can add these nodes to any node in an XML Schema.

The difference between comments and annotations is that a human being must read a comment node for it to have meaning. An annotation element allows you to specify nodes that a stylesheet can operate on.

Comments

You cannot add comments in the Diagram tab.

To add comments in the Tree tab:
1. Click any node in your schema.
2. In the left tool bar, click New Comment . In the Tree view, Stylus Studio displays a field for the comment.
3. Type your comment and press Enter.

Annotations

You use an annotation element to provide information about the XML Schema. You can annotate any node in your XML Schema. The annotation element always contains at least one appInfo or documentation node. Any text you want to enter must be entered in one of these nodes.

Diagram View

When you create an annotation in the Diagram tab, you create the element and specify its subelement ( appInfo or documentation) in the Diagram tab. You can further describe the node

  • In the Diagram tab, by editing the node properties directly
  • In the Properties window
  • In the Text pane
To add an annotation:
1. Right-click the node you want to annotate.
2. Select Add > Annotation from the shortcut menu.

The annotation icon appears in the Diagram tab .

3. Right-click the annotation icon and select the type of annotation you want to define - appInfo ( )or documentation ( ).
4. In the text pane, type the text for the appInfo or documentation node.

Tip

 

Stylus Studio's backmapper identifies the line representing the element you created in step 3 in the text pane on the Diagram.

Tree View

To add an annotation:
1. Click the node you want to annotate.
2. In the left tool bar, click New Annotation . Stylus Studio creates and selects an Annotation node.
3. In the left tool bar, click New Documentation or New Application Info .
4. If you added documentation, in the Properties window, double-click the Source field and type the URL or file path for the documentation you want to include in the schema, and press Enter.

Double-click the Language field and enter the language of the contents of the source file.

5. In the left tool bar, click New Text . In the Tree view, Stylus Studio displays a field for the new text.

Moving a Comment or Annotation

If the parent of the new comment or annotation node has more than one child, you can move the comment or annotation with the up or down arrow. However, you cannot move the comment or annotation out of the scope of its parent.

Example

In an XML Schema, you might have a comment node such as the following:

<xsd:schema ...>
               

              
<!-- The following element is .... -->
                   
<xsd:element name="..."/>
                   

                

The contents of a comment node have meaning only when a person reads them. However, the contents of annotation nodes can be operated on. For example:

<xsd:schema ... > 
               

              
<xsd:element name="foo"> 
                   
<xsd:annotation> 
                   

                
<xsd:documentation language="en"> This is a <b>foo</b> element. Use it for ... </xsd:documentation> <xsd:documentation language="jp"> xksnjgfyre fvhfdbvhjds </xsd:documentation>
</xsd:annotation> 
                   
</xsd:element> 
                   
...
                   

                

You can apply an XSLT stylesheet to this XML Schema document. The stylesheet could generate an HTML manual by extracting the Documentation nodes in the desired language:

<xsl:stylesheet ... > 
               

              
<xsl:template match="xsd:element"> 
                   
<xsl:apply-templates select=
                   

                
"xsd:annotation/xsd:documentation[@language='en']"/>
</xsl:template> 
                   
... 
                   

                

 
Free Stylus Studio XML Training: