Beispiel #1
0
        public bool isCollection(
            string schemaName_in,
            out ComplexTypeItem[] complexTypeCollection_out
            )
        {
            complexTypeCollection_out = null;

            OGen.XSD.lib.metadata.metadata.XS_complexTypeType _complextype
                = root_ref.MetadataCollection[0].ComplexTypeCollection[
                      Type
                  ];

            if (_complextype != null)
            {
                XS__schema _schema = root_ref_.SchemaCollection[schemaName_in];

                for (int c = 0; c < _schema.ComplexTypeCollection.Count; c++)
                {
                    if (
                        _schema.ComplexTypeCollection[c].Name
                        ==
                        _complextype.Name
                        )
                    {
                        complexTypeCollection_out = new ComplexTypeItem[_complextype.ComplexTypeKeyCollection.Count];
                        for (int k = 0; k < _complextype.ComplexTypeKeyCollection.Count; k++)
                        {
                            for (int a = 0; a < _schema.ComplexTypeCollection[c].AttributeCollection.Count; a++)
                            {
                                if (
                                    _schema.ComplexTypeCollection[c].AttributeCollection[a].Name
                                    ==
                                    _complextype.ComplexTypeKeyCollection[k].Name
                                    )
                                {
                                    complexTypeCollection_out[k] = new ComplexTypeItem(
                                        _schema.ComplexTypeCollection[c].AttributeCollection[a].Name,
                                        _schema.ComplexTypeCollection[c].AttributeCollection[a].NType(schemaName_in),
                                        _complextype.ComplexTypeKeyCollection[k].caseSensitive
                                        );
                                    break;
                                }
                            }
                        }
                        return(true);
                    }
                }
            }
            return(false);
        }
Beispiel #2
0
		public bool isCollection(
			string schemaName_in, 
			out ComplexTypeItem[] complexTypeCollection_out
		) {
			complexTypeCollection_out = null;

			OGen.XSD.lib.metadata.metadata.XS_complexTypeType _complextype
				= root_ref.MetadataCollection[0].ComplexTypeCollection[
					Type
				];

			if (_complextype != null) {
				XS__schema _schema = root_ref_.SchemaCollection[schemaName_in];

				for (int c = 0; c < _schema.ComplexTypeCollection.Count; c++) {
					if (
						_schema.ComplexTypeCollection[c].Name
						==
						_complextype.Name
					) {
						complexTypeCollection_out = new ComplexTypeItem[_complextype.ComplexTypeKeyCollection.Count];
						for (int k = 0; k < _complextype.ComplexTypeKeyCollection.Count; k++) {
							for (int a = 0; a < _schema.ComplexTypeCollection[c].AttributeCollection.Count; a++) {
								if (
									_schema.ComplexTypeCollection[c].AttributeCollection[a].Name 
									== 
									_complextype.ComplexTypeKeyCollection[k].Name
								) {
									complexTypeCollection_out[k] = new ComplexTypeItem(
										_schema.ComplexTypeCollection[c].AttributeCollection[a].Name,
										_schema.ComplexTypeCollection[c].AttributeCollection[a].NType(schemaName_in),
										_complextype.ComplexTypeKeyCollection[k].caseSensitive
									);
									break;
								}
							}
						}
						return true;
					}
				}
			}
			return false;
		}
Beispiel #3
0
        public bool mustImplementCollection(
            string schemaName_in,
            out ComplexTypeItem[] complexTypeCollection_out
            )
        {
            complexTypeCollection_out = null;
            int _index = -1;

            OGen.XSD.lib.metadata.metadata.XS_complexTypeType _complextype;

            XS__schema _schema = root_ref_.SchemaCollection[schemaName_in];

            for (int c = 0; c < _schema.ComplexTypeCollection.Count; c++)
            {
                for (int e = 0; e < _schema.ComplexTypeCollection[c].Sequence.ElementCollection.Count; e++)
                {
                    if (
                        // if there's an Element pointing this ComplexType
                        (_schema.ComplexTypeCollection[c].Sequence.ElementCollection[e].Type == Name)
                        &&
                        // and if this Element occurance is unbounded
                        (_schema.ComplexTypeCollection[c].Sequence.ElementCollection[e].MaxOccurs
                         == XS_MaxOccursType.unbounded)
                        )
                    {
                        // then this ComplexType must implement a Collection

                        #region _complextype = ...;
                        #region _index = ...;
                        if (schemaName_in != string.Empty)
                        {
                            _index = root_ref_.MetadataCollection[0].MetadataIndexCollection.Search(schemaName_in);
                        }
                        else
                        {
                            _index = -1;
                        }
                        #endregion
                        if (_index != -1)
                        {
                            // note: if not found null will be returned!
                            // so don't glue this if block with the next
                            // or have this in consideration when you do it
                            _complextype
                                = root_ref_.MetadataCollection[0].MetadataIndexCollection[_index].ComplexTypeCollection[
                                      Name
                                  ];
                        }
                        else
                        {
                            _complextype = null;
                        }

                        if (_complextype == null)
                        {
                            _complextype
                                = root_ref_.MetadataCollection[0].ComplexTypeCollection[
                                      Name
                                  ];
                        }
                        #endregion
                        if (_complextype != null)
                        {
                            complexTypeCollection_out = new ComplexTypeItem[_complextype.ComplexTypeKeyCollection.Count];
                            for (int k = 0; k < _complextype.ComplexTypeKeyCollection.Count; k++)
                            {
                                for (int a = 0; a < AttributeCollection.Count; a++)
                                {
                                    if (
                                        AttributeCollection[a].Name
                                        ==
                                        _complextype.ComplexTypeKeyCollection[k].Name
                                        )
                                    {
                                        complexTypeCollection_out[k] = new ComplexTypeItem(
                                            AttributeCollection[a].Name,
                                            AttributeCollection[a].NType(schemaName_in),
                                            _complextype.ComplexTypeKeyCollection[k].caseSensitive
                                            );
                                        break;
                                    }
                                }
                            }
                        }

                        return(true);
                    }
                }
            }
            return(false);
        }