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

            OGen.XSD.Libraries.Metadata.Metadata.XS_complexTypeType _complextype
                = this.root_ref.MetadataCollection[0].ComplexTypeCollection[
                      this.Type
                  ];

            if (_complextype != null)
            {
                XS__schema _schema = this.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);
        }
Exemple #2
0
        public bool mustImplementCollection(
            string schemaName_in,
            out ComplexTypeItem[] complexTypeCollection_out
            )
        {
            complexTypeCollection_out = null;
            int _index = -1;

            OGen.XSD.Libraries.Metadata.Metadata.XS_complexTypeType _complextype;

            XS__schema _schema = this.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 == this.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 (!string.IsNullOrEmpty(schemaName_in))
                        {
                            _index = this.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
                                = this.root_ref_.MetadataCollection[0].MetadataIndexCollection[_index].ComplexTypeCollection[
                                      this.Name
                                  ];
                        }
                        else
                        {
                            _complextype = null;
                        }

                        if (_complextype == null)
                        {
                            _complextype
                                = this.root_ref_.MetadataCollection[0].ComplexTypeCollection[
                                      this.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 < this.AttributeCollection.Count; a++)
                                {
                                    if (
                                        this.AttributeCollection[a].Name
                                        ==
                                        _complextype.ComplexTypeKeyCollection[k].Name
                                        )
                                    {
                                        complexTypeCollection_out[k] = new ComplexTypeItem(
                                            this.AttributeCollection[a].Name,
                                            this.AttributeCollection[a].NType(schemaName_in),
                                            _complextype.ComplexTypeKeyCollection[k].caseSensitive
                                            );
                                        break;
                                    }
                                }
                            }
                        }

                        return(true);
                    }
                }
            }
            return(false);
        }
Exemple #3
0
		public bool mustImplementCollection(
			string schemaName_in, 
			out ComplexTypeItem[] complexTypeCollection_out
		) {
			complexTypeCollection_out = null;
			int _index = -1;
			OGen.XSD.Libraries.Metadata.Metadata.XS_complexTypeType _complextype;

			XS__schema _schema = this.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 == this.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 (!string.IsNullOrEmpty(schemaName_in))
							_index = this.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
								= this.root_ref_.MetadataCollection[0].MetadataIndexCollection[_index].ComplexTypeCollection[
									this.Name
								];
						else
							_complextype = null;

						if (_complextype == null)
							_complextype
								= this.root_ref_.MetadataCollection[0].ComplexTypeCollection[
									this.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 < this.AttributeCollection.Count; a++) {
									if (
										this.AttributeCollection[a].Name 
										== 
										_complextype.ComplexTypeKeyCollection[k].Name
									) {
										complexTypeCollection_out[k] = new ComplexTypeItem(
											this.AttributeCollection[a].Name,
											this.AttributeCollection[a].NType(schemaName_in),
											_complextype.ComplexTypeKeyCollection[k].caseSensitive
										);
										break;
									}
								}
							}
						}

						return true;
					}
				}
			}
			return false;
		}