<?xml version="1.0" encoding="utf-8"?> <xs:schema id="LogConfig" targetNamespace="http://www.wayne.com/2010-01-05/LogConfig.xsd" elementFormDefault="qualified" xmlns="http://www.wayne.com/2010-01-05/LogConfig.xsd" xmlns:mstns="http://www.wayne.com/2010-01-05/LogConfig.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <!--.................................................--> <!-- The schema element 'LogConfig' --> <!--.................................................--> <xs:element name="LogConfigFile"> <xs:complexType> <xs:sequence> <xs:element name="LogConfig" minOccurs="0" maxOccurs="unbounded"> <xs:complexType> <xs:sequence> <xs:element name="Description" type="xs:string" minOccurs="0"/> <xs:element name="Filters"> <xs:complexType> <xs:sequence> <xs:element name="Filter" type="Filter" maxOccurs="unbounded" minOccurs="0"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="Outputs"> <xs:complexType> <xs:sequence> <xs:element name="Output" type="OutputType" maxOccurs="unbounded"> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute name="Name" type="xs:string" use="required"/> <xs:attribute name="Enabled" type="xs:boolean"/> </xs:complexType> </xs:element> <xs:element name="Leftovers" type="OutputType" minOccurs="0"/> <xs:element name="LeftoverEntities" type="OutputType" minOccurs="0"/> </xs:sequence> </xs:complexType> </xs:element> <!--.................................................--> <!-- The simple type 'FilterLevel' --> <!--.................................................--> <xs:simpleType name="FilterLevel"> <xs:restriction base="xs:string"> <xs:enumeration value="Excluded"/> <xs:enumeration value="Normal"/> <xs:enumeration value="Detailed"/> <xs:enumeration value="Maximized"/> </xs:restriction> </xs:simpleType> <!--.................................................--> <!-- The complex type 'Filter' --> <!--.................................................--> <xs:complexType name="Filter"> <xs:sequence> <xs:element name="SubFilter" minOccurs="0" maxOccurs="unbounded"> <xs:complexType> <xs:sequence/> <xs:attribute name="AncestorEntityType" type="xs:string"/> <xs:attribute name="AncestorEntitySubType" type="xs:string"/> <xs:attribute name="AncestorId" type="xs:string"/> <xs:attribute name="CategoryName" type="xs:string"/> <xs:attribute name="FilterLevel" type="FilterLevel"/> <xs:attribute name="Enabled" type="xs:boolean"/> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute name="EntityType" type="xs:string"/> <xs:attribute name="EntitySubType" type="xs:string"/> <xs:attribute name="Id" type="xs:string"/> <xs:attribute name="Enabled" type="xs:boolean"/> <xs:attribute name="FilterLevel" type="FilterLevel"/> </xs:complexType> <!--.................................................--> <!-- The complex type 'OutputType' --> <!--.................................................--> <xs:complexType name="OutputType"> <xs:sequence> <xs:element name="Parameters"> <xs:complexType> <xs:sequence> <xs:choice> <!--........... Text File logger ..............--> <xs:element name="TextFileParams"> <xs:complexType> <xs:sequence> <xs:element name="FilePath" type="LogFilePathType"/> <xs:element name="MaxSize"> <xs:complexType> <xs:attribute name="MaxSizePerFileMb" type="LogFileSizeType" use="required"/> <xs:attribute name="MaxFileCircleCount" type="xs:unsignedInt"/> <xs:attribute name="MaxDays" type="xs:unsignedInt"/> <xs:attribute name="CleanOnStartup" type="xs:boolean"/> </xs:complexType> </xs:element> <xs:element name="ForceFlush" type="xs:boolean" default="true" minOccurs="0"/> <xs:element name="DateTimeLogFormat" type="xs:string" minOccurs="0"/> <xs:element name="EntityLog" type="EntityLog" minOccurs="0"/> <xs:element name="SuppressCategory" type="xs:boolean" minOccurs="0"/> <xs:element name="KeepFileOpened" type="xs:boolean" minOccurs="0"/> <xs:element name="ShortFileMessages" type="xs:boolean" minOccurs="0"/> </xs:sequence> </xs:complexType> </xs:element> <!--........... EventLog Subscription Params ..............--> <xs:element name="EventLogSubscriptionParams"> <xs:complexType> <xs:attribute name="SubscriberId" type="xs:string" use="required"/> <xs:attribute name="StorageType" type="StorageType" use="required"/> </xs:complexType> </xs:element> <!--........... ExternalLogWriter Params ..............--> <xs:element name="ExternalLogWriterParams"> <xs:complexType> <xs:sequence> <xs:element name="Param" minOccurs="0" maxOccurs="unbounded"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:string"> <xs:attribute name="Id" type="xs:string" use="required"/> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute name="ExternalLogType" type="xs:string" use="required"/> <xs:attribute name="ExternalLogName" type="xs:string" use="required"/> <xs:attribute name="DateTimeLogFormat" type="xs:string"/> <xs:attribute name="EntityLog" type="EntityLog"/> <xs:attribute name="SuppressCategory" type="xs:boolean"/> </xs:complexType> </xs:element> <!--.......................................................--> </xs:choice> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute name="Type" type="OutputTypeHandlers" use="required"/> <xs:attribute name="Enabled" type="xs:boolean"/> </xs:complexType> <!--.................................................--> <!-- The simple type 'OutputTypeHandlers' --> <!--.................................................--> <xs:simpleType name="OutputTypeHandlers"> <xs:restriction base="xs:string"> <xs:enumeration value="TextFileLogWriter"/> <xs:enumeration value="EventLogSubscription"/> <xs:enumeration value="ExternalLogWriter"/> </xs:restriction> </xs:simpleType> <!--.................................................--> <!-- The simple type 'StorageType' --> <!--.................................................--> <xs:simpleType name="StorageType"> <xs:restriction base="xs:string"> <xs:enumeration value="NoStorage"/> <xs:enumeration value="Volatile"/> </xs:restriction> </xs:simpleType> <!--.................................................--> <!-- The Complex type 'EventSubscriberType' --> <!--.................................................--> <xs:complexType name="EventSubscriberType"> <xs:attribute name="Name" type="xs:string" use="required"/> <xs:attribute name="KeepEventsPersistent" type="xs:boolean" use="required"/> </xs:complexType> <!--.................................................--> <!-- The complex type 'LogFilePathType' --> <!--.................................................--> <xs:complexType name="LogFilePathType" mixed="true"> <xs:sequence> <xs:choice maxOccurs="unbounded" minOccurs="0"> <xs:element name="EntityType"/> <xs:element name="EntitySubType"/> <xs:element name="Id"> <xs:complexType> <xs:attribute name="FromEntityType" type="xs:string"/> <xs:attribute name="FromEntitySubType" type="xs:string"/> </xs:complexType> </xs:element> <xs:element name="PID" type="xs:string" minOccurs="0" maxOccurs="1"/> <xs:element name="Date"> <xs:complexType> <xs:attribute name="Format" type="xs:string"/> </xs:complexType> </xs:element> </xs:choice> </xs:sequence> </xs:complexType> <!--.................................................--> <!-- Simple type LogFileSizeType that is a union --> <!-- and the string 'unlimited' --> <!--.................................................--> <xs:simpleType name="LogFileSizeType"> <xs:union memberTypes="xs:unsignedInt"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="unlimited"/> </xs:restriction> </xs:simpleType> </xs:union> </xs:simpleType> <!--.................................................--> <!-- The simple type 'EntityLog' --> <!--.................................................--> <xs:simpleType name="EntityLog"> <xs:restriction base="xs:string"> <xs:enumeration value="None"/> <xs:enumeration value="Entity"/> <xs:enumeration value="Ancestors"/> </xs:restriction> </xs:simpleType> </xs:schema>