summaryrefslogtreecommitdiff
path: root/giscanner/gir/gir.xsd
diff options
context:
space:
mode:
Diffstat (limited to 'giscanner/gir/gir.xsd')
-rw-r--r--giscanner/gir/gir.xsd736
1 files changed, 736 insertions, 0 deletions
diff --git a/giscanner/gir/gir.xsd b/giscanner/gir/gir.xsd
new file mode 100644
index 00000000..f0a1286f
--- /dev/null
+++ b/giscanner/gir/gir.xsd
@@ -0,0 +1,736 @@
+<?xml version="1.0" encoding="utf-8"?>
+<xs:schema targetNamespace="http://www.gtk.org/introspection/core/1.0"
+ elementFormDefault="qualified"
+ version="1.2"
+ xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:xml="http://www.w3.org/XML/1998/namespace"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns:c="http://www.gtk.org/introspection/c/1.0"
+ xmlns:glib="http://www.gtk.org/introspection/glib/1.0"
+ xmlns:gi="http://www.gtk.org/introspection/core/1.0">
+
+ <xs:import namespace="http://www.w3.org/XML/1998/namespace"
+ schemaLocation="xml.xsd" />
+ <xs:import namespace="http://www.gtk.org/introspection/c/1.0"
+ schemaLocation="c.xsd"/>
+ <xs:import namespace="http://www.gtk.org/introspection/glib/1.0"
+ schemaLocation="glib.xsd"/>
+
+ <!-- Types -->
+
+ <xs:simpleType name="boolean">
+ <xs:annotation>
+ <xs:documentation>
+ • g-ir-scanner : generates {1, 0}
+ • g-ir-compiler: parses {1, 0} but not {true, false, 1, 0} (xs:boolean)
+ so we define our own gi:boolean type
+ </xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:integer">
+ <xs:pattern value="1|0" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <!-- Attributes -->
+
+ <xs:attributeGroup name="function-attributes">
+ <xs:attribute name="throws" type="gi:boolean" />
+ <xs:attribute name="version" type="xs:string" />
+ <xs:attribute name="moved-to" type="xs:string" />
+ <xs:attribute name="shadows" type="xs:string" />
+ <xs:attribute name="shadowed-by" type="xs:string" />
+ <xs:attribute ref="c:identifier" use="optional" />
+ </xs:attributeGroup>
+
+ <xs:attributeGroup name="generic-attributes">
+ <xs:attribute name="deprecated" type="gi:boolean" />
+ <xs:attribute name="deprecated-version" type="xs:string" />
+ <xs:attribute name="introspectable" type="gi:boolean" />
+ <xs:attribute name="stability" type="xs:string" />
+ </xs:attributeGroup>
+
+ <xs:attributeGroup name="parameter-attributes">
+ <xs:attribute name="allow-none" type="gi:boolean" />
+ <xs:attribute name="caller-allocates" type="gi:boolean" />
+ <xs:attribute name="closure" type="xs:string" />
+ <xs:attribute name="destroy" type="xs:string" />
+ <xs:attribute name="direction" type="xs:string" />
+ <xs:attribute name="name" type="xs:string" />
+ <xs:attribute name="nullable" type="gi:boolean" />
+ <xs:attribute name="optional" type="gi:boolean" />
+ <xs:attribute name="retval" type="gi:boolean">
+ <xs:annotation>
+ <xs:documentation>
+ • g-ir-scanner : not generated.
+ • g-ir-compiler: possible left-over from gidlparser days, see commit
+ 1675d0574f188d627d1f18d7c1c78279bb4ae102 (Initial revision)
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="scope" type="xs:string" />
+ <xs:attribute name="skip" type="xs:string" />
+ <xs:attribute name="transfer-ownership" type="xs:string" />
+ </xs:attributeGroup>
+
+ <!-- Groups -->
+
+ <xs:group name="callable-group">
+ <xs:sequence>
+ <xs:group ref="gi:generic-group" />
+ <xs:element ref="gi:return-value" minOccurs="0" maxOccurs="1" />
+ <xs:element ref="gi:parameters" minOccurs="0" maxOccurs="1" />
+ </xs:sequence>
+ </xs:group>
+
+ <xs:group name="generic-group">
+ <xs:sequence>
+ <xs:element ref="gi:attribute" minOccurs="0" maxOccurs="unbounded" />
+ <xs:element ref="gi:doc" minOccurs="0" maxOccurs="1">
+ <xs:annotation>
+ <xs:documentation>
+ • giscanner/girwriter.py : generated
+ • girepository/girparser.c: ignored
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="gi:doc-deprecated" minOccurs="0" maxOccurs="1">
+ <xs:annotation>
+ <xs:documentation>
+ • giscanner/girwriter.py : generated
+ • girepository/girparser.c: ignored
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="gi:doc-stability" minOccurs="0" maxOccurs="1">
+ <xs:annotation>
+ <xs:documentation>
+ • giscanner/girwriter.py : generated
+ • girepository/girparser.c: ignored
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="gi:doc-version" minOccurs="0" maxOccurs="1">
+ <xs:annotation>
+ <xs:documentation>
+ • giscanner/girwriter.py : generated
+ • girepository/girparser.c: ignored
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:sequence>
+ </xs:group>
+
+ <xs:group name="parameter-group">
+ <xs:sequence>
+ <xs:group ref="gi:generic-group" />
+ <xs:choice minOccurs="1" maxOccurs="1">
+ <xs:element ref="gi:array" />
+ <xs:element ref="gi:type" />
+ <xs:element ref="gi:varargs" />
+ </xs:choice>
+ </xs:sequence>
+ </xs:group>
+
+ <!-- Root element -->
+
+ <xs:element name="repository">
+ <xs:complexType>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="gi:include" minOccurs="0" maxOccurs="unbounded" />
+ <xs:element ref="gi:namespace" minOccurs="1" maxOccurs="1" />
+ <xs:element ref="gi:package" minOccurs="0" maxOccurs="1" />
+ <xs:element ref="c:include" minOccurs="0" maxOccurs="unbounded" />
+ </xs:choice>
+
+ <xs:attribute name="version" type="xs:string" fixed="1.2" />
+ </xs:complexType>
+ </xs:element>
+
+ <!-- Elements -->
+
+ <xs:element name="alias">
+ <xs:complexType>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:group ref="gi:generic-group" />
+ <xs:choice minOccurs="0">
+ <xs:element ref="gi:array" />
+ <xs:element ref="gi:type" />
+ </xs:choice>
+ </xs:choice>
+
+ <xs:attributeGroup ref="gi:generic-attributes" />
+ <xs:attribute name="name" type="xs:string" use="required" />
+ <xs:attribute ref="c:type">
+ <xs:annotation>
+ <xs:documentation>
+ • giscanner/girwriter.py : generated
+ • girepository/girparser.c: not parsed
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="array">
+ <xs:complexType>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="gi:type" maxOccurs="unbounded" />
+ <xs:element ref="gi:array" />
+ </xs:choice>
+
+ <xs:attribute name="fixed-size" type="xs:string" />
+ <xs:attribute name="length" type="xs:string" />
+ <xs:attribute name="name" type="xs:string" />
+ <xs:attribute name="zero-terminated" type="xs:string" />
+ <xs:attribute ref="c:type" />
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="attribute">
+ <xs:complexType mixed="true">
+ <xs:attribute name="name" type="xs:string" use="required" />
+ <xs:attribute name="value" type="xs:string" use="required" />
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="bitfield">
+ <xs:complexType>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:group ref="gi:generic-group" />
+ <xs:choice minOccurs="0" maxOccurs="unbounded" >
+ <xs:element ref="gi:field" minOccurs="0" maxOccurs="unbounded" />
+ <xs:element ref="gi:function" minOccurs="0" maxOccurs="unbounded" />
+ <xs:element ref="gi:member" minOccurs="0" maxOccurs="unbounded" />
+ <xs:element ref="gi:record" minOccurs="0" maxOccurs="unbounded" />
+ <xs:element ref="gi:union" minOccurs="0" maxOccurs="unbounded" />
+ </xs:choice>
+ </xs:choice>
+
+ <xs:attributeGroup ref="gi:generic-attributes" />
+ <xs:attribute name="name" type="xs:string" />
+ <xs:attribute name="version" type="xs:string" />
+ <xs:attribute ref="glib:get-type" />
+ <xs:attribute ref="glib:type-name" />
+ <xs:attribute ref="c:type" />
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="callback">
+ <xs:complexType>
+ <xs:group ref="gi:callable-group" />
+
+ <xs:attributeGroup ref="gi:generic-attributes" />
+ <xs:attributeGroup ref="gi:function-attributes"/>
+ <xs:attribute name="name" type="xs:string" />
+ <xs:attribute ref="c:type" />
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="class">
+ <xs:complexType>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:group ref="gi:generic-group" />
+ <xs:element ref="gi:implements" minOccurs="0" maxOccurs="unbounded" />
+ <xs:element ref="gi:constant" minOccurs="0" maxOccurs="unbounded">
+ <xs:annotation>
+ <xs:documentation>
+ • giscanner/girwriter.py : not generated
+ • girepository/girparser.c: parsed
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="gi:constructor" minOccurs="0" maxOccurs="unbounded" />
+ <xs:element ref="gi:field" minOccurs="0" maxOccurs="unbounded" />
+ <xs:element ref="gi:function" minOccurs="0" maxOccurs="unbounded" />
+ <xs:element ref="gi:method" minOccurs="0" maxOccurs="unbounded" />
+ <xs:element ref="gi:property" minOccurs="0" maxOccurs="unbounded" />
+ <xs:element ref="gi:record" minOccurs="0" maxOccurs="unbounded" />
+ <xs:element ref="gi:union" minOccurs="0" maxOccurs="unbounded" />
+ <xs:element ref="gi:virtual-method" minOccurs="0" maxOccurs="unbounded" />
+ <xs:element ref="glib:signal" minOccurs="0" maxOccurs="unbounded" />
+ </xs:choice>
+
+ <xs:attributeGroup ref="gi:generic-attributes" />
+ <xs:attribute name="name" type="xs:string" use="required" />
+ <xs:attribute name="version" type="xs:string" />
+ <xs:attribute name="parent" type="xs:string" />
+ <xs:attribute name="abstract" type="gi:boolean" />
+ <xs:attribute ref="glib:type-name" use="required" />
+ <xs:attribute ref="glib:get-type" />
+ <xs:attribute ref="glib:type-struct" />
+ <xs:attribute ref="glib:fundamental" />
+ <xs:attribute ref="glib:ref-func" />
+ <xs:attribute ref="glib:unref-func" />
+ <xs:attribute ref="glib:set-value-func" />
+ <xs:attribute ref="glib:get-value-func" />
+ <xs:attribute ref="c:symbol-prefix">
+ <xs:annotation>
+ <xs:documentation>
+ • giscanner/girwriter.py : generated
+ • girepository/girparser.c: not parsed
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute ref="c:type">
+ <xs:annotation>
+ <xs:documentation>
+ • giscanner/girwriter.py : generated
+ • girepository/girparser.c: not parsed
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="constant">
+ <xs:complexType>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:group ref="gi:generic-group" />
+ <xs:choice minOccurs="0">
+ <xs:element ref="gi:type" />
+ <xs:element ref="gi:array" />
+ </xs:choice>
+ </xs:choice>
+
+ <xs:attributeGroup ref="gi:generic-attributes" />
+ <xs:attribute name="name" type="xs:string" use="required" />
+ <xs:attribute name="value" type="xs:string" use="required" />
+ <xs:attribute name="version" type="xs:string" />
+ <xs:attribute ref="c:type">
+ <xs:annotation>
+ <xs:documentation>
+ • giscanner/girwriter.py : generated
+ • girepository/girparser.c: not parsed
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="constructor">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:group ref="gi:callable-group" />
+ </xs:sequence>
+
+ <xs:attributeGroup ref="gi:generic-attributes" />
+ <xs:attributeGroup ref="gi:function-attributes" />
+ <xs:attribute name="name" type="xs:string" />
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="discriminator">
+ <xs:annotation>
+ <xs:documentation>
+ • giscanner/girwriter.py : not generated
+ • girepository/girparser.c: parsed, TODO: figure out parent nodes...
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:attribute name="type" type="xs:string" use="required" />
+ <xs:attribute name="offset" type="xs:string" use="required" />
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="doc">
+ <xs:complexType mixed="true">
+ <xs:attribute ref="xml:space" />
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="doc-deprecated">
+ <xs:complexType mixed="true">
+ <xs:attribute ref="xml:space" />
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="doc-stability">
+ <xs:complexType mixed="true">
+ <xs:attribute ref="xml:space" />
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="doc-version">
+ <xs:complexType mixed="true">
+ <xs:attribute ref="xml:space" />
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="enumeration">
+ <xs:complexType>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:group ref="gi:generic-group" />
+ <xs:element ref="gi:member" minOccurs="0" maxOccurs="unbounded" />
+ <xs:element ref="gi:function" minOccurs="0" maxOccurs="unbounded" />
+ </xs:choice>
+
+ <xs:attributeGroup ref="gi:generic-attributes" />
+ <xs:attribute name="name" type="xs:string" use="required" />
+ <xs:attribute name="version" type="xs:string" />
+ <xs:attribute ref="glib:get-type" />
+ <xs:attribute ref="glib:error-domain"/>
+ <xs:attribute ref="glib:type-name" />
+ <xs:attribute ref="c:type">
+ <xs:annotation>
+ <xs:documentation>
+ • giscanner/girwriter.py : generated
+ • girepository/girparser.c: not parsed
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="field">
+ <xs:complexType>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="gi:callback" />
+ <xs:element ref="gi:record" />
+ <xs:element ref="gi:union" />
+ <xs:element ref="gi:type" />
+ <xs:element ref="gi:array" />
+
+ <xs:element ref="gi:doc" minOccurs="0" maxOccurs="1">
+ <xs:annotation>
+ <xs:documentation>
+ • giscanner/girwriter.py : generated
+ • girepository/girparser.c: ignored
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:choice>
+
+ <xs:attributeGroup ref="gi:generic-attributes" />
+ <xs:attribute name="name" type="xs:string" use="required" />
+ <xs:attribute name="readable" type="gi:boolean" />
+ <xs:attribute name="writable" type="gi:boolean" />
+ <xs:attribute name="bits" type="xs:string" />
+ <xs:attribute name="branch" type="xs:string">
+ <xs:annotation>
+ <xs:documentation>
+ • giscanner/girwriter.py : not generated
+ • girepository/girparser.c: parsed
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="private" type="xs:string">
+ <xs:annotation>
+ <xs:documentation>
+ • giscanner/girwriter.py : generated
+ • girepository/girparser.c: not parsed
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="function">
+ <xs:complexType>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:group ref="gi:callable-group" />
+ </xs:choice>
+
+ <xs:attributeGroup ref="gi:generic-attributes" />
+ <xs:attributeGroup ref="gi:function-attributes" />
+ <xs:attribute name="name" type="xs:string" />
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="include">
+ <xs:complexType>
+ <xs:attribute name="name" type="xs:string" />
+ <xs:attribute name="version" type="xs:string" />
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="instance-parameter">
+ <xs:complexType>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:group ref="gi:parameter-group" />
+ </xs:choice>
+
+ <xs:attributeGroup ref="gi:parameter-attributes" />
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="implements">
+ <xs:complexType>
+ <xs:attribute name="name" type="xs:string" use="required" />
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="interface">
+ <xs:complexType>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:group ref="gi:generic-group" />
+ <xs:element name="prerequisite" minOccurs="0" maxOccurs="unbounded" />
+ <xs:element ref="gi:constant" minOccurs="0" maxOccurs="unbounded">
+ <xs:annotation>
+ <xs:documentation>
+ • giscanner/girwriter.py : not generated
+ • girepository/girparser.c: parsed
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element ref="gi:function" minOccurs="0" maxOccurs="unbounded" />
+ <xs:element ref="gi:virtual-method" minOccurs="0" maxOccurs="unbounded" />
+ <xs:element ref="gi:method" minOccurs="0" maxOccurs="unbounded" />
+ <xs:element ref="gi:property" minOccurs="0" maxOccurs="unbounded" />
+ <xs:element ref="gi:field" minOccurs="0" maxOccurs="unbounded" />
+ <xs:element ref="gi:record" minOccurs="0" maxOccurs="unbounded" />
+ <xs:element ref="gi:union" minOccurs="0" maxOccurs="unbounded" />
+ <xs:element ref="glib:signal" minOccurs="0" maxOccurs="unbounded" />
+ </xs:choice>
+
+ <xs:attributeGroup ref="gi:generic-attributes" />
+ <xs:attribute name="name" type="xs:string" use="required" />
+ <xs:attribute name="version" type="xs:string" />
+ <xs:attribute ref="glib:type-name" use="required" />
+ <xs:attribute ref="glib:get-type" use="required" />
+ <xs:attribute ref="glib:type-struct" />
+ <xs:attribute ref="c:symbol-prefix">
+ <xs:annotation>
+ <xs:documentation>
+ • giscanner/girwriter.py : generated
+ • girepository/girparser.c: not parsed
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute ref="c:type">
+ <xs:annotation>
+ <xs:documentation>
+ • giscanner/girwriter.py : generated
+ • girepository/girparser.c: not parsed
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="member">
+ <xs:complexType>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:group ref="gi:generic-group" />
+ </xs:choice>
+
+ <xs:attribute name="name" type="xs:string" use="required" />
+ <xs:attribute name="value" type="xs:string" />
+ <xs:attribute ref="glib:nick" />
+ <xs:attribute ref="c:identifier" />
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="method">
+ <xs:complexType>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:group ref="gi:callable-group" />
+ </xs:choice>
+
+ <xs:attributeGroup ref="gi:generic-attributes" />
+ <xs:attributeGroup ref="gi:function-attributes" />
+ <xs:attribute name="name" type="xs:string" />
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="namespace">
+ <xs:complexType>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="gi:alias" minOccurs="0" maxOccurs="unbounded" />
+ <xs:element ref="gi:bitfield" minOccurs="0" maxOccurs="unbounded" />
+ <xs:element ref="gi:callback" minOccurs="0" maxOccurs="unbounded" />
+ <xs:element ref="gi:class" minOccurs="0" maxOccurs="unbounded" />
+ <xs:element ref="gi:constant" minOccurs="0" maxOccurs="unbounded" />
+ <xs:element ref="gi:enumeration" minOccurs="0" maxOccurs="unbounded" />
+ <xs:element ref="gi:function" minOccurs="0" maxOccurs="unbounded" />
+ <xs:element ref="gi:interface" minOccurs="0" maxOccurs="unbounded" />
+ <xs:element ref="gi:record" minOccurs="0" maxOccurs="unbounded" />
+ <xs:element ref="gi:union" minOccurs="0" maxOccurs="unbounded" />
+ <xs:element ref="glib:boxed" minOccurs="0" maxOccurs="unbounded" />
+ </xs:choice>
+
+ <xs:attribute name="name" type="xs:string" />
+ <xs:attribute name="version" type="xs:string" />
+ <xs:attribute name="shared-library" type="xs:string" />
+ <xs:attribute ref="c:identifier-prefixes" />
+ <xs:attribute ref="c:symbol-prefixes" />
+ <xs:attribute ref="c:prefix" />
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="package">
+ <xs:complexType>
+ <xs:attribute name="name" type="xs:string" />
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="parameter">
+ <xs:complexType>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:group ref="gi:parameter-group" />
+ </xs:choice>
+
+ <xs:attributeGroup ref="gi:parameter-attributes" />
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="parameters">
+ <xs:complexType>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="gi:instance-parameter" minOccurs="0" maxOccurs="1" />
+ <xs:element ref="gi:parameter" minOccurs="0" maxOccurs="unbounded" />
+ </xs:choice>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="property">
+ <xs:complexType>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:group ref="gi:generic-group" />
+ <xs:choice minOccurs="0">
+ <xs:element ref="gi:type" />
+ <xs:element ref="gi:array" />
+ </xs:choice>
+ </xs:choice>
+
+ <xs:attributeGroup ref="gi:generic-attributes" />
+ <xs:attribute name="name" type="xs:string" use="required" />
+ <xs:attribute name="version" type="xs:string" />
+ <xs:attribute name="readable" type="gi:boolean" default="1" />
+ <xs:attribute name="writable" type="gi:boolean" />
+ <xs:attribute name="construct" type="gi:boolean" />
+ <xs:attribute name="construct-only" type="gi:boolean" />
+ <xs:attribute name="transfer-ownership" type="xs:string" />
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="record">
+ <xs:complexType>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:group ref="gi:generic-group" />
+ <xs:element ref="gi:field" minOccurs="0" maxOccurs="unbounded" />
+ <xs:element ref="gi:record" minOccurs="0" maxOccurs="unbounded" />
+ <xs:element ref="gi:union" minOccurs="0" maxOccurs="unbounded" />
+ <xs:element ref="gi:constructor" minOccurs="0" maxOccurs="unbounded" />
+ <xs:element ref="gi:method" minOccurs="0" maxOccurs="unbounded" />
+ <xs:element ref="gi:function" minOccurs="0" maxOccurs="unbounded" />
+ </xs:choice>
+
+ <xs:attributeGroup ref="gi:generic-attributes" />
+ <xs:attribute name="name" type="xs:string" use="required" />
+ <xs:attribute name="version" type="xs:string" />
+ <xs:attribute name="disguised" type="gi:boolean" />
+ <xs:attribute name="foreign" type="xs:string" />
+ <xs:attribute ref="glib:get-type" />
+ <xs:attribute ref="glib:is-gtype-struct-for" />
+ <xs:attribute ref="glib:type-name" />
+ <xs:attribute ref="c:type" />
+ <xs:attribute ref="c:symbol-prefix" />
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="return-value">
+ <xs:complexType>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:group ref="gi:generic-group" />
+ <xs:choice minOccurs="0">
+ <xs:element ref="gi:type" />
+ <xs:element ref="gi:array" />
+ </xs:choice>
+ </xs:choice>
+
+ <xs:attribute name="nullable" type="gi:boolean" />
+ <xs:attribute name="skip" type="xs:string" />
+ <xs:attribute name="transfer-ownership" type="xs:string" />
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="type">
+ <xs:complexType>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="gi:type" maxOccurs="unbounded" />
+ <xs:element ref="gi:array" />
+ <xs:element ref="gi:varargs" />
+ </xs:choice>
+
+ <xs:attribute name="name" />
+ <xs:attribute name="zero-terminated" />
+ <xs:attribute name="fixed-size" />
+ <xs:attribute name="length" />
+ <xs:attribute name="foreign" />
+ <xs:attribute ref="c:type" />
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="union">
+ <xs:complexType>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:group ref="gi:generic-group" />
+ <xs:element ref="gi:field" minOccurs="0" maxOccurs="unbounded" />
+ <xs:element ref="gi:record" minOccurs="0" maxOccurs="unbounded" />
+ <xs:element ref="gi:union" minOccurs="0" maxOccurs="unbounded" />
+ <xs:element ref="gi:constructor" minOccurs="0" maxOccurs="unbounded" />
+ <xs:element ref="gi:method" minOccurs="0" maxOccurs="unbounded" />
+ <xs:element ref="gi:function" minOccurs="0" maxOccurs="unbounded" />
+ </xs:choice>
+
+ <xs:attributeGroup ref="gi:generic-attributes" />
+ <xs:attribute name="name" type="xs:string" />
+ <xs:attribute name="version" type="xs:string" />
+ <xs:attribute ref="glib:get-type" />
+ <xs:attribute ref="glib:type-name" />
+ <xs:attribute ref="c:symbol-prefix" />
+ <xs:attribute ref="c:type" />
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="varargs">
+ <xs:complexType></xs:complexType>
+ </xs:element>
+
+ <xs:element name="virtual-method">
+ <xs:complexType>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:group ref="gi:callable-group" />
+ </xs:choice>
+
+ <xs:attributeGroup ref="gi:generic-attributes" />
+ <xs:attribute name="invoker" type="xs:string" />
+ <xs:attribute name="is-class-closure" type="gi:boolean">
+ <xs:annotation>
+ <xs:documentation>
+ • giscanner/girwriter.py : not generated
+ • girepository/girparser.c: parsed
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="must-chain-up" type="gi:boolean">
+ <xs:annotation>
+ <xs:documentation>
+ • giscanner/girwriter.py : not generated
+ • girepository/girparser.c: parsed
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="name" type="xs:string" use="required" />
+ <xs:attribute name="offset" type="xs:string">
+ <xs:annotation>
+ <xs:documentation>
+ • giscanner/girwriter.py : not generated
+ • girepository/girparser.c: parsed
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="override" type="xs:string">
+ <xs:annotation>
+ <xs:documentation>
+ • giscanner/girwriter.py : not generated
+ • girepository/girparser.c: parsed
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="throws" type="gi:boolean" />
+ <xs:attribute name="version" type="xs:string" />
+ </xs:complexType>
+ </xs:element>
+
+</xs:schema>