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...