Schema aWireframeML.xsd


schema location:  http://wireframeml.sourceforge.net
 
Elements 
wireframe (root) 
comment 
description 
link 
meta 
name 
requirement 
title 

Large Diagram
element comment
diagram
type restriction of xs:string
properties
content simple
used by
elements wireframe/head link wireframe/body/view
facets
minLength 1
maxLength 255
annotation
documentation 
These can be either user or generator defined. These should have no influence on behaviour and are optionally displayed. These are to be used as you would use comments in any programming language.  Imported data that does not fit into other elements should land here. The order of comment elements should not matter.
source
<xs:element name="comment">
  <xs:annotation>
    <xs:documentation>These can be either user or generator defined. These should have no influence on behaviour and are optionally displayed. These are to be used as you would use comments in any programming language.  Imported data that does not fit into other elements should land here. The order of comment elements should not matter.</xs:documentation>
  </xs:annotation>
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:minLength value="1"/>
      <xs:maxLength value="255"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

element description
diagram
type restriction of xs:string
properties
content simple
used by
elements wireframe/head requirement wireframe/body/view
facets
minLength 1
maxLength 2000
whiteSpace collapse
annotation
documentation 
These are typically in the format of "I am ..." or "I do ..." Descriptions do not contain style or design information.
source
<xs:element name="description">
  <xs:annotation>
    <xs:documentation>These are typically in the format of "I am ..." or "I do ..." Descriptions do not contain style or design information.</xs:documentation>
  </xs:annotation>
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:minLength value="1"/>
      <xs:maxLength value="2000"/>
      <xs:whiteSpace value="collapse"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

element link
diagram
properties
content complex
children name title comment meta requirement
used by
elements wireframe/body/view/action wireframe/body/view/component
attributes
Name  Type  Use  Default  Fixed  Annotation
IDREF  xs:IDREFrequired      
annotation
documentation 
This element links one view to another (or to itself). The order of link elements should not matter.
source
<xs:element name="link">
  <xs:annotation>
    <xs:documentation>This element links one view to another (or to itself). The order of link elements should not matter.</xs:documentation>
  </xs:annotation>
  <xs:complexType>
    <xs:sequence>
      <xs:element ref="name"/>
      <xs:element ref="title" minOccurs="0"/>
      <xs:element ref="comment" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element ref="meta" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element ref="requirement" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attribute name="IDREF" type="xs:IDREF" use="required"/>
  </xs:complexType>
</xs:element>

element meta
diagram
properties
content complex
used by
elements wireframe/head link wireframe/body/view
attributes
Name  Type  Use  Default  Fixed  Annotation
key  xs:stringrequired      
value  xs:stringrequired      
annotation
documentation 
This element should only be used for application specific required data that can not be represented in other elements. The typical behaviour when importing a wireframe of a different generator type is to translate all meta elements to comment elements "key=value" without the quotes. You may choose to map these to your application where appropriate. The order of meta elements should not matter. Usage example: client=ACME Rockets
source
<xs:element name="meta">
  <xs:annotation>
    <xs:documentation>This element should only be used for application specific required data that can not be represented in other elements. The typical behaviour when importing a wireframe of a different generator type is to translate all meta elements to comment elements "key=value" without the quotes. You may choose to map these to your application where appropriate. The order of meta elements should not matter. Usage example: client=ACME Rockets</xs:documentation>
  </xs:annotation>
  <xs:complexType>
    <xs:attribute name="key" type="xs:string" use="required"/>
    <xs:attribute name="value" type="xs:string" use="required"/>
  </xs:complexType>
</xs:element>

element name
diagram
type extension of xs:string
properties
content complex
used by
elements wireframe/head link requirement wireframe/body/view
annotation
documentation 
Node name. These should conform to some naming convention.
source
<xs:element name="name">
  <xs:annotation>
    <xs:documentation>Node name. These should conform to some naming convention.</xs:documentation>
  </xs:annotation>
  <xs:complexType>
    <xs:simpleContent>
      <xs:extension base="xs:string"/>
    </xs:simpleContent>
  </xs:complexType>
</xs:element>

element requirement
diagram
properties
content complex
children name description testcase
used by
elements wireframe/head link wireframe/body/view
source
<xs:element name="requirement">
  <xs:complexType>
    <xs:sequence>
      <xs:element ref="name" minOccurs="0"/>
      <xs:element ref="description"/>
      <xs:element name="testcase" minOccurs="0" maxOccurs="unbounded">
        <xs:complexType>
          <xs:attribute name="pass" type="xs:boolean"/>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
</xs:element>

element requirement/testcase
diagram
properties
isRef 0
content complex
attributes
Name  Type  Use  Default  Fixed  Annotation
pass  xs:boolean      
source
<xs:element name="testcase" minOccurs="0" maxOccurs="unbounded">
  <xs:complexType>
    <xs:attribute name="pass" type="xs:boolean"/>
  </xs:complexType>
