Reputation: 1805
I'm working on an XSD file and when validating an XML file with it I want to restrict empty elements. Eg.,
<myElement>this is not empty</myElement>
would pass validation, however
<myElement/>
or <myElement></myElement>
would not pass validation.
Thanks for any help you may offer!
ps. I accidentally posted this at https://stackoverflow.com/questions/4126546/prevent-empty-elements-in-xml-via-xsd under an unregistered account. I apologize for any inconveniences.
UPDATE: The element must be able to not exist in the XML at all, so I can not use minOccurs="1".
Upvotes: 1
Views: 5667
Reputation: 308733
You can have minOccurs="0"
to require the tag, then have a validation regex that checks for one or more characters.
Upvotes: 0
Reputation: 13318
You can do something like
<xs:simpleType name="myString">
<xs:restriction base="xs:string">
<xs:minLength value="1"/>
</xs:restriction>
</xs:simpleType>
<xs:element name="root" type="myString"></xs:element>
However that will still match on <root> </root>
but you could use a regex restriction to change that if it is an issue.
Upvotes: 4