
On Mon, Oct 27, 2014 at 10:37:38AM -0400, Conrad Meyer wrote:
Sponsored by: EMC / Isilon storage division
Signed-off-by: Conrad Meyer <conrad.meyer@isilon.com> --- docs/schemas/domaincommon.rng | 41 ++++++++++++++++++++++++++++++----------- 1 file changed, 30 insertions(+), 11 deletions(-)
diff --git a/docs/schemas/domaincommon.rng b/docs/schemas/domaincommon.rng index 20d81ae..1c444e0 100644 --- a/docs/schemas/domaincommon.rng +++ b/docs/schemas/domaincommon.rng @@ -213,7 +213,7 @@ <choice> <group> <optional> - <ref name="bootloader"/> + <ref name="xenbootloader"/> </optional> <element name="os"> <ref name="ostypexen"/> @@ -221,7 +221,7 @@ </element> </group> <group> - <ref name="bootloader"/> + <ref name="xenbootloader"/> <optional> <element name="os"> <ref name="ostypexen"/> @@ -234,6 +234,9 @@ </choice> </define> <define name="oshvm"> + <optional> + <ref name="bhyvebootloader"/> + </optional> <element name="os"> <ref name="ostypehvm"/> <interleave> @@ -1053,17 +1056,33 @@ binary or script used to extract the data from the first disk device. --> <define name="bootloader"> + <element name="bootloader"> + <choice> + <ref name="absFilePath"/> + <empty/> + </choice> + </element> + </define> + <define name="bootloader_args"> + <element name="bootloader_args"> + <text/> + </element> + </define> + <define name="xenbootloader"> <interleave> - <element name="bootloader"> - <choice> - <ref name="absFilePath"/> - <empty/> - </choice> - </element> + <ref name="bootloader"/> <optional> - <element name="bootloader_args"> - <text/> - </element> + <ref name="bootloader_args"/> + </optional> + </interleave> + </define> + <define name="bhyvebootloader"> + <interleave> + <optional> + <ref name="bootloader"/> + </optional> + <optional> + <ref name="bootloader_args"/> </optional> </interleave> </define>
I understand you created separate bhyvebootloader vs xenbootloader schema rules, so that the Xen case can keep <bootloader> as compulsory for use when <bootloader_args> is set, while for bhyve you allow <bootloader_args> without any corresponding <bootloader>. The actual XML parser meanwhile, always allows <bootloader_args> even when <bootloader> is not set. So I think you don't really need to have the complexity of making the schema provide different rules for xen vs bhyve. Lets just stay simple and keep a single <define name="bootloader"/>element and make the <bootloader> optional to match what the parser actually does. Regards, Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|