diff options
| author | Matthew Poletiek <matthew.poletiek@gmail.com> | 2020-12-08 21:03:16 -0600 |
|---|---|---|
| committer | Matthew Poletiek <matthew.poletiek@gmail.com> | 2020-12-08 21:03:16 -0600 |
| commit | e99416456afd4aa8bde42016826f9a345291cbf3 (patch) | |
| tree | a7a95639cd1cb5dbe2d91a2ca8e8defafac4296d /share/contrib | |
| parent | 194cf4e5e0b6a2811103a9b739a72b9afe2b886c (diff) | |
| download | chirp-e99416456afd4aa8bde42016826f9a345291cbf3.tar.gz chirp-e99416456afd4aa8bde42016826f9a345291cbf3.tar.xz | |
Initial Commit
Diffstat (limited to 'share/contrib')
| -rw-r--r-- | share/contrib/chirp.rnc | 28 | ||||
| -rw-r--r-- | share/contrib/chirp.rng | 58 | ||||
| -rw-r--r-- | share/contrib/chirp_banks.rnc | 3 | ||||
| -rw-r--r-- | share/contrib/chirp_banks.rng | 11 | ||||
| -rw-r--r-- | share/contrib/chirp_memory.rnc | 64 | ||||
| -rw-r--r-- | share/contrib/chirp_memory.rng | 193 |
6 files changed, 357 insertions, 0 deletions
diff --git a/share/contrib/chirp.rnc b/share/contrib/chirp.rnc new file mode 100644 index 0000000..6ea2715 --- /dev/null +++ b/share/contrib/chirp.rnc @@ -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}" } diff --git a/share/contrib/chirp.rng b/share/contrib/chirp.rng new file mode 100644 index 0000000..d6020e5 --- /dev/null +++ b/share/contrib/chirp.rng @@ -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> diff --git a/share/contrib/chirp_banks.rnc b/share/contrib/chirp_banks.rnc new file mode 100644 index 0000000..d832539 --- /dev/null +++ b/share/contrib/chirp_banks.rnc @@ -0,0 +1,3 @@ +bankType = + attribute id { xsd:nonNegativeInteger }, + attribute label { xsd:string } diff --git a/share/contrib/chirp_banks.rng b/share/contrib/chirp_banks.rng new file mode 100644 index 0000000..fa25081 --- /dev/null +++ b/share/contrib/chirp_banks.rng @@ -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> diff --git a/share/contrib/chirp_memory.rnc b/share/contrib/chirp_memory.rnc new file mode 100644 index 0000000..ad7ee2e --- /dev/null +++ b/share/contrib/chirp_memory.rnc @@ -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 }? +} diff --git a/share/contrib/chirp_memory.rng b/share/contrib/chirp_memory.rng new file mode 100644 index 0000000..0d88eac --- /dev/null +++ b/share/contrib/chirp_memory.rng @@ -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> |
