You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by na...@apache.org on 2006/06/05 14:15:28 UTC

svn commit: r411763 - in /webservices/axis2/trunk/c/xml_schema: include/xml_schema/axis2_xml_schema_complex_type.h src/xml_schema_builder.c src/xml_schema_complex_type.c src/xml_schema_type.c test/xml_schema_test.c

Author: nandika
Date: Mon Jun  5 05:15:27 2006
New Revision: 411763

URL: http://svn.apache.org/viewvc?rev=411763&view=rev
Log:
bug fixed and tests added

Modified:
    webservices/axis2/trunk/c/xml_schema/include/xml_schema/axis2_xml_schema_complex_type.h
    webservices/axis2/trunk/c/xml_schema/src/xml_schema_builder.c
    webservices/axis2/trunk/c/xml_schema/src/xml_schema_complex_type.c
    webservices/axis2/trunk/c/xml_schema/src/xml_schema_type.c
    webservices/axis2/trunk/c/xml_schema/test/xml_schema_test.c

Modified: webservices/axis2/trunk/c/xml_schema/include/xml_schema/axis2_xml_schema_complex_type.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/xml_schema/include/xml_schema/axis2_xml_schema_complex_type.h?rev=411763&r1=411762&r2=411763&view=diff
==============================================================================
--- webservices/axis2/trunk/c/xml_schema/include/xml_schema/axis2_xml_schema_complex_type.h (original)
+++ webservices/axis2/trunk/c/xml_schema/include/xml_schema/axis2_xml_schema_complex_type.h Mon Jun  5 05:15:27 2006
@@ -163,7 +163,7 @@
             const axis2_env_t *env,
             axis2_bool_t b);
             
-    axis2_xml_schema_particle_t* (AXIS2_CALL *
+    void* (AXIS2_CALL *
     get_particle)(
             void *cmp_type,
             const axis2_env_t *env);
@@ -172,7 +172,7 @@
     set_particle)(
             void *cmp_type,
             const axis2_env_t *env,
-            axis2_xml_schema_particle_t *particle);
+            void *particle);
                         
             
             

