Schema vdl-1.11.xsd


schema location:  E:\GriPhyN\VDL\vdl-1.11.xsd
targetNamespace:  http://www.griphyn.org/working_groups/VDS/vdl-1.11.xsd
 
Elements  Groups  Complex types  Simple types 
chunk  ApplicationGroup  DerivationType  ContainerType 
definitions  DerivationGroup  LFNType  LinkageType 
TranformationGroup  TransformationType  UniverseType 
UseType 


element chunk
diagram
children use lfn br
used by
elements TransformationType/transformation-body/argument TransformationType/transformation-body/parameter-file
attributes
Name  Type  Use  Default  Fixed  
name  xs:token        
render  xs:string        
source
<xs:element name="chunk">
  <xs:annotation>
    <xs:documentation>A "chunk" describes an arbitrary, namable piece of a parameter file or command line arg for an executable.</xs:documentation>
  </xs:annotation>
  <xs:complexType mixed="true">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:annotation>
        <xs:documentation>Each chunk may contain an arbitrary number of variable references "use", explicit logical filenames "lfn" and rendering instructions "br".</xs:documentation>
      </xs:annotation>
      <xs:element name="use" type="UseType">
        <xs:annotation>
          <xs:documentation>"use" references a bound parameter.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="lfn" type="LFNType">
        <xs:annotation>
          <xs:documentation>"lfn" marks a logical filename.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="br">
        <xs:annotation>
          <xs:documentation>"br" is a whitespace mark-up tag for chunk rendering.</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:annotation>
            <xs:documentation>visual markup</xs:documentation>
          </xs:annotation>
          <xs:attribute name="ws" default="crlf">
            <xs:simpleType>
              <xs:restriction base="xs:token">
                <xs:enumeration value="crlf"/>
                <xs:enumeration value="cr"/>
                <xs:enumeration value="lf"/>
                <xs:enumeration value="sp"/>
                <xs:enumeration value="ht"/>
                <xs:enumeration value="vt"/>
                <xs:enumeration value="ff"/>
              </xs:restriction>
            </xs:simpleType>
          </xs:attribute>
        </xs:complexType>
      </xs:element>
    </xs:choice>
    <xs:attribute name="name" type="xs:token"/>
    <xs:attribute name="render" type="xs:string">
      <xs:annotation>
        <xs:appinfo>Experimental feature, very unsure about this!</xs:appinfo>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
</xs:element>

element chunk/use
diagram
type UseType
attributes
Name  Type  Use  Default  Fixed  
name  xs:token  required      
render  xs:string  optional      
link  LinkageType  optional      
source
<xs:element name="use" type="UseType">
  <xs:annotation>
    <xs:documentation>"use" references a bound parameter.</xs:documentation>
  </xs:annotation>
</xs:element>

element chunk/lfn
diagram
type LFNType
attributes
Name  Type  Use  Default  Fixed  
file  xs:string  required      
link  LinkageType  required      
source
<xs:element name="lfn" type="LFNType">
  <xs:annotation>
    <xs:documentation>"lfn" marks a logical filename.</xs:documentation>
  </xs:annotation>
</xs:element>

element chunk/br
diagram
attributes
Name  Type  Use  Default  Fixed  
ws  xs:token    crlf    
source
<xs:element name="br">
  <xs:annotation>
    <xs:documentation>"br" is a whitespace mark-up tag for chunk rendering.</xs:documentation>
  </xs:annotation>
  <xs:complexType>
    <xs:annotation>
      <xs:documentation>visual markup</xs:documentation>
    </xs:annotation>
    <xs:attribute name="ws" default="crlf">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="crlf"/>
          <xs:enumeration value="cr"/>
          <xs:enumeration value="lf"/>
          <xs:enumeration value="sp"/>
          <xs:enumeration value="ht"/>
          <xs:enumeration value="vt"/>
          <xs:enumeration value="ff"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:complexType>
</xs:element>

element definitions
diagram
children transformation derivation
attributes
Name  Type  Use  Default  Fixed  
version  xs:string  required      
vdlns  xs:string  optional      
source
<xs:element name="definitions">
  <xs:annotation>
    <xs:documentation>The virtual data modification language.</xs:documentation>
  </xs:annotation>
  <xs:complexType>
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:annotation>
        <xs:documentation>A VDL document consists of any number of "transformation" and "derivation" elements in arbitrary order.</xs:documentation>
      </xs:annotation>
      <xs:element name="transformation" type="TransformationType"/>
      <xs:element name="derivation" type="DerivationType"/>
    </xs:choice>
    <xs:attribute name="version" type="xs:string" use="required"/>
    <xs:attribute name="vdlns" type="xs:string" use="optional"/>
  </xs:complexType>
</xs:element>

