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); }
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; }
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); }