Modified: webservices/axis2/trunk/c/xml_schema/src/xml_schema_builder.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/xml_schema/src/xml_schema_builder.c?rev=411763&r1=411762&r2=411763&view=diff
==============================================================================
--- webservices/axis2/trunk/c/xml_schema/src/xml_schema_builder.c (original)
+++ webservices/axis2/trunk/c/xml_schema/src/xml_schema_builder.c Mon Jun  5 05:15:27 2006
@@ -589,6 +589,7 @@
             if(AXIS2_STRCMP(localname,"simpleType") == 0)
             {
                 void *type = NULL;
+                void *t = NULL;
                 axis2_qname_t *qn = NULL;
                 
                 
@@ -597,9 +598,10 @@
                 AXIS2_XML_SCHEMA_ADD_TYPE(builder_impl->schema, env, type);
                 if(NULL != items)
                 {
-                    AXIS2_XML_SCHEMA_ADD_TYPE(builder_impl->schema, env, type);
+                    AXIS2_XML_SCHEMA_OBJ_COLLECTION_ADD(items, env, type);
                 }
                 qn = AXIS2_XML_SCHEMA_TYPE_GET_QNAME(type, env);
+                t =  AXIS2_XML_SCHEMA_GET_TYPE_BY_QNAME(builder_impl->schema, env, qn);
                 if(NULL != qn)
                 {
                     axis2_char_t *u = NULL;
@@ -610,6 +612,8 @@
                     AXIS2_XML_SCHEMA_COLLECTION_RESOLVE_TYPE(builder_impl->collection, 
                         env, qn, type);
                 }
+                
+                
             }        
             else if(AXIS2_STRCMP(localname, "complexType") == 0)
             {

Modified: webservices/axis2/trunk/c/xml_schema/src/xml_schema_complex_type.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/xml_schema/src/xml_schema_complex_type.c?rev=411763&r1=411762&r2=411763&view=diff
==============================================================================
--- webservices/axis2/trunk/c/xml_schema/src/xml_schema_complex_type.c (original)
+++ webservices/axis2/trunk/c/xml_schema/src/xml_schema_complex_type.c Mon Jun  5 05:15:27 2006
@@ -48,7 +48,8 @@
     
     axis2_xml_schema_content_type_t *content_type;
     
-    axis2_xml_schema_particle_t *particle_type, *particle;
+    void *particle_type;
+    void *particle;
     
     axis2_bool_t is_abstract, is_mixed;
     
@@ -186,7 +187,7 @@
 axis2_xml_schema_complex_type_set_particle(
         void *cmp_type,
         const axis2_env_t *env,
-        axis2_xml_schema_particle_t *particle);
+        void *particle);
                     
 axis2_char_t* AXIS2_CALL
 axis2_xml_schema_complex_type_to_string(
@@ -629,7 +630,7 @@
 axis2_xml_schema_complex_type_set_particle(
         void *cmp_type,
         const axis2_env_t *env,
-        axis2_xml_schema_particle_t *particle)
+        void *particle)
 {
     axis2_xml_schema_complex_type_impl_t *cmp_type_impl = NULL;
     cmp_type_impl = AXIS2_INTF_TO_IMPL(cmp_type);

Modified: webservices/axis2/trunk/c/xml_schema/src/xml_schema_type.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/xml_schema/src/xml_schema_type.c?rev=411763&r1=411762&r2=411763&view=diff
==============================================================================
--- webservices/axis2/trunk/c/xml_schema/src/xml_schema_type.c (original)
+++ webservices/axis2/trunk/c/xml_schema/src/xml_schema_type.c Mon Jun  5 05:15:27 2006
@@ -652,9 +652,9 @@
     }
     if(NULL != type_impl->qname)
     {
-        AXIS2_QNAME_FREE(type_impl->qname, env);
-        type_impl->qname = NULL;
+        return type_impl->qname;
     }
+    
     if(NULL != type_impl->schema)
     {
         target_ns = 

Modified: webservices/axis2/trunk/c/xml_schema/test/xml_schema_test.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/xml_schema/test/xml_schema_test.c?rev=411763&r1=411762&r2=411763&view=diff
==============================================================================
--- webservices/axis2/trunk/c/xml_schema/test/xml_schema_test.c (original)
+++ webservices/axis2/trunk/c/xml_schema/test/xml_schema_test.c Mon Jun  5 05:15:27 2006
@@ -23,7 +23,7 @@
 
 
 static axis2_om_document_t* 
-get_root_element_from_filename(const axis2_env_t *env, 
+get_document_from_filename(const axis2_env_t *env, 
                                axis2_char_t *filename);
 
 void test_simple_type_schema_generation(CuTest *tc);
@@ -31,7 +31,6 @@
 void test_block_content(CuTest *tc);
 void test_circular_schema(CuTest *tc);
 void test_schema_import1(CuTest *tc);
-void test_schema_import2(CuTest *tc);
 void test_mixed_content(CuTest *tc);
 void test_local_elements(CuTest *tc);
 void test_element_refs(CuTest *tc);
@@ -44,21 +43,23 @@
 
 CuSuite* xml_schema_GetSuite()
 {
-    CuSuite* suite = CuSuiteNew();
-    SUITE_ADD_TEST(suite, test_simple_type_schema_generation);
+    CuSuite* suite = CuSuiteNew();
+    SUITE_ADD_TEST(suite, test_simple_type_schema_generation); 
     SUITE_ADD_TEST(suite, test_any_attribute);
-    SUITE_ADD_TEST(suite, test_block_content);
-    SUITE_ADD_TEST(suite, test_circular_schema);
-    SUITE_ADD_TEST(suite, test_schema_import1);
-    SUITE_ADD_TEST(suite, test_schema_import2);
+    SUITE_ADD_TEST(suite, test_block_content); 
+    SUITE_ADD_TEST(suite, test_schema_import1); 
     SUITE_ADD_TEST(suite, test_mixed_content);
     SUITE_ADD_TEST(suite, test_local_elements);
     SUITE_ADD_TEST(suite, test_element_refs);
     SUITE_ADD_TEST(suite, test_forward_refs);
-    SUITE_ADD_TEST(suite, test_local_unnamed_simple_type);
     SUITE_ADD_TEST(suite, test_simple_restriction);
     SUITE_ADD_TEST(suite, test_unqualified_schemas);
+    SUITE_ADD_TEST(suite, test_local_unnamed_simple_type);
+    
+/*  
+    SUITE_ADD_TEST(suite, test_circular_schema); 
     SUITE_ADD_TEST(suite, test_two_schmes);
+*/    
     return suite;
 }
 
@@ -76,10 +77,8 @@
     void *sch_type = NULL;
     axis2_char_t *filename = "./..//test-resources/allSimpleTypes.xsd"; 
     
-    
-    
     env = axis2_env_create_all("test.log", 1);
-    om_doc = get_root_element_from_filename(env, filename);
+    om_doc = get_document_from_filename(env, filename);
     sch_collection = axis2_xml_schema_collection_create(env);
     schema = AXIS2_XML_SCHEMA_COLLECTION_READ_DOCUMENT(
         sch_collection, env, om_doc);
@@ -108,7 +107,6 @@
         sch_type = NULL;
     }
     AXIS2_OM_DOCUMENT_FREE(om_doc, env);
-    
 }    
 
 void test_any_attribute(CuTest *tc)