element definitions/transformation
diagram
type TransformationType
children formal-parameter transformation-body
attributes
Name  Type  Use  Default  Fixed  
name  xs:token  required      
version  xs:string  optional      
vdlns  xs:string  optional      
source
<xs:element name="transformation" type="TransformationType"/>

element definitions/derivation
diagram
type DerivationType
children actual-parameter
attributes
Name  Type  Use  Default  Fixed  
uses  xs:token  required      
maxIncludeVersion  xs:string    unbounded    
minIncludeVersion  xs:string    unbounded    
name  xs:token  optional      
vdlns  xs:string  optional      
source
<xs:element name="derivation" type="DerivationType"/>

group ApplicationGroup
diagram
children lfn use
used by
elements TransformationType/transformation-body/application/executable TransformationType/transformation-body/application/post-script TransformationType/transformation-body/application/pre-script
source
<xs:group name="ApplicationGroup">
  <xs:annotation>
    <xs:documentation>Mixed content, limiting to one choice out of "lfn" and "use".</xs:documentation>
  </xs:annotation>
  <xs:choice minOccurs="0">
    <xs:element name="lfn" type="LFNType"/>
    <xs:element name="use" type="UseType"/>
  </xs:choice>
</xs:group>

element ApplicationGroup/lfn
diagram
type LFNType
attributes
Name  Type  Use  Default  Fixed  
file  xs:string  required      
link  LinkageType  required      
source
<xs:element name="lfn" type="LFNType"/>

element ApplicationGroup/use
diagram
type UseType
attributes
Name  Type  Use  Default  Fixed  
name  xs:token  required      
render  xs:string  optional      
link  LinkageType  optional      
source
<xs:element name="use" type="UseType"/>

group DerivationGroup
diagram
children lfn
used by
elements DerivationType/actual-parameter/pass/list/i DerivationType/actual-parameter/pass/hash/kv DerivationType/actual-parameter/pass/scalar
source
<xs:group name="DerivationGroup">
  <xs:annotation>
    <xs:documentation>Mixed content allowing only "lfn" in derivations.</xs:documentation>
  </xs:annotation>
  <xs:choice minOccurs="0">
    <xs:annotation>
      <xs:documentation>You can use either pure text or the "lfn" element. Mixed content allows mixing, but you should not mix.</xs:documentation>
    </xs:annotation>
    <xs:element name="lfn" type="LFNType"/>
  </xs:choice>
</xs:group>

element DerivationGroup/lfn
diagram
type LFNType
attributes
Name  Type  Use  Default  Fixed  
file  xs:string  required      
link  LinkageType  required      
source
<xs:element name="lfn" type="LFNType"/>

group TranformationGroup
diagram
children lfn use
used by
elements TransformationType/transformation-body/condor TransformationType/transformation-body/environment TransformationType/transformation-body/call/actual-parameter/pass/list/i TransformationType/transformation-body/call/actual-parameter/pass/hash/kv TransformationType/transformation-body/call/actual-parameter/pass/scalar
source
<xs:group name="TranformationGroup">
  <xs:annotation>
    <xs:documentation>Mixed content including "use" and "lfn" elements in transformations.</xs:documentation>
  </xs:annotation>
  <xs:choice minOccurs="0" maxOccurs="unbounded">
    <xs:element name="lfn" type="LFNType"/>
    <xs:element name="use" type="UseType"/>
  </xs:choice>
</xs:group>

element TranformationGroup/lfn
diagram
type LFNType
attributes
Name  Type  Use  Default  Fixed  
file  xs:string  required      
link  LinkageType  required      
source
<xs:element name="lfn" type="LFNType"/>

element TranformationGroup/use
diagram
type UseType
attributes
Name  Type  Use  Default  Fixed  
name  xs:token  required      
render  xs:string  optional      
link  LinkageType  optional      
source
<xs:element name="use" type="UseType"/>

