Use a build-in datatype of XML Schema instead of hand-crafting our own.

Bug: https://bugs.gentoo.org/578294
Signed-off-by: Ulrich Müller <u...@gentoo.org>
---
 metadata.xsd | 224 ++-------------------------------------------------
 1 file changed, 6 insertions(+), 218 deletions(-)

diff --git a/metadata.xsd b/metadata.xsd
index 1a86051..40e230e 100644
--- a/metadata.xsd
+++ b/metadata.xsd
@@ -170,7 +170,7 @@
        <xs:complexType name='maintainerDescType'>
                <xs:simpleContent>
                        <xs:extension base="xs:token">
-                               <xs:attribute name='lang' type='langAttrType' 
default='en'/>
+                               <xs:attribute name='lang' type='xs:language' 
default='en'/>
                        </xs:extension>
                </xs:simpleContent>
        </xs:complexType>
@@ -181,7 +181,7 @@
                        <xs:element name='pkg' type='pkgType'/>
                        <xs:element name='cat' type='catType'/>
                </xs:choice>
-               <xs:attribute name='lang' type='langAttrType' default='en'/>
+               <xs:attribute name='lang' type='xs:language' default='en'/>
                <xs:attribute name='restrict' type='restrictAttrType' 
default=''/>
        </xs:complexType>
 
@@ -190,7 +190,7 @@
                        <xs:element name='pkg' type='pkgType'/>
                        <xs:element name='cat' type='catType'/>
                </xs:choice>
-               <xs:attribute name='lang' type='langAttrType' default='en'/>
+               <xs:attribute name='lang' type='xs:language' default='en'/>
        </xs:complexType>
 
        <!-- slots -->
@@ -199,7 +199,7 @@
                        <xs:element name='slot' type='slotType'/>
                        <xs:element name='subslots' type='tokenOnceType'/>
                </xs:choice>
-               <xs:attribute name='lang' type='langAttrType' default='en'/>
+               <xs:attribute name='lang' type='xs:language' default='en'/>
        </xs:complexType>
 
        <xs:complexType name='slotType'>
@@ -229,7 +229,7 @@
                <xs:choice minOccurs='0' maxOccurs='unbounded'>
                        <xs:element name='flag' type='flagType'/>
                </xs:choice>
-               <xs:attribute name='lang' type='langAttrType' default='en'/>
+               <xs:attribute name='lang' type='xs:language' default='en'/>
        </xs:complexType>
 
        <xs:complexType name='flagType' mixed='true'>
@@ -254,7 +254,7 @@
        <xs:complexType name='upstreamDocType'>
                <xs:simpleContent>
                        <xs:extension base="urlType">
-                               <xs:attribute name='lang' type='langAttrType' 
default='en'/>
+                               <xs:attribute name='lang' type='xs:language' 
default='en'/>
                        </xs:extension>
                </xs:simpleContent>
        </xs:complexType>
@@ -313,218 +313,6 @@
        </xs:simpleType>
 
        <!-- common attributes -->
