| <?xml version="1.0" encoding="UTF-8"?> |
| <!-- |
| Licensed to the Apache Software Foundation (ASF) under one or more |
| contributor license agreements. See the NOTICE file distributed with |
| this work for additional information regarding copyright ownership. |
| The ASF licenses this file to You under the Apache License, Version 2.0 |
| (the "License"); you may not use this file except in compliance with |
| the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| |
| --> |
| <schema xmlns="http://www.w3.org/2001/XMLSchema" |
| xmlns:tns="http://logging.apache.org/log4j/2.0/config" |
| targetNamespace="http://logging.apache.org/log4j/2.0/config" |
| elementFormDefault="qualified"> |
| |
| <!-- |
| ================================================================================================================================ |
| <Configuration> root element |
| ================================================================================================================================ |
| --> |
| <element name="Configuration"> |
| <complexType> |
| <sequence> |
| <choice minOccurs="0"> |
| <element name="CustomLevels" type="tns:CustomLevelsType"> |
| <unique name="UniqueCustomLevelName"> |
| <selector xpath="tns:CustomLevel" /> |
| <field xpath="@name" /> |
| </unique> |
| </element> |
| <element name="CustomLevel" type="tns:CustomLevelType" /> |
| </choice> |
| <element name="Properties" minOccurs="0"> |
| <complexType> |
| <sequence> |
| <element name="Property" type="tns:PropertyType" minOccurs="0" maxOccurs="unbounded" /> |
| </sequence> |
| </complexType> |
| <unique name="UniquePropertyName"> |
| <selector xpath="tns:Property" /> |
| <field xpath="@name" /> |
| </unique> |
| </element> |
| |
| <element name="Scripts" minOccurs="0" maxOccurs="unbounded"> |
| <complexType> |
| <sequence> |
| <element name="ScriptFile" minOccurs="0" maxOccurs="unbounded"> |
| <complexType> |
| <attribute name="name" type="string" use="required" /> |
| <attribute name="language" type="string" /> |
| <attribute name="path" type="string" use="required" /> |
| <attribute name="charset" type="string" /> |
| </complexType> |
| </element> |
| </sequence> |
| </complexType> |
| </element> |
| |
| <group ref="tns:FilterChoiceGroup" minOccurs="0" /> |
| |
| <element name="Appenders" type="tns:AppendersType" minOccurs="0" /> |
| |
| <element name="Loggers" type="tns:LoggersType" minOccurs="0"> |
| <unique name="UniqueLoggerName"> |
| <selector xpath="tns:Logger" /> |
| <field xpath="@name" /> |
| </unique> |
| </element> |
| </sequence> |
| |
| <attribute name="advertiser" type="string"> |
| <annotation> |
| <documentation>The Advertiser plugin name which will be used to advertise individual FileAppender or SocketAppender configurations. The only |
| Advertiser plugin provided is 'multicastdns". |
| </documentation> |
| </annotation> |
| </attribute> |
| <attribute name="dest" type="string"> |
| <annotation> |
| <documentation>Either "err" for stderr, "out" for stdout, a file path, or a URL.</documentation> |
| </annotation> |
| </attribute> |
| <attribute name="monitorInterval" type="tns:IntegerType"> |
| <annotation> |
| <documentation>The minimum amount of time, in seconds, that must elapse before the file configuration is checked for changes.</documentation> |
| </annotation> |
| </attribute> |
| <attribute name="name" type="string"> |
| <annotation> |
| <documentation>The name of the configuration.</documentation> |
| </annotation> |
| </attribute> |
| <attribute name="packages" type="string"> |
| <annotation> |
| <documentation>A comma separated list of package names to search for plugins. Plugins are only loaded once per classloader so changing this value |
| may not have any effect upon reconfiguration. |
| </documentation> |
| </annotation> |
| </attribute> |
| <attribute name="schema" type="string"> |
| <annotation> |
| <documentation>Identifies the location for the classloader to located the XML Schema to use to validate the configuration. Only valid when strict |
| is set to true. If not set no schema validation will take place. |
| </documentation> |
| </annotation> |
| </attribute> |
| <attribute name="shutdownHook"> |
| <annotation> |
| <documentation>Specifies whether or not Log4j should automatically shutdown when the JVM shuts down. The shutdown hook is enabled by default but |
| may be disabled by setting this attribute to "disable". |
| </documentation> |
| </annotation> |
| <simpleType> |
| <restriction base="string"> |
| <pattern value="(|disable|\$\{[^{}]+\})" /> |
| </restriction> |
| </simpleType> |
| </attribute> |
| <attribute name="shutdownTimeout" type="tns:IntegerType" default="0"> |
| <annotation> |
| <documentation>Specifies how many milliseconds appenders and background tasks will get to shutdown when the JVM shuts down. Default is zero which |
| mean that each appender uses its default timeout, and don't wait for background tasks. |
| </documentation> |
| </annotation> |
| </attribute> |
| <attribute name="status"> |
| <annotation> |
| <documentation>The level of internal Log4j events that should be logged to the console. Valid values for this attribute are "trace", "debug", |
| "info", "warn", "error" and "fatal". |
| </documentation> |
| </annotation> |
| <simpleType> |
| <restriction base="string"> |
| <pattern |
| value="([Tt][Rr][Aa][Cc][Ee]|[Dd][Ee][Bb][Uu][Gg]|[Ii][Nn][Ff][Oo]|[Ww][Aa][Rr][Nn]|[Ee][Rr][Rr][Oo][Rr]|[Ff][Aa][Tt][Aa][Ll]|[Oo][Ff][Ff]|\$\{[^{}]+\})" /> |
| </restriction> |
| </simpleType> |
| </attribute> |
| <attribute name="strict" type="tns:BooleanType"> |
| <annotation> |
| <documentation>Enables the use of the strict XML format. Not supported in JSON configurations.</documentation> |
| </annotation> |
| </attribute> |
| <attribute name="verbose" type="tns:BooleanType" default="false"> |
| <annotation> |
| <documentation>Enables diagnostic information while loading plugins.</documentation> |
| </annotation> |
| </attribute> |
| </complexType> |
| </element> |
| |
| |
| <!-- |
| ================================================================================================================================ |
| <Configuration><CustomLevels> type and related types |
| ================================================================================================================================ |
| --> |
| <complexType name="CustomLevelsType"> |
| <sequence> |
| <element name="CustomLevel" type="tns:CustomLevelType" minOccurs="0" maxOccurs="unbounded" /> |
| </sequence> |
| </complexType> |
| |
| <complexType name="CustomLevelType"> |
| <attribute name="name" type="string" use="required" /> |
| <attribute name="intLevel" type="tns:IntegerType" use="required" /> |
| </complexType> |
| |
| |
| <!-- |
| ================================================================================================================================ |
| Filter types |
| ================================================================================================================================ |
| --> |
| <group name="FilterChoiceGroup"> |
| <choice> |
| <element name="Filters"> |
| <complexType> |
| <group ref="tns:FilterChoiceGroup" minOccurs="0" maxOccurs="unbounded" /> |
| </complexType> |
| </element> |
| <element name="Filter" type="tns:FilterType" minOccurs="0" /> |
| <element name="BurstFilter" type="tns:BurstFilterType" minOccurs="0" /> |
| <element name="ContextMapFilter" type="tns:MapFilterType" minOccurs="0" /> |
| <element name="DynamicThresholdFilter" type="tns:DynamicThresholdFilterType" minOccurs="0" /> |
| <element name="MapFilter" type="tns:MapFilterType" minOccurs="0" /> |
| <element name="MarkerFilter" type="tns:MarkerFilterType" minOccurs="0" /> |
| <element name="NoMarkerFilter" type="tns:NoMarkerFilterType" minOccurs="0" /> |
| <element name="RegexFilter" type="tns:RegexFilterType" minOccurs="0" /> |
| <element name="ScriptFilter" type="tns:ScriptFilterType" minOccurs="0" /> |
| <element name="StructuredDataFilter" type="tns:StructuredDataFilterType" minOccurs="0" /> |
| <element name="ThreadContextMapFilter" type="tns:MapFilterType" minOccurs="0" /> |
| <element name="ThresholdFilter" type="tns:ThresholdFilterType" minOccurs="0" /> |
| </choice> |
| </group> |
| |
| <complexType name="AbstractFilterType" abstract="true"> |
| <attribute name="onMatch" type="tns:FilterActionType" default="NEUTRAL"> |
| <annotation> |
| <documentation>Action to take when the filter matches. May be ACCEPT, DENY or NEUTRAL.</documentation> |
| </annotation> |
| </attribute> |
| <attribute name="onMismatch" type="tns:FilterActionType" default="DENY"> |
| <annotation> |
| <documentation>Action to take when the filter does not match. May be ACCEPT, DENY or NEUTRAL.</documentation> |
| </annotation> |
| </attribute> |
| </complexType> |
| |
| <simpleType name="FilterActionType"> |
| <restriction base="string"> |
| <enumeration value="ACCEPT" /> |
| <enumeration value="accept" /> |
| <enumeration value="DENY" /> |
| <enumeration value="deny" /> |
| <enumeration value="NEUTRAL" /> |
| <enumeration value="neutral" /> |
| </restriction> |
| </simpleType> |
| |
| <complexType name="AbstractFilterTypeWithKeyValuePairs" abstract="true"> |
| <complexContent> |
| <extension base="tns:AbstractFilterType"> |
| <sequence> |
| <element name="KeyValuePair" type="tns:KeyValuePairType" minOccurs="0" maxOccurs="unbounded"> |
| <annotation> |
| <documentation> |
| One or more KeyValuePair elements that define the matching value for the key and the Level to evaluate when the key matches. |
| </documentation> |
| </annotation> |
| </element> |
| </sequence> |
| </extension> |
| </complexContent> |
| </complexType> |
| |
| <complexType name="BurstFilterType" mixed="true"> |
| <complexContent> |
| <extension base="tns:AbstractFilterType"> |
| <attribute name="rate" type="string"> |
| <annotation> |
| <documentation>The average number of events per second to allow.</documentation> |
| </annotation> |
| </attribute> |
| <attribute name="maxBurst" type="tns:IntegerType"> |
| <annotation> |
| <documentation>The maximum number of events that can occur before events are filtered for exceeding the average rate. The default is 10 times |
| the rate. |
| </documentation> |
| </annotation> |
| </attribute> |
| <attribute name="level" type="string" use="required"> |
| <annotation> |
| <documentation>Level of messages to be filtered. Anything at or below this level will be filtered out if maxBurst has been exceeded. The |
| default is WARN meaning any messages that are higher than warn will be logged regardless of the size of a burst. |
| </documentation> |
| </annotation> |
| </attribute> |
| </extension> |
| </complexContent> |
| </complexType> |
| |
| <complexType name="FilterType" mixed="true"> |
| <complexContent> |
| <extension base="tns:AbstractFilterType"> |
| <sequence> |
| <element name="KeyValuePair" type="tns:KeyValuePairType" minOccurs="0" /> |
| </sequence> |
| <attribute name="type" type="string" use="required"> |
| <annotation> |
| <documentation>The filter type, see https://logging.apache.org/log4j/2.x/manual/filters.html</documentation> |
| </annotation> |
| </attribute> |
| <anyAttribute processContents="lax" /> |
| </extension> |
| </complexContent> |
| </complexType> |
| |
| <complexType name="DynamicThresholdFilterType"> |
| <complexContent> |
| <extension base="tns:AbstractFilterTypeWithKeyValuePairs"> |
| <attribute name="key" type="string" use="required"> |
| <annotation> |
| <documentation>The name of the item in the ThreadContext Map to compare.</documentation> |
| </annotation> |
| </attribute> |
| <attribute name="defaultThreshold" type="string" use="required"> |
| <annotation> |
| <documentation> |
| Level of messages to be filtered. The default threshold only applies if the log event contains the specified ThreadContext Map |
| item and its value does not match any key in the key/value pairs. |
| </documentation> |
| </annotation> |
| </attribute> |
| </extension> |
| </complexContent> |
| </complexType> |
| |
| <complexType name="MapFilterType"> |
| <complexContent> |
| <extension base="tns:AbstractFilterTypeWithKeyValuePairs"> |
| <attribute name="operator" type="string"> |
| <annotation> |
| <documentation> |
| If the operator is "or" then a match by any one of the key/value pairs will be considered to be a match, otherwise all the |
| key/value pairs must match. |
| </documentation> |
| </annotation> |
| </attribute> |
| </extension> |
| </complexContent> |
| </complexType> |
| |
| <complexType name="MarkerFilterType"> |
| <complexContent> |
| <extension base="tns:AbstractFilterType"> |
| <attribute name="marker" type="string" use="required" /> |
| </extension> |
| </complexContent> |
| </complexType> |
| |
| <complexType name="NoMarkerFilterType"> |
| <complexContent> |
| <extension base="tns:AbstractFilterType" /> |
| </complexContent> |
| </complexType> |
| |
| <complexType name="RegexFilterType"> |
| <complexContent> |
| <extension base="tns:AbstractFilterType"> |
| <attribute name="regex" type="string" use="required"> |
| <annotation> |
| <documentation>The regular expression.</documentation> |
| </annotation> |
| </attribute> |
| <attribute name="useRawMsg" type="tns:BooleanType" default="false"> |
| <annotation> |
| <documentation>If true the unformatted message will be used, otherwise the formatted message will be used.</documentation> |
| </annotation> |
| </attribute> |
| </extension> |
| </complexContent> |
| </complexType> |
| |
| <complexType name="ScriptFilterType"> |
| <complexContent> |
| <extension base="tns:AbstractFilterType"> |
| <choice> |
| <element name="Script"> |
| <complexType mixed="true"> |
| <attribute name="name" type="string" /> |
| <attribute name="language" type="string" /> |
| </complexType> |
| </element> |
| <element name="ScriptFile" /> |
| <element name="ScriptRef" /> |
| </choice> |
| </extension> |
| </complexContent> |
| </complexType> |
| |
| <complexType name="StructuredDataFilterType"> |
| <complexContent> |
| <extension base="tns:AbstractFilterTypeWithKeyValuePairs"> |
| <attribute name="operator" type="string"> |
| <annotation> |
| <documentation> |
| If the operator is "or" then a match by any one of the key/value pairs will be considered to be a match, otherwise all the |
| key/value pairs must match. |
| </documentation> |
| </annotation> |
| </attribute> |
| </extension> |
| </complexContent> |
| </complexType> |
| |
| <complexType name="ThresholdFilterType"> |
| <complexContent> |
| <extension base="tns:AbstractFilterType"> |
| <attribute name="level" type="string" use="required"> |
| <annotation> |
| <documentation>A valid Level name to match on.</documentation> |
| </annotation> |
| </attribute> |
| </extension> |
| </complexContent> |
| </complexType> |
| |
| |
| <!-- |
| ================================================================================================================================ |
| Layout types |
| ================================================================================================================================ |
| --> |
| <complexType name="LayoutType"> |
| <choice minOccurs="0" maxOccurs="unbounded"> |
| <any processContents="lax" minOccurs="0" maxOccurs="unbounded" /> |
| </choice> |
| <attribute name="type" type="string" use="required" /> |
| <anyAttribute processContents="lax" /> |
| </complexType> |
| |
| <complexType name="MessageLayoutType"> |
| </complexType> |
| |
| <complexType name="PatternLayoutType"> |
| <!-- https://logging.apache.org/log4j/2.x/manual/layouts.html#PatternLayout --> |
| <sequence> |
| <choice minOccurs="0"> |
| <element name="LevelPatternSelector"> |
| <complexType> |
| <sequence> |
| <any processContents="lax" minOccurs="0" maxOccurs="unbounded" /> |
| </sequence> |
| <anyAttribute processContents="lax" /> |
| </complexType> |
| </element> |
| <element name="MarkerPatternSelector"> |
| <complexType> |
| <sequence> |
| <any processContents="lax" minOccurs="0" maxOccurs="unbounded" /> |
| </sequence> |
| <anyAttribute processContents="lax" /> |
| </complexType> |
| </element> |
| <element name="ScriptPatternSelector"> |
| <complexType> |
| <sequence> |
| <any processContents="lax" minOccurs="0" maxOccurs="unbounded" /> |
| </sequence> |
| <anyAttribute processContents="lax" /> |
| </complexType> |
| </element> |
| </choice> |
| <element name="Replace" minOccurs="0"> |
| <complexType> |
| <attribute name="regex" type="string" /> |
| <attribute name="replacement" type="string" /> |
| </complexType> |
| </element> |
| <element name="Pattern" type="string" minOccurs="0" /> |
| </sequence> |
| <attribute name="alwaysWriteExceptions" type="tns:BooleanType" default="true"> |
| <annotation> |
| <documentation>If true exceptions are always written even if the pattern contains no exception conversions.</documentation> |
| </annotation> |
| </attribute> |
| <attribute name="charset" type="string"> |
| <annotation> |
| <documentation>The character set to use when converting the syslog String to a byte array.</documentation> |
| </annotation> |
| </attribute> |
| <attribute name="disableAnsi" type="tns:BooleanType" default="false"> |
| <annotation> |
| <documentation>If true, do not output ANSI escape codes.</documentation> |
| </annotation> |
| </attribute> |
| <attribute name="footer" type="string"> |
| <annotation> |
| <documentation>Footer string to include at the bottom of each log file.</documentation> |
| </annotation> |
| </attribute> |
| <attribute name="header" type="string"> |
| <annotation> |
| <documentation>Header string to include at the top of each log file.</documentation> |
| </annotation> |
| </attribute> |
| <attribute name="noConsoleNoAnsi" type="tns:BooleanType" default="false"> |
| <annotation> |
| <documentation>If true and System.console() is null, do not output ANSI escape codes.</documentation> |
| </annotation> |
| </attribute> |
| <attribute name="pattern" type="string" /> |
| </complexType> |
| |
| <complexType name="HtmlLayoutType"> |
| <attribute name="charset" type="string" /> |
| <attribute name="contentType" type="string" /> |
| <attribute name="locationInfo" type="tns:BooleanType" /> |
| <attribute name="title" type="string" /> |
| <attribute name="fontName" type="string" /> |
| <attribute name="fontSize" type="string" /> |
| </complexType> |
| |
| <complexType name="AbstractJsonLayoutType"> |
| <sequence> |
| <element name="KeyValuePair" type="tns:KeyValuePairType" minOccurs="0" maxOccurs="unbounded"> |
| <annotation> |
| <documentation> |
| One or more KeyValuePair elements that define custom field in the output. |
| </documentation> |
| </annotation> |
| </element> |
| </sequence> |
| <attribute name="charset" type="string" /> |
| <attribute name="complete" type="tns:BooleanType" /> |
| <attribute name="compact" type="tns:BooleanType" /> |
| <attribute name="eventEol" type="tns:BooleanType" /> |
| <attribute name="endOfLine" type="string" /> |
| <attribute name="includeNullDelimiter" type="tns:BooleanType" /> |
| <attribute name="includeStacktrace" type="tns:BooleanType" /> |
| <attribute name="locationInfo" type="tns:BooleanType" /> |
| <attribute name="properties" type="tns:BooleanType" /> |
| <attribute name="stacktraceAsString" type="tns:BooleanType" /> |
| </complexType> |
| |
| <complexType name="JCsvParameterLayoutType"> |
| <complexContent> |
| <extension base="tns:AbstractJsonLayoutType"> |
| <anyAttribute processContents="lax" /> |
| </extension> |
| </complexContent> |
| </complexType> |
| |
| <complexType name="GelfLayoutType"> |
| <sequence minOccurs="0"> |
| <choice minOccurs="0"> |
| <element name="LevelPatternSelector"> |
| <complexType> |
| <sequence> |
| <any processContents="lax" minOccurs="0" maxOccurs="unbounded" /> |
| </sequence> |
| <anyAttribute processContents="lax" /> |
| </complexType> |
| </element> |
| <element name="MarkerPatternSelector"> |
| <complexType> |
| <sequence> |
| <any processContents="lax" minOccurs="0" maxOccurs="unbounded" /> |
| </sequence> |
| <anyAttribute processContents="lax" /> |
| </complexType> |
| </element> |
| <element name="ScriptPatternSelector"> |
| <complexType> |
| <sequence> |
| <any processContents="lax" minOccurs="0" maxOccurs="unbounded" /> |
| </sequence> |
| <anyAttribute processContents="lax" /> |
| </complexType> |
| </element> |
| <element name="MessagePattern" type="string" minOccurs="0" /> |
| </choice> |
| <element name="KeyValuePair" type="tns:KeyValuePairType" minOccurs="0" maxOccurs="unbounded"> |
| <annotation> |
| <documentation> |
| One or more KeyValuePair elements that define custom field in the output. |
| </documentation> |
| </annotation> |
| </element> |
| </sequence> |
| <attribute name="host" type="string" /> |
| <attribute name="compressionType"> |
| <simpleType> |
| <restriction base="string"> |
| <enumeration value="GZIP" /> |
| <enumeration value="ZLIB" /> |
| <enumeration value="OFF" /> |
| </restriction> |
| </simpleType> |
| </attribute> |
| <attribute name="compressionThreshold" type="tns:IntegerType" /> |
| <attribute name="includeNullDelimiter" type="tns:BooleanType" /> |
| <attribute name="includeStacktrace" type="tns:BooleanType" /> |
| <attribute name="includeThreadContext" type="tns:BooleanType" /> |
| <attribute name="messagePattern" type="string" /> |
| <attribute name="threadContextExcludes" type="string" /> |
| <attribute name="threadContextIncludes" type="string" /> |
| <attribute name="threadContextPrefix" type="string" /> |
| <attribute name="mapMessageExcludes" type="string" /> |
| <attribute name="mapMessageIncludes" type="string" /> |
| <attribute name="mapPrefix" type="string" /> |
| <attribute name="omitEmptyFields" type="tns:BooleanType" /> |
| </complexType> |
| |
| <complexType name="JsonLayoutType"> |
| <complexContent> |
| <extension base="tns:AbstractJsonLayoutType"> |
| <attribute name="propertiesAsList" type="tns:BooleanType" /> |
| <attribute name="includeTimeMillis" type="tns:BooleanType" /> |
| <attribute name="objectMessageAsJsonObject" type="tns:BooleanType" /> |
| </extension> |
| </complexContent> |
| </complexType> |
| |
| <complexType name="XmlLayoutType"> |
| <complexContent> |
| <extension base="tns:AbstractJsonLayoutType" /> |
| </complexContent> |
| </complexType> |
| |
| |
| <!-- |
| ================================================================================================================================ |
| Appender types |
| ================================================================================================================================ |
| --> |
| <complexType name="AppendersType"> |
| <sequence minOccurs="0" maxOccurs="unbounded"> |
| <element name="Appender" type="tns:AppenderType" minOccurs="0" /> |
| <element name="Async" type="tns:AsyncAppenderType" minOccurs="0" /> |
| <element name="Console" type="tns:ConsoleAppenderType" minOccurs="0" /> |
| <element name="Flume" type="tns:FlumeAppenderType" minOccurs="0" /> |
| <element name="JeroMQ" type="tns:JeroMQAppenderType" minOccurs="0" /> |
| <element name="JMS" type="tns:JMSAppenderType" minOccurs="0" /> |
| <element name="JMSQueue" type="tns:JMSAppenderType" minOccurs="0" /> |
| <element name="JMSTopic" type="tns:JMSAppenderType" minOccurs="0" /> |
| <element name="Rewrite" type="tns:RewriteAppenderType" minOccurs="0" /> |
| <element name="Routing" type="tns:RoutingAppenderType" minOccurs="0" /> |
| <element name="SMTP" type="tns:SMTPAppenderType" minOccurs="0" /> |
| <element name="File" type="tns:FileAppenderType" minOccurs="0" /> |
| <element name="MemoryMappedFile" type="tns:MemoryMappedFileAppenderType" minOccurs="0" /> |
| <element name="RandomAccessFile" type="tns:RandomAccessFileAppenderType" minOccurs="0" /> |
| <element name="RollingFile" type="tns:RollingFileAppenderType" minOccurs="0" /> |
| <element name="RollingRandomAccessFile" type="tns:RollingRandomAccessFileAppenderType" minOccurs="0" /> |
| <element name="Socket" type="tns:SocketAppenderType" minOccurs="0" /> |
| <element name="ScriptAppenderSelector" type="tns:ScriptAppenderSelectorType" minOccurs="0" /> |
| |
| <!-- undocumented appenders used in unit tests --> |
| <element name="AlwaysFail" type="tns:GenericAppenderType" minOccurs="0" /> |
| <element name="Block" type="tns:GenericAppenderType" minOccurs="0" /> |
| <element name="Blocking" type="tns:GenericAppenderType" minOccurs="0" /> |
| <element name="Deadlock" type="tns:GenericAppenderType" minOccurs="0" /> |
| <element name="Failover" minOccurs="0"> |
| <complexType> |
| <complexContent> |
| <extension base="tns:GenericAppenderType"> |
| <sequence> |
| <element name="Failovers"> |
| <complexType> |
| <sequence> |
| <any processContents="lax" /> |
| </sequence> |
| <anyAttribute processContents="lax" /> |
| </complexType> |
| </element> |
| </sequence> |
| </extension> |
| </complexContent> |
| </complexType> |
| </element> |
| <element name="FailOnce" type="tns:GenericAppenderType" minOccurs="0" /> |
| <element name="Hanging" type="tns:GenericAppenderType" minOccurs="0" /> |
| <element name="List" type="tns:GenericAppenderType" minOccurs="0" /> |
| </sequence> |
| </complexType> |
| |
| <complexType name="AbstractAppenderType" abstract="true"> |
| <sequence> |
| <sequence> |
| <element name="Property" type="tns:PropertyType" minOccurs="0" maxOccurs="unbounded" /> |
| </sequence> |
| <choice minOccurs="0"> |
| <element name="Layout" type="tns:LayoutType" /> |
| <element name="CsvParameterLayout" type="tns:JCsvParameterLayoutType" /> |
| <element name="GelfLayout" type="tns:GelfLayoutType" /> |
| <element name="HtmlLayout" type="tns:HtmlLayoutType" /> |
| <element name="JsonLayout" type="tns:JsonLayoutType" /> |
| <element name="MessageLayout" type="tns:MessageLayoutType" /> |
| <element name="PatternLayout" type="tns:PatternLayoutType" /> |
| <element name="XmlLayout" type="tns:XmlLayoutType" /> |
| </choice> |
| <group ref="tns:FilterChoiceGroup" minOccurs="0" /> |
| </sequence> |
| <attribute name="name" type="string" use="required"> |
| <annotation> |
| <documentation>The name of the appender.</documentation> |
| </annotation> |
| </attribute> |
| <attribute name="ignoreExceptions" type="tns:BooleanType" default="true"> |
| <annotation> |
| <documentation> |
| The default is true, causing exceptions encountered while appending events to be internally logged and then ignored. |
| When set to false |
| exceptions will be propagated to the caller, instead. |
| You must set this to false when wrapping this Appender in a FailoverAppender. |
| </documentation> |
| </annotation> |
| </attribute> |
| </complexType> |
| |
| <complexType name="AppenderType"> |
| <complexContent> |
| <extension base="tns:AbstractAppenderType"> |
| <attribute name="type" type="string" use="required" /> |
| <anyAttribute processContents="lax" /> |
| </extension> |
| </complexContent> |
| </complexType> |
| |
| <complexType name="GenericAppenderType"> |
| <complexContent> |
| <extension base="tns:AbstractAppenderType"> |
| <anyAttribute processContents="lax" /> |
| </extension> |
| </complexContent> |
| </complexType> |
| |
| <complexType name="AsyncAppenderType"> |
| <!-- https://logging.apache.org/log4j/2.x/manual/appenders.html#ConsoleAppender --> |
| <complexContent> |
| <extension base="tns:AbstractAppenderType"> |
| <sequence> |
| <element name="AppenderRef" type="tns:AppenderRefType" minOccurs="0" /> |
| <choice minOccurs="0"> |
| <element name="ArrayBlockingQueue"> |
| <complexType /> |
| </element> |
| <element name="DisruptorBlockingQueue"> |
| <complexType /> |
| </element> |
| <element name="JCToolsBlockingQueue"> |
| <complexType /> |
| </element> |
| <element name="LinkedTransferQueue"> |
| <complexType /> |
| </element> |
| </choice> |
| </sequence> |
| <attribute name="blocking" type="tns:BooleanType" /> |
| <attribute name="bufferSize" type="tns:IntegerType" /> |
| <attribute name="error-ref" type="string" /> |
| <attribute name="includeLocation" type="tns:BooleanType" /> |
| <attribute name="shutdownTimeout" type="tns:IntegerType" /> |
| </extension> |
| </complexContent> |
| </complexType> |
| |
| <complexType name="ConsoleAppenderType"> |
| <!-- https://logging.apache.org/log4j/2.x/manual/appenders.html#ConsoleAppender --> |
| <complexContent> |
| <extension base="tns:AbstractAppenderType"> |
| <attribute name="direct" type="tns:BooleanType"> |
| <annotation> |
| <documentation> |
| Write directly to java.io.FileDescriptor and bypass java.lang.System.out/.err. Can give up to 10x performance boost when the |
| output is redirected to file or other process. Cannot be used with Jansi on Windows. Cannot be used with follow. |
| </documentation> |
| </annotation> |
| </attribute> |
| <attribute name="follow" type="tns:BooleanType"> |
| <annotation> |
| <documentation> |
| Identifies whether the appender honors reassignments of System.out or System.err via System.setOut or System.setErr made after |
| configuration. Note that the follow attribute cannot be used with Jansi on Windows. Cannot be used with direct. |
| </documentation> |
| </annotation> |
| </attribute> |
| <attribute name="target"> |
| <annotation> |
| <documentation>Default is SYSTEM_OUT.</documentation> |
| </annotation> |
| <simpleType> |
| <restriction base="string"> |
| <enumeration value="SYSTEM_ERR" /> |
| <enumeration value="SYSTEM_OUT" /> |
| </restriction> |
| </simpleType> |
| </attribute> |
| </extension> |
| </complexContent> |
| </complexType> |
| |
| <complexType name="FlumeAppenderType"> |
| <complexContent> |
| <extension base="tns:AbstractAppenderType"> |
| <sequence> |
| <element name="Agent" maxOccurs="unbounded"> |
| <complexType> |
| <attribute name="host" type="string" /> |
| <attribute name="port" type="tns:IntegerType" /> |
| </complexType> |
| </element> |
| <element name="RFC5424Layout"> |
| <complexType> |
| <anyAttribute processContents="lax" /> |
| </complexType> |
| </element> |
| </sequence> |
| <anyAttribute processContents="lax" /> |
| </extension> |
| </complexContent> |
| </complexType> |
| |
| <complexType name="JeroMQAppenderType"> |
| <complexContent> |
| <extension base="tns:AbstractAppenderType"> |
| <anyAttribute processContents="lax" /> |
| </extension> |
| </complexContent> |
| </complexType> |
| |
| <complexType name="JMSAppenderType"> |
| <complexContent> |
| <extension base="tns:AbstractAppenderType"> |
| <anyAttribute processContents="lax" /> |
| </extension> |
| </complexContent> |
| </complexType> |
| |
| <complexType name="RewriteAppenderType"> |
| <complexContent> |
| <extension base="tns:AbstractAppenderType"> |
| <sequence> |
| <choice> |
| <element name="MapRewritePolicy"> |
| <complexType> |
| <sequence> |
| <element name="KeyValuePair" type="tns:KeyValuePairType" maxOccurs="unbounded"> |
| <annotation> |
| <documentation> |
| One or more KeyValuePair elements that define the matching value for the key and the Level to evaluate when the |
| key |
| matches. |
| </documentation> |
| </annotation> |
| </element> |
| </sequence> |
| </complexType> |
| </element> |
| <element name="PropertiesRewritePolicy"> |
| <complexType> |
| <sequence> |
| <element name="Property" type="tns:PropertyType" maxOccurs="unbounded" /> |
| </sequence> |
| </complexType> |
| </element> |
| </choice> |
| <element name="AppenderRef" type="tns:AppenderRefType" minOccurs="0" /> |
| </sequence> |
| <anyAttribute processContents="lax" /> |
| </extension> |
| </complexContent> |
| </complexType> |
| |
| <complexType name="RoutingAppenderType"> |
| <!-- https://logging.apache.org/log4j/2.x/manual/appenders.html#RoutingAppender --> |
| <complexContent> |
| <extension base="tns:AbstractAppenderType"> |
| <sequence> |
| <element name="Script" minOccurs="0"> |
| <complexType mixed="true"> |
| <sequence minOccurs="0"> |
| <any processContents="lax" minOccurs="0" maxOccurs="unbounded" /> |
| </sequence> |
| <anyAttribute processContents="lax" /> |
| </complexType> |
| </element> |
| <element name="Routes"> |
| <complexType> |
| <sequence> |
| <any processContents="lax" minOccurs="0" maxOccurs="unbounded" /> |
| </sequence> |
| <anyAttribute processContents="lax" /> |
| </complexType> |
| </element> |
| <element name="IdlePurgePolicy" minOccurs="0"> |
| <complexType> |
| <sequence> |
| <any processContents="lax" minOccurs="0" maxOccurs="unbounded" /> |
| </sequence> |
| <anyAttribute processContents="lax" /> |
| </complexType> |
| </element> |
| </sequence> |
| <anyAttribute processContents="lax" /> |
| </extension> |
| </complexContent> |
| </complexType> |
| |
| <complexType name="SMTPAppenderType"> |
| <complexContent> |
| <extension base="tns:AbstractAppenderType"> |
| <anyAttribute processContents="lax" /> |
| </extension> |
| </complexContent> |
| </complexType> |
| |
| <complexType name="AbstractFileAppenderType" abstract="true"> |
| <complexContent> |
| <extension base="tns:AbstractAppenderType"> |
| <attribute name="append" type="tns:BooleanType" default="true"> |
| <annotation> |
| <documentation> |
| When true, records will be appended to the end of the file. |
| When set to false, the file will be cleared before new records are |
| written. |
| </documentation> |
| </annotation> |
| </attribute> |
| <attribute name="advertise" type="tns:BooleanType" /> |
| <attribute name="advertiseURI" type="string" /> |
| <attribute name="fileName" type="string"> |
| <annotation> |
| <documentation> |
| The name of the file to write to. If the file, or any of its parent directories, do not exist, they will be created. |
| </documentation> |
| </annotation> |
| </attribute> |
| <attribute name="immediateFlush" type="tns:BooleanType" default="true"> |
| <annotation> |
| <documentation> |
| When set to true, each write will be followed by a flush. |
| This will guarantee that the data is passed to the operating system for writing; |
| it does not guarantee that the data is actually written to a physical device |
| such as a disk drive. |
| </documentation> |
| </annotation> |
| </attribute> |
| </extension> |
| </complexContent> |
| </complexType> |
| |
| <complexType name="RandomAccessFileAppenderType"> |
| <!-- https://logging.apache.org/log4j/2.x/manual/appenders.html#RandomAccessFileAppender --> |
| <complexContent> |
| <extension base="tns:AbstractFileAppenderType"> |
| <attribute name="bufferedIO" type="tns:BooleanType" default="true"> |
| <annotation> |
| <documentation> |
| When true, records will be written to a buffer and the data will be written to disk when the buffer is full or, if |
| immediateFlush is set, when the record is written. |
| File locking cannot be used with bufferedIO. |
| </documentation> |
| </annotation> |
| </attribute> |
| <attribute name="bufferSize" type="tns:IntegerType" default="8192"> |
| <annotation> |
| <documentation>When bufferedIO is true, this is the buffer size, the default is 8192 bytes.</documentation> |
| </annotation> |
| </attribute> |
| </extension> |
| </complexContent> |
| </complexType> |
| |
| <complexType name="FileAppenderType"> |
| <!-- https://logging.apache.org/log4j/2.x/manual/appenders.html#FileAppender --> |
| <complexContent> |
| <extension base="tns:RandomAccessFileAppenderType"> |
| <attribute name="createOnDemand" type="tns:BooleanType" default="false"> |
| <annotation> |
| <documentation> |
| The appender creates the file on-demand. The appender only creates the file when a log event passes all filters and is routed |
| to this appender. |
| </documentation> |
| </annotation> |
| </attribute> |
| <attribute name="filePermissions" type="string"> |
| <annotation> |
| <documentation> |
| File attribute permissions in POSIX format to apply whenever the file is created. |
| Underlying files system shall support POSIX |
| file attribute view. |
| </documentation> |
| </annotation> |
| </attribute> |
| <attribute name="fileOwner" type="tns:BooleanType"> |
| <annotation> |
| <documentation> |
| File owner to define whenever the file is created. |
| Underlying files system shall support POSIX file attribute view. |
| </documentation> |
| </annotation> |
| </attribute> |
| <attribute name="fileGroup" type="tns:BooleanType"> |
| <annotation> |
| <documentation> |
| File group to define whenever the file is created. |
| Underlying files system shall support POSIX file attribute view. |
| </documentation> |
| </annotation> |
| </attribute> |
| </extension> |
| </complexContent> |
| </complexType> |
| |
| <complexType name="MemoryMappedFileAppenderType"> |
| <!-- https://logging.apache.org/log4j/2.x/manual/appenders.html#MemoryMappedFileAppender --> |
| <complexContent> |
| <extension base="tns:AbstractFileAppenderType"> |
| <attribute name="regionLength" type="tns:IntegerType"> |
| <annotation> |
| <documentation> The length of the mapped region, defaults to 32 MB (32 * 1024 * 1024 bytes). This parameter must be a value between 256 and |
| 1,073,741,824 (1 GB or 2^30); values outside this range will be adjusted to the closest valid value. Log4j will round the specified value |
| up to the nearest power of two. |
| </documentation> |
| </annotation> |
| </attribute> |
| </extension> |
| </complexContent> |
| </complexType> |
| |
| <complexType name="RollingFileAppenderType"> |
| <!-- https://logging.apache.org/log4j/2.x/manual/appenders.html#RollingFileAppender --> |
| <complexContent> |
| <extension base="tns:FileAppenderType"> |
| <sequence> |
| <group ref="tns:TriggeringPolicyChoiceGroup" minOccurs="0" /> |
| <choice minOccurs="0"> |
| <element name="DefaultRolloverStrategy" type="tns:DefaultRolloverStrategyType" /> |
| <element name="DirectWriteRolloverStrategy" type="tns:DirectWriteRolloverStrategy" /> |
| </choice> |
| </sequence> |
| <attribute name="filePattern" type="string" use="required"> |
| <annotation> |
| <documentation> |
| The pattern of the file name of the archived log file. |
| The format of the pattern is dependent on the RolloverPolicy that is |
| used. |
| </documentation> |
| </annotation> |
| </attribute> |
| </extension> |
| </complexContent> |
| </complexType> |
| |
| <complexType name="RollingRandomAccessFileAppenderType"> |
| <!-- https://logging.apache.org/log4j/2.x/manual/appenders.html#RollingFileAppender --> |
| <complexContent> |
| <extension base="tns:RollingFileAppenderType" /> |
| </complexContent> |
| </complexType> |
| |
| <complexType name="ScriptAppenderSelectorType"> |
| <!-- https://logging.apache.org/log4j/2.x/manual/appenders.html#ScriptAppenderSelector --> |
| <complexContent> |
| <extension base="tns:AbstractAppenderType"> |
| <sequence> |
| <element name="Script" minOccurs="0"> |
| <complexType mixed="true"> |
| <sequence> |
| <any processContents="lax" minOccurs="0" maxOccurs="unbounded" /> |
| </sequence> |
| <anyAttribute processContents="lax" /> |
| </complexType> |
| </element> |
| <element name="AppenderSet" minOccurs="0"> |
| <complexType> |
| <sequence> |
| <any processContents="lax" minOccurs="0" maxOccurs="unbounded" /> |
| </sequence> |
| <anyAttribute processContents="lax" /> |
| </complexType> |
| </element> |
| </sequence> |
| <anyAttribute processContents="lax" /> |
| </extension> |
| </complexContent> |
| </complexType> |
| |
| <complexType name="SocketAppenderType"> |
| <!-- https://logging.apache.org/log4j/2.x/manual/appenders.html#RollingFileAppender --> |
| <complexContent> |
| <extension base="tns:AbstractAppenderType"> |
| <sequence> |
| <element name="SocketOptions" minOccurs="0"> |
| <complexType> |
| <sequence> |
| <any processContents="lax" minOccurs="0" maxOccurs="unbounded" /> |
| </sequence> |
| <anyAttribute processContents="lax" /> |
| </complexType> |
| </element> |
| <element name="Ssl" minOccurs="0"> |
| <complexType> |
| <sequence> |
| <any processContents="lax" minOccurs="0" maxOccurs="unbounded" /> |
| </sequence> |
| <anyAttribute processContents="lax" /> |
| </complexType> |
| </element> |
| </sequence> |
| <anyAttribute processContents="lax" /> |
| </extension> |
| </complexContent> |
| </complexType> |
| |
| |
| <!-- |
| ================================================================================================================================ |
| TriggeringPolicy types |
| ================================================================================================================================ |
| --> |
| <group name="TriggeringPolicyChoiceGroup"> |
| <choice> |
| <element name="Policies"> |
| <complexType> |
| <group ref="tns:TriggeringPolicyChoiceGroup" minOccurs="0" maxOccurs="unbounded" /> |
| </complexType> |
| </element> |
| <element name="CronTriggeringPolicy" type="tns:CronTriggeringPolicyType" /> |
| <element name="OnStartupTriggeringPolicy" type="tns:OnStartupTriggeringPolicyType" /> |
| <element name="SizeBasedTriggeringPolicy" type="tns:SizeBasedTriggeringPolicyType" /> |
| <element name="TimeBasedTriggeringPolicy" type="tns:TimeBasedTriggeringPolicyType" /> |
| </choice> |
| </group> |
| |
| <complexType name="CronTriggeringPolicyType"> |
| <attribute name="schedule" type="string"> |
| <annotation> |
| <documentation>The cron expression. The expression is the same as what is allowed in the Quartz scheduler.</documentation> |
| </annotation> |
| </attribute> |
| <attribute name="evaluateOnStartup" type="tns:BooleanType"> |
| <annotation> |
| <documentation> |
| On startup the cron expression will be evaluated against the file's last modification timestamp. If the cron expression indicates a |
| rollover should have occurred between that time and the current time the file will be immediately rolled over. |
| </documentation> |
| </annotation> |
| </attribute> |
| </complexType> |
| |
| <complexType name="OnStartupTriggeringPolicyType"> |
| <attribute name="minSize" type="tns:IntegerType" default="1"> |
| <annotation> |
| <documentation> |
| The minimum size the file must have to roll over. A size of zero will cause a roll over no matter what the file size is. The default |
| value is 1, which will prevent rolling over an empty file. |
| </documentation> |
| </annotation> |
| </attribute> |
| </complexType> |
| |
| <complexType name="SizeBasedTriggeringPolicyType"> |
| <attribute name="size" type="string" use="required"> |
| <annotation> |
| <documentation> |
| The size can be specified in bytes, with the suffix KB, MB or GB, for example 20MB. |
| </documentation> |
| </annotation> |
| </attribute> |
| </complexType> |
| |
| <complexType name="TimeBasedTriggeringPolicyType"> |
| <attribute name="interval" type="tns:IntegerType" default="1"> |
| <annotation> |
| <documentation> |
| How often a rollover should occur based on the most specific time unit in the date pattern. |
| </documentation> |
| </annotation> |
| </attribute> |
| <attribute name="modulate" type="tns:BooleanType" default="false"> |
| <annotation> |
| <documentation> |
| Indicates whether the interval should be adjusted to cause the next rollover to occur on the interval boundary. |
| </documentation> |
| </annotation> |
| </attribute> |
| <attribute name="maxRandomDelay" type="tns:IntegerType" default="0"> |
| <annotation> |
| <documentation> |
| Indicates the maximum number of seconds to randomly delay a rollover. By default, this is 0 which indicates no delay. |
| </documentation> |
| </annotation> |
| </attribute> |
| </complexType> |
| |
| |
| <!-- |
| ================================================================================================================================ |
| RolloverStrategy types |
| ================================================================================================================================ |
| --> |
| <complexType name="DefaultRolloverStrategyType"> |
| <choice minOccurs="0" maxOccurs="unbounded"> |
| <any processContents="lax" minOccurs="0" maxOccurs="unbounded" /> |
| </choice> |
| <attribute name="compressionLevel" type="tns:IntegerType"> |
| <annotation> |
| <documentation> |
| Sets the compression level, 0-9, where 0 = none, 1 = best speed, through 9 = best compression. Only implemented for ZIP files. |
| </documentation> |
| </annotation> |
| </attribute> |
| <attribute name="fileIndex" default="max"> |
| <annotation> |
| <documentation> |
| If set to "max", files with a higher index will be newer than files with a smaller index. |
| If set to "min", file renaming and the |
| counter will follow the Fixed Window strategy described above. |
| </documentation> |
| </annotation> |
| <simpleType> |
| <restriction base="string"> |
| <enumeration value="max" /> |
| <enumeration value="nomax" /> |
| <enumeration value="min" /> |
| </restriction> |
| </simpleType> |
| </attribute> |
| <attribute name="max" type="tns:IntegerType" default="7"> |
| <annotation> |
| <documentation> |
| The maximum value of the counter. Once this values is reached older archives will be deleted on subsequent rollovers. |
| </documentation> |
| </annotation> |
| </attribute> |
| <attribute name="min" type="tns:IntegerType" default="1"> |
| <annotation> |
| <documentation>The minimum value of the counter.</documentation> |
| </annotation> |
| </attribute> |
| <attribute name="stopCustomActionsOnError" type="tns:BooleanType" /> |
| <attribute name="tempCompressedFilePattern" type="string"> |
| <annotation> |
| <documentation>The pattern of the file name of the archived log file during compression.</documentation> |
| </annotation> |
| </attribute> |
| </complexType> |
| |
| <complexType name="DirectWriteRolloverStrategy"> |
| <sequence> |
| <any processContents="lax" minOccurs="0" maxOccurs="unbounded" /> |
| </sequence> |
| <attribute name="compressionLevel" type="tns:IntegerType"> |
| <annotation> |
| <documentation> |
| Sets the compression level, 0-9, where 0 = none, 1 = best speed, through 9 = best compression. Only implemented for ZIP files. |
| </documentation> |
| </annotation> |
| </attribute> |
| <attribute name="maxFiles" type="tns:IntegerType" default="7"> |
| <annotation> |
| <documentation> |
| The maximum number of files to allow in the time period matching the file pattern. If the number of files is exceeded the oldest file |
| will be deleted. If specified, the value must be greater than 1. If the value is less than zero or omitted then the number of files will not be |
| limited. |
| </documentation> |
| </annotation> |
| </attribute> |
| <attribute name="tempCompressedFilePattern" type="string"> |
| <annotation> |
| <documentation>The pattern of the file name of the archived log file during compression.</documentation> |
| </annotation> |
| </attribute> |
| </complexType> |
| |
| |
| <!-- |
| ================================================================================================================================ |
| <Configuration><Loggers> type and related types |
| ================================================================================================================================ |
| --> |
| <complexType name="LoggersType" mixed="true"> |
| <choice minOccurs="0" maxOccurs="unbounded"> |
| <element name="Root" type="tns:RootType" /> |
| <element name="AsyncRoot" type="tns:AsyncRootType" /> |
| <element name="Logger" type="tns:LoggerType" /> |
| <element name="AsyncLogger" type="tns:AsyncLoggerType" /> |
| </choice> |
| </complexType> |
| |
| <complexType name="LoggerType"> |
| <sequence> |
| <group ref="tns:FilterChoiceGroup" minOccurs="0" /> |
| <choice minOccurs="0" maxOccurs="unbounded"> |
| <element name="Property" type="tns:PropertyType" /> |
| <element name="AppenderRef" type="tns:AppenderRefType" /> |
| </choice> |
| </sequence> |
| <attribute name="additivity" type="tns:BooleanType" /> |
| <attribute name="level" type="string" /> |
| <attribute name="name" type="string" use="required" /> |
| <attribute name="includeLocation" type="tns:BooleanType" /> |
| </complexType> |
| |
| <complexType name="AsyncLoggerType"> |
| <complexContent> |
| <extension base="tns:LoggerType" /> |
| </complexContent> |
| </complexType> |
| |
| <complexType name="RootType"> |
| <choice minOccurs="0" maxOccurs="unbounded"> |
| <element name="Property" type="tns:PropertyType" /> |
| <element name="AppenderRef" type="tns:AppenderRefType" /> |
| </choice> |
| <attribute name="additivity" type="tns:BooleanType" /> |
| <attribute name="level" type="string" /> |
| <attribute name="includeLocation" type="tns:BooleanType" /> |
| </complexType> |
| |
| <complexType name="AsyncRootType"> |
| <complexContent> |
| <extension base="tns:RootType" /> |
| </complexContent> |
| </complexType> |
| |
| <complexType name="AppenderRefType"> |
| <group ref="tns:FilterChoiceGroup" minOccurs="0" /> |
| <attribute name="level" type="string" /> |
| <attribute name="ref" type="string" use="required" /> |
| </complexType> |
| |
| |
| <!-- |
| ================================================================================================================================ |
| Reusable Simple Types for Attributes |
| ================================================================================================================================ |
| --> |
| <complexType name="KeyValuePairType"> |
| <simpleContent> |
| <extension base="string"> |
| <attribute name="key" type="string" use="required" /> |
| <attribute name="value" type="string" use="required" /> |
| </extension> |
| </simpleContent> |
| </complexType> |
| |
| <complexType name="PropertyType"> |
| <simpleContent> |
| <extension base="string"> |
| <attribute name="name" type="string" use="required" /> |
| <attribute name="value" type="string" /> |
| </extension> |
| </simpleContent> |
| </complexType> |
| |
| <simpleType name="BooleanType"> |
| <annotation> |
| <documentation>Allow boolean values or variable place holders in the form of ${variablename}</documentation> |
| </annotation> |
| <restriction base="string"> |
| <pattern value="(true|false|\$\{[^{}]+\})" /> |
| </restriction> |
| </simpleType> |
| |
| <simpleType name="IntegerType"> |
| <annotation> |
| <documentation>Allow long values or variable place holders in the form of ${variablename}</documentation> |
| </annotation> |
| <restriction base="string"> |
| <pattern value="-?([0-9]+|\$\{[^{}]+\})" /> |
| </restriction> |
| </simpleType> |
| |
| </schema> |