@@ -122,12 +120,13 @@
     void *sch_type = NULL;
     void *particle = NULL;
     void *any_attr = NULL;
+    void *cnt_processing = NULL;
     
     axis2_char_t *filename = "./..//test-resources/anyAttTest.xsd"; 
     
     env = axis2_env_create_all("test.log", 1);
     
-    om_doc = get_root_element_from_filename(env, filename);
+    om_doc = get_document_from_filename(env, filename);
     
     sch_collection = axis2_xml_schema_collection_create(env);
     
@@ -152,6 +151,10 @@
     any_attr = AXIS2_XML_SCHEMA_COMPLEX_TYPE_GET_ANY_ATTRIBUTE(sch_type, env);
     
     CuAssertPtrNotNull(tc, any_attr);
+    
+    
+    cnt_processing = AXIS2_XML_SCHEMA_ANY_ATTRIBUTE_GET_PROCESS_CONTENT(any_attr, env);
+    
 }
 
 void test_block_content(CuTest *tc)
@@ -169,7 +172,7 @@
     
     env = axis2_env_create_all("test.log", 1);
     
-    om_doc = get_root_element_from_filename(env, filename);
+    om_doc = get_document_from_filename(env, filename);
     
     sch_collection = axis2_xml_schema_collection_create(env);
     
@@ -193,9 +196,77 @@
 }
 
 
