W3C

XGMML

The document http://www.cs.rpi.edu/~puninj/XGMML/xgmml.xsd has been classified as being possibly an Advanced XML Schema Patterns for Databinding 1.0 conformant document as it only exhibits the following patterns:

Status Nodes Name XPath
basic TargetNamespace .[@targetNamespace]/ (., @targetNamespace)
basic QualifiedLocalElements .[@elementFormDefault = 'qualified']/ (@elementFormDefault)
basic UnqualifiedLocalAttributes .[not(@attributeFormDefault) or @attributeFormDefault = 'unqualified']/ (., @attributeFormDefault)
basic SchemaVersion ./@version
basic IdentifierName .//.[matches(@name, "^[A-Za-z_]([A-Za-z0-9_]0 31)$")]/ (@name)
basic NonIdentifierName .//.[@name and not(matches(@name, "^[A-Za-z_]([A-Za-z0-9_]0 31)$"))]/ (@name)
basic ImportSchema ./xs:import[@namespace and @schemaLocation]/ (., @namespace, @schemaLocation)
advanced GlobalElementUnqualifiedType ./xs:element[@name and @type and not(contains(@type, ':'))]/ (., @name, @type)
advanced ElementTypeDefaultNamespace .//xs:element[@name and @type and not(contains(@type, ':'))]/ (@name, @type)
advanced MixedContentType .//xs:complexType[@mixed = 'true']/ (@mixed)
basic MaxOccurs1 .//.[@maxOccurs = '1']/ (@maxOccurs)
basic ElementMinOccurs0 .//xs:element[@minOccurs = '0' and (not(@maxOccurs) or @maxOccurs = '1')]/ (@minOccurs, @maxOccurs)
basic ElementMinOccurs0MaxOccursUnbounded .//xs:element[@minOccurs = '0' and @maxOccurs = 'unbounded']/ (@minOccurs, @maxOccurs)
advanced ElementMinOccursFinite .//xs:element[xs:integer(@minOccurs) gt 1]/ (@minOccurs, @maxOccurs)
advanced AttributeRequired .//xs:attribute[@use = 'required']/ (@use)
advanced AttributeDefault .//xs:attribute[@default] / (@default)
basic GlobalSimpleType ./xs:simpleType[@name]/ (., @name)
basic GlobalComplexType ./xs:complexType[@name]/ (., @name)
advanced NMTOKENEnumerationType .//xs:simpleType/xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:NMTOKEN') and xs:enumeration]/ (., @base, xs:enumeration/(., @value))
advanced NonNegativeIntegerEnumerationType .//xs:simpleType/xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:nonNegativeInteger') and xs:enumeration]/ (., @base, xs:enumeration/(., @value))
advanced ComplexTypeSequenceChoice .//xs:complexType/xs:sequence/xs:choice/ (., xs:element/(., @name))
advanced ComplexTypeOnlyAttributeGroup .//xs:complexType/xs:attributeGroup[../not(xs:choice or xs:sequence or xs:all or xs:anyAttribute or xs:group or xs:simpleContent or xs:complexContent)]/(., ..,@ref)
basic ComplexTypeSequence .//xs:complexType/xs:sequence/ (., xs:element/(., @name))
basic GlobalElementSequence ./xs:element[@name]/xs:complexType/xs:sequence[xs:element]/ (../../(., @name), .., ., xs:element/(., @name))
advanced SequenceChoice .//xs:sequence/xs:choice/(.)
advanced ChoiceElement .//xs:choice/xs:element/(.)
basic SequenceElement .//xs:sequence/xs:element/(.)
basic SequenceSingleRepeatedElement .//xs:sequence[count(xs:element) = 1]/xs:element[@maxOccurs = 'unbounded']/ (., @maxOccurs)
advanced ElementTypeReferenceUnqualified .//xs:element[@name and @type and namespace-uri-from-QName(resolve-QName(@type,.)) != 'http://www.w3.org/2001/XMLSchema' and not(contains(@type, ':'))]/ (., @name, @type)
advanced ElementReferenceUnqualified .//xs:element[@ref and not(contains(@ref, ':'))]/ (., @ref)
basic AttributeReference .//xs:attribute[@ref and contains(@ref, ":")]/ (., @ref)
advanced AttributeTypeReferenceUnqualified .//xs:attribute[@name and @type and namespace-uri-from-QName(resolve-QName(@type,.)) != 'http://www.w3.org/2001/XMLSchema' and not(contains(@type, ':'))]/ (., @name, @type)
basic DoubleAttribute .//xs:attribute/@type[resolve-QName(.,..) = xs:QName('xs:double')]
advanced IntegerAttribute .//xs:attribute/@type[resolve-QName(.,..) = xs:QName('xs:integer')]
advanced StringSimpleTypePattern .//xs:restriction[@base/resolve-QName(.,..) = xs:QName('xs:string')]/xs:pattern[@value]/ (.., ../@base, ., @value)
advanced SimpleTypeRenamed .//xs:simpleType/xs:restriction[@base and count(./*) = 0]/ (., @base)
basic ComplexTypeSequenceExtension .//xs:complexType/xs:complexContent[xs:extension[@base]/xs:sequence]/ (., xs:extension/ (., @base, xs:sequence/(., xs:element/(., @name))))
advanced ChoiceMaxOccursUnbounded .//xs:choice[@maxOccurs = 'unbounded']/ (@maxOccurs)
advanced ChoiceMinOccurs0 .//xs:choice[@minOccurs='0']/ (@minOccurs)
advanced AttributeGroup .//xs:attributeGroup/(.,@name,@ref,xs:attribute)
advanced GlobalElementComplexType .//xs:element[parent::xs:schema]/xs:complexType / (.,..)
advanced ComplexTypeAttributeGroupExtension .//xs:complexType/xs:complexContent[xs:extension[@base]/xs:attributeGroup]/ (., xs:extension/ (., @base, xs:attributeGroup))
advanced ComplexTypeExtension .//xs:complexType/xs:complexContent/xs:extension[@base]/(., @base, ../(.))

