mirror of
https://github.com/kk7ds/chirp.git
synced 2024-09-21 18:47:18 +00:00
Add RelaxNG and RNC XML schema files from Leigh/WA5ZNU
This commit is contained in:
parent
9f11e11bf6
commit
69305b7691
28
share/contrib/chirp.rnc
Normal file
28
share/contrib/chirp.rnc
Normal file
@ -0,0 +1,28 @@
|
||||
#
|
||||
# CHIRP XML Schema
|
||||
# Copyright 2008 Dan Smith <dsmith@danplanet.com>
|
||||
#
|
||||
|
||||
include "chirp_memory.rnc"
|
||||
include "chirp_banks.rnc"
|
||||
|
||||
start = radio
|
||||
|
||||
radio = element radio {
|
||||
attribute version { chirpSchemaVersionType }?,
|
||||
comment?,
|
||||
memories,
|
||||
banks
|
||||
}
|
||||
|
||||
comment = element comment { xsd:string }?
|
||||
|
||||
memories = element memories {
|
||||
element memory { memoryType }*
|
||||
}
|
||||
|
||||
banks = element banks {
|
||||
element bank { bankType }*
|
||||
}
|
||||
|
||||
chirpSchemaVersionType = xsd:string { pattern = "[0-9][0-9]*.[0-9][0-9]*.[0-9]{1,4}" }
|
58
share/contrib/chirp.rng
Normal file
58
share/contrib/chirp.rng
Normal file
@ -0,0 +1,58 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<grammar xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
|
||||
<!--
|
||||
|
||||
CHIRP XML Schema
|
||||
Copyright 2008 Dan Smith <dsmith@danplanet.com>
|
||||
|
||||
-->
|
||||
<include href="chirp_memory.rng"/>
|
||||
<include href="chirp_banks.rng"/>
|
||||
<start>
|
||||
<ref name="radio"/>
|
||||
</start>
|
||||
<define name="radio">
|
||||
<element name="radio">
|
||||
<optional>
|
||||
<attribute name="version">
|
||||
<ref name="chirpSchemaVersionType"/>
|
||||
</attribute>
|
||||
</optional>
|
||||
<optional>
|
||||
<ref name="comment"/>
|
||||
</optional>
|
||||
<ref name="memories"/>
|
||||
<ref name="banks"/>
|
||||
</element>
|
||||
</define>
|
||||
<define name="comment">
|
||||
<optional>
|
||||
<element name="comment">
|
||||
<data type="string"/>
|
||||
</element>
|
||||
</optional>
|
||||
</define>
|
||||
<define name="memories">
|
||||
<element name="memories">
|
||||
<zeroOrMore>
|
||||
<element name="memory">
|
||||
<ref name="memoryType"/>
|
||||
</element>
|
||||
</zeroOrMore>
|
||||
</element>
|
||||
</define>
|
||||
<define name="banks">
|
||||
<element name="banks">
|
||||
<zeroOrMore>
|
||||
<element name="bank">
|
||||
<ref name="bankType"/>
|
||||
</element>
|
||||
</zeroOrMore>
|
||||
</element>
|
||||
</define>
|
||||
<define name="chirpSchemaVersionType">
|
||||
<data type="string">
|
||||
<param name="pattern">[0-9][0-9]*.[0-9][0-9]*.[0-9]{1,4}</param>
|
||||
</data>
|
||||
</define>
|
||||
</grammar>
|
3
share/contrib/chirp_banks.rnc
Normal file
3
share/contrib/chirp_banks.rnc
Normal file
@ -0,0 +1,3 @@
|
||||
bankType =
|
||||
attribute id { xsd:nonNegativeInteger },
|
||||
attribute label { xsd:string }
|
11
share/contrib/chirp_banks.rng
Normal file
11
share/contrib/chirp_banks.rng
Normal file
@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<grammar xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
|
||||
<define name="bankType">
|
||||
<attribute name="id">
|
||||
<data type="nonNegativeInteger"/>
|
||||
</attribute>
|
||||
<attribute name="label">
|
||||
<data type="string"/>
|
||||
</attribute>
|
||||
</define>
|
||||
</grammar>
|
64
share/contrib/chirp_memory.rnc
Normal file
64
share/contrib/chirp_memory.rnc
Normal file
@ -0,0 +1,64 @@
|
||||
memoryType =
|
||||
attribute location { xsd:nonNegativeInteger }?,
|
||||
shortName,
|
||||
longName?,
|
||||
frequency,
|
||||
SquelchList,
|
||||
squelchSetting?,
|
||||
duplex,
|
||||
offset,
|
||||
mode,
|
||||
tuningStep,
|
||||
skip?,
|
||||
bank?,
|
||||
dv?
|
||||
|
||||
shortName = element shortName { xsd:string { pattern = "[A-Z0-9/ >\-]{0,6}" } }
|
||||
|
||||
frequencyType =
|
||||
attribute units { "Hz" | "kHz" | "MHz" | "GHz" },
|
||||
xsd:decimal
|
||||
|
||||
longName = element longName { xsd:string { pattern = "[.A-Za-z0-9/ >\-]{0,16}" } }
|
||||
|
||||
frequency = element frequency { frequencyType }
|
||||
|
||||
SquelchList =
|
||||
element squelch { squelchType }?,
|
||||
element squelch { squelchType }?,
|
||||
element squelch { squelchType }?
|
||||
|
||||
squelchType =
|
||||
element tone { xsd:decimal { minInclusive = "67.0" maxInclusive = "254.1" } }?, # could also use enumeration
|
||||
element code { xsd:positiveInteger }?,
|
||||
element polarity { xsd:string { pattern = "[RN]{2}" } }?,
|
||||
attribute id { text }?,
|
||||
attribute type { text }?
|
||||
|
||||
offset = element offset { frequencyType }
|
||||
|
||||
tuningStep = element tuningStep { frequencyType }
|
||||
|
||||
squelchSetting = element squelchSetting { xsd:string }
|
||||
|
||||
duplex = element duplex { "positive" | "negative" | "none" }
|
||||
|
||||
mode = element mode { "FM" | "NFM" | "WFM" | "AM" | "NAM" | "DV" }
|
||||
|
||||
dv = element dv {
|
||||
element urcall { callsignType },
|
||||
element rpt1call { callsignType },
|
||||
element rpt2call { callsignType },
|
||||
element digitalCode { digitalCodeType }?
|
||||
}
|
||||
|
||||
callsignType = xsd:string { pattern = "[A-Z0-9/ ]*" }
|
||||
|
||||
digitalCodeType = xsd:integer { minInclusive = "0" }
|
||||
|
||||
skip = element skip { "S" | "P" | "" }
|
||||
|
||||
bank = element bank {
|
||||
attribute bankId { xsd:nonNegativeInteger },
|
||||
attribute bankIndex { xsd:nonNegativeInteger }?
|
||||
}
|
193
share/contrib/chirp_memory.rng
Normal file
193
share/contrib/chirp_memory.rng
Normal file
@ -0,0 +1,193 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<grammar xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
|
||||
<define name="memoryType">
|
||||
<optional>
|
||||
<attribute name="location">
|
||||
<data type="nonNegativeInteger"/>
|
||||
</attribute>
|
||||
</optional>
|
||||
<ref name="shortName"/>
|
||||
<optional>
|
||||
<ref name="longName"/>
|
||||
</optional>
|
||||
<ref name="frequency"/>
|
||||
<ref name="SquelchList"/>
|
||||
<optional>
|
||||
<ref name="squelchSetting"/>
|
||||
</optional>
|
||||
<ref name="duplex"/>
|
||||
<ref name="offset"/>
|
||||
<ref name="mode"/>
|
||||
<ref name="tuningStep"/>
|
||||
<optional>
|
||||
<ref name="skip"/>
|
||||
</optional>
|
||||
<optional>
|
||||
<ref name="bank"/>
|
||||
</optional>
|
||||
<optional>
|
||||
<ref name="dv"/>
|
||||
</optional>
|
||||
</define>
|
||||
<define name="shortName">
|
||||
<element name="shortName">
|
||||
<data type="string">
|
||||
<param name="pattern">[A-Z0-9/ >\-]{0,6}</param>
|
||||
</data>
|
||||
</element>
|
||||
</define>
|
||||
<define name="frequencyType">
|
||||
<attribute name="units">
|
||||
<choice>
|
||||
<value>Hz</value>
|
||||
<value>kHz</value>
|
||||
<value>MHz</value>
|
||||
<value>GHz</value>
|
||||
</choice>
|
||||
</attribute>
|
||||
<data type="decimal"/>
|
||||
</define>
|
||||
<define name="longName">
|
||||
<element name="longName">
|
||||
<data type="string">
|
||||
<param name="pattern">[.A-Za-z0-9/ >\-]{0,16}</param>
|
||||
</data>
|
||||
</element>
|
||||
</define>
|
||||
<define name="frequency">
|
||||
<element name="frequency">
|
||||
<ref name="frequencyType"/>
|
||||
</element>
|
||||
</define>
|
||||
<define name="SquelchList">
|
||||
<optional>
|
||||
<element name="squelch">
|
||||
<ref name="squelchType"/>
|
||||
</element>
|
||||
</optional>
|
||||
<optional>
|
||||
<element name="squelch">
|
||||
<ref name="squelchType"/>
|
||||
</element>
|
||||
</optional>
|
||||
<optional>
|
||||
<element name="squelch">
|
||||
<ref name="squelchType"/>
|
||||
</element>
|
||||
</optional>
|
||||
</define>
|
||||
<define name="squelchType">
|
||||
<optional>
|
||||
<element name="tone">
|
||||
<data type="decimal">
|
||||
<param name="minInclusive">67.0</param>
|
||||
<param name="maxInclusive">254.1</param>
|
||||
</data>
|
||||
</element>
|
||||
</optional>
|
||||
<optional>
|
||||
<!-- could also use enumeration -->
|
||||
<element name="code">
|
||||
<data type="positiveInteger"/>
|
||||
</element>
|
||||
</optional>
|
||||
<optional>
|
||||
<element name="polarity">
|
||||
<data type="string">
|
||||
<param name="pattern">[RN]{2}</param>
|
||||
</data>
|
||||
</element>
|
||||
</optional>
|
||||
<optional>
|
||||
<attribute name="id"/>
|
||||
</optional>
|
||||
<optional>
|
||||
<attribute name="type"/>
|
||||
</optional>
|
||||
</define>
|
||||
<define name="offset">
|
||||
<element name="offset">
|
||||
<ref name="frequencyType"/>
|
||||
</element>
|
||||
</define>
|
||||
<define name="tuningStep">
|
||||
<element name="tuningStep">
|
||||
<ref name="frequencyType"/>
|
||||
</element>
|
||||
</define>
|
||||
<define name="squelchSetting">
|
||||
<element name="squelchSetting">
|
||||
<data type="string"/>
|
||||
</element>
|
||||
</define>
|
||||
<define name="duplex">
|
||||
<element name="duplex">
|
||||
<choice>
|
||||
<value>positive</value>
|
||||
<value>negative</value>
|
||||
<value>none</value>
|
||||
</choice>
|
||||
</element>
|
||||
</define>
|
||||
<define name="mode">
|
||||
<element name="mode">
|
||||
<choice>
|
||||
<value>FM</value>
|
||||
<value>NFM</value>
|
||||
<value>WFM</value>
|
||||
<value>AM</value>
|
||||
<value>NAM</value>
|
||||
<value>DV</value>
|
||||
</choice>
|
||||
</element>
|
||||
</define>
|
||||
<define name="dv">
|
||||
<element name="dv">
|
||||
<element name="urcall">
|
||||
<ref name="callsignType"/>
|
||||
</element>
|
||||
<element name="rpt1call">
|
||||
<ref name="callsignType"/>
|
||||
</element>
|
||||
<element name="rpt2call">
|
||||
<ref name="callsignType"/>
|
||||
</element>
|
||||
<optional>
|
||||
<element name="digitalCode">
|
||||
<ref name="digitalCodeType"/>
|
||||
</element>
|
||||
</optional>
|
||||
</element>
|
||||
</define>
|
||||
<define name="callsignType">
|
||||
<data type="string">
|
||||
<param name="pattern">[A-Z0-9/ ]*</param>
|
||||
</data>
|
||||
</define>
|
||||
<define name="digitalCodeType">
|
||||
<data type="integer">
|
||||
<param name="minInclusive">0</param>
|
||||
</data>
|
||||
</define>
|
||||
<define name="skip">
|
||||
<element name="skip">
|
||||
<choice>
|
||||
<value>S</value>
|
||||
<value>P</value>
|
||||
<value/>
|
||||
</choice>
|
||||
</element>
|
||||
</define>
|
||||
<define name="bank">
|
||||
<element name="bank">
|
||||
<attribute name="bankId">
|
||||
<data type="nonNegativeInteger"/>
|
||||
</attribute>
|
||||
<optional>
|
||||
<attribute name="bankIndex">
|
||||
<data type="nonNegativeInteger"/>
|
||||
</attribute>
|
||||
</optional>
|
||||
</element>
|
||||
</define>
|
||||
</grammar>
|
Loading…
Reference in New Issue
Block a user