complexType DerivationType
diagram
children actual-parameter
used by
element definitions/derivation
attributes
Name  Type  Use  Default  Fixed  
uses  xs:token  required      
maxIncludeVersion  xs:string    unbounded    
minIncludeVersion  xs:string    unbounded    
name  xs:token  optional      
vdlns  xs:string  optional      
source
<xs:complexType name="DerivationType">
  <xs:annotation>
    <xs:documentation>A "derivation" makes use of previous or outside transformations, and fills the placeholders with specific values.</xs:documentation>
  </xs:annotation>
  <xs:sequence>
    <xs:element name="actual-parameter">
      <xs:annotation>
        <xs:documentation>A "derivation" contains actual parameters. This element must occur, even if the list is empty.</xs:documentation>
      </xs:annotation>
      <xs:complexType>
        <xs:sequence minOccurs="0" maxOccurs="unbounded">
          <xs:element name="pass">
            <xs:annotation>
              <xs:documentation>The "pass" element established the binding between an actual parameter with its named formal counterpart.</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:element name="scalar">
                  <xs:complexType mixed="true">
                    <xs:group ref="DerivationGroup"/>
                    <xs:attribute name="name" type="xs:token" use="optional"/>
                  </xs:complexType>
                </xs:element>
                <xs:element name="list">
                  <xs:complexType>
                    <xs:sequence minOccurs="0" maxOccurs="unbounded">
                      <xs:element name="i">
                        <xs:annotation>
                          <xs:documentation>Each element in a list may have an optional index for sparse vectors.</xs:documentation>
                        </xs:annotation>
                        <xs:complexType mixed="true">
                          <xs:group ref="DerivationGroup"/>
                          <xs:attribute name="index" type="xs:unsignedInt" use="optional"/>
                        </xs:complexType>
                      </xs:element>
                    </xs:sequence>
                    <xs:attribute name="name" type="xs:token" use="optional"/>
                  </xs:complexType>
                </xs:element>
                <xs:element name="hash">
                  <xs:complexType>
                    <xs:sequence minOccurs="0" maxOccurs="unbounded">
                      <xs:element name="kv">
                        <xs:annotation>
                          <xs:documentation>Each hash item requires a mandatory key.</xs:documentation>
                        </xs:annotation>
                        <xs:complexType mixed="true">
                          <xs:group ref="DerivationGroup"/>
                          <xs:attribute name="key" type="xs:string" use="required"/>
                        </xs:complexType>
                      </xs:element>
                    </xs:sequence>
                    <xs:attribute name="name" type="xs:token" use="optional"/>
                  </xs:complexType>
                </xs:element>
              </xs:choice>
              <xs:attribute name="bind" type="xs:token" use="required"/>
              <xs:attribute name="name" type="xs:token" use="optional"/>
            </xs:complexType>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
    </xs:element>
  </xs:sequence>
  <xs:attribute name="uses" type="xs:token" use="required"/>
  <xs:attribute name="maxIncludeVersion" type="xs:string" default="unbounded"/>
  <xs:attribute name="minIncludeVersion" type="xs:string" default="unbounded"/>
  <xs:attribute name="name" type="xs:token" use="optional"/>
  <xs:attribute name="vdlns" type="xs:string" use="optional"/>
</xs:complexType>

element DerivationType/actual-parameter
diagram
children pass
source
<xs:element name="actual-parameter">
  <xs:annotation>
    <xs:documentation>A "derivation" contains actual parameters. This element must occur, even if the list is empty.</xs:documentation>
  </xs:annotation>
  <xs:complexType>
    <xs:sequence minOccurs="0" maxOccurs="unbounded">
      <xs:element name="pass">
        <xs:annotation>
          <xs:documentation>The "pass" element established the binding between an actual parameter with its named formal counterpart.</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:choice>
            <xs:element name="scalar">
              <xs:complexType mixed="true">
                <xs:group ref="DerivationGroup"/>
                <xs:attribute name="name" type="xs:token" use="optional"/>
              </xs:complexType>
            </xs:element>
            <xs:element name="list">
              <xs:complexType>
                <xs:sequence minOccurs="0" maxOccurs="unbounded">
                  <xs:element name="i">
                    <xs:annotation>
                      <xs:documentation>Each element in a list may have an optional index for sparse vectors.</xs:documentation>
                    </xs:annotation>
                    <xs:complexType mixed="true">
                      <xs:group ref="DerivationGroup"/>
                      <xs:attribute name="index" type="xs:unsignedInt" use="optional"/>
                    </xs:complexType>
                  </xs:element>
                </xs:sequence>
                <xs:attribute name="name" type="xs:token" use="optional"/>
              </xs:complexType>
            </xs:element>
            <xs:element name="hash">
              <xs:complexType>
                <xs:sequence minOccurs="0" maxOccurs="unbounded">
                  <xs:element name="kv">
                    <xs:annotation>
                      <xs:documentation>Each hash item requires a mandatory key.</xs:documentation>
                    </xs:annotation>
                    <xs:complexType mixed="true">
                      <xs:group ref="DerivationGroup"/>
                      <xs:attribute name="key" type="xs:string" use="required"/>
                    </xs:complexType>
                  </xs:element>
                </xs:sequence>
                <xs:attribute name="name" type="xs:token" use="optional"/>
              </xs:complexType>
            </xs:element>
          </xs:choice>
          <xs:attribute name="bind" type="xs:token" use="required"/>
          <xs:attribute name="name" type="xs:token" use="optional"/>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
</xs:element>

element DerivationType/actual-parameter/pass
diagram