* MonoDoc XML Tag Reference

** Introduction

<em>
[This documentation is in progress.  Comments to
<a href="mailto:jbarn@httcb.net">jbarn@httcb.net</a> and/or
<a href="mailto:mono-docs-list@ximian.com">mono-docs-list@ximian.com</a>.]
</em>

MonoDoc XML, our format for multilingual API documentation stored outside of
source files, is very similar to the output of Microsoft's csc /doc.  Minor
alterations have been made to ease human parsing and hand-editing, but
the majority of the tags are identical.  In fact, many of the descriptions
and examples below are taken from the ECMA C# Language Specification with
little or no alteration.

This document provides a list of all available MonoDoc XML tags, with
syntax and examples.  A complete example can be found in
<a href="#appendix-a">Appendix A</a>, and both a <a href="#">DTD</a> and
<a href="#">XSD schema</a> will be available very shortly.

** MonoDoc XML Tags

<dl>
<dt><code><a href="#c">&lt;c&gt;</a></code></dt>
<dd>Mark short sections of text as code.</dd>

<dt><code><code><a href="#code">&lt;code&gt;</a></code></dt></code>
<dd>Mark one or more lines as code or output.</dd>

<dt><code><a href="#doc">&lt;doc&gt;</a></dt></code>
<dd>Root element of documentation XML.</dd>

<dt><code><a href="#event">&lt;event&gt;</a></dt></code>
<dd>Describe an event.</dd>

<dt><code><a href="#example">&lt;example&gt;</a></dt></code>
<dd>An example.</dd>

<dt><code><a href="#exception">&lt;exception&gt;</a></dt></code>
<dd>Specify an exception a method can throw.</dd>

<dt><code><a href="#field">&lt;field&gt;</a></dt></code>
<dd>Describe a field.</dd>

<dt><code><a href="#list">&lt;list&gt;</a></dt></code>
<dd>Create a list or table.</dd>

<dt><code><a href="#method">&lt;method&gt;</a></dt></code>
<dd>Describe a method.</dd>

<dt><code><a href="#para">&lt;para&gt;</a></dt></code>
<dd>Allow text to be structured in paragraphs.</dd>

<dt><code><a href="#param">&lt;param&gt;</a></dt></code>
<dd>Specify a parameter for a method.</dd>

<dt><code><a href="#paramref">&lt;paramref&gt;</a></dt></code>
<dd>Mark a word as a parameter.</dd>

<dt><code><a href="#permission">&lt;permission&gt;</a></dt></code>		
<dd>Define the access level of a member.</dd>

<dt><code><a href="#property">&lt;property&gt;</a></dt></code>
<dd>Describe a property.</dd>

<dt><code><a href="#remarks">&lt;remarks&gt;</a></dt></code>
<dd>Provide verbose information for a type or member.</dd>

<dt><code><a href="#returns">&lt;returns&gt;</a></dt></code>
<dd>Specify the return value of a method.</dd>

<dt><code><a href="#see">&lt;see&gt;</a></dt></code>
<dd>Specify a link.</dd>

<dt><code><a href="#seealso">&lt;seealso&gt;</a></dt></code>
<dd>Specify a 'see also' entry.</dd>

<dt><code><a href="#summary">&lt;summary&gt;</a></dt></code>
<dd>Provide a brief (usually one sentence) description of a member or type.</dd>

<dt><code><a href="#type">&lt;type&gt;</a></dt></code>
<dd>Describe a type.</dd>
</dl>

** Definitions and Examples

*** <a name="c">&lt;c&gt;</a>

This tag can be used to mark short, inline fragments of text that should 
be considered source code or program output.  User agents should render 
this tag in a special -- likely monospace -- font.  For larger sections, 
use <a href="#code"><code>&lt;code&gt;</code></a>.

**** Syntax

<pre>
&lt;c&gt;code or output text&lt;/c&gt;
</pre>

**** Example

<pre>   
&lt;remarks&gt;
    Class &lt;c&gt;Point&lt;/c&gt; models a point in two-dimensional space.
&lt;/remarks&gt;
</pre>

*** <a name="code">&lt;code&gt;</a>

This tag can be used to mark one or more lines of text as source code or 
program output.  User agents should render this tag in a special (likely 
monospace) font, and preserve both whitespace and newlines.

**** Syntax

	<code>&lt;code&gt;source or program output&lt;/code&gt;</code>