<xsd:schema TargetNamespace UnqualifiedLocalAttributes targetNamespace="http://www.cs.rpi.edu/XGMML" TargetNamespace elementFormDefault="qualified" QualifiedLocalElements attributeFormDefault="unqualified" UnqualifiedLocalAttributes version="xgmml 1.0" SchemaVersion >
<!-- get access to the xml: attribute groups for xml:lang -->
<xsd:import ImportSchema namespace="http://www.w3.org/XML/1998/namespace" ImportSchema schemaLocation="http://www.w3.org/2001/xml.xsd" ImportSchema />
<!-- get access to the xlink: attribute groups for xlink:type (simple) -->
<xsd:import ImportSchema namespace="http://www.w3.org/1999/xlink" ImportSchema schemaLocation="xlinks-2001.xsd" ImportSchema />
<!-- Boolean type -->
<xsd:simpleType GlobalSimpleType name="boolean.type" NonIdentifierName GlobalSimpleType ></xsd:simpleType>
<!-- Positive number type -->
<xsd:simpleType GlobalSimpleType name="number.type" NonIdentifierName GlobalSimpleType >
<xsd:restriction SimpleTypeRenamed base="xsd:nonNegativeInteger" SimpleTypeRenamed />
</xsd:simpleType>
<!-- ID type -->
<xsd:simpleType GlobalSimpleType name="id.type" NonIdentifierName GlobalSimpleType >
<xsd:restriction SimpleTypeRenamed base="xsd:NMTOKEN" SimpleTypeRenamed />
</xsd:simpleType>
<xsd:simpleType GlobalSimpleType name="idref.type" NonIdentifierName GlobalSimpleType >
<xsd:restriction SimpleTypeRenamed base="xsd:NMTOKEN" SimpleTypeRenamed />
</xsd:simpleType>
<!-- String type -->
<xsd:simpleType GlobalSimpleType name="string.type" NonIdentifierName GlobalSimpleType >
<xsd:restriction SimpleTypeRenamed base="xsd:string" SimpleTypeRenamed />
</xsd:simpleType>
<!-- URI type -->
<xsd:simpleType GlobalSimpleType name="uri.type" NonIdentifierName GlobalSimpleType >
<xsd:restriction SimpleTypeRenamed base="xsd:anyURI" SimpleTypeRenamed />
</xsd:simpleType>
<!-- Anchor type -->
<xsd:simpleType GlobalSimpleType name="anchor.type" NonIdentifierName GlobalSimpleType >
<xsd:restriction NMTOKENEnumerationType base="xsd:NMTOKEN" NMTOKENEnumerationType >
<xsd:enumeration NMTOKENEnumerationType value="c" NMTOKENEnumerationType />
<xsd:enumeration NMTOKENEnumerationType value="n" NMTOKENEnumerationType />
<xsd:enumeration NMTOKENEnumerationType value="ne" NMTOKENEnumerationType />
<xsd:enumeration NMTOKENEnumerationType value="e" NMTOKENEnumerationType />
<xsd:enumeration NMTOKENEnumerationType value="se" NMTOKENEnumerationType />
<xsd:enumeration NMTOKENEnumerationType value="s" NMTOKENEnumerationType />
<xsd:enumeration NMTOKENEnumerationType value="sw" NMTOKENEnumerationType />
<xsd:enumeration NMTOKENEnumerationType value="w" NMTOKENEnumerationType />
<xsd:enumeration NMTOKENEnumerationType value="nw" NMTOKENEnumerationType />
</xsd:restriction>
</xsd:simpleType>
<!-- Graphics Type -->
<xsd:simpleType GlobalSimpleType name="type-graphics.type" NonIdentifierName GlobalSimpleType >
<xsd:restriction NMTOKENEnumerationType base="xsd:NMTOKEN" NMTOKENEnumerationType >
<!-- Type of Graphics (GML types) type-graphics-gml.type -->
<xsd:enumeration NMTOKENEnumerationType value="arc" NMTOKENEnumerationType />
<xsd:enumeration NMTOKENEnumerationType value="bitmap" NMTOKENEnumerationType />
<xsd:enumeration NMTOKENEnumerationType value="image" NMTOKENEnumerationType />
<xsd:enumeration NMTOKENEnumerationType value="line" NMTOKENEnumerationType />
<xsd:enumeration NMTOKENEnumerationType value="oval" NMTOKENEnumerationType />
<xsd:enumeration NMTOKENEnumerationType value="polygon" NMTOKENEnumerationType />
<xsd:enumeration NMTOKENEnumerationType value="rectangle" NMTOKENEnumerationType />
<xsd:enumeration NMTOKENEnumerationType value="text" NMTOKENEnumerationType />
<!-- Type of Graphics (New types) type-graphics-app.type -->
<xsd:enumeration NMTOKENEnumerationType value="box" NMTOKENEnumerationType />
<xsd:enumeration NMTOKENEnumerationType value="circle" NMTOKENEnumerationType />
<xsd:enumeration NMTOKENEnumerationType value="ver_ellipsis" NMTOKENEnumerationType />
<xsd:enumeration NMTOKENEnumerationType value="hor_ellipsis" NMTOKENEnumerationType />
<xsd:enumeration NMTOKENEnumerationType value="rhombus" NMTOKENEnumerationType />
<xsd:enumeration NMTOKENEnumerationType value="triangle" NMTOKENEnumerationType />
<xsd:enumeration NMTOKENEnumerationType value="pentagon" NMTOKENEnumerationType />
<xsd:enumeration NMTOKENEnumerationType value="hexagon" NMTOKENEnumerationType />
<xsd:enumeration NMTOKENEnumerationType value="octagon" NMTOKENEnumerationType />
</xsd:restriction>
</xsd:simpleType>
<!-- Line types -->
<!-- Arrow type -->
<xsd:simpleType GlobalSimpleType name="arrow.type" NonIdentifierName GlobalSimpleType >
<xsd:restriction NMTOKENEnumerationType base="xsd:NMTOKEN" NMTOKENEnumerationType >
<xsd:enumeration NMTOKENEnumerationType value="none" NMTOKENEnumerationType />
<xsd:enumeration NMTOKENEnumerationType value="first" NMTOKENEnumerationType />
<xsd:enumeration NMTOKENEnumerationType value="last" NMTOKENEnumerationType />
<xsd:enumeration NMTOKENEnumerationType value="both" NMTOKENEnumerationType />
</xsd:restriction>
</xsd:simpleType>
<!-- Capstyle type -->
<xsd:simpleType GlobalSimpleType name="capstyle.type" NonIdentifierName GlobalSimpleType >
<xsd:restriction NMTOKENEnumerationType base="xsd:NMTOKEN" NMTOKENEnumerationType >
<xsd:enumeration NMTOKENEnumerationType value="butt" NMTOKENEnumerationType />
<xsd:enumeration NMTOKENEnumerationType value="projecting" NMTOKENEnumerationType />
<xsd:enumeration NMTOKENEnumerationType value="round" NMTOKENEnumerationType />
</xsd:restriction>
</xsd:simpleType>
<!-- Joinstyle type -->
<xsd:simpleType GlobalSimpleType name="joinstyle.type" NonIdentifierName GlobalSimpleType >
<xsd:restriction NMTOKENEnumerationType base="xsd:NMTOKEN" NMTOKENEnumerationType >
<xsd:enumeration NMTOKENEnumerationType value="bevel" NMTOKENEnumerationType />
<xsd:enumeration NMTOKENEnumerationType value="miter" NMTOKENEnumerationType />
<xsd:enumeration NMTOKENEnumerationType value="round" NMTOKENEnumerationType />
</xsd:restriction>
</xsd:simpleType>
<!-- Arc style type -->
<xsd:simpleType GlobalSimpleType name="arcstyle.type" NonIdentifierName GlobalSimpleType >
<xsd:restriction NMTOKENEnumerationType base="xsd:NMTOKEN" NMTOKENEnumerationType >
<xsd:enumeration NMTOKENEnumerationType value="pieslice" NMTOKENEnumerationType />
<xsd:enumeration NMTOKENEnumerationType value="chord" NMTOKENEnumerationType />
<xsd:enumeration NMTOKENEnumerationType value="arc" NMTOKENEnumerationType />
</xsd:restriction>
</xsd:simpleType>
<!-- Text types -->
<!-- Text justification type -->
<xsd:simpleType GlobalSimpleType name="justify.type" NonIdentifierName GlobalSimpleType >
<xsd:restriction NMTOKENEnumerationType base="xsd:NMTOKEN" NMTOKENEnumerationType >
<xsd:enumeration NMTOKENEnumerationType value="left" NMTOKENEnumerationType />
<xsd:enumeration NMTOKENEnumerationType value="right" NMTOKENEnumerationType />
<xsd:enumeration NMTOKENEnumerationType value="center" NMTOKENEnumerationType />
</xsd:restriction>
</xsd:simpleType>
<!-- Font type -->
<xsd:simpleType GlobalSimpleType name="font.type" NonIdentifierName GlobalSimpleType >
<xsd:restriction SimpleTypeRenamed base="xsd:string" SimpleTypeRenamed />
</xsd:simpleType>
<!-- Color type -->
<xsd:simpleType GlobalSimpleType name="color.type" NonIdentifierName GlobalSimpleType >
<xsd:restriction SimpleTypeRenamed base="xsd:string" SimpleTypeRenamed />
</xsd:simpleType>
<!-- Angle type -->
<!-- Number followed by unit identifier (deg, grad or rad) -->
<xsd:simpleType GlobalSimpleType name="angle.type" NonIdentifierName GlobalSimpleType >
<xsd:restriction StringSimpleTypePattern base="xsd:string" StringSimpleTypePattern >
<xsd:pattern StringSimpleTypePattern value="(\+|-)?\d*(deg|grad|rad)?" StringSimpleTypePattern />
</xsd:restriction>
</xsd:simpleType>
<!-- Object type -->
<xsd:simpleType GlobalSimpleType name="object.type" NonIdentifierName GlobalSimpleType >
<xsd:restriction NMTOKENEnumerationType base="xsd:NMTOKEN" NMTOKENEnumerationType >
<xsd:enumeration NMTOKENEnumerationType value="list" NMTOKENEnumerationType />
<xsd:enumeration NMTOKENEnumerationType value="string" NMTOKENEnumerationType />
<xsd:enumeration NMTOKENEnumerationType value="real" NMTOKENEnumerationType />
<xsd:enumeration NMTOKENEnumerationType value="integer" NMTOKENEnumerationType />
</xsd:restriction>
</xsd:simpleType>
<!-- Global Attributes -->
<!-- Standard XML Attributes -->
<xsd:attributeGroup AttributeGroup name="xml-atts" NonIdentifierName AttributeGroup >
<xsd:attribute AttributeReference AttributeGroup ref="xml:lang" AttributeReference />
<xsd:attribute AttributeReference AttributeGroup ref="xml:space" AttributeReference />
</xsd:attributeGroup>
<!-- Safe Graph Attributes -->
<xsd:attributeGroup AttributeGroup name="graph-atts-safe" NonIdentifierName AttributeGroup ></xsd:attributeGroup>
<!-- Unsafe Graph Attributes (GML) -->
<xsd:attributeGroup AttributeGroup name="graph-atts-gml-unsafe" NonIdentifierName AttributeGroup ></xsd:attributeGroup>
<!-- Unsafe Graph Attributes (new attributes) (Graphics attributes) -->
<xsd:attributeGroup AttributeGroup name="graph-atts-app-unsafe-gr" NonIdentifierName AttributeGroup >
<xsd:attribute AttributeGroup name="Scale" IdentifierName type="xsd:integer" IntegerAttribute />
</xsd:attributeGroup>
<!-- Unsafe Graph Attributes (new attributes) (Structural attributes) -->
<xsd:attributeGroup AttributeGroup name="graph-atts-app-unsafe-ngr" NonIdentifierName AttributeGroup ></xsd:attributeGroup>
<!-- Simple Graph (Structural graph) -->
<xsd:complexType GlobalComplexType name="simpleGraph" IdentifierName GlobalComplexType >
<xsd:attributeGroup AttributeGroup ref="global-atts" AttributeGroup />
<xsd:attributeGroup AttributeGroup ref="xml-atts" AttributeGroup />
<xsd:attributeGroup AttributeGroup ref="xlink:simpleLink" AttributeGroup />
<xsd:attributeGroup AttributeGroup ref="graph-atts-safe" AttributeGroup />
<xsd:attributeGroup AttributeGroup ref="graph-atts-gml-unsafe" AttributeGroup />
<xsd:attributeGroup AttributeGroup ref="graph-atts-app-unsafe-ngr" AttributeGroup />
</xsd:complexType>
<!-- Graphical Graph "is a" Simple Graph -->
<xsd:complexType GlobalComplexType name="graphicGraph" IdentifierName GlobalComplexType >
<xsd:complexContent ComplexTypeAttributeGroupExtension ComplexTypeExtension ></xsd:complexContent>
</xsd:complexType>
<!-- Graph Element -->
<!-- Safe Node Attributes (GML) -->
<xsd:attributeGroup AttributeGroup name="node-atts-gml-safe" NonIdentifierName AttributeGroup ></xsd:attributeGroup>
<!-- Safe Node Attributes (new attributes) -->
<xsd:attributeGroup AttributeGroup name="node-atts-app-safe" NonIdentifierName AttributeGroup ></xsd:attributeGroup>
<!-- Simple Node (Structural Node) -->
<xsd:complexType GlobalComplexType name="simpleNode" IdentifierName GlobalComplexType >
<xsd:attributeGroup AttributeGroup ref="global-atts" AttributeGroup />
<xsd:attributeGroup AttributeGroup ref="xlink:simpleLink" AttributeGroup />
<xsd:attributeGroup AttributeGroup ref="node-atts-app-safe" AttributeGroup />
</xsd:complexType>
<!-- Graphical Node "is a" Simple Node -->
<!-- Node Element -->
<!-- Safe Edge Attributes (GML) -->
<!-- Safe Edge Attributes (new attributes) -->
<xsd:attributeGroup AttributeGroup name="edge-atts-app-safe" NonIdentifierName AttributeGroup ></xsd:attributeGroup>
<!-- Simple Edge (Structural Edge) -->
<xsd:complexType GlobalComplexType name="simpleEdge" IdentifierName GlobalComplexType >
<xsd:attributeGroup AttributeGroup ref="global-atts" AttributeGroup />
<xsd:attributeGroup AttributeGroup ref="xlink:simpleLink" AttributeGroup />
<xsd:attributeGroup AttributeGroup ref="edge-atts-gml-safe" AttributeGroup />
<xsd:attributeGroup AttributeGroup ref="edge-atts-app-safe" AttributeGroup />
</xsd:complexType>
<!-- Graphical Edge "is a" Simple Edge -->
<xsd:complexType GlobalComplexType name="graphicEdge" IdentifierName GlobalComplexType ></xsd:complexType>
<!-- Edge Element -->
<!-- Graphics Type -->
<xsd:attributeGroup AttributeGroup name="graphics-type-att" NonIdentifierName AttributeGroup ></xsd:attributeGroup>
<!-- Point Attributes (x,y,z) -->
<xsd:attributeGroup AttributeGroup name="point-atts" NonIdentifierName AttributeGroup >
<xsd:attribute AttributeGroup name="x" IdentifierName type="xsd:double" DoubleAttribute />
<xsd:attribute AttributeGroup name="y" IdentifierName type="xsd:double" DoubleAttribute />
<xsd:attribute AttributeGroup name="z" IdentifierName type="xsd:double" DoubleAttribute />
</xsd:attributeGroup>
<!-- Dimension Attributes (width,height,depth) -->
<xsd:attributeGroup AttributeGroup name="dimension-atts" NonIdentifierName AttributeGroup >
<xsd:attribute AttributeGroup name="w" IdentifierName type="xsd:double" DoubleAttribute />
<xsd:attribute AttributeGroup name="h" IdentifierName type="xsd:double" DoubleAttribute />
<xsd:attribute AttributeGroup name="d" IdentifierName type="xsd:double" DoubleAttribute />
</xsd:attributeGroup>
<!-- External Attributes (Image and Bitmap) -->
<!-- Line Attributes -->
<!-- Text Attributes -->
<!-- Bitmap Attributes -->
<!-- Arc Attributes -->
<xsd:attributeGroup AttributeGroup name="arc-atts" NonIdentifierName AttributeGroup >
<xsd:attribute AttributeGroup name="extent" IdentifierName type="xsd:integer" IntegerAttribute />
<xsd:attribute AttributeGroup name="start" IdentifierName type="xsd:integer" IntegerAttribute />
</xsd:attributeGroup>
<!-- Graphical Object Attributes -->
<!-- Graphics Element -->
<xsd:element GlobalElementSequence GlobalElementComplexType name="graphics" IdentifierName GlobalElementSequence >
<xsd:complexType GlobalElementSequence GlobalElementComplexType >
<xsd:attributeGroup AttributeGroup ref="graphics-type-att" AttributeGroup />
<xsd:attributeGroup AttributeGroup ref="point-atts" AttributeGroup />
<xsd:attributeGroup AttributeGroup ref="dimension-atts" AttributeGroup />
<xsd:attributeGroup AttributeGroup ref="external-atts" AttributeGroup />
<xsd:attributeGroup AttributeGroup ref="line-atts" AttributeGroup />
<xsd:attributeGroup AttributeGroup ref="text-atts" AttributeGroup />
<xsd:attributeGroup AttributeGroup ref="bitmap-atts" AttributeGroup />
<xsd:attributeGroup AttributeGroup ref="arc-atts" AttributeGroup />
<xsd:attributeGroup AttributeGroup ref="object-atts" AttributeGroup />
</xsd:complexType>
</xsd:element>
<!-- Center Point Element -->
<xsd:element GlobalElementComplexType name="center" IdentifierName ></xsd:element>
<!-- Line Element -->
<!-- Point Element -->
<xsd:element GlobalElementComplexType name="point" IdentifierName ></xsd:element>
<!-- Value Attribute -->
<xsd:attributeGroup AttributeGroup name="attribute-value" NonIdentifierName AttributeGroup ></xsd:attributeGroup>
<!-- Type Attribute -->
<xsd:attributeGroup AttributeGroup name="attribute-type" NonIdentifierName AttributeGroup ></xsd:attributeGroup>
<!-- Att Element -->
</xsd:schema>

This document was produced by the W3C XML Schema Patterns for Databinding Working Group. Comments on this document may be sent to the public public-xsd-databinding-comments@w3.org mailing list (public archive).