</xs:element>

element title
diagram
type restriction of xs:string
properties
content simple
default <empty>
nillable false
used by
elements wireframe/head link wireframe/body/view
facets
minLength 1
maxLength 255
whiteSpace collapse
annotation
documentation 
Descriptive title.
source
<xs:element name="title" default="" nillable="false">
  <xs:annotation>
    <xs:documentation>Descriptive title.</xs:documentation>
  </xs:annotation>
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:minLength value="1"/>
      <xs:maxLength value="255"/>
      <xs:whiteSpace value="collapse"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

element wireframe
diagram
properties
content complex
children head body
annotation
documentation 
aWireframeML top level element. For simplicity sake each instance contains only 1 wireframe. This may cause some redundancy to occur but should reduce complexity in implementations. Instances should be named with a .xml extension.
source
<xs:element name="wireframe">
  <xs:annotation>
    <xs:documentation>aWireframeML top level element. For simplicity sake each instance contains only 1 wireframe. This may cause some redundancy to occur but should reduce complexity in implementations. Instances should be named with a .xml extension.</xs:documentation>
  </xs:annotation>
  <xs:complexType>
    <xs:sequence>
      <xs:element name="head">
        <xs:annotation>
          <xs:documentation>Every wireframe has a header which describes it. This is similar to a HTML page header.</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:element ref="name"/>
            <xs:element ref="title" minOccurs="0"/>
            <xs:element ref="description"/>
            <xs:element name="version" type="xs:string" minOccurs="0">
              <xs:annotation>
                <xs:documentation>Wireframe version or revision, etc...</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="keyword" minOccurs="0" maxOccurs="unbounded">
              <xs:annotation>
                <xs:documentation>Optional element used for searching purposes. Not all applications are expected to make use of this element.</xs:documentation>
              </xs:annotation>
              <xs:simpleType>
                <xs:restriction base="xs:string">
                  <xs:minLength value="1"/>
                  <xs:maxLength value="100"/>
                  <xs:whiteSpace value="collapse"/>
                </xs:restriction>
              </xs:simpleType>
            </xs:element>
            <xs:element name="url" type="xs:anyURI" minOccurs="0">
              <xs:annotation>
                <xs:documentation>Optional link to more information about this wireframe. This must be a URI.</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="author" minOccurs="0"/>
            <xs:element name="generator" minOccurs="0">
              <xs:annotation>
                <xs:documentation>Optional descriptor about tool used to generate XML instance. Typically this is only needed if application specific metadata exists. A version attribute is required. When importing you can keep, discard, or move to comments.</xs:documentation>
              </xs:annotation>
              <xs:complexType>
                <xs:attribute name="version" use="required"/>
              </xs:complexType>
            </xs:element>
            <xs:element ref="meta" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element ref="comment" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element ref="requirement" minOccurs="0" maxOccurs="unbounded"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="body">
        <xs:annotation>
          <xs:documentation>Wireframe Body is the structure of the wireframe.</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:choice>
            <xs:element name="view" maxOccurs="unbounded">
              <xs:annotation>
                <xs:documentation>A wireframe view is equivalent to a HTML page, screen, form, page, cuircuit, [choose your preffered name], or component of one, etc... The first view element is usually the initial view a user will see. All other views must be a generation (child, grandson, etc...) of the initial view. If you have multiple initial views it is suggested that you link them from a single parent element with a title such as "Start". </xs:documentation>
              </xs:annotation>
              <xs:complexType>
                <xs:sequence>
                  <xs:element ref="name"/>
                  <xs:element ref="title" minOccurs="0"/>
                  <xs:element ref="description" minOccurs="0"/>
                  <xs:element name="component" minOccurs="0" maxOccurs="unbounded">
                    <xs:annotation>
                      <xs:documentation>This can be optionally used to  describe what sub-components make up the view. This allows you to modularize your views. These can be nested.</xs:documentation>
                    </xs:annotation>
                    <xs:complexType>
                      <xs:all>
                        <xs:element ref="link"/>
                      </xs:all>
                    </xs:complexType>
                  </xs:element>
                  <xs:element name="action" minOccurs="0" maxOccurs="unbounded">
                    <xs:annotation>
                      <xs:documentation>This is the typical way to link one view to another. The user or system performs some type of action resulting in a new view.</xs:documentation>
                    </xs:annotation>
                    <xs:complexType>
                      <xs:all>
                        <xs:element ref="link"/>
                      </xs:all>
                    </xs:complexType>
                  </xs:element>
                  <xs:element ref="comment" minOccurs="0" maxOccurs="unbounded"/>
                  <xs:element ref="meta" minOccurs="0" maxOccurs="unbounded"/>
                  <xs:element ref="requirement" minOccurs="0" maxOccurs="unbounded"/>
                </xs:sequence>
                <xs:attribute name="ID" type="xs:ID" use="required"/>
              </xs:complexType>
            </xs:element>
          </xs:choice>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