**** Example

<pre>
&lt;summary&gt;
    This method changes the point's location by the given
    x- and y-offsets.
    &lt;example lang="C#"&gt;
        A C# example:
        &lt;code&gt;
            Point p = new Point(3, 5);
            p.Translate(-1, 3);
            // p == (2, 8);
        &lt;/code&gt;
    &lt;/example&gt;
&lt;/summary&gt;
</pre>

*** <a name="doc">&lt;doc&gt;</a>

This tag is the root element of the documentation file.  It can contain 
any number of &lt;type&gt; elements.

**** Syntax

<code>&lt;doc lang="language" assembly="assembly"&gt;typedocs&lt;/doc&gt;</code>

<blockquote>
<em>lang="language"</em><br />
The two-letter ISO code that specifies what language the contained
documentation is written in.
</blockquote>

**** Example

<pre>
&lt;doc lang="en"&gt;
    &lt;type name="Graphics.Point"&gt;
        &lt;!-- ... --&gt;
    &lt;/type&gt;
&lt;/doc&gt; 
</pre>

*** <a name="event">&lt;event&gt;</a>

This tag documents an event.

**** Syntax

<code>&lt;event name="eventname"&gt;documentation&lt;/event&gt;</code>

<blockquote>
<em>name="eventname"</em><br />
The name of the event being documented.
</blockquote>
		
**** Example

<pre>
&lt;event name="Click"&gt;
    &lt;summary&gt;
        Occurs when the control is clicked.
    &lt;/summary&gt;
    &lt;data&gt;
        The event handler receives an argument of type EventArgs
        containing data related to this event.
    &lt;/data&gt;
    &lt;remarks&gt;
        &lt;para&gt;The ControlStyles.StandardClick style must be set 
        for this event to be raised.&lt;/para&gt;
        &lt;para&gt;For more information about handling events, see 
        Consuming Events.&lt;/para&gt;
    &lt;/remarks&gt;
&lt;/event&gt;
</pre>

*** <a name="example">&lt;example&gt;</a>

This tag marks a section of text as an example, and optionally specifies 
what programming language <code><a href="#code">&lt;code&gt;</a></code> portions of the example are written in.

**** Syntax

<code><example lang="language">example text and code</example></code>

<blockquote>
<em>lang="language"</em><br />
(optional) The name of the programming language <code><a href="#code">&lt;code&gt;</a></code> blocks in this example
use.  This information can be used by user agents to provide
intelligent access to examples in multiple languages.
</blockquote>

**** Example

See <code><a href="#code">&lt;code&gt;<a/></code> for an example.

*** <a name="exception">&lt;exception&gt;</a>

This tag provides a way to specify the exceptions a method can throw.

**** Syntax

<code>&lt;exception cref="exception-type"&gt;description&lt;/exception&gt;</code>

<blockquote>
<em>cref="exception-type"</em><br />
The name of an exception type.
</blockquote>

**** Example

<pre>
&lt;exception cref="System.IO.FileNotFoundException"&gt;
    Thrown when the requested file is not found.
&lt;/exception&gt;
</pre>

*** <a name="field">&lt;field&gt;</a>

This tag is used to describe a field.

**** Syntax

<code>&lt;field name="fieldname"&gt;documentation&lt;/field&gt;</code>

<blockquote>
<em>name="fieldname"</em><br />
The name of the field being documented.
</blockquote>
	
**** Example

<pre>
&lt;field name="x"&gt;
    &lt;summary&gt;
        Instance variable &lt;c&gt;x&lt;/c&gt; represents the point's 
	x-coordinate.
    &lt;/summary&gt;
&lt;/field&gt;
</pre>

*** <a name="list">&lt;list&gt;</a>

This tag is used to create a list or table of items.  It may contain a 
<code>&lt;listheader&gt;</code> block to define the heading row of either a table or 
definition list.  (When defining a table, only an entry for 'term' in the 
heading need be supplied.)

Each item in the list is specified with an <code>&lt;item&gt;</code> block.  When creating a 
definition list, both <code>&lt;term&gt;</code> and <code>&ltdescription&gt;</code> must be specified.  
However, for a table, bulleted list, or numbered list, only <code>&lt;description&gt;</code>
need be specified.

**** Syntax

