[libvirt] [PATCH] xml: Clean up schemas to use shared data types instead of local

Osier Yang jyang at redhat.com
Tue Mar 6 15:00:40 UTC 2012


On 2012年03月06日 22:15, Peter Krempa wrote:
> The schema files contained duplicate data types that can be shared from
> the basictypes.rng file.
> ---
>   docs/schemas/capability.rng |   43 +++++----------------------------
>   docs/schemas/interface.rng  |   16 ++++--------
>   docs/schemas/nodedev.rng    |   54 +++++++++++++++---------------------------
>   docs/schemas/nwfilter.rng   |   28 +---------------------
>   4 files changed, 32 insertions(+), 109 deletions(-)
>
> diff --git a/docs/schemas/capability.rng b/docs/schemas/capability.rng
> index 3af95e9..06ff685 100644
> --- a/docs/schemas/capability.rng
> +++ b/docs/schemas/capability.rng
> @@ -1,6 +1,7 @@
>   <!-- A Relax NG schema for the libvirt capabilities XML format -->
>   <grammar xmlns="http://relaxng.org/ns/structure/1.0"
>       datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
> +<include href='basictypes.rng'/>
>     <start>
>       <ref name='capabilities'/>
>     </start>
> @@ -157,7 +158,7 @@
>       <element name='topology'>
>         <element name='cells'>
>           <attribute name='num'>
> -<ref name='uint'/>
> +<ref name='unsignedInt'/>
>           </attribute>
>           <oneOrMore>
>             <ref name='cell'/>
> @@ -169,13 +170,13 @@
>     <define name='cell'>
>       <element name='cell'>
>         <attribute name='id'>
> -<ref name='uint'/>
> +<ref name='unsignedInt'/>
>         </attribute>
>
>         <optional>
>           <element name='cpus'>
>             <attribute name='num'>
> -<ref name='uint'/>
> +<ref name='unsignedInt'/>
>             </attribute>
>             <oneOrMore>
>               <ref name='cpu'/>
> @@ -188,7 +189,7 @@
>     <define name='cpu'>
>       <element name='cpu'>
>         <attribute name='id'>
> -<ref name='uint'/>
> +<ref name='unsignedInt'/>
>         </attribute>
>       </element>
>     </define>
> @@ -238,13 +239,13 @@
>
>     <define name='emulator'>
>       <element name='emulator'>
> -<ref name='path'/>
> +<ref name='absFilePath'/>
>       </element>
>     </define>
>
>     <define name='loader'>
>       <element name='loader'>
> -<ref name='path'/>
> +<ref name='absFilePath'/>
>       </element>
>     </define>
>
> @@ -367,39 +368,9 @@
>       </choice>
>     </define>
>
> -
> -<define name='positiveInteger'>
> -<data type='positiveInteger'>
> -<param name="pattern">[0-9]+</param>
> -</data>
> -</define>
> -
> -<define name='uint'>
> -<data type='unsignedInt'>
> -<param name="pattern">[0-9]+</param>
> -</data>
> -</define>
> -
> -<define name='path'>
> -<data type='string'>
> -<param name="pattern">/[a-zA-Z0-9_\+\-/%]+</param>
> -</data>
> -</define>
> -
>     <define name='featureName'>
>       <data type='string'>
>         <param name='pattern'>[a-zA-Z0-9\-_]+</param>
>       </data>
>     </define>
> -
> -<define name="UUID">
> -<choice>
> -<data type="string">
> -<param name="pattern">[a-fA-F0-9]{32}</param>
> -</data>
> -<data type="string">
> -<param name="pattern">[a-fA-F0-9]{8}\-([a-fA-F0-9]{4}\-){3}[a-fA-F0-9]{12}</param>
> -</data>
> -</choice>
> -</define>
>   </grammar>
> diff --git a/docs/schemas/interface.rng b/docs/schemas/interface.rng
> index 53fa18a..3984b63 100644
> --- a/docs/schemas/interface.rng
> +++ b/docs/schemas/interface.rng
> @@ -183,12 +183,12 @@
>           <choice>
>             <element name="miimon">
>               <!-- miimon frequency in ms -->
> -<attribute name="freq"><ref name="uint"/></attribute>
> +<attribute name="freq"><ref name="unsignedInt"/></attribute>
>               <optional>
> -<attribute name="downdelay"><ref name="uint"/></attribute>
> +<attribute name="downdelay"><ref name="unsignedInt"/></attribute>
>               </optional>
>               <optional>
> -<attribute name="updelay"><ref name="uint"/></attribute>
> +<attribute name="updelay"><ref name="unsignedInt"/></attribute>
>               </optional>
>               <optional>
>                 <!-- use_carrier -->
> @@ -203,7 +203,7 @@
>               </optional>
>             </element>
>             <element name="arpmon">
> -<attribute name="interval"><ref name="uint"/></attribute>
> +<attribute name="interval"><ref name="unsignedInt"/></attribute>
>               <attribute name="target"><ref name="ipv4Addr"/></attribute>
>               <optional>
>                 <attribute name="validate">
> @@ -252,7 +252,7 @@
>     <define name="mtu">
>       <optional>
>         <element name="mtu">
> -<attribute name="size"><ref name="uint"/></attribute>
> +<attribute name="size"><ref name="unsignedInt"/></attribute>
>         </element>
>       </optional>
>     </define>
> @@ -407,12 +407,6 @@
>
>     <!-- Type library -->
>
> -<define name='uint'>
> -<data type='unsignedInt'>
> -<param name="pattern">[0-9]+</param>
> -</data>
> -</define>
> -
>     <define name="timeval">
>       <data type="double">
>         <param name="minInclusive">0</param>
> diff --git a/docs/schemas/nodedev.rng b/docs/schemas/nodedev.rng
> index 1b9a2d1..a73c2e5 100644
> --- a/docs/schemas/nodedev.rng
> +++ b/docs/schemas/nodedev.rng
> @@ -1,6 +1,7 @@
>   <!-- A Relax NG schema for the libvirt node device XML format -->
>   <grammar xmlns="http://relaxng.org/ns/structure/1.0"
>       datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
> +<include href='basictypes.rng'/>
>     <start>
>       <ref name='device'/>
>     </start>
> @@ -56,7 +57,7 @@
>         </optional>
>
>         <element name='uuid'>
> -<ref name='uuid'/>
> +<ref name='UUID'/>
>         </element>
>       </element>
>
> @@ -80,16 +81,16 @@
>       </attribute>
>
>       <element name='domain'>
> -<ref name='uint'/>
> +<ref name='unsignedLong'/>
>       </element>
>       <element name='bus'>
> -<ref name='uint'/>
> +<ref name='unsignedLong'/>
>       </element>
>       <element name='slot'>
> -<ref name='uint'/>
> +<ref name='unsignedLong'/>
>       </element>
>       <element name='function'>
> -<ref name='uint'/>
> +<ref name='unsignedLong'/>
>       </element>
>
>       <element name='product'>
> @@ -122,10 +123,10 @@
>       </attribute>
>
>       <element name='bus'>
> -<ref name='uint'/>
> +<ref name='unsignedLong'/>
>       </element>
>       <element name='device'>
> -<ref name='uint'/>
> +<ref name='unsignedLong'/>
>       </element>
>
>       <element name='product'>
> @@ -157,16 +158,16 @@
>       </attribute>
>
>       <element name='number'>
> -<ref name='uint'/>
> +<ref name='unsignedLong'/>
>       </element>
>       <element name='class'>
> -<ref name='uint'/>
> +<ref name='unsignedLong'/>
>       </element>
>       <element name='subclass'>
> -<ref name='uint'/>
> +<ref name='unsignedLong'/>
>       </element>
>       <element name='protocol'>
> -<ref name='uint'/>
> +<ref name='unsignedLong'/>
>       </element>
>
>       <optional>
> @@ -252,7 +253,7 @@
>       </attribute>
>
>       <element name='host'>
> -<ref name='uint'/>
> +<ref name='unsignedLong'/>
>       </element>
>
>       <optional>
> @@ -273,16 +274,16 @@
>       </attribute>
>
>       <element name='host'>
> -<ref name='uint'/>
> +<ref name='unsignedLong'/>
>       </element>
>       <element name='bus'>
> -<ref name='uint'/>
> +<ref name='unsignedLong'/>
>       </element>
>       <element name='target'>
> -<ref name='uint'/>
> +<ref name='unsignedLong'/>
>       </element>
>       <element name='lun'>
> -<ref name='uint'/>
> +<ref name='unsignedLong'/>
>       </element>
>
>       <element name='type'>
> @@ -352,7 +353,7 @@
>         </element>
>
>         <element name='media_size'>
> -<ref name='uint'/>
> +<ref name='unsignedLong'/>
>         </element>
>         <optional>
>           <element name='media_label'>
> @@ -364,27 +365,10 @@
>
>     <define name='capstoragefixed'>
>       <element name='size'>
> -<ref name='uint'/>
> +<ref name='unsignedLong'/>
>       </element>
>     </define>
>
> -<define name='uuid'>
> -<choice>
> -<data type='string'>
> -<param name="pattern">[a-fA-F0-9]{32}</param>
> -</data>
> -<data type='string'>
> -<param name="pattern">[a-fA-F0-9]{8}\-([a-fA-F0-9]{4}\-){3}[a-fA-F0-9]{12}</param>
> -</data>
> -</choice>
> -</define>
> -
> -<define name='uint'>
> -<data type='string'>
> -<param name="pattern">[0-9]+</param>
> -</data>
> -</define>
> -

IIRC, unsignedLong allows the the + sign, and leading spaces, which we
may not want.

Others looks good.

Regards,
Osier




More information about the libvir-list mailing list