</xs:element>

element wireframe/head
diagram
properties
isRef 0
content complex
children name title description version keyword url author generator meta comment requirement
annotation
documentation 
Every wireframe has a header which describes it. This is similar to a HTML page header.
source
<xs:element name="head">
  <xs:annotation>
    <xs:documentation>Every wireframe has a header which describes it. This is similar to a HTML page header.</xs:documentation>
  </xs:annotation>
  <xs:complexType>
    <xs:sequence>
      <xs:element ref="name"/>
      <xs:element ref="title" minOccurs="0"/>
      <xs:element ref="description"/>
      <xs:element name="version" type="xs:string" minOccurs="0">
        <xs:annotation>
          <xs:documentation>Wireframe version or revision, etc...</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="keyword" minOccurs="0" maxOccurs="unbounded">
        <xs:annotation>
          <xs:documentation>Optional element used for searching purposes. Not all applications are expected to make use of this element.</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:minLength value="1"/>
            <xs:maxLength value="100"/>
            <xs:whiteSpace value="collapse"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="url" type="xs:anyURI" minOccurs="0">
        <xs:annotation>
          <xs:documentation>Optional link to more information about this wireframe. This must be a URI.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="author" minOccurs="0"/>
      <xs:element name="generator" minOccurs="0">
        <xs:annotation>
          <xs:documentation>Optional descriptor about tool used to generate XML instance. Typically this is only needed if application specific metadata exists. A version attribute is required. When importing you can keep, discard, or move to comments.</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:attribute name="version" use="required"/>
        </xs:complexType>
      </xs:element>
      <xs:element ref="meta" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element ref="comment" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element ref="requirement" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>

element wireframe/head/version
diagram
type xs:string
properties
isRef 0
content simple
annotation
documentation 
Wireframe version or revision, etc...
source
<xs:element name="version" type="xs:string" minOccurs="0">
  <xs:annotation>
    <xs:documentation>Wireframe version or revision, etc...</xs:documentation>
  </xs:annotation>
</xs:element>

element wireframe/head/keyword
diagram
type restriction of xs:string
properties
isRef 0
content simple
facets
minLength 1
maxLength 100
whiteSpace collapse
annotation
documentation 
Optional element used for searching purposes. Not all applications are expected to make use of this element.
source
<xs:element name="keyword" minOccurs="0" maxOccurs="unbounded">
  <xs:annotation>
    <xs:documentation>Optional element used for searching purposes. Not all applications are expected to make use of this element.</xs:documentation>
  </xs:annotation>
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:minLength value="1"/>
      <xs:maxLength value="100"/>
      <xs:whiteSpace value="collapse"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

element wireframe/head/url
diagram
type xs:anyURI
properties
isRef 0
content simple
annotation
documentation 
Optional link to more information about this wireframe. This must be a URI.
source
<xs:element name="url" type="xs:anyURI" minOccurs="0">
  <xs:annotation>
    <xs:documentation>Optional link to more information about this wireframe. This must be a URI.</xs:documentation>
  </xs:annotation>
</xs:element>

element wireframe/head/author
diagram
properties
isRef 0
source
<xs:element name="author" minOccurs="0"/>

element wireframe/head/generator
diagram
properties
isRef 0
content complex
attributes
Name  Type  Use  Default  Fixed  Annotation
version  required      
annotation
documentation 
Optional descriptor about tool used to generate XML instance. Typically this is only needed if application specific metadata exists. A version attribute is required. When importing you can keep, discard, or move to comments.
source
<xs:element name="generator" minOccurs="0">
  <xs:annotation>
    <xs:documentation>Optional descriptor about tool used to generate XML instance. Typically this is only needed if application specific metadata exists. A version attribute is required. When importing you can keep, discard, or move to comments.</xs:documentation>
  </xs:annotation>
  <xs:complexType>
    <xs:attribute name="version" use="required"/>
  </xs:complexType>
</xs:element>

