RNY, which stands for Relax NG for YaST, is a slight modification of the compact syntax of the Relax NG schema language.
You should understand it from the following example. It should roughly remind you of C structs.
# the syntax is Relax NG for YaST, RNY
nis_domain =
STRING nis_domain
nis_servers =
LIST nis_servers {
STRING nis_server*
}
nis_broadcast =
BOOLEAN nis_broadcast
nis =
MAP nis {
BOOLEAN start_nis? &
BOOLEAN nis_by_dhcp? &
nis_domain? & # may be set by dhcp
nis_servers? &
nis_broadcast? &
LIST nis_other_domains {
MAP nis_other_domain {
nis_domain & # here it is mandatory
nis_servers? &
nis_broadcast?
}*
}? &
BOOLEAN nis_broken_server? &
BOOLEAN nis_local_only? &
STRING nis_options? &
BOOLEAN start_autofs?
}
Simple data types: BOOLEAN, INTEGER, STRING, SYMBOL. Complex data types: LIST, MAP.
The initial line must have the form "LIST name {". The brace must be on the same line as LIST and only a comment can follow it.
You can specify whether the list can be empty or not by using * or +:
LIST can_be_empty {
STRING item*
}
LIST cannot_be_empty {
STRING item+
}
How to name the file, how to install it, test it...