<?xml version="1.0" encoding="UTF-8"?> <schema targetNamespace="http://www.w3.org/2005/11/its" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:its="http://www.w3.org/2005/11/its" xmlns:gt="https://www.gnu.org/s/gettext/ns/its/extensions/1.0" elementFormDefault="qualified"> <annotation> <documentation>XML schema 1.0 of *.its files, as understood by GNU gettext. Copyright (C) 2015-2024 Free Software Foundation, Inc. This file is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. Written by Bruno Haible <bruno@clisp.org>, 2024. </documentation> </annotation> <!-- Define elements and types in the gt namespace. --> <import namespace="https://www.gnu.org/s/gettext/ns/its/extensions/1.0" schemaLocation="its-extensions.xsd"/> <element name="rules" type="its:RulesType"></element> <complexType name="RulesType"> <sequence minOccurs="0" maxOccurs="unbounded"> <choice> <element name="translateRule" type="its:TranslateRuleType"> </element> <element name="locNoteRule" type="its:LocNoteRuleType"> </element> <element name="withinTextRule" type="its:WithinTextRuleType"> </element> <element name="preserveSpaceRule" type="its:PreserveSpaceRuleType"> </element> <element ref="gt:preserveSpaceRule"> </element> <element ref="gt:contextRule"> </element> <element ref="gt:escapeRule"> </element> <!-- Allow other rules from the ITS namespace (not implemented by GNU gettext). --> <element name="termRule" type="its:OtherRuleType"/> <element name="dirRule" type="its:OtherRuleType"/> <element name="langRule" type="its:OtherRuleType"/> <element name="domainRule" type="its:OtherRuleType"/> <element name="textAnalysisRule" type="its:OtherRuleType"/> <element name="localeFilterRule" type="its:OtherRuleType"/> <element name="provRule" type="its:OtherRuleType"/> <element name="externalResourceRefRule" type="its:OtherRuleType"/> <element name="targetPointerRule" type="its:OtherRuleType"/> <element name="idValueRule" type="its:OtherRuleType"/> <element name="locQualityIssueRule" type="its:OtherRuleType"/> <element name="mtConfidenceRule" type="its:OtherRuleType"/> <element name="allowedCharactersRule" type="its:OtherRuleType"/> <element name="storageSizeRule" type="its:OtherRuleType"/> <!-- Allow itstool extensions (not implemented by GNU gettext). --> <any namespace="http://itstool.org/extensions/" processContents="skip"/> </choice> </sequence> <attribute name="version" type="string" use="required" fixed="2.0"></attribute> </complexType> <complexType name="TranslateRuleType"> <attribute name="selector" type="string" use="required"></attribute> <attribute name="translate" use="required"> <simpleType> <restriction base="string"> <enumeration value="yes"></enumeration> <enumeration value="no"></enumeration> </restriction> </simpleType> </attribute> </complexType> <complexType name="LocNoteRuleType"> <annotation> <documentation>Note: An instance should not have both the 'locNotePointer' attribute and a 'locNote' child at the same time. </documentation></annotation> <sequence minOccurs="0" maxOccurs="1"> <element name="locNote" type="string"></element> </sequence> <attribute name="selector" type="string" use="required"></attribute> <attribute name="locNoteType" use="required"> <simpleType> <restriction base="string"> <enumeration value="description"></enumeration> <enumeration value="alert"></enumeration> </restriction> </simpleType> </attribute> <attribute name="locNotePointer" type="string" use="optional"></attribute> <!-- Valid in XML Schema 1.1 only: <assert test="not(@locNotePointer and locNote)"/> --> </complexType> <complexType name="WithinTextRuleType"> <attribute name="selector" type="string" use="required"></attribute> <attribute name="withinText" use="required"> <simpleType> <restriction base="string"> <enumeration value="yes"></enumeration> <enumeration value="nested"></enumeration> <enumeration value="no"></enumeration> </restriction> </simpleType> </attribute> </complexType> <!-- If no <its:preserveSpaceRule> nor <gt:preserveSpaceRule> is present, the default 'space' property is "default". --> <complexType name="PreserveSpaceRuleType"> <attribute name="selector" type="string" use="required"></attribute> <attribute name="space" use="required"> <simpleType> <restriction base="string"> <enumeration value="preserve"></enumeration> <enumeration value="default"></enumeration> </restriction> </simpleType> </attribute> </complexType> <complexType name="OtherRuleType" mixed="true"> <sequence> <any processContents="skip" minOccurs="0" maxOccurs="unbounded"/> </sequence> <anyAttribute processContents="skip"/> </complexType> </schema>