[gxml] Making GomXsd* have instantiable properties: Part I
- From: Daniel Espinosa Ortiz <despinosa src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gxml] Making GomXsd* have instantiable properties: Part I
- Date: Mon, 23 Jan 2017 17:44:44 +0000 (UTC)
commit dbe7bb96cd9bf3e3419db50ae27d91165ea427ca
Author: Daniel Espinosa <esodan gmail com>
Date: Mon Jan 23 09:32:11 2017 -0600
Making GomXsd* have instantiable properties: Part I
Serialization process requires you have instantiable types, no
interfaces ones, as properties. This make inviable to
implement Xsd* interfaces and get access to parse XSD documents.
In this part GomXsd* classes, now no implement XsdSchema to
provide instantiable properties.
Next step implement Xsd* interfaces, by prefixing them using "I"
in order to avoid API conflicts.
gxml/GomSchema.vala | 154 +++++++++++++++++++++++---------------------------
gxml/Schema.vala | 3 +
2 files changed, 74 insertions(+), 83 deletions(-)
---
diff --git a/gxml/GomSchema.vala b/gxml/GomSchema.vala
index ff9d93c..9a132d9 100644
--- a/gxml/GomSchema.vala
+++ b/gxml/GomSchema.vala
@@ -21,9 +21,13 @@
*/
using GXml;
-public class GXml.GomXsdSchema : GomElement, XsdSchema {
- public XsdListElements elements { get; set; }
- public XsdListSimpleTypes simple_types { get; set; }
+/**
+ * Reference interfaces for XSD support.
+ */
+public class GXml.GomXsdSchema : GomElement {
+ public GomXsdListElements elements { get; set; }
+ public GomXsdListSimpleTypes simple_type_definitions { get; set; }
+ public GomXsdListComplexTypes complex_type_definitions { get; set; }
construct {
initialize_with_namespace (XsdSchema.SCHEMA_NAMESPACE_URI,
XsdSchema.SCHEMA_NAMESPACE_PREFIX,
@@ -31,69 +35,55 @@ public class GXml.GomXsdSchema : GomElement, XsdSchema {
}
}
-public class GXml.GomXsdSimpleType : GomElement,
- DomElement, XsdSimpleType, XsdBaseType
-{
+public class GXml.GomXsdSimpleType : GomElement {
/**
* (#all | List of (list | union | restriction | extension))
*/
public string final { get; set; }
public string name { get; set; }
- public XsdAnnotation annotation { get; set; }
- public XsdSimpleTypeDefinition definition { get; set; }
+ public GomXsdAnnotation annotation { get; set; }
+ public GomXsdSimpleTypeDefinition definition { get; set; }
construct { initialize (GXml.XsdSimpleType.SCHEMA_NODE_NAME); }
}
-public class GXml.GomXsdTypeRestriction : GomElement, XsdTypeRestriction, XsdSimpleTypeDefinition {
+
+public class GXml.GomXsdSimpleTypeDefinition : GomElement {
+ public GomXsdAnnotation annotation { get; set; }
+}
+public class GXml.GomXsdTypeRestriction : GomXsdSimpleTypeDefinition {
public string base { get; set; }
public string id { get; set; }
- public XsdAnnotation annotation { get; set; }
- public XsdSimpleType simple_type { get; set; }
+ public GomXsdSimpleType simple_type { get; set; }
/**
- * List of {link XsdTypeRestrictionDefinition} objects
+ * List of {link GomXsdTypeRestrictionDefinition} objects
*/
- public XsdList definition { get; set; }
-}
-
-public class GXml.GomXsdTypeRestrictionDefinition : GomElement,
- XsdTypeRestrictionDefinition {
- public XsdAnnotation annotation { get; set; }
-}
-public class GXml.GomXsdTypeRestrictionMinExclusive : GomXsdTypeRestrictionDefinition,
- XsdTypeRestrictionMinExclusive {}
-public class GXml.GomXsdTypeRestrictionMinInclusive : GomXsdTypeRestrictionDefinition,
- XsdTypeRestrictionMinInclusive {}
-public class GXml.GomXsdTypeRestrictionMaxExclusive : GomXsdTypeRestrictionDefinition,
- XsdTypeRestrictionMaxExclusive {}
-public class GXml.GomXsdTypeRestrictionMaxInclusive : GomXsdTypeRestrictionDefinition,
- XsdTypeRestrictionMaxInclusive {}
-public class GXml.GomXsdTypeRestrictionTotalDigits : GomXsdTypeRestrictionDefinition,
- XsdTypeRestrictionTotalDigits {}
-public class GXml.GomXsdTypeRestrictionFractionDigits : GomXsdTypeRestrictionDefinition,
- XsdTypeRestrictionFractionDigits {}
-public class GXml.GomXsdTypeRestrictionLength : GomXsdTypeRestrictionDefinition,
- XsdTypeRestrictionLength {}
-public class GXml.GomXsdTypeRestrictionMinLength : GomXsdTypeRestrictionDefinition,
- XsdTypeRestrictionMinLength {}
-public class GXml.GomXsdTypeRestrictionMaxLength : GomXsdTypeRestrictionDefinition,
- XsdTypeRestrictionMaxLength {}
-public class GXml.GomXsdTypeRestrictionEnumeration : GomXsdTypeRestrictionDefinition,
- XsdTypeRestrictionEnumeration {
+ public GomXsdList definition { get; set; }
+}
+
+public class GXml.GomXsdTypeRestrictionDefinition : GomElement {
+ public GomXsdAnnotation annotation { get; set; }
+}
+public class GXml.GomXsdTypeRestrictionMinExclusive : GomXsdTypeRestrictionDefinition {}
+public class GXml.GomXsdTypeRestrictionMinInclusive : GomXsdTypeRestrictionDefinition {}
+public class GXml.GomXsdTypeRestrictionMaxExclusive : GomXsdTypeRestrictionDefinition {}
+public class GXml.GomXsdTypeRestrictionMaxInclusive : GomXsdTypeRestrictionDefinition {}
+public class GXml.GomXsdTypeRestrictionTotalDigits : GomXsdTypeRestrictionDefinition {}
+public class GXml.GomXsdTypeRestrictionFractionDigits : GomXsdTypeRestrictionDefinition {}
+public class GXml.GomXsdTypeRestrictionLength : GomXsdTypeRestrictionDefinition {}
+public class GXml.GomXsdTypeRestrictionMinLength : GomXsdTypeRestrictionDefinition {}
+public class GXml.GomXsdTypeRestrictionMaxLength : GomXsdTypeRestrictionDefinition {}
+public class GXml.GomXsdTypeRestrictionEnumeration : GomXsdTypeRestrictionDefinition {
public string id { get; set; }
public string value { get; set; }
construct { initialize (GXml.XsdTypeRestrictionEnumeration.SCHEMA_NODE_NAME); }
}
-public class GXml.GomXsdTypeRestrictionWhiteSpace: GomXsdTypeRestrictionDefinition,
- XsdTypeRestrictionWhiteSpace {}
-public class GXml.GomXsdTypeRestrictionPattern : GomXsdTypeRestrictionDefinition,
- XsdTypeRestrictionPattern {}
-public class GXml.GomXsdTypeRestrictionAssertion : GomXsdTypeRestrictionDefinition,
- XsdTypeRestrictionAssertion {}
-public class GXml.GomXsdTypeRestrictionExplicitTimezone : GomXsdTypeRestrictionDefinition,
- XsdTypeRestrictionExplicitTimezone {}
+public class GXml.GomXsdTypeRestrictionWhiteSpace: GomXsdTypeRestrictionDefinition {}
+public class GXml.GomXsdTypeRestrictionPattern : GomXsdTypeRestrictionDefinition {}
+public class GXml.GomXsdTypeRestrictionAssertion : GomXsdTypeRestrictionDefinition {}
+public class GXml.GomXsdTypeRestrictionExplicitTimezone : GomXsdTypeRestrictionDefinition {}
-public class GXml.GomXsdComplexType : GomXsdBaseType, XsdComplexType {
- protected XsdList _type_attributes = null;
- protected XsdList _group_attributes = null;
+public class GXml.GomXsdComplexType : GomXsdBaseType {
+ protected GomXsdList _type_attributes = null;
+ protected GomXsdList _group_attributes = null;
/**
* attribute name = abstract
*/
@@ -113,26 +103,26 @@ public class GXml.GomXsdComplexType : GomXsdBaseType, XsdComplexType {
*/
public bool default_attributes_apply { get; set; default = true; }
/**
- * A {@link XsdComplexType} or {@link XsdSimpleType}
+ * A {@link GomXsdComplexType} or {@link GomXsdSimpleType}
*/
- public XsdBaseContent content_type { get; set; }
+ public GomXsdBaseContent content_type { get; set; }
/**
- * List of type {@link XsdAttribute} definitions
+ * List of type {@link GomXsdAttribute} definitions
*/
- public XsdList type_attributes { get { return _type_attributes; } }
+ public GomXsdList type_attributes { get { return _type_attributes; } }
/**
- * List of type {@link XsdGroupAttribute} definitions
+ * List of type {@link GomXsdGroupAttribute} definitions
*/
- public XsdList group_attributes { get { return _group_attributes; } }
+ public GomXsdList group_attributes { get { return _group_attributes; } }
construct { initialize (GXml.XsdComplexType.SCHEMA_NODE_NAME); }
}
-public class GXml.GomXsdExtension : GomElement, XsdExtension {
+public class GXml.GomXsdExtension : GomElement {
public string base { get; set; }
construct { initialize (GXml.XsdExtension.SCHEMA_NODE_NAME); }
}
-public class GXml.GomXsdElement : GomElement, XsdElement {
+public class GXml.GomXsdElement : GomElement {
/**
* attribute name = abstract
*/
@@ -174,40 +164,38 @@ public class GXml.GomXsdElement : GomElement, XsdElement {
* attribute name = 'type'
*/
public string object_type { get; set; }
- public XsdAnnotation anotation { get; set; }
- /**
- * A {@link XsdComplexType} or {@link XsdSimpleType} list of elements
- */
- public XsdListBaseTypes type_definitions { get; set; }
+ public GomXsdAnnotation anotation { get; set; }
+ public GomXsdListSimpleTypes simple_type_definitions { get; set; }
+ public GomXsdListComplexTypes complex_type_definitions { get; set; }
construct { initialize (GXml.XsdElement.SCHEMA_NODE_NAME); }
}
-public class GXml.GomXsdAnnotation : GomElement, XsdAnnotation {
+public class GXml.GomXsdAnnotation : GomElement {
}
-public class GXml.GomXsdBaseType : GomElement, XsdBaseType {
- public XsdAnnotation anotation { get; set; }
+public class GXml.GomXsdBaseType : GomElement {
+ public GomXsdAnnotation anotation { get; set; }
}
-public class GXml.GomXsdBaseContent : GomElement, XsdBaseContent {
- public XsdAnnotation anotation { get; set; }
+public class GXml.GomXsdBaseContent : GomElement {
+ public GomXsdAnnotation anotation { get; set; }
}
-public class GXml.GomXsdSimpleContent : GomXsdBaseContent, XsdBaseContent {
+public class GXml.GomXsdSimpleContent : GomXsdBaseContent {
construct { initialize (GXml.XsdSimpleContent.SCHEMA_NODE_NAME); }
}
-public class GXml.GomXsdComplexContent : GomXsdBaseContent, XsdBaseContent {
+public class GXml.GomXsdComplexContent : GomXsdBaseContent {
construct { initialize (GXml.XsdComplexContent.SCHEMA_NODE_NAME); }
}
-public class GXml.GomXsdOpenContent : GomXsdBaseContent, XsdBaseContent {}
+public class GXml.GomXsdOpenContent : GomXsdBaseContent {}
-public class GXml.GomXsdBaseAttribute : GomElement, XsdBaseAttribute {
- public XsdAnnotation anotation { get; set; }
+public class GXml.GomXsdBaseAttribute : GomElement {
+ public GomXsdAnnotation anotation { get; set; }
}
-public class GXml.GomXsdAttribute : GomXsdBaseAttribute, XsdAttribute {}
-public class GXml.GomXsdAttributeGroup : GomXsdBaseAttribute, XsdAttributeGroup {}
+public class GXml.GomXsdAttribute : GomXsdBaseAttribute {}
+public class GXml.GomXsdAttributeGroup : GomXsdBaseAttribute {}
-public class GXml.GomXsdList : GomArrayList, XsdList {
+public class GXml.GomXsdList : GomArrayList {
public new int length {
get { return (this as GomArrayList).length; }
}
@@ -220,18 +208,18 @@ public class GXml.GomXsdList : GomArrayList, XsdList {
if (get_item (i) == element) return i;
}
return -1;
- }
- public DomElement? XsdList.get_item (int index) {
+ }/*
+ public DomElement? GomXsdList.get_item (int index) {
return (this as GomArrayList).get_item (index);
- }
+ }*/
}
-public class GXml.GomXsdListElements : GomXsdList, XsdListElements {
+public class GXml.GomXsdListElements : GomXsdList {
construct { initialize (typeof (GomXsdElement)); }
}
-public class GXml.GomXsdListSimpleTypes : GomXsdList, XsdListSimpleTypes {
+public class GXml.GomXsdListSimpleTypes : GomXsdList {
construct { initialize (typeof (GomXsdSimpleType)); }
}
-public class GXml.GomXsdListBaseTypes : GomXsdList, XsdListBaseTypes {
- construct { initialize (typeof (GomXsdBaseType)); }
+public class GXml.GomXsdListComplexTypes : GomXsdList {
+ construct { initialize (typeof (GomXsdComplexType)); }
}
diff --git a/gxml/Schema.vala b/gxml/Schema.vala
index acf502f..1d0790b 100644
--- a/gxml/Schema.vala
+++ b/gxml/Schema.vala
@@ -21,6 +21,9 @@
*/
using GXml;
+/**
+ * Reference interfaces for XSD support.
+ */
public interface GXml.XsdSchema : GLib.Object, DomElement {
public const string SCHEMA_NODE_NAME = "schema";
public const string SCHEMA_NAMESPACE_URI = "http://www.w3.org/2001/XMLSchema";
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]