I'm having difficulty searching for this. How would I define an element in an XML schema file for XML that looks like this:
<option value="test">sometext</option>
I can't figure out how to define an element that is of type xs:string
and also has an attribute.
Here's what I've got so far:
<xs:element name="option">
<xs:complexType>
<xs:attribute name="value" type="xs:string" />
</xs:complexType>
</xs:element>
Try
<xs:element name="option" type="AttrElement" />
<xs:complexType name="AttrElement">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="value" type="xs:string">
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
... or the inline equivalent:
<xs:element name="option">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="value" type="xs:string" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
simpleContent
within a complexType
. But then again it's XSD, where nothing seems really intuitive. Thanks nonetheless! :-)
I know it is not the same, but it works for me:
<xsd:element name="option">
<xsd:complexType mixed="true">
<xsd:attribute name="value" use="optional" type="xsd:string"/>
</xsd:complexType>
</xsd:element>
Success story sharing
tns
is bound to the schema document's target namespace, you will usetype="tns:AttrElement"
to refer to the type.)type="tns:AtrElement"
if your default namespace of the XSD is xs not the targetNamespace of the document. Typically in that casetns
is defined and used.