<pre>
&lt;list type="bullet" | "number" | "table"&gt;
   &lt;listheader&gt;
       &lt;term&gt;term&lt;/term&gt;
       &lt;description&gt;description&lt;/description&gt;
   &lt;/listheader&gt;
   &lt;item&gt;
       &lt;term&gt;term&lt;/term&gt;
       &lt;description&gt;description&lt;/description&gt;
   &lt;/item&gt;
   
   ...
  
&lt;/list&gt;
</pre>
	
<blockquote>
<em>term</em><br />
The term to define, whose definition is in <code>&lt;description&gt;</code>.
<br /><br />	
<em>description</em><br />
Either an item in a bullet or numbered list, or the definition of a <code>&lt;term&gt;</code>.
</blockquote>

**** Example

<pre>
&lt;list type="bullet"&gt;
    &lt;item&gt;
        &lt;description&gt;Item 1&lt;/description&gt;
    &lt;/item&gt;
    &lt;item&gt;
        &lt;description&gt;Item 2&lt;/description&gt;
    &lt;/item&gt;
&lt;/list&gt;
</pre>

*** <a name="method">&lt;method&gt;</a>

This tag is the overall containing tag for documenting a method.

**** Syntax

<code>&lt;method name="methodname"&gt;documentation&lt;/method&gt;</code>

**** Example

<pre>
&lt;method name="op_Equality(Graphics.Point,Graphics.Point)"&gt;
    &lt;summary&gt;
        This operator determines whether two points have
        the same location.
    &lt;/summary&gt;
    &lt;param name="p1"&gt;
        &lt;c&gt;p1&lt;/c&gt; is the first Point to be compared.
    &lt;/param&gt;
    &lt;param name="p2"&gt;
        &lt;c&gt;p2&lt;/c&gt; is the second Point to be compared.
    &lt;/param&gt;
    &lt;returns&gt;
        True if the points have the same location and they
        have the exact same type; otherwise, false.
    &lt;/returns&gt;
    &lt;seealso cref="Equals(System.Object)" /&gt;
    &lt;seealso cref="op_Inequality(Graphics.Point,Graphics.Point)" /&gt;
&lt;/method&gt;
</pre>

*** <a name="para">&lt;para&gt;</a>


This tag is for use inside other tags such as <code>&lt;remarks&gt;</code> or <code>&lt;returns&gt;</code>, and 
allows text to be structured into paragraphs.

**** Syntax

<code>&lt;para&gt;text&lt;/para&gt;</code>

**** Example

<pre>
&lt;summary&gt;
    &lt;para&gt;
    This is the entry point of the &lt;c&gt;Point&lt;/c&gt; class testing 
    program.
    &lt;/para&gt;
    &lt;para&gt;
    This program tests each method and operator, and
    is intended to be run after any non-trivial maintenance has
    been performed on the &lt;c&gt;Point&lt;/c&gt; class.
    &lt;/para&gt;
&lt;/summary&gt;
</pre>

*** <a name="param">&lt;param&gt;</a>

This tag is used to describe a parameter for a method, constructor, or 
indexer.

**** Syntax

<code>&lt;param name="name"&gt;description&lt;/param&gt;</code>
	
<blockquote>
<em>name</em><br />
The name of the parameter.
</blockquote>

**** Example

<pre>
&lt;summary&gt;
    This is the entry point of the &lt;c&gt;Point&lt;/c&gt; 
    class.
&lt;/summary&gt;
&lt;param name="xor"&gt;&lt;c&gt;xor&lt;/c&gt; is the new x-coordinate.&lt;/param&gt;
&lt;param name "yor"&gt;&lt;c&gt;yor&lt;/c&gt; is the new y-coordinate.&lt;/param&gt;
</pre>

*** <a name="paramref">&lt;paramref&gt;</a>

This tag is used to indicate that a word is a parameter.  User agents 
could use this information for special formatting or hyperlink insertion.

**** Syntax

<code>&lt;paramref name="name" /&gt;</code>

<blockquote>
<em>name</em><br />
The name of the parameter.
</blockquote>

**** Example

<pre>
&lt;summary&gt;
    This constructor initializes the new Point to
    (&lt;paramref name="xor" /&gt;,&lt;paramref name="yor" /&gt;).
