Dev:Wiki Documentation Guidelines

From railML 2 Wiki
Revision as of 00:15, 24 October 2012 by RailML Superseded Users (talk | contribs) (→‎Text flow templates: German and version markup added)
Jump to navigation Jump to search

Start a new railML Wiki page for a new railML element

Elements without parent inheritance

Some railML elements are re-used across the sub-schemas, e.g. "geoCoord", "valueTable", "efficiency", "*Ref". This section does not cover these re-used element. See next section.

If some currently independently defined railML element is changed into a "general" element and used in "parent inheritance" an according wiki template should be defined and deployed in the original and the new element.

  1. Define the wiki page name in the browser URL:
    http://www.wiki.railml.org/index.php?title=<sub-schema-prefix>:<element-name>
    example: http://www.wiki.railml.org/index.php?title=IS:speedProfiles results in http://www.wiki.railml.org/index.php?title=IS:speedProfiles
  2. You get a blank page with the possibility to "Edit".
    Choose "edit" or bearbeiten!
  3. Insert the element documentation template into the blank editor
    {{ElementDocu}}
    Do the "preview" cycle. :-) Do you encounter some "FIXME" strings? Go further.
  4. Insert parameters, they may occur in any order.
    {{ElementDocu
    |elementName
    |parent
    |childs
    |semantics
    |inheritedAttributes
    |ownAttributes
    |constraints
    |notes
    |example
    }}
    

    Do the "preview" cycle. :-) Nothing changed? That's good news. Go further.

  5. Insert some further information.
    example:
    {{ElementDocu
    |elementName = speedProfiles
    |parent =  {{IS:Tag|infrastructure}}
    |childs = {{IS:Tag|speedProfile}}
    |semantics =
    The element {{IS:Tag|speedProfiles}} works as a "container element" for {{IS:Tag|speedProfile}} elements.
    
    |inheritedAttributes
    |ownAttributes
    |constraints
    |notes
    |example
    }}
    

    Do the "preview" cycle. :-) "FIXME"s left? Fine.

    Leave other parameters blank for easier later edition by other authors.

  6. Describe your changes with "Summary" or Zusammenfassung
  7. Submit your changes with "Save" or Speichern
  8. Done. Thank you for your contribution.

Elements with parent inheritance

Some railML elements are re-used across the sub-schemas, e.g. "geoCoord", "valueTable", "efficiency", "*Ref". The wiki provides general documentation templates for these elements that may be extended by special information for this certain semantics.

For all other elements jump to the previous section.

If some currently independently defined railML element is changed into a "general" element and used in "parent inheritance" an according wiki template should be defined and deployed in the original and the new element.

  1. Define the wiki page name in the browser URL:
    http://www.wiki.railml.org/index.php?title=<sub-schema-prefix>:<element-name>_<parent-element-name>
    example: http://www.wiki.railml.org/index.php?title=IS:geoCoord_mileageChange results in http://www.wiki.railml.org/index.php?title=IS:geoCoord_mileageChange
  2. You get a blank page with the possibility to "Edit".
    Choose "edit" or bearbeiten!
  3. Search the appropriate template for element content to deploy.
  4. Insert the template into the blank editor
    {{<template-name-without-prefix>}}

    example: {{InheritGeoCoord}}

    Do the "preview" cycle. :-) Do you encounter some "FIXME" strings? Go further.
  5. Insert parameters
    {{<template-name-without-prefix>
    |<parameter-name>
    }}

    You will find all possible parameters of a template by searching for {{{...}}} in the template plain code. They may occur in any order.

    example:

    {{InheritGeoCoord
    |parentLink
    |selfLink
    |semantics_en
    |semantics_de
    |constraints_en
    |constraints_de
    |notes_en
    |notes_de
    |coord
    |coord_de
    |extraHeight
    |extraHeight_de
    |epsgCode
    |epsgCode_de
    |heightEpsgCode
    |heightEpsgCode_de
    }}
    

    Do the "preview" cycle. :-) Nothing changed? That's good news. Go further.

  6. Insert some special information that is valid only for this element in a certain position of the XML tree.
    example:
    |parentLink = {{IS:Tag|mileageChange}}
    |selfLink = {{IS:Tag|geoCoord|mileageChange}}
    

    Do the "preview" cycle. :-) "FIXME"s left? Fine.

    Leave other parameters blank for easier later edition by other authors.

    If there are some further explanations, that are not only important for the current element but for all elements of this kind, please edit the template.

  7. Describe your changes with "Summary" or Zusammenfassung
  8. Submit your changes with "Save" or Speichern
  9. Done. Thank you for your contribution.

