# CHART Activity algorithm specification files

namespace xsi = "http://www.w3.org/2001/XMLSchema-instance"

element activity {
    attribute xsi:noNamespaceSchemaLocation { "http://chart/schemas/activity.xsd" } &

    ## Give about one sentance describing what this activity does.
    element description { text } &

    ## Link to a web page giving more information.
    element url { text }? &

	## List all events this activity can raise.
    element event { text }* &

    ## General purpose processing algorithm or a report generator.
    element class { "algorithm" | "report" } &

    ## Name of an executable to test this activity.
    element test { text }? &

    ## For a processing algorithm name the executable file.
    element executable { text }? &

    ## For a report activity name the report template XML file inside
    ## settings.REPORT_TEMPLATE_DIR.
    element template { text }? &

	## Allow heavy-weight activities to be restricted to workers with more resources
	element weight { xsd:float }? &

	## Allows workers to target some activities first
	element priority { xsd:float }? &

    ## State which parameters the algorithm needs to be called with
    element calling-convention { "none" | "timerange" | "sid+timerange" | "filename" | "sid+hourly" | "sid+timerange+table"} &

	## Tell the worker this activity should be called automatically after certain tables are written to
    element trigger {
		element with-stats { xsd:boolean }? &
        element type { "orbital" | "daily" | "hourly" | "threedaily" | "20min" }? &
        element table { text }? &
		element latency { xsd:duration }?
    }* &

	## Declare all output tables we can write to.
    element output-table { text }* &

    ## This is purely cosmetic. Tell the report viewer to group together all reports with the
    ## same <group> value.
    element group { text }* &

    ## Enable only for SIDs
    element sid { text }* &

    ## When viewing a report in the report viewer the user can pull down a list of other
    ## reports to switch to. If the activity has <related> reports these are shown at the top.
    element related {
        element report { text }*
    }* &

	element weight { xsd:integer }? &

	element priority { xsd:integer }? &

	element configuration {
		element parameter {
			element name { text } &
			element description { text } &
			element datatype { "path" } &
			element value { text }
		}+
	}?
}

Download as raw Relax-NG Compact here or as raw XSD here