&lt;/summary&gt;
&lt;param name="xor"&gt;&lt;c&gt;xor&lt;/c&gt; is the new x-coordinate.&lt;/param&gt;
&lt;param name "yor"&gt;&lt;c&gt;yor&lt;/c&gt; is the new y-coordinate.&lt;/param&gt;
</pre>

*** <a name="permission">&lt;permission&gt;</a>

This tag allows the security accessibility of a member to be documented.

**** Syntax

<code>&lt;permission cref="member"&gt;description&lt;/permission&gt;</code>

<blockquote>
<em>cref="member"</em><br />
The name of a member.</br>
</blockquote>

**** Example

<pre>
&lt;permission cref="System.Security.PermissionSet"&gt;
    Everyone can access this method.
&lt;/permission&gt;
</pre>        

*** <a name="property">&ltproperty&gt;</a>

This tag is the overall containing tag for documenting a property.

**** Syntax

<code>&lt;property name="propertyname"&gt;documentation&lt;/property&gt;</code>

<blockquote>
<em>name="propertyname"</em><br />
The name of the property.
</blockquote>

**** Example

<pre>
&lt;property name="X"&gt;
    &lt;summary&gt;
        Gets or sets the point's x-coordinate.
    &lt;value&gt;
        The point's x-coordinate.
    &lt;/value&gt;
&lt;/property&gt;
</pre>


*** <a name="remarks">&lt;remarks&gt;</a>

This tag contains extended discussion and information about a member or
a type. <em>[jbarn: This differs from both the ECMA docs and 
portions of Microsoft's documentation, but seems consistent with both 
common usage, and, more importantly, NDoc convention.]</em>

**** Syntax

<code>&lt;remarks&gt;description&lt;/remarks&gt;</code>
	
**** Example

<pre>
&lt;type name="Graphics.Point"&gt;
    &lt;summary&gt;
        Models a point in a two-dimensional plane.
    &lt;/summary&gt;
    &lt;remarks&gt;
        Herein I might have an extended discussion of
        the validity of Cartesian coordinate systems,
        with examples pro and con, and perhaps
        some code.
    &lt;/remarks&gt;
    
    &lt;!-- ... --&gt;
&lt;/type&gt;
</pre>

*** <a name="returns">&lt;returns&gt;</a>

This tag is used to describe the return value of a method.

**** Syntax

<code>&lt;returns&gt;description&lt;/returns&gt;</code>

**** Example

<pre>
&lt;method name="op_Inequality(Graphics.Point,Graphics.Point)"&gt;
    &lt;summary&gt;
        This operator determines whether two points have the
        same location.
    &lt;/summary&gt;
    &lt;param name="p1"&gt;&lt;c&gt;p1&lt;/c&gt; is the first Point to be compared.&lt;/param&gt;
    &lt;param name="p2"&gt;&lt;c&gt;p2&lt;/c&gt; is the second Point to be compared.&lt;/param&gt;
    &lt;returns&gt;
        True if the points do not have the same location and they
        have the exact same type; otherwise, false.
    &lt;/returns&gt;
&lt;/method&gt;
</pre>

*** <a name="see">&lt;see&gt;</a>

This tag allows a link to be specified within documentation text.  (Use 
<code>&lt;seealso&gt;</code> to indicate links that should appear in a 'See Also' section.)

**** Syntax

<code>&lt;see cref="destination" /&gt;</code>

<blockquote>
<em>cref="destination"</em><br />
A destination, such as a type or a member of a type.
</blockquote>

**** Example

<pre>
&lt;summary&gt;
    This method changes the point's location to the given
    coordinates.  This is an asinine way to insert a link,
    but &lt;see cref="Equals(Object)" /&gt; to understand
    how points are compared.
&lt;/summary&gt;
</pre>	

*** <a name="seealso">&lt;seealso&gt;</a>

This tag allows an entry to be generated for the 'See Also' section.  (Use 
<code>&lt;see&gt;</code> to specify a link from within text.)

**** Syntax

<code>&lt;seealso cref="destination" /&gt;</code>
	
<blockquote>
<em>cref="destination"</em><br />
A destination, such as a type or a member of a type.
</blockquote>

**** Example

<pre>
&lt;summary&gt;
    This method determines whether two Points have the
    same location.
&lt;/summary&gt;
&lt;seealso cref="op_Equality(Graphics.Point,Graphics.Point)" /&gt;
&lt;seealso cref="op_Inequality(Graphics.Point,Graphics.Point" /&gt;
</pre>