-       <xs:simpleType name='langAttrType'>
-               <xs:restriction base='xs:token'>
-                       <!-- ISO 639-1 language codes -->
-                       <xs:enumeration value='aa'/>
-                       <xs:enumeration value='ab'/>
-                       <xs:enumeration value='ae'/>
-                       <xs:enumeration value='af'/>
-                       <xs:enumeration value='ak'/>
-                       <xs:enumeration value='am'/>
-                       <xs:enumeration value='an'/>
-                       <xs:enumeration value='ar'/>
-                       <xs:enumeration value='as'/>
-                       <xs:enumeration value='av'/>
-                       <xs:enumeration value='ay'/>
-                       <xs:enumeration value='az'/>
-                       <xs:enumeration value='ba'/>
-                       <xs:enumeration value='be'/>
-                       <xs:enumeration value='bg'/>
-                       <xs:enumeration value='bh'/>
-                       <xs:enumeration value='bi'/>
-                       <xs:enumeration value='bm'/>
-                       <xs:enumeration value='bn'/>
-                       <xs:enumeration value='bo'/>
-                       <xs:enumeration value='bo'/>
-                       <xs:enumeration value='br'/>
-                       <xs:enumeration value='bs'/>
-                       <xs:enumeration value='ca'/>
-                       <xs:enumeration value='ce'/>
-                       <xs:enumeration value='ch'/>
-                       <xs:enumeration value='co'/>
-                       <xs:enumeration value='cr'/>
-                       <xs:enumeration value='cs'/>
-                       <xs:enumeration value='cs'/>
-                       <xs:enumeration value='cu'/>
-                       <xs:enumeration value='cv'/>
-                       <xs:enumeration value='cy'/>
-                       <xs:enumeration value='cy'/>
-                       <xs:enumeration value='da'/>
-                       <xs:enumeration value='de'/>
-                       <xs:enumeration value='de'/>
-                       <xs:enumeration value='dv'/>
-                       <xs:enumeration value='dz'/>
-                       <xs:enumeration value='ee'/>
-                       <xs:enumeration value='el'/>
-                       <xs:enumeration value='el'/>
-                       <xs:enumeration value='en'/>
-                       <xs:enumeration value='eo'/>
-                       <xs:enumeration value='es'/>
-                       <xs:enumeration value='et'/>
-                       <xs:enumeration value='eu'/>
-                       <xs:enumeration value='eu'/>
-                       <xs:enumeration value='fa'/>
-                       <xs:enumeration value='fa'/>
-                       <xs:enumeration value='ff'/>
-                       <xs:enumeration value='fi'/>
-                       <xs:enumeration value='fj'/>
-                       <xs:enumeration value='fo'/>
-                       <xs:enumeration value='fr'/>
-                       <xs:enumeration value='fr'/>
-                       <xs:enumeration value='fy'/>
-                       <xs:enumeration value='ga'/>
-                       <xs:enumeration value='ga'/>
-                       <xs:enumeration value='Ga'/>
-                       <xs:enumeration value='gd'/>
-                       <xs:enumeration value='gl'/>
-                       <xs:enumeration value='gn'/>
-                       <xs:enumeration value='gu'/>
-                       <xs:enumeration value='gv'/>
-                       <xs:enumeration value='ha'/>
-                       <xs:enumeration value='he'/>
-                       <xs:enumeration value='hi'/>
-                       <xs:enumeration value='ho'/>
-                       <xs:enumeration value='hr'/>
-                       <xs:enumeration value='ht'/>
-                       <xs:enumeration value='hu'/>
-                       <xs:enumeration value='hy'/>
-                       <xs:enumeration value='hy'/>
-                       <xs:enumeration value='hz'/>
-                       <xs:enumeration value='ia'/>
-                       <xs:enumeration value='id'/>
-                       <xs:enumeration value='ie'/>
-                       <xs:enumeration value='ig'/>
-                       <xs:enumeration value='ii'/>
-                       <xs:enumeration value='ik'/>
-                       <xs:enumeration value='io'/>
-                       <xs:enumeration value='is'/>
-                       <xs:enumeration value='is'/>
-                       <xs:enumeration value='it'/>
-                       <xs:enumeration value='iu'/>
-                       <xs:enumeration value='ja'/>
-                       <xs:enumeration value='jv'/>
-                       <xs:enumeration value='ka'/>
-                       <xs:enumeration value='ka'/>
-                       <xs:enumeration value='kg'/>
-                       <xs:enumeration value='ki'/>
-                       <xs:enumeration value='kj'/>
-                       <xs:enumeration value='kk'/>
-                       <xs:enumeration value='kl'/>
-                       <xs:enumeration value='km'/>
-                       <xs:enumeration value='kn'/>
-                       <xs:enumeration value='ko'/>
-                       <xs:enumeration value='kr'/>
-                       <xs:enumeration value='ks'/>
-                       <xs:enumeration value='ku'/>
-                       <xs:enumeration value='kv'/>
-                       <xs:enumeration value='kw'/>
-                       <xs:enumeration value='ky'/>
-                       <xs:enumeration value='la'/>
-                       <xs:enumeration value='lb'/>
-                       <xs:enumeration value='lg'/>
-                       <xs:enumeration value='li'/>
-                       <xs:enumeration value='ln'/>
-                       <xs:enumeration value='lo'/>
-                       <xs:enumeration value='lt'/>
-                       <xs:enumeration value='lu'/>
-                       <xs:enumeration value='lv'/>
-                       <xs:enumeration value='mg'/>
-                       <xs:enumeration value='mh'/>
-                       <xs:enumeration value='mi'/>
-                       <xs:enumeration value='mi'/>
-                       <xs:enumeration value='mk'/>
-                       <xs:enumeration value='mk'/>
-                       <xs:enumeration value='ml'/>
-                       <xs:enumeration value='mn'/>
-                       <xs:enumeration value='mr'/>
-                       <xs:enumeration value='ms'/>
-                       <xs:enumeration value='ms'/>
-                       <xs:enumeration value='mt'/>
-                       <xs:enumeration value='my'/>
-                       <xs:enumeration value='my'/>
-                       <xs:enumeration value='na'/>
-                       <xs:enumeration value='nb'/>
-                       <xs:enumeration value='nd'/>
-                       <xs:enumeration value='ne'/>
-                       <xs:enumeration value='ng'/>
-                       <xs:enumeration value='nl'/>
-                       <xs:enumeration value='nl'/>
-                       <xs:enumeration value='nn'/>
-                       <xs:enumeration value='no'/>
-                       <xs:enumeration value='nr'/>
-                       <xs:enumeration value='nv'/>
-                       <xs:enumeration value='ny'/>
-                       <xs:enumeration value='oc'/>
-                       <xs:enumeration value='oj'/>
-                       <xs:enumeration value='om'/>
-                       <xs:enumeration value='or'/>
-                       <xs:enumeration value='os'/>
-                       <xs:enumeration value='pa'/>
-                       <xs:enumeration value='pi'/>
-                       <xs:enumeration value='pl'/>
-                       <xs:enumeration value='ps'/>
-                       <xs:enumeration value='pt'/>
-                       <xs:enumeration value='qu'/>
-                       <xs:enumeration value='rm'/>
-                       <xs:enumeration value='rn'/>
-                       <xs:enumeration value='ro'/>
-                       <xs:enumeration value='ro'/>
-                       <xs:enumeration value='ru'/>
-                       <xs:enumeration value='rw'/>
-                       <xs:enumeration value='sa'/>
-                       <xs:enumeration value='sc'/>
-                       <xs:enumeration value='sd'/>
-                       <xs:enumeration value='se'/>
-                       <xs:enumeration value='sg'/>
-                       <xs:enumeration value='si'/>
-                       <xs:enumeration value='sk'/>
-                       <xs:enumeration value='sk'/>
-                       <xs:enumeration value='sl'/>
-                       <xs:enumeration value='sm'/>
-                       <xs:enumeration value='sn'/>
-                       <xs:enumeration value='so'/>
-                       <xs:enumeration value='sq'/>
-                       <xs:enumeration value='sq'/>
-                       <xs:enumeration value='sr'/>
-                       <xs:enumeration value='ss'/>
-                       <xs:enumeration value='st'/>
-                       <xs:enumeration value='su'/>
-                       <xs:enumeration value='sv'/>
-                       <xs:enumeration value='sw'/>
-                       <xs:enumeration value='ta'/>
-                       <xs:enumeration value='te'/>
-                       <xs:enumeration value='tg'/>
-                       <xs:enumeration value='th'/>
-                       <xs:enumeration value='ti'/>
-                       <xs:enumeration value='tk'/>
-                       <xs:enumeration value='tl'/>
-                       <xs:enumeration value='tn'/>
-                       <xs:enumeration value='to'/>
-                       <xs:enumeration value='tr'/>
-                       <xs:enumeration value='ts'/>
-                       <xs:enumeration value='tt'/>
-                       <xs:enumeration value='tw'/>
-                       <xs:enumeration value='ty'/>
-                       <xs:enumeration value='ug'/>
-                       <xs:enumeration value='uk'/>
-                       <xs:enumeration value='ur'/>
-                       <xs:enumeration value='uz'/>
-                       <xs:enumeration value='ve'/>
-                       <xs:enumeration value='vi'/>
-                       <xs:enumeration value='vo'/>
-                       <xs:enumeration value='wa'/>
-                       <xs:enumeration value='wo'/>
-                       <xs:enumeration value='xh'/>
-                       <xs:enumeration value='yi'/>
-                       <xs:enumeration value='yo'/>
-                       <xs:enumeration value='za'/>
-                       <xs:enumeration value='zh'/>
-                       <xs:enumeration value='zh'/>
-                       <xs:enumeration value='zu'/>
-               </xs:restriction>
-       </xs:simpleType>
-
        <xs:simpleType name='restrictAttrType'>
                <xs:restriction base='xs:token'>
                        <!-- simplified package dependency syntax -->
-- 
2.35.1


Reply via email to