element wireframe/body
diagram
properties
isRef 0
content complex
children view
annotation
documentation 
Wireframe Body is the structure of the wireframe.
source
<xs:element name="body">
  <xs:annotation>
    <xs:documentation>Wireframe Body is the structure of the wireframe.</xs:documentation>
  </xs:annotation>
  <xs:complexType>
    <xs:choice>
      <xs:element name="view" maxOccurs="unbounded">
        <xs:annotation>
          <xs:documentation>A wireframe view is equivalent to a HTML page, screen, form, page, cuircuit, [choose your preffered name], or component of one, etc... The first view element is usually the initial view a user will see. All other views must be a generation (child, grandson, etc...) of the initial view. If you have multiple initial views it is suggested that you link them from a single parent element with a title such as "Start". </xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:element ref="name"/>
            <xs:element ref="title" minOccurs="0"/>
            <xs:element ref="description" minOccurs="0"/>
            <xs:element name="component" minOccurs="0" maxOccurs="unbounded">
              <xs:annotation>
                <xs:documentation>This can be optionally used to  describe what sub-components make up the view. This allows you to modularize your views. These can be nested.</xs:documentation>
              </xs:annotation>
              <xs:complexType>
                <xs:all>
                  <xs:element ref="link"/>
                </xs:all>
              </xs:complexType>
            </xs:element>
            <xs:element name="action" minOccurs="0" maxOccurs="unbounded">
              <xs:annotation>
                <xs:documentation>This is the typical way to link one view to another. The user or system performs some type of action resulting in a new view.</xs:documentation>
              </xs:annotation>
              <xs:complexType>
                <xs:all>
                  <xs:element ref="link"/>
                </xs:all>
              </xs:complexType>
            </xs:element>
            <xs:element ref="comment" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element ref="meta" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element ref="requirement" minOccurs="0" maxOccurs="unbounded"/>
          </xs:sequence>
          <xs:attribute name="ID" type="xs:ID" use="required"/>
        </xs:complexType>
      </xs:element>
    </xs:choice>
  </xs:complexType>
</xs:element>

element wireframe/body/view
diagram
properties
isRef 0
content complex
children name title description component action comment meta requirement
attributes
Name  Type  Use  Default  Fixed  Annotation
ID  xs:IDrequired      
annotation
documentation 
A wireframe view is equivalent to a HTML page, screen, form, page, cuircuit, [choose your preffered name], or component of one, etc... The first view element is usually the initial view a user will see. All other views must be a generation (child, grandson, etc...) of the initial view. If you have multiple initial views it is suggested that you link them from a single parent element with a title such as "Start". 
source
<xs:element name="view" maxOccurs="unbounded">
  <xs:annotation>
    <xs:documentation>A wireframe view is equivalent to a HTML page, screen, form, page, cuircuit, [choose your preffered name], or component of one, etc... The first view element is usually the initial view a user will see. All other views must be a generation (child, grandson, etc...) of the initial view. If you have multiple initial views it is suggested that you link them from a single parent element with a title such as "Start". </xs:documentation>
  </xs:annotation>
  <xs:complexType>
    <xs:sequence>
      <xs:element ref="name"/>
      <xs:element ref="title" minOccurs="0"/>
      <xs:element ref="description" minOccurs="0"/>
      <xs:element name="component" minOccurs="0" maxOccurs="unbounded">
        <xs:annotation>
          <xs:documentation>This can be optionally used to  describe what sub-components make up the view. This allows you to modularize your views. These can be nested.</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:all>
            <xs:element ref="link"/>
          </xs:all>
        </xs:complexType>
      </xs:element>
      <xs:element name="action" minOccurs="0" maxOccurs="unbounded">
        <xs:annotation>
          <xs:documentation>This is the typical way to link one view to another. The user or system performs some type of action resulting in a new view.</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:all>
            <xs:element ref="link"/>
          </xs:all>
        </xs:complexType>
      </xs:element>
      <xs:element ref="comment" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element ref="meta" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element ref="requirement" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attribute name="ID" type="xs:ID" use="required"/>
  </xs:complexType>
</xs:element>

element wireframe/body/view/component
diagram
properties
isRef 0
content complex
children link
annotation
documentation 
This can be optionally used to  describe what sub-components make up the view. This allows you to modularize your views. These can be nested.
source
<xs:element name="component" minOccurs="0" maxOccurs="unbounded">
  <xs:annotation>
    <xs:documentation>This can be optionally used to  describe what sub-components make up the view. This allows you to modularize your views. These can be nested.</xs:documentation>
  </xs:annotation>
  <xs:complexType>
    <xs:all>
      <xs:element ref="link"/>
    </xs:all>
  </xs:complexType>
</xs:element>

element wireframe/body/view/action
diagram
properties
isRef 0
content complex
children link
annotation
documentation 
This is the typical way to link one view to another. The user or system performs some type of action resulting in a new view.
source
<xs:element name="action" minOccurs="0" maxOccurs="unbounded">
  <xs:annotation>
    <xs:documentation>This is the typical way to link one view to another. The user or system performs some type of action resulting in a new view.</xs:documentation>
  </xs:annotation>
  <xs:complexType>
    <xs:all>
      <xs:element ref="link"/>
    </xs:all>
  </xs:complexType>
</xs:element>


XML Schema documentation generated with
XMLSPY Schema Editor http://www.altova.com/xmlspy