*** <a name="summary">&lt;summary&gt;</a>

This tag contains a short summary of a member or type, 
often one sentence. <em>[jbarn: This differs from both the ECMA docs and 
portions of Microsoft's documentation, but seems consistent with both 
common usage, and, more importantly, NDoc convention.]</em>

**** Syntax

<code>&lt;summary&gt;description&lt;/summary&gt;</code>

**** Example

<pre>
&lt;summary&gt;
    This is the entry point of the &lt;c&gt;Point&lt;/c&gt; class testing
    program.
&lt;/summary&gt;
&lt;remarks&gt;
    This program tests each method an operator, and is intended
    to be run after any non-trivial maintenance is performed
    on the &lt;c&gt;Point&lt;/c&gt; class.
&lt;/remarks&gt;
</pre>

*** <a name="type">&lt;type&gt;</a>

This tag is the overall containing tag for documenting a type.

**** Syntax

<code>&lttype name="typename" assembly="assemblyname"&gt;documentation&lt;/type&gt;</code>

<blockquote>
<em>name="typename"</em><br />
The name of the type being documented.
<br /><br />
<em>assembly="assemblyname"</em><br />
The assembly this type resides in.  This attribute is not required for nested types.
</blockquote>

**** Example

<pre>
&lt;type name="Graphics.Point" assembly="Point"&gt;
    &lt;summary&gt;
        Models a point in two-dimensional space.
    &lt;/summary&gt;
    
    &lt;!-- members --&gt;
    
    &lt;field name="x"&gt;
        &lt;summary&gt;
            Represents the point's x-coordinate.
        &lt;/summary&gt;
    &lt;/field&gt;
&lt;/type&gt;
</pre>

** <a name="appendix-a">Appendix A: Complete Example</a>

<em>[jbarn: Please, please, don't take the human-readable portions of
this example to be good guidelines for writing your own documentation.
this XML is intended only to show structure.]</em>

