summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichał Górny <mgorny@gentoo.org>2016-05-06 21:48:22 +0200
committerMichał Górny <mgorny@gentoo.org>2016-05-06 21:48:22 +0200
commit6070512ca8d633167fdcb976e386df7b834b7f61 (patch)
treeadf504b4d99cdacb60b9cd2442fa2ac7e907959a
parentmetadata.xsd: upstream maintainer must have exactly one <name/> element (diff)
downloadxml-schema-6070512ca.tar.gz
xml-schema-6070512ca.tar.bz2
xml-schema-6070512ca.zip
metadata: Fix allowing multiple <description/>s on maintainers
-rw-r--r--metadata.xsd17
1 files changed, 9 insertions, 8 deletions
diff --git a/metadata.xsd b/metadata.xsd
index fe2c5d2..27039cd 100644
--- a/metadata.xsd
+++ b/metadata.xsd
@@ -41,6 +41,10 @@
<xs:choice minOccurs='0' maxOccurs='unbounded'>
<xs:element name='longdescription' type='longDescType'/>
<xs:element name='maintainer' type='maintainerType'>
+ <xs:unique name='maintainerNameSingleConstraint'>
+ <xs:selector xpath='name'/>
+ <xs:field xpath='@fake-only-once'/>
+ </xs:unique>
<xs:unique name='maintainerDescUniquityConstraint'>
<xs:selector xpath='description'/>
<xs:field xpath='@lang'/>
@@ -112,14 +116,11 @@
<!-- maintainer in two variants -->
<xs:complexType name='maintainerType'>
- <xs:all>
- <xs:element name='email' type='emailType'
- minOccurs='1'/>
- <xs:element name='name' type='xs:token'
- minOccurs='0'/>
- <xs:element name='description' type='maintainerDescType'
- minOccurs='0'/>
- </xs:all>
+ <xs:choice minOccurs='0' maxOccurs='unbounded'>
+ <xs:element name='email' type='emailType'/>
+ <xs:element name='name' type='tokenOnceType'/>
+ <xs:element name='description' type='maintainerDescType'/>
+ </xs:choice>
<xs:attribute name='type' type='maintainerTypeAttrType'
use='required'/>
<xs:attribute name='restrict' type='restrictAttrType'/>