blob: 554b9ef15a0e05e7c0a4796f148d8594d31e4d65 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<!--
***************************************************************************
* Copyright (c) 2017 Ericsson
*
* All rights reserved. This program and the accompanying materials are
* made available under the terms of the Eclipse Public License 2.0 which
* accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* Patrick Tasse - Initial API and implementation
***************************************************************************
-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:element name="marker-sets" type="marker-sets_type">
</xs:element>
<xs:complexType name="marker-sets_type">
<xs:sequence>
<xs:element name="marker-set" type="marker-set_type" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="marker-set_type">
<xs:sequence>
<xs:element name="marker" type="marker_type" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="name" type="xs:string" use="required"/>
<xs:attribute name="id" type="xs:string" use="required"/>
</xs:complexType>
<xs:complexType name="marker_type">
<xs:sequence>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="submarker" type="submarker_type"/>
<xs:element name="segments" type="segments_type"/>
</xs:choice>
</xs:sequence>
<xs:attribute name="name" type="xs:string" use="required"/>
<xs:attribute name="label" type="xs:string" use="optional"/>
<xs:attribute name="id" type="xs:string" use="optional"/>
<xs:attribute name="referenceid" type="xs:string" use="optional"/>
<xs:attribute name="color" type="xs:string" use="required"/>
<xs:attribute name="period" type="period_type" use="required"/>
<xs:attribute name="unit" type="unit_type" use="required"/>
<xs:attribute name="range" type="range_type" use="optional"/>
<xs:attribute name="offset" type="xs:integer" use="optional"/>
<xs:attribute name="index" type="index_type" use="optional"/>
</xs:complexType>
<xs:complexType name="submarker_type">
<xs:sequence>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="submarker" type="submarker_type"/>
<xs:element name="segments" type="segments_type"/>
</xs:choice>
</xs:sequence>
<xs:attribute name="name" type="xs:string" use="required"/>
<xs:attribute name="label" type="xs:string" use="optional"/>
<xs:attribute name="id" type="xs:string" use="optional"/>
<xs:attribute name="color" type="xs:string" use="optional"/>
<xs:attribute name="range" type="range_type" use="required"/>
<xs:attribute name="index" type="index_type" use="optional"/>
</xs:complexType>
<xs:complexType name="segments_type">
<xs:sequence>
<xs:element name="segment" type="segment_type" minOccurs="1" maxOccurs="unbounded"/>
<xs:sequence>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="submarker" type="submarker_type"/>
<xs:element name="segments" type="segments_type"/>
</xs:choice>
</xs:sequence>
</xs:sequence>
<xs:attribute name="name" type="xs:string" use="required"/>
</xs:complexType>
<xs:complexType name="segment_type">
<xs:sequence>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="submarker" type="submarker_type"/>
<xs:element name="segments" type="segments_type"/>
</xs:choice>
</xs:sequence>
<xs:attribute name="label" type="xs:string" use="optional"/>
<xs:attribute name="id" type="xs:string" use="optional"/>
<xs:attribute name="color" type="xs:string" use="optional"/>
<xs:attribute name="length" type="length_type" use="required"/>
</xs:complexType>
<xs:simpleType name="period_type">
<xs:restriction base="xs:double">
<xs:minExclusive value="0"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="unit_type">
<xs:restriction base="xs:string">
<xs:enumeration value="ms"/>
<xs:enumeration value="us"/>
<xs:enumeration value="ns"/>
<xs:enumeration value="cycles"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="length_type">
<xs:restriction base="xs:integer">
<xs:minExclusive value="0"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="range_type">
<xs:restriction base="xs:string">
<xs:pattern value="[0-9]*\.\.[0-9]*|[0-9]*"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="index_type">
<xs:restriction base="xs:string">
<xs:pattern value="([0-9]*\.\.[0-9]*|[0-9]*)(,([0-9]*\.\.[0-9]*|[0-9]*))*"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>