<pre>
&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;doc lang="en"&gt;
    &lt;type name="Graphics.Point" assembly="Point"&gt;
        &lt;summary&gt;
            Models a point in a two-dimensional plane.
        &lt;/summary&gt;
        &lt;remarks&gt;
            No useful remarks.
        &lt;/remarks&gt;
        
        &lt;!-- fields --&gt;
        &lt;field name="x"&gt;
            &lt;summary&gt;
                Instance variable &lt;c&gt;x&lt;/c&gt; represents the point's x-coordinate.
            &lt;/summary&gt;
        &lt;/field&gt;
        
        &lt;field name="y"&gt;
            &lt;summary&gt;
                Instance variable &lt;c&gt;y&lt;/c&gt; represents the point's y-coordinate.
            &lt;/summary&gt;
        &lt;/field&gt;
        
        &lt;!-- methods --&gt;
        &lt;method name="#ctor"&gt;
            &lt;summary&gt;
                Initializes the new point to &lt;c&gt;(0,0)&lt;/c&gt;.
            &lt;/summary&gt;
        &lt;/method&gt;
        
        &lt;method name="#ctor(System.Int32,System.Int32)"&gt;
            &lt;summary&gt;
                Initializes the new Point to (&lt;paramref name="xor" /&gt;,&lt;paramref name="yor" /&gt;).
            &lt;/summary&gt;
            &lt;param name="xor"&gt;&lt;c&gt;xor&lt;/c&gt; is the new x-coordinate.&lt;/param&gt;
            &lt;param name="yor"&gt;&lt;c&gt;yor&lt;/c&gt; is the new y-coordinate.&lt;/param&gt;
        &lt;/method&gt;
        
        &lt;method name="Move(System.Int32,System.Int32)"&gt;
            &lt;summary&gt;
                This method changes the point's location to the given coordinates.
            &lt;/summary&gt;
            &lt;param name="xor"&gt;&lt;c&gt;xor&lt;/c&gt; is the new x-coordinate.&lt;/param&gt;
            &lt;param name="yor"&gt;&lt;c&gt;yor&lt;/c&gt; is the new y-coordinate.&lt;/param&gt;
            &lt;seealso cref="Translate(System.Int32,System.Int32)" /&gt;
        &lt;/method&gt;
        
        &lt;method name="Translate(System.Int32,System.Int32)"&gt;
            &lt;summary&gt;This method changes the point's location by the given x- and y-offsets.&lt;/summary&gt;
            &lt;remarks&gt;
                &lt;example lang="C#"&gt;
                    A C# example:
                        &lt;code&gt;
                            Point p = new Point(3, 5);
                            p.Translate(-1, 3);
                        &lt;/code&gt;
                    This code results in &lt;c&gt;p&lt;/c&gt; having the value (2,8).
                &lt;/example&gt;
            &lt;/remarks&gt;
            &lt;param name="xor"&gt;&lt;c&gt;xor&lt;/c&gt; is the relative x-offset.&lt;/param&gt;
            &lt;param name="yor"&gt;&lt;c&gt;yor&lt;/c&gt; is the relative y-offset.&lt;/param&gt;
            &lt;seealso cref="Move(System.Int32,System.Int32)" /&gt;
        &lt;/method&gt;
        
        &lt;method name="Equals(System.Object)"&gt;
            &lt;summary&gt;This method determines whether two points have the same location.&lt;/summary&gt;
            &lt;param name="o"&gt;&lt;c&gt;o&lt;/c&gt; is the object to be compared to the current object.&lt;/param&gt;
            &lt;returns&gt;True if the Points have the same location and they have the exact same
            type; otherwise, false.&lt;/returns&gt;
            &lt;seealso cref="op_Equality(Graphics.Point,Graphics.Point)" /&gt;
            &lt;seealso cref="op_Inequality(Graphics.Point,Graphics.Point" /&gt;
        &lt;/method&gt;
        
        &lt;method name="ToString"&gt;
            &lt;summary&gt;Report a point's location as a string.&lt;/summary&gt;
            &lt;returns&gt;A string representing a point's location, in the form (x,y), without any
            leading, trailing, or embedded whitespace.&lt;/returns&gt;
        &lt;/method&gt;
        
        &lt;method name="op_Equality(Graphics.Point,Graphics.Point)"&gt;
            &lt;summary&gt;This operator determines whether two points have the same location.&lt;/summary&gt;
            &lt;param name="p1"&gt;&lt;c&gt;p1&lt;/c&gt; is the first Point to be compared.&lt;/param&gt;
            &lt;param name="p2"&gt;&lt;c&gt;p2&lt;/c&gt; is the second Point to be compared.&lt;/param&gt;
            &lt;returns&gt;True if the points have the same location and they have the exact same
            type; otherwise, false.&lt;/returns&gt;
            &lt;seealso cref="Equals(System.Object)" /&gt;
            &lt;seealso cref="op_Inequality(Graphics.Point,Graphics.Point)" /&gt;
        &lt;/method&gt;

        &lt;method name="op_Inequality(Graphics.Point,Graphics.Point)"&gt;
            &lt;summary&gt;This operator determines whether two points have the same location.&lt;/summary&gt;
            &lt;param name="p1"&gt;&lt;c&gt;p1&lt;/c&gt; is the first Point to be compared.&lt;/param&gt;
            &lt;param name="p2"&gt;&lt;c&gt;p2&lt;/c&gt; is the second Point to be compared.&lt;/param&gt;
            &lt;returns&gt;True if the points do not have the same location and they have the exact same
            type; otherwise, false.&lt;/returns&gt;
            &lt;seealso cref="Equals(System.Object)" /&gt;
            &lt;seealso cref="op_Equality(Graphics.Point,Graphics.Point)" /&gt;
        &lt;/method&gt;
        
        &lt;method name="Main"&gt;
            &lt;summary&gt;
                This is the entry point of the Point class testing program.
            &lt;/summary&gt;
            &lt;remarks&gt;
                &lt;para&gt;This program tests each method and operator, and is intended to be run after
                any non-trivial maintenance has been performed on the Point class.&lt;/para&gt;
            &lt;/remarks&gt;
        &lt;/method&gt;
        
        &lt;!-- properties --&gt;
        &lt;property name="X"&gt;
            &lt;value&gt;Property &lt;c&gt;X&lt;/c&gt; represents the point's x-coordinate.&lt;/value&gt;
        &lt;/property&gt;
        
        &lt;property name="Y"&gt;
            &lt;value&gt;Property &lt;c&gt;y&lt;/c&gt; represents the point's y-coordinate.&lt;/value&gt;
        &lt;/property&gt;
    &lt;/type&gt;
&lt;/doc&gt;
</pre>

