# ##############################################################
#
# 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
)?
}