| <?xml version="1.0" encoding="UTF-8" standalone="yes"?> |
| <!-- |
| |
| Copyright (c) 2013, 2018 Oracle and/or its affiliates. All rights reserved. |
| |
| This program and the accompanying materials are made available under the |
| terms of the Eclipse Public License v. 2.0, which is available at |
| http://www.eclipse.org/legal/epl-2.0. |
| |
| This Source Code may also be made available under the following Secondary |
| Licenses when the conditions for such availability set forth in the |
| Eclipse Public License v. 2.0 are satisfied: GNU General Public License, |
| version 2 with the GNU Classpath Exception, which is available at |
| https://www.gnu.org/software/classpath/license.html. |
| |
| SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 |
| |
| --> |
| |
| <xsd:schema |
| xmlns:xsd="http://www.w3.org/2001/XMLSchema" |
| elementFormDefault="qualified"> |
| |
| <!-- allow 0 occurrences in many contexts to accommodate placeholders --> |
| <xsd:element name="stringsubs-definition" type="StringsubsDefinition"> |
| <!-- the id attributes must be unique --> |
| <xsd:key name="componentKey"> |
| <xsd:selector xpath="component"/> |
| <xsd:field xpath="@id"/> |
| </xsd:key> |
| <xsd:key name="groupKey"> |
| <xsd:selector xpath="group"/> |
| <xsd:field xpath="@id"/> |
| </xsd:key> |
| <xsd:key name="changePairKey"> |
| <xsd:selector xpath="change-pair"/> |
| <xsd:field xpath="@id"/> |
| </xsd:key> |
| <xsd:keyref name="group-ref" refer="groupKey"> |
| <xsd:selector xpath="component/group-ref"/> |
| <xsd:field xpath="@name"/> |
| </xsd:keyref> |
| <xsd:keyref name="change-pair-ref" refer="changePairKey"> |
| <xsd:selector xpath="group/change-pair-ref"/> |
| <xsd:field xpath="@name"/> |
| </xsd:keyref> |
| |
| </xsd:element> |
| |
| <xsd:complexType name="StringsubsDefinition"> |
| <xsd:sequence> |
| <xsd:element ref="component" minOccurs="0" maxOccurs="unbounded"/> |
| <xsd:element ref="group" minOccurs="0" maxOccurs="unbounded"/> |
| <xsd:element ref="change-pair" minOccurs="0" maxOccurs="unbounded"/> |
| <xsd:element ref="defaults" minOccurs="0" maxOccurs="1"/> |
| </xsd:sequence> |
| <xsd:attribute name="name" use="required" type="xsd:string"/> |
| <xsd:attribute name="version" use="required" type="xsd:string"/> |
| </xsd:complexType> |
| |
| <xsd:element name="component"> |
| <xsd:complexType> |
| <xsd:sequence> |
| <xsd:element ref="group-ref" minOccurs="0" maxOccurs="unbounded"/> |
| </xsd:sequence> |
| <xsd:attribute name="id" use="required" type="non-empty-string"/> |
| </xsd:complexType> |
| </xsd:element> |
| |
| <xsd:element name="group-ref"> |
| <xsd:complexType> |
| <xsd:attribute name="name" use="required" type="non-empty-string"/> |
| </xsd:complexType> |
| </xsd:element> |
| |
| <xsd:element name="group"> |
| <xsd:complexType> |
| <xsd:sequence> |
| <!-- allow 0 occurrences to accommodate existing xxx_subs.properties --> |
| <xsd:element ref="file-entry" minOccurs="0" maxOccurs="unbounded"/> |
| <xsd:element ref="archive" minOccurs="0" maxOccurs="unbounded"/> |
| <xsd:element ref="change-pair-ref" minOccurs="0" maxOccurs="unbounded"/> |
| </xsd:sequence> |
| <xsd:attribute name="id" use="required" type="non-empty-string"/> |
| <xsd:attribute name="mode" type="modeType"/> |
| </xsd:complexType> |
| </xsd:element> |
| |
| <xsd:element name="defaults"> |
| <xsd:complexType> |
| <xsd:sequence> |
| <xsd:element ref="property" minOccurs="0" maxOccurs="unbounded"/> |
| </xsd:sequence> |
| </xsd:complexType> |
| </xsd:element> |
| |
| <xsd:element name="file-entry"> |
| <xsd:complexType> |
| <xsd:attribute name="name" use="required" type="non-empty-string"/> |
| <xsd:attribute name="regex" use="optional" type="non-empty-string" /> |
| </xsd:complexType> |
| </xsd:element> |
| |
| <xsd:element name="archive"> |
| <xsd:complexType> |
| <xsd:choice minOccurs="1" maxOccurs="unbounded"> |
| <xsd:element ref="archive"/> |
| <xsd:element ref="member-entry"/> |
| </xsd:choice> |
| <xsd:attribute name="name" use="required" type="non-empty-string"/> |
| </xsd:complexType> |
| </xsd:element> |
| |
| <xsd:element name="member-entry"> |
| <xsd:complexType> |
| <xsd:attribute name="name" use="required" type="non-empty-string"/> |
| </xsd:complexType> |
| </xsd:element> |
| |
| <xsd:element name="change-pair-ref"> |
| <xsd:complexType> |
| <xsd:attribute name="name" use="required" type="non-empty-string"/> |
| <xsd:attribute name="mode" type="non-empty-string"/> |
| </xsd:complexType> |
| </xsd:element> |
| |
| <xsd:element name="change-pair"> |
| <xsd:complexType> |
| <xsd:attribute name="id" use="required" type="non-empty-string"/> |
| <xsd:attribute name="before" use="required" type="non-empty-string"/> |
| <xsd:attribute name="after" use="required" type="xsd:string"/> |
| </xsd:complexType> |
| </xsd:element> |
| |
| <xsd:element name="property"> |
| <xsd:complexType> |
| <xsd:attribute name="key" use="required"/> |
| <xsd:attribute name="value" use="required"/> |
| <xsd:attribute name="type" type="propertyType"/> |
| </xsd:complexType> |
| <xsd:unique name="uniquepropertyname"> |
| <xsd:selector xpath="property"/> |
| <xsd:field xpath="@key"/> |
| </xsd:unique> |
| </xsd:element> |
| |
| <xsd:simpleType name="non-empty-string"> |
| <xsd:restriction base="xsd:string"> |
| <xsd:minLength value="1"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| |
| <xsd:simpleType name="propertyType"> |
| <xsd:restriction base="xsd:string"> |
| <xsd:enumeration value="port"/> |
| <xsd:enumeration value="string"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| |
| <xsd:simpleType name="modeType"> |
| <xsd:restriction base="xsd:string"> |
| <xsd:enumeration value="forward"/> |
| <xsd:enumeration value="double"/> |
| <xsd:enumeration value="policy"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| |
| </xsd:schema> |