Creating Empty Elements

Empty elements have no content, but they can have attributes. So how do you declare them in an XML schema? You do that by declaring a complex type and using the <xsd:complexContent> element. In effect, you are declaring an element that can contain only elements but that does not contain any elements, so it's an empty element.

Here's an example. In this case, I'm going to create a new empty element named <image> that can take three attributes source , width , and height like this: <image source="/images/cover.gif" height="255" width=512"/> . I start by declaring this element:

 <xsd:element name="image">      .     .     . </xsd:element> 

I haven't used the type attribute in this element's declaration because I'll use an anonymous type definition to base this element on. To create the anonymous type, I use a <complexType> and a <complexContent> element:

 <xsd:element name="image">  <xsd:complexType>   <xsd:complexContent>   .   .   .   </xsd:complexContent>   </xsd:complexType>  </xsd:element> 

Finally, I use a <xsd:restriction> element with the type attribute set to xsd:anyType , and add the attributes this element will use:

 <xsd:element name="image">      <xsd:complexType>  <xsd:complexContent>   <xsd:restriction base="xsd:anyType">   <xsd:attribute name="source" type="xsd:string" />   <xsd:attribute name="width" type="xsd:decimal" />   <xsd:attribute name="height" type="xsd:decimal" />   </xsd:restriction>  </xsd:complexContent>     </xsd:complexType> </xsd:element> 

And that's all it takesnow the empty element <image> is ready to be used.



Real World XML
Real World XML (2nd Edition)
ISBN: 0735712867
EAN: 2147483647
Year: 2005
Pages: 440
Authors: Steve Holzner

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net