-void test_circular_schema(CuTest *tc){}
-void test_schema_import1(CuTest *tc){}
-void test_schema_import2(CuTest *tc){}
+void test_circular_schema(CuTest *tc)
+{
+    axis2_env_t *env = NULL;
+    axis2_om_document_t *om_doc = NULL;
+    axis2_xml_schema_collection_t *sch_collection = NULL;
+    axis2_xml_schema_t *schema = NULL;
+    axis2_qname_t *qn = NULL;
+    axis2_char_t *filename = NULL;
+    axis2_array_list_t *schemas = NULL;
+    
+    env = axis2_env_create_all("test.log", 1);
+
+    sch_collection = axis2_xml_schema_collection_create(env);
+
+    filename = "./../test-resources/circular/a.xsd";
+    
+    om_doc = get_document_from_filename(env, filename);
+    
+    AXIS2_OM_DOCUMENT_BUILD_ALL(om_doc, env);
+    
+    CuAssertPtrNotNull(tc, om_doc);
+    
+    schema = AXIS2_XML_SCHEMA_COLLECTION_READ_DOCUMENT_WITH_URI(sch_collection, env,
+        om_doc, "./../test-resources/circular");
+    
+    CuAssertPtrNotNull(tc, schema);
+    
+    schemas = AXIS2_XML_SCHEMA_COLLECTION_GET_SCHEMAS(sch_collection, env);
+    
+    CuAssertPtrNotNull(tc, schemas);
+    
+    CuAssertIntEquals(tc, 2, AXIS2_ARRAY_LIST_SIZE(schemas, env));
+    
+    
+
+}
+void test_schema_import1(CuTest *tc)
+{
+    axis2_env_t *env = NULL;
+    axis2_om_document_t *om_doc = NULL;
+    axis2_xml_schema_collection_t *sch_collection = NULL;
+    axis2_xml_schema_t *schema = NULL;
+    axis2_qname_t *qn = NULL;
+    axis2_char_t *filename = NULL;
+    axis2_array_list_t *schemas = NULL;
+    
+    env = axis2_env_create_all("test.log", 1);
+    
+    sch_collection = axis2_xml_schema_collection_create(env);
+   
+    filename = "./..//test-resources/importBase.xsd";
+   
+    om_doc = get_document_from_filename(env, filename);
+    
+    AXIS2_OM_DOCUMENT_BUILD_ALL(om_doc, env);
+    
+    CuAssertPtrNotNull(tc, om_doc);
+    
+    schema = AXIS2_XML_SCHEMA_COLLECTION_READ_DOCUMENT_WITH_URI(sch_collection, env,
+        om_doc, "./../test-resources");
+    
+    CuAssertPtrNotNull(tc, schema);
+
+    sch_collection = axis2_xml_schema_collection_create(env);
+    
+    schema = AXIS2_XML_SCHEMA_COLLECTION_READ_DOCUMENT_WITH_URI(sch_collection, env,
+        om_doc, "./../test-resources/");
+        
+    CuAssertPtrNotNull(tc, schema);        
+}
+
 void test_mixed_content(CuTest *tc)
 {
     axis2_env_t *env = NULL;
@@ -203,20 +274,55 @@
     axis2_xml_schema_collection_t *sch_collection = NULL;
     axis2_xml_schema_t *schema = NULL;
     axis2_qname_t *qn = NULL;
+    void *sch_ele = NULL;
+    
+    axis2_char_t *filename = "./..//test-resources/mixedContent.xsd";;
+
+    env = axis2_env_create_all("test.log", 1);
+
+    qn = axis2_qname_create(env, "complexElt", 
+        "http://soapinterop.org/xsd", NULL);
+    
+    om_doc = get_document_from_filename(env, filename);
+    
+    sch_collection = axis2_xml_schema_collection_create(env);
+    
+    schema = AXIS2_XML_SCHEMA_COLLECTION_READ_DOCUMENT_WITH_URI(sch_collection,
+        env, om_doc, NULL);        
+    
+    CuAssertPtrNotNull(tc, schema);
+    
+    sch_ele = AXIS2_XML_SCHEMA_GET_ELEMENT_BY_QNAME(schema, env, qn);
+    
+    CuAssertPtrNotNull(tc, sch_ele);
+    
+}
+
+void test_local_elements(CuTest *tc)
+{
+    axis2_env_t *env = NULL;
+    axis2_om_document_t *om_doc = NULL;
+    axis2_xml_schema_collection_t *sch_collection = NULL;
+    axis2_xml_schema_t *schema = NULL;
+    axis2_qname_t *qn = NULL;
     void *ele = NULL;
     void *cmp_type = NULL;
     void *seq = NULL;
     axis2_xml_schema_obj_collection_t *items = NULL;
-    void *sub_element = NULL;
+    void *sub_element1 = NULL;
     axis2_qname_t *qn1 = NULL;
-    axis2_char_t *uri = NULL;
+    axis2_char_t *uri1 = NULL;
+    
+    void *sub_element2 = NULL;
+    axis2_qname_t *qn2 = NULL;
+    axis2_char_t *uri2 = NULL;
     
     
     axis2_char_t *filename = "./..//test-resources/elementForm.xsd"; 
     
     env = axis2_env_create_all("test.log", 1);
     
-    om_doc = get_root_element_from_filename(env, filename);
+    om_doc = get_document_from_filename(env, filename);
     
     sch_collection = axis2_xml_schema_collection_create(env);
     
@@ -242,49 +348,328 @@
     
     CuAssertPtrNotNull(tc, items);
     
-    sub_element = AXIS2_XML_SCHEMA_OBJ_COLLECTION_GET_ITEM(items, env, 0);
+    sub_element1 = AXIS2_XML_SCHEMA_OBJ_COLLECTION_GET_ITEM(items, env, 0);
     
-    CuAssertPtrNotNull(tc, sub_element);
+    CuAssertPtrNotNull(tc, sub_element1);
     
-    qn1 = AXIS2_XML_SCHEMA_ELEMENT_GET_QNAME(sub_element, env);
+    qn1 = AXIS2_XML_SCHEMA_ELEMENT_GET_QNAME(sub_element1, env);
     
     CuAssertPtrNotNull(tc, qn1);
     
-    uri = AXIS2_QNAME_GET_URI(qn1, env);
+    uri1 = AXIS2_QNAME_GET_URI(qn1, env);
     
-    CuAssertPtrNotNull(tc, uri);
+    CuAssertPtrNotNull(tc, uri1);
     
-    sub_element = NULL;
-    qn1 = NULL;
-    uri = NULL;
+    sub_element2 = AXIS2_XML_SCHEMA_OBJ_COLLECTION_GET_ITEM(items, env, 1);
     
-    sub_element = AXIS2_XML_SCHEMA_OBJ_COLLECTION_GET_ITEM(items, env, 0);
+    CuAssertPtrNotNull(tc, sub_element2);
     
-    CuAssertPtrNotNull(tc, sub_element);
+    qn2 = AXIS2_XML_SCHEMA_ELEMENT_GET_QNAME(sub_element2, env);
     
-    qn1 = AXIS2_XML_SCHEMA_ELEMENT_GET_QNAME(sub_element, env);
+    CuAssertPtrNotNull(tc, qn2);
     
-    CuAssertPtrNotNull(tc, qn1);
+    uri2 = AXIS2_QNAME_GET_URI(qn2, env);
+    
+    CuAssertPtrNotNull(tc, uri2);
+
+    CuAssertStrEquals(tc, "http://unqualified-elements.example.com", uri2); 
+}
+
+void test_element_refs(CuTest *tc)
+{
+    axis2_env_t *env = NULL;
+    axis2_om_document_t *om_doc = NULL;
+    axis2_xml_schema_collection_t *sch_collection = NULL;
+    axis2_xml_schema_t *schema = NULL;
+    axis2_qname_t *qn = NULL;
+    axis2_char_t *filename = NULL;
+    void *element = NULL;
+    void *cmp_type = NULL;
+    void *particle = NULL;
+    axis2_xml_schema_obj_collection_t *items = NULL;
+    int count = 0;
+    int i =0;
+    
+    filename = "./..//test-resources/elementreferences.xsd";
+    
+    env = axis2_env_create_all("test.log", 1);
+    
+    om_doc = get_document_from_filename(env, filename);
+    
+    sch_collection = axis2_xml_schema_collection_create(env);
+    
+    schema = AXIS2_XML_SCHEMA_COLLECTION_READ_DOCUMENT(sch_collection, env, om_doc);
+    
+    CuAssertPtrNotNull(tc, schema);
+    
+    qn = axis2_qname_create(env, "attTests" , "http://soapinterop.org/types", NULL);
+    
+    element = AXIS2_XML_SCHEMA_COLLECTION_GET_ELEMENT_BY_QNAME(
+        sch_collection, env, qn);
+    
+    CuAssertPtrNotNull(tc, element);
+    
+    cmp_type = AXIS2_XML_SCHEMA_ELEMENT_GET_SCHEMA_TYPE(element, env);
     
-    uri = AXIS2_QNAME_GET_URI(qn1, env);
+    CuAssertPtrNotNull(tc, cmp_type);
     
-    CuAssertPtrNotNull(tc, uri);
+    particle = AXIS2_XML_SCHEMA_COMPLEX_TYPE_GET_PARTICLE(cmp_type, env);
     
+    items = AXIS2_XML_SCHEMA_GROUP_BASE_GET_ITEMS(particle, env);
+    
+    CuAssertPtrNotNull(tc, items);
+    
+    count = AXIS2_XML_SCHEMA_OBJ_COLLECTION_GET_COUNT(items, env);
+    
+    for(i = 0; i< count; i++)
+    {
+        axis2_qname_t *name = NULL;
+        void *inner_ele = NULL;
+        inner_ele = AXIS2_XML_SCHEMA_OBJ_COLLECTION_GET_ITEM(items, env, i);
+        CuAssertPtrNotNull(tc, inner_ele);
+        
+        name = AXIS2_XML_SCHEMA_ELEMENT_GET_REF_NAME(inner_ele, env);
+        
+        CuAssertPtrNotNull(tc, name);
+        
+    }
 }
