Files
C4IT-F4SD-Collector/C4IT_DataHistoryProvider_Test/Config/F4SD-DataClusters-Configuration.xsd

432 lines
16 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:simpleType name="InformationClassEnum">
<xs:restriction base="xs:NCName">
<xs:enumeration value="User"/>
<xs:enumeration value="Computer"/>
<xs:enumeration value="Ticket"/>
<xs:enumeration value="VirtualSession"/>
<xs:enumeration value="MobileDevice"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="OriginEnum">
<xs:restriction base="xs:NCName">
<xs:enumeration value="Main"/>
<xs:enumeration value="NexthinkNxql"/>
<xs:enumeration value="ActiveDirectory"/>
<xs:enumeration value="AzureAD"/>
<xs:enumeration value="F4sdAgent"/>
<xs:enumeration value="M42Wpm"/>
<xs:enumeration value="Intune"/>
<xs:enumeration value="Citrix"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="TableTypeEnum">
<xs:restriction base="xs:NCName">
<xs:enumeration value="Static"/>
<xs:enumeration value="History"/>
<xs:enumeration value="HistoryEvents"/>
<xs:enumeration value="Events"/>
<xs:enumeration value="Selection"/>
<xs:enumeration value="StaticDetails"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="TableCachedEnum">
<xs:restriction base="xs:NCName">
<xs:enumeration value="Default"/>
<xs:enumeration value="Yes"/>
<xs:enumeration value="No"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="StaticSourceTypeEnum">
<xs:restriction base="xs:NCName">
<xs:enumeration value="Query"/>
<xs:enumeration value="Static"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="TableColumnTypeEnum">
<xs:restriction base="xs:NCName">
<xs:enumeration value="string"/>
<xs:enumeration value="guid"/>
<xs:enumeration value="int"/>
<xs:enumeration value="bigint"/>
<xs:enumeration value="float"/>
<xs:enumeration value="datetime"/>
<xs:enumeration value="version"/>
<xs:enumeration value="md5"/>
<xs:enumeration value="sid"/>
<xs:enumeration value="ipv4"/>
<xs:enumeration value="ipv6"/>
<xs:enumeration value="text"/>
<xs:enumeration value="boolean"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="TableColumnCharCaseEnum">
<xs:restriction base="xs:NCName">
<xs:enumeration value="none"/>
<xs:enumeration value="lower"/>
<xs:enumeration value="upper"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="AggregationEnum">
<xs:restriction base="xs:NCName">
<xs:enumeration value="first"/>
<xs:enumeration value="min"/>
<xs:enumeration value="max"/>
<xs:enumeration value="sum"/>
<xs:enumeration value="average"/>
<xs:enumeration value="count"/>
<xs:enumeration value="valuecount"/>
<xs:enumeration value="latestValue"/>
<xs:enumeration value="latestTime"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="M42PickupSortEnum">
<xs:restriction base="xs:NCName">
<xs:enumeration value="byPosition"/>
<xs:enumeration value="byName"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="guid">
<xs:restriction base="xs:string">
<xs:pattern value="[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="ColumnList">
<xs:list itemType="xs:NCName"/>
</xs:simpleType>
<xs:element name="F4SD-DataClusters-Configuration">
<xs:complexType>
<xs:sequence>
<xs:element ref="InformationClasses" minOccurs="1" maxOccurs="1"/>
<xs:element ref="DataCluster" minOccurs="1" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:key name="TableId">
<xs:selector xpath="./DataCluster/Table"/>
<xs:field xpath="@Name"/>
</xs:key>
<xs:unique name="UniqueTables">
<xs:selector xpath="./DataCluster/Table"/>
<xs:field xpath="@Name"/>
</xs:unique>
</xs:element>
<xs:element name="InformationClasses">
<xs:complexType>
<xs:sequence>
<xs:element ref="InformationClass" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="InformationClass">
<xs:complexType>
<xs:sequence>
<xs:element ref="InformationClass-Column" minOccurs="1" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="Name" type="xs:NCName" use="required"/>
<xs:attribute name="Description" type="xs:string" use="optional"/>
</xs:complexType>
</xs:element>
<xs:complexType name="TableColumnBaseType">
<xs:choice>
<xs:element ref="DataCategories" minOccurs="0" maxOccurs="1" />
</xs:choice>
<xs:attribute name="Name" type="xs:NCName" use="required"/>
<xs:attribute name="Type" use="required" type="TableColumnTypeEnum"/>
<xs:attribute name="Cardinal" type="xs:int" use="optional"/>
<xs:attribute name="Default" type="xs:string" use="optional"/>
<xs:attribute name="CharCase" type="TableColumnCharCaseEnum" use="optional"/>
<xs:attribute name="Description" type="xs:string" use="optional"/>
<xs:attribute name="DisplayName" type="xs:string" use="optional"/>
</xs:complexType>
<xs:element name="DataCategories">
<xs:complexType>
<xs:sequence>
<xs:element name="Category" minOccurs="1" maxOccurs="unbounded">
<xs:simpleType>
<xs:restriction base="xs:string" />
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="InformationClass-Column">
<xs:complexType>
<xs:complexContent>
<xs:extension base="TableColumnBaseType">
<xs:attribute name="Index" type="xs:boolean" use="optional"/>
<xs:attribute name="Search" type="xs:boolean" use="optional"/>
<xs:attribute name="Reverse" type="xs:boolean" use="optional"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="DataCluster">
<xs:complexType>
<xs:sequence>
<xs:choice maxOccurs="unbounded" minOccurs="1">
<xs:element ref="Table"/>
<xs:element ref="JoinedTable"/>
</xs:choice>
</xs:sequence>
<xs:attribute name="Name" type="xs:NCName" use="required"/>
<xs:attribute name="Origin" use="required" type="OriginEnum"/>
<xs:attribute name="InformationClass" type="InformationClassEnum" use="required"/>
<xs:attribute name="Description" type="xs:string" use="optional"/>
</xs:complexType>
</xs:element>
<xs:complexType name="TableBaseType">
<xs:sequence>
<xs:choice>
<xs:element ref="Nexthink-NXQL-Template" maxOccurs="1" minOccurs="0"/>
<xs:element ref="Matrix42-Pickup-Template" maxOccurs="1" minOccurs="0"/>
<xs:element ref="Matrix42-DataQueryItems-Template" maxOccurs="1" minOccurs="0"/>
</xs:choice>
<xs:element ref="Table-Columns" maxOccurs="1" minOccurs="1"/>
</xs:sequence>
<xs:attribute name="Name" type="xs:NCName" use="required"/>
<xs:attribute name="Description" type="xs:string" use="optional"/>
</xs:complexType>
<xs:element name="Table">
<xs:complexType>
<xs:complexContent>
<xs:extension base="TableBaseType">
<xs:sequence>
<xs:element ref="AdditionalTableName" maxOccurs="unbounded" minOccurs="0"/>
<xs:element ref="AutoCreate-Historic-Table" maxOccurs="unbounded" minOccurs="0"/>
<xs:element ref="Table-Reference" maxOccurs="unbounded" minOccurs="0"/>
<xs:element ref="Table-Index" maxOccurs="unbounded" minOccurs="0"/>
</xs:sequence>
<xs:attribute name="SourceName" type="xs:string" use="optional"/>
<xs:attribute name="Type" type="TableTypeEnum" use="required"/>
<xs:attribute name="Key" type="ColumnList" use="required"/>
<xs:attribute name="Cached" type="TableCachedEnum" use="optional"/>
<xs:attribute name="EventTimeCol" type="xs:NCName" use="optional"/>
<xs:attribute name="LateDelivery" type="xs:boolean" use="optional"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:keyref name="TableJoinToRef" refer="TableId">
<xs:selector xpath="."/>
<xs:field xpath="@JoinTo"/>
</xs:keyref>
</xs:element>
<xs:element name="JoinedTable">
<xs:complexType>
<xs:sequence>
<xs:element ref="SubTable" maxOccurs="unbounded" minOccurs="1"/>
<xs:element ref="Table-Reference" maxOccurs="unbounded" minOccurs="0"/>
</xs:sequence>
<xs:attribute name="Name" type="xs:NCName" use="required"/>
<xs:attribute name="Type" type="TableTypeEnum" use="required"/>
<xs:attribute name="Cached" type="TableCachedEnum" use="optional"/>
<xs:attribute name="Key" type="ColumnList" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="SubTable">
<xs:complexType>
<xs:complexContent>
<xs:extension base="TableBaseType">
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="AdditionalTableName">
<xs:complexType>
<xs:attribute name="Name" type="xs:NCName" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="AutoCreate-Historic-Table">
<xs:complexType>
<xs:attribute name="Name" type="xs:NCName" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="Nexthink-NXQL-Template">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="Limit" type="xs:unsignedLong" use="optional"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="Matrix42-Pickup-Template">
<xs:complexType>
<xs:attribute name="PickupName" type="xs:string" use="required"/>
<xs:attribute name="FilteredGroup" type="xs:positiveInteger" use="optional"/>
<xs:attribute name="Sorting" type="M42PickupSortEnum" use="optional"/>
</xs:complexType>
</xs:element>
<xs:element name="Matrix42-DataQueryItems-Template">
<xs:complexType>
<xs:attribute name="EntityClassName" type="xs:NCName" use="required"/>
<xs:attribute name="EntityTypeNames" type="ColumnList" use="required"/>
<xs:attribute name="OrderBy" type="xs:string " use="optional"/>
<xs:attribute name="WhereExpression" type="xs:string " use="optional"/>
<xs:attribute name="DataQueryName" type="xs:string" use="optional"/>
</xs:complexType>
</xs:element>
<xs:element name="Table-Columns">
<xs:complexType>
<xs:sequence>
<xs:choice maxOccurs="unbounded" minOccurs="1">
<xs:element ref="Table-Column"/>
<xs:element ref="Table-Column-Computation"/>
<xs:element ref="Table-Column-NxtCompute"/>
<xs:element ref="Table-Column-NxtCategory"/>
<xs:element ref="Table-Column-NxtScore"/>
<xs:element ref="Table-Column-NxtAction"/>
<xs:element ref="Table-Column-NxtCampaign"/>
</xs:choice>
</xs:sequence>
</xs:complexType>
<xs:unique name="UniqueTableColumns">
<xs:selector xpath="./Table-Column"/>
<xs:field xpath="@Name"/>
</xs:unique>
</xs:element>
<xs:complexType name="TableColumnType">
<xs:complexContent>
<xs:extension base="TableColumnBaseType">
<xs:attribute name="SourceType" use="optional" type="StaticSourceTypeEnum"/>
<xs:attribute name="SourceName" type="xs:string" use="optional"/>
<xs:attribute name="SourceTable" type="xs:string" use="optional"/>
<xs:attribute name="SourceJsonField" type="xs:string" use="optional"/>
<xs:attribute name="SourceJsonColumn" type="xs:nonNegativeInteger" use="optional"/>
<xs:attribute name="Aggregation" type="AggregationEnum" use="optional"/>
<xs:attribute name="FillEmptyEntries" type="xs:boolean" use="optional"/>
<xs:attribute name="LateDelivery" type="xs:boolean" use="optional"/>
<xs:attribute name="IsWritable" type="xs:boolean" use="optional"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="Table-Column" type="TableColumnType"/>
<xs:element name="Table-Column-NxtCompute" type="TableColumnType"/>
<xs:element name="Table-Column-NxtCategory" type="TableColumnType"/>
<xs:element name="Table-Column-NxtScore">
<xs:complexType>
<xs:complexContent>
<xs:extension base="TableColumnBaseType">
<xs:attribute name="ScoreName" type="xs:string" use="required"/>
<xs:attribute name="ValueName" type="xs:string" use="required"/>
<xs:attribute name="ScoreID" type="guid" use="optional"/>
<xs:attribute name="ValueID" type="guid" use="optional"/>
<xs:attribute name="Payload" type="xs:boolean" use="optional"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="Table-Column-NxtAction">
<xs:complexType>
<xs:complexContent>
<xs:extension base="TableColumnBaseType">
<xs:attribute name="ActionName" type="xs:string" use="required"/>
<xs:attribute name="ValueName" type="xs:string" use="required"/>
<xs:attribute name="ActionID" type="guid" use="optional"/>
<xs:attribute name="ValueID" type="guid" use="optional"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="Table-Column-NxtCampaign">
<xs:complexType>
<xs:complexContent>
<xs:extension base="TableColumnBaseType">
<xs:attribute name="CampaignName" type="xs:string" use="required"/>
<xs:attribute name="ValueName" type="xs:string" use="required"/>
<xs:attribute name="CampaignID" type="guid" use="optional"/>
<xs:attribute name="ValueID" type="xs:int" use="optional"/>
<xs:attribute name="AsText" type="xs:boolean" use="optional"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="Table-Column-Computation">
<xs:complexType>
<xs:complexContent>
<xs:extension base="TableColumnBaseType">
<xs:sequence>
<xs:choice maxOccurs="1" minOccurs="1">
<xs:element ref="Computation-LinearTransform"/>
<xs:element ref="Computation-RegEx"/>
</xs:choice>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="Computation-LinearTransform">
<xs:complexType>
<xs:attribute name="Column" type="xs:NCName" use="required"/>
<xs:attribute name="m" type="xs:float" use="required"/>
<xs:attribute name="b" type="xs:float" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="Computation-RegEx">
<xs:complexType>
<xs:attribute name="Column" type="xs:NCName" use="required"/>
<xs:attribute name="RegExFilter" type="xs:string" use="required"/>
<xs:attribute name="Replacement" type="xs:string" use="optional"/>
<xs:attribute name="AutoTrim" type="xs:boolean" use="optional"/>
</xs:complexType>
</xs:element>
<xs:element name="Table-Index">
<xs:complexType>
<xs:attribute name="Name" type="xs:NCName" use="required"/>
<xs:attribute name="Columns" type="ColumnList" use="required"/>
<xs:attribute name="Unique" type="xs:boolean" use="optional"/>
</xs:complexType>
</xs:element>
<xs:element name="Table-Reference">
<xs:complexType>
<xs:attribute name="ForeignTable" type="xs:NCName" use="required"/>
<xs:attribute name="Columns" type="ColumnList" use="required"/>
<xs:attribute name="ForeignIndex" type="xs:NCName" use="optional"/>
</xs:complexType>
</xs:element>
</xs:schema>