# ############################################################## # # File: PassiveAnomal.rnc - TBD # Version: $Id$ # Purpose: TBD # Reference: http://books.xmlschemata.org/relaxng/page2.html # # ############################################################## # ############################################################## # Namespace definitions # ############################################################## namespace nmwg = "http://ggf.org/ns/nmwg/base/2.0/" namespace passiveanomal = "http://ggf.org/ns/nmwg/tools/passiveanomal/2.0/" namespace nmtm = "http://ggf.org/ns/nmwg/time/2.0/" namespace nmwgr = "http://ggf.org/ns/nmwg/result/2.0/" # ############################################################## # Include additional functionality from other files # ############################################################## include "nmtopo.rnc" include "nmtopo_ver3.rnc" include "result.rnc" include "nmbase.rnc" { Metadata |= PassiveAnomalMetadata Data |= PassiveAnomalData } # ############################################################## # Metadata is the 'data' that describes physical measurements. # Metadata can be something such as a physical address, or # a geographical location; any form of static, re-usable # designation. It is important to note that the subject # namespace and parameters namespace MUST match (or the parameters # can be a generic NMWG) or bad things will occur. # # Example: # # # # # # # # # # # # # # # # ############################################################## PassiveAnomalMetadata = element nmwg:metadata { Identifier & MetadataIdentifierRef? & PassiveAnomalMetadataContent } PassiveAnomalMetadataBlock = PassiveAnomalSubject? & ( PassiveAnomalParameters | Parameters )? PassiveAnomalMetadataContent = ( PassiveAnomalMetadataBlock | FilterMetadataBlock ) & EventType? & Key? # ############################################################## # TBD # # Example: # # # # # # # # # # # # # # # # TEXT # # TEXT # # TEXT # # TEXT # # TEXT # # TEXT # # TEXT # # TEXT # # TEXT # # TEXT # # TEXT # # TEXT # # # # # # ############################################################## PassiveAnomalSubject = element passiveanomal:subject { Identifier & MetadataIdentifierRef? & ( ( EndpointPair | L4EndpointPair ) | ( Interface | BaseInterface | L2Interface | L3Interface ) )? } # ############################################################## # TBD # # Example: # # # # # # # # # # # # # # ############################################################## PassiveAnomalParameters = element passiveanomal:parameters { Identifier & ( PassiveAnomalParameter | PassiveAnomalParameterST | PassiveAnomalParameterET )+ } PassiveAnomalParameter = element nmwg:parameter { attribute name { "flow_h_filter" | "flow_s_type" | "flow_s_thre" | "flow_p_filter" | "characteristics" | "granularity" } & ( attribute value { text } | text ) } PassiveAnomalParameterST = element nmwg:parameter { attribute name { "start_time" } & StartTime } PassiveAnomalParameterET = element nmwg:parameter { attribute name { "end_time" } & EndTime } # ############################################################## # The data block is complex, and has the potential to contain # many things. The data block can be used to return a metadata # block from a request, commonTime or datum elements, keys, # or something that we have perhaps not defined as of yet. # # Example: # # # # # # # # # # # # # # # # # # # # # # # # ############################################################## PassiveAnomalData = element nmwg:data { Identifier & MetadataIdentifierRef? & ( ( Metadata* | PassiveAnomalMetadata* ) | ( PassiveAnomalCommonTime+ & ( PassiveAnomalDatum* | ResultDatum* ) ) | ( PassiveAnomalDatum* | ResultDatum* ) | Key* ) } # ############################################################## # CommonTime is used a a shortcut able to 'factor out' a frequently # occurring time range that a bunch of datum (or other) elements # might share, thus reducing complexity of XML representation. # CommonTime is similar to the other NMWG time stamps (from # nmtime.rnc) in its potential time representations. # # Example: # # # # # # # # # # # # # # # ############################################################## PassiveAnomalCommonTime = element nmwg:commonTime { Type & ( TimeStamp | ( StartTime & ( EndTime | Duration ) ) ) & ( PassiveAnomalDatum* | ResultDatum* ) } # ############################################################## # TBD # # Example: # # # # # # # # ############################################################## PassiveAnomalDatum = element passiveanomal:datum { attribute event_type { xsd:string }? & attribute event_specification { xsd:string }? & attribute event_number { xsd:string }? & ( ( attribute timeType { xsd:string } & attribute timeValue { xsd:string } ) | Time )? }