Text flow templates

Generic documentation links for railML elements

The following templates may be used at every wiki page for refering to a certain railML element documentation site.

Link in angle brackets

The link is shown in angle brackets: <...>. It looks like an XML element.

  • Elements without parent inheritance
    {{<sub-schema-prefix>:Tag|<element-name>}}
    example: {{RS:Tag|fourQuadrantChopper}} results in <fourQuadrantChopper>
  • Elements with parent inheritance
    {{<sub-schema-prefix>:Tag|<element-name>|<parent-element-name>}}

    example: {{RS:Tag|additionalName|vehicle}} results in <additionalName>

Pure link

The link is shown pure without any characters around. This is better for reading a text flow.

  • Elements without parent inheritance
    {{<sub-schema-prefix>:Doc|<element-name>}}
    example: {{RS:Doc|fourQuadrantChopper}} results in fourQuadrantChopper
  • Elements with parent inheritance
    {{<sub-schema-prefix>:Doc|<element-name>|<parent-element-name>}}

    example: {{RS:Doc|additionalName|vehicle}} results in additionalName

Generic links for types

The following templates may be used at every wiki page for refering to a certain simple type constraint.

railML types

It shows a link to the basic W3C XML schema type re-used by railML for a certain reason. It does not cover complex types or enumeration lists.

{{RailMLType|<type-name>}}

example: {{RailMLType|tGenericRef}} results in xs:IDREF

Pure XML Schema types

It shows a link to the basic W3C XML schema type.

{{XsdType|<type-name>}}

example: {{XsdType|string}} results in xs:string

Version management

The current wiki does not support version management itself. That's the reason for the templates explained in the following sections.

New objects

If new objects are introduced with some official version number, use the following template for showing it:

{{Intro | <version-number>}}

example: {{Intro | 2.1}} results in (introduced with version 2.1)

There is no difference in handling between elements, attributes, enumeration values, occurence changes...

Deprecated objects

If objects are declared "deprecated" they are kept until the next major release.

{{Depr | <version-number>}}

example: {{Depr | 2.1}} results in (deprecated with version 2.1)

There is no difference in handling between elements, attributes, enumeration values, occurence changes...

Attributes

The following template may be used at every wiki page for a corporate layout for attributes:

{{Attr | <attribute-name>}}

example: {{Attr | axleSequence}} results in axleSequence

Enumeration values

The following template may be used at every wiki page for a corporate layout for enumeration values:

{{Enum | <enumeration-value>}}

example: {{Enum | mechanical}} results in mechanical

German layout (de: Deutsche Auszeichnung)

It's a good practice to translate some paragraphs and/or words into German since there are many German railML users. In order to offer a flexible layout, please use the following template:

{{Deu | <deutscher-text>}}

example: {{Deu | Deutsche Erläuterung}} results in Deutsche Erläuterung

Adjust the XML tree

  1. Go to the XML tree wiki page
  2. Press "Edit" or Bearbeiten
  3. Crawl to the right position in the railML tree
    Instead of scrolling there, it's easier to "search" for the parent element
  4. Insert a new element with a new line at the appropriate position, if necessary
    Only insert one line for each different element no matter how often it may occur at this certain position in the XML instance document.
    • Start with the appropriate number of stars "*" indicating the depth in the XML tree.
    • Choose the appropriate wiki documentation link in angle brackets
    • Add all possible attributes deploying the Attribute template, separated by comma
      The inherited ones come at least (that's for some quick validation purposes of this page, that may be roughly generated by an XQuery search)
      No matter, if the attributes are optional or mandatory.
    example:
    ***{{TT:Tag|train}} {{Attr|type}}, {{Attr|trainNumber}}, {{Attr|additionalTrainNumber}}, {{Attr|scope}}, {{Attr|processStatus}}, {{Attr|id}}, {{Attr|code}}, {{Attr|name}}, {{Attr|description}}, {{Attr|xml:lang}}
    
  5. Describe your changes with "Summary" or Zusammenfassung
  6. Check your changes with "Preview" or Vorschau
    Adjust the page text where needed
  7. Submit your changes with "Save" or Speichern
  8. Done. Thank you for your contribution.