-void test_local_elements(CuTest *tc){}
-void test_element_refs(CuTest *tc){}
-void test_forward_refs(CuTest *tc){}
-void test_local_unnamed_simple_type(CuTest *tc){}
-void test_simple_restriction(CuTest *tc){}
-void test_unqualified_schemas(CuTest *tc){}
 
-void test_two_schmes(CuTest *tc)
+void test_forward_refs(CuTest *tc)
 {
+    axis2_env_t *env = NULL;
+    axis2_om_document_t *om_doc = NULL;
+    axis2_xml_schema_collection_t *sch_collection = NULL;
+    axis2_xml_schema_t *schema = NULL;
+    axis2_qname_t *qn = NULL;
+    axis2_char_t *filename = NULL;
+    void *element = NULL;
+    void *cmp_type = NULL;
+    void *items = NULL;
+    int count = 0;
+    int i =0;
+    void *sch_type = NULL;
+    int type = 0;
+    void *seq = NULL;
+    
+    filename = "./..//test-resources/forwardRef.xsd";
+    
+    env = axis2_env_create_all("test.log", 1);
+
+
+    om_doc = get_document_from_filename(env, filename);
+    
+    sch_collection = axis2_xml_schema_collection_create(env);
+    
+    schema = AXIS2_XML_SCHEMA_COLLECTION_READ_DOCUMENT(sch_collection, env, om_doc);
+    
+    CuAssertPtrNotNull(tc, schema);
+
+    qn = axis2_qname_create(env, "attrTest",
+        "http://soapinterop.org/types", NULL);
+        
+    element = AXIS2_XML_SCHEMA_COLLECTION_GET_ELEMENT_BY_QNAME(
+        sch_collection, env, qn);
+        
+    CuAssertPtrNotNull(tc, element);
+    
+    sch_type = AXIS2_XML_SCHEMA_ELEMENT_GET_SCHEMA_TYPE(element, env);
+    
+    CuAssertPtrNotNull(tc, sch_type);
+ 
+    type =  AXIS2_XML_SCHEMA_TYPE_TYPE(sch_type, env);
+
+    CuAssertIntEquals(tc, AXIS2_XML_SCHEMA_COMPLEX_TYPE, type);
+    
+    seq = AXIS2_XML_SCHEMA_COMPLEX_TYPE_GET_PARTICLE(sch_type, env);
+    
+    CuAssertPtrNotNull(tc, seq);
+}
+
+void test_local_unnamed_simple_type(CuTest *tc)
+{
+    axis2_env_t *env = NULL;
+    axis2_om_document_t *om_doc = NULL;
+    axis2_xml_schema_collection_t *sch_collection = NULL;
+    axis2_xml_schema_t *schema = NULL;
+    axis2_qname_t *qn = NULL;
+    axis2_char_t *filename = NULL;
+    void *element = NULL;
+    void *cmp_type = NULL;
+    void *items = NULL;
+    int count = 0;
+    int i =0;
+    void *sch_type = NULL;
+    int type = 0;
+    void *seq = NULL;
+    axis2_char_t *xml = NULL;
+    axis2_xml_reader_t *reader = NULL;
+    axis2_om_stax_builder_t *builder = NULL;
+    
+    xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" 
+             "<schema xmlns=\"http://www.w3.org/2001/XMLSchema\"\n" 
+             "targetNamespace=\"http://finance.example.com/CreditCardFaults/xsd\"\n" 
+             "xmlns:tns=\"http://finance.example.com/CreditCardFaults/xsd\"\n"
+             "xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+             "xsi:schemaLocation=\"http://www.w3.org/2001/XMLSchema\n"
+             "              http://www.w3.org/2001/XMLSchema.xsd\">\n"
+             "\n"
+             "<element name=\"tns:CreditCardNumber\" type=\"string\"></element>\n"
+             "\n"
+             "<element name=\"tns:CreditCardType\">\n"
+             "<simpleType>\n"
+             "<restriction base=\"string\">\n"
+             "<enumeration value=\"AMEX\" />\n" 
+             "<enumeration value=\"MASTERCARD\" />\n"
+             "<enumeration value=\"VISA\" />\n"
+             "</restriction>\n"
+             "</simpleType>\n" 
+             "</element>\n" 
+             "</schema>";
+    
+    env = axis2_env_create_all("test.log", 1);
+    
+    reader = axis2_xml_reader_create_for_memory(env, xml, AXIS2_STRLEN(xml), NULL,
+        AXIS2_XML_PARSER_TYPE_BUFFER);
+
+    builder = axis2_om_stax_builder_create(env, reader);
+    
+    om_doc = axis2_om_document_create(env, NULL, builder);
+    
+    AXIS2_OM_DOCUMENT_BUILD_ALL(om_doc, env);
+    
+    sch_collection = axis2_xml_schema_collection_create(env);
+    
+    schema = AXIS2_XML_SCHEMA_COLLECTION_READ_DOCUMENT(sch_collection, env, om_doc);
+  
+    CuAssertPtrNotNull(tc, schema);  
+}
+
+void test_simple_restriction(CuTest *tc)
+{
+    axis2_env_t *env = NULL;
+    axis2_om_document_t *om_doc = NULL;
+    axis2_xml_schema_collection_t *sch_collection = NULL;
+    axis2_xml_schema_t *schema = NULL;
+    axis2_qname_t *type_qname = NULL;
+    axis2_qname_t *element_qname = NULL;
+    axis2_char_t *filename = NULL;
+    void *element = NULL;
+    void *cmp_type = NULL;
+    axis2_xml_schema_obj_collection_t *items = NULL;
+    int count = 0;
+    int i =0;
+    void *sch_type = NULL;
+    int type = 0;
+    void *simple_type = NULL;
+    
+    
+    env = axis2_env_create_all("test.log", 1);
+
+    om_doc = get_document_from_filename(env, 
+        "./../test-resources/SimpleContentRestriction.xsd");
+    
+    AXIS2_OM_DOCUMENT_BUILD_ALL(om_doc, env);
+    
+    sch_collection = axis2_xml_schema_collection_create(env);
+    
+    schema = AXIS2_XML_SCHEMA_COLLECTION_READ_DOCUMENT(sch_collection, env, om_doc);
+  
+    CuAssertPtrNotNull(tc, schema);      
+
+    type_qname = axis2_qname_create(env, "layoutComponentType",
+        "http://soapinterop.org/types", NULL);
+        
+    simple_type = AXIS2_XML_SCHEMA_GET_TYPE_BY_QNAME(schema, env, type_qname);
+    
+    CuAssertPtrNotNull(tc, simple_type);
+
+    element_qname = axis2_qname_create(env, "foo", 
+        "http://soapinterop.org/types", NULL);
+        
+    element = AXIS2_XML_SCHEMA_GET_ELEMENT_BY_QNAME(schema, env, element_qname);
+    
+    CuAssertPtrNotNull(tc, element);        
+}
+
+void test_unqualified_schemas(CuTest *tc)
+{
+    axis2_env_t *env = NULL;
+    axis2_om_document_t *om_doc = NULL;
+    axis2_xml_schema_collection_t *sch_collection = NULL;
+    axis2_xml_schema_t *schema = NULL;
+    axis2_qname_t *element_qname = NULL;
+    axis2_char_t *filename = NULL;
+    
+    void *element = NULL;
+    
+    void *cmp_type = NULL;
+    
+    axis2_xml_schema_obj_collection_t *items = NULL;
+    
+    int count = 0;
+    
+    int i =0;
+    
+    void *sch_type = NULL;
+    
+    int type = 0;
+    
+    void *particle = NULL;
+    
+    void *seq = NULL;
+    
+    env = axis2_env_create_all("test.log", 1);
+
+    om_doc = get_document_from_filename(env, 
+        "./../test-resources/unqualifiedTypes.xsd");
+    
+    AXIS2_OM_DOCUMENT_BUILD_ALL(om_doc, env);
+    
+    sch_collection = axis2_xml_schema_collection_create(env);
+    
+    schema = AXIS2_XML_SCHEMA_COLLECTION_READ_DOCUMENT(sch_collection, env, om_doc);
+  
+    CuAssertPtrNotNull(tc, schema);      
+
+    element_qname = axis2_qname_create(env, "complexElt",
+        "http://soapinterop.org/xsd", NULL);
+        
+    element = AXIS2_XML_SCHEMA_GET_ELEMENT_BY_QNAME(schema, env, element_qname);
+    
+    CuAssertPtrNotNull(tc, element);
+    
+    cmp_type = AXIS2_XML_SCHEMA_ELEMENT_GET_SCHEMA_TYPE(element, env);
+    
+    CuAssertPtrNotNull(tc, cmp_type);
+    
+    particle = AXIS2_XML_SCHEMA_COMPLEX_TYPE_GET_PARTICLE(cmp_type, env);
+    
+    CuAssertPtrNotNull(tc, particle);
+
+    items = AXIS2_XML_SCHEMA_GROUP_BASE_GET_ITEMS(particle, env);
+    
+    count = AXIS2_XML_SCHEMA_OBJ_COLLECTION_GET_COUNT(items, env);
+    
+    for(i = 0; i < count; i++)
+    {
+        void *ele2 = NULL;
+        void *ele_sch_type = NULL;
+        
+        ele2 = AXIS2_XML_SCHEMA_OBJ_COLLECTION_GET_ITEM(items, env, i);
+        
+        ele_sch_type = AXIS2_XML_SCHEMA_ELEMENT_GET_SCHEMA_TYPE(ele2, env);
+        
+        CuAssertPtrNotNull(tc, ele_sch_type);
+    }    
+}
 
+void test_two_schmes(CuTest *tc)
+{
 }
 
 static axis2_om_document_t* 
-get_root_element_from_filename(const axis2_env_t *env, 
+get_document_from_filename(const axis2_env_t *env, 
                                axis2_char_t *filename)
 {
     axis2_xml_reader_t *reader = NULL;



---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org