blob: 1aed8d78620919acd478186c3bba7acac029bb91 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://incubator.apache.org/uima/regex"
xmlns="http://incubator.apache.org/uima/regex" elementFormDefault="qualified">
<!--
* 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.
-->
<xs:element name="conceptSet">
<xs:complexType>
<xs:sequence>
<xs:element ref="variables" minOccurs="0" maxOccurs="1" />
<xs:element ref="concept" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="variables">
<xs:complexType>
<xs:sequence>
<xs:element ref="variable" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="variable">
<xs:complexType>
<xs:attribute name="name" type="xs:string" use="required" />
<xs:attribute name="value" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
<xs:element name="concept">
<xs:complexType>
<xs:sequence>
<xs:element ref="rules" minOccurs="1" maxOccurs="1" />
<xs:element ref="createAnnotations" minOccurs="1" maxOccurs="1" />
</xs:sequence>
<xs:attribute name="name" type="xs:string" use="optional" />
<xs:attribute name="processAllRules" type="xs:boolean" use="optional" default="false" />
</xs:complexType>
</xs:element>
<xs:element name="createAnnotations">
<xs:complexType>
<xs:sequence>
<xs:element ref="annotation" minOccurs="1" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="rules">
<xs:complexType>
<xs:sequence>
<xs:element ref="rule" minOccurs="1" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="rule">
<xs:complexType>
<xs:all>
<xs:element ref="matchTypeFilter" minOccurs="0" maxOccurs="1" />
<xs:element ref="updateMatchTypeAnnotation" minOccurs="0" maxOccurs="1" />
<xs:element ref="ruleExceptions" minOccurs="0" maxOccurs="1" />
</xs:all>
<xs:attribute name="regEx" type="xs:string" use="required" />
<xs:attribute name="matchStrategy" use="required">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="matchFirst" />
<xs:enumeration value="matchAll" />
<xs:enumeration value="matchComplete" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="matchType" type="xs:string" use="required" />
<xs:attribute name="featurePath" type="xs:string" use="optional" />
<xs:attribute name="ruleId" type="xs:string" use="optional" />
<xs:attribute name="confidence" type="xs:decimal" use="optional" />
</xs:complexType>
</xs:element>
<xs:element name="matchTypeFilter">
<xs:complexType>
<xs:sequence>
<xs:element ref="feature" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="ruleExceptions">
<xs:complexType>
<xs:sequence>
<xs:element ref="exception" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="exception">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="matchType" type="xs:string" use="required" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="feature">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="featurePath" type="xs:string" use="required" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="annotation">
<xs:complexType>
<xs:sequence>
<xs:element ref="begin" minOccurs="1" maxOccurs="1" />
<xs:element ref="end" minOccurs="1" maxOccurs="1" />
<xs:element ref="setFeature" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
<xs:attribute name="id" type="xs:string" use="optional" />
<xs:attribute name="type" type="xs:string" use="required" />
<xs:attribute name="validate" type="xs:string" use="optional" />
</xs:complexType>
</xs:element>
<xs:element name="updateMatchTypeAnnotation">
<xs:complexType>
<xs:sequence>
<xs:element ref="setFeature" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="begin">
<xs:complexType>
<xs:attribute name="group" use="required" type="xs:integer"/>
<xs:attribute name="location" use="optional" default="start">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="start" />
<xs:enumeration value="end" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="end">
<xs:complexType>
<xs:attribute name="group" use="required" type="xs:integer"/>
<xs:attribute name="location" use="optional" default="end">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="start" />
<xs:enumeration value="end" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="setFeature">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="name" type="xs:string" use="required" />
<xs:attribute name="type" use="required">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="String" />
<xs:enumeration value="Integer" />
<xs:enumeration value="Float" />
<xs:enumeration value="Reference" />
<xs:enumeration value="Confidence" />
<xs:enumeration value="RuleId" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="normalization" use="optional">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="Custom" />
<xs:enumeration value="ToLowerCase" />
<xs:enumeration value="ToUpperCase" />
<xs:enumeration value="Trim" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="class" type="xs:string" use="optional" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:schema>