hmcclungiii
hmcclungiii

Reputation: 1805

Prevent Empty Elements in XML via XSD

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

Answers (2)

duffymo
duffymo

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

tyranid
tyranid

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

Related Questions