コード例 #1
0
        public static XmlQualifiedName EnsureProbeMatchSchema(DiscoveryVersion discoveryVersion, XmlSchemaSet schemaSet)
        {
            Fx.Assert(schemaSet != null, "The schemaSet must be non null.");
            Fx.Assert(discoveryVersion != null, "The discoveryVersion must be non null.");

            // ensure that EPR is added to the schema.
            if (discoveryVersion == DiscoveryVersion.WSDiscoveryApril2005 || discoveryVersion == DiscoveryVersion.WSDiscoveryCD1)
            {
                EndpointAddressAugust2004.GetSchema(schemaSet);
            }
            else if (discoveryVersion == DiscoveryVersion.WSDiscovery11)
            {
                EndpointAddress10.GetSchema(schemaSet);
            }
            else
            {
                Fx.Assert("The discoveryVersion is not supported.");
            }

            // do not add/find Probe related schema items
            SchemaTypes    typesFound    = SchemaTypes.ProbeType | SchemaTypes.ResolveType;
            SchemaElements elementsFound = SchemaElements.None;

            XmlSchema   discoverySchema  = null;
            ICollection discoverySchemas = schemaSet.Schemas(discoveryVersion.Namespace);

            if ((discoverySchemas == null) || (discoverySchemas.Count == 0))
            {
                discoverySchema = CreateSchema(discoveryVersion);
                AddImport(discoverySchema, discoveryVersion.Implementation.WsaNamespace);
                schemaSet.Add(discoverySchema);
            }
            else
            {
                foreach (XmlSchema schema in discoverySchemas)
                {
                    discoverySchema = schema;
                    if (schema.SchemaTypes.Contains(discoveryVersion.Implementation.QualifiedNames.ProbeMatchType))
                    {
                        typesFound |= SchemaTypes.ProbeMatchType;
                        break;
                    }

                    LocateSchemaTypes(discoveryVersion, schema, ref typesFound);
                    LocateSchemaElements(discoveryVersion, schema, ref elementsFound);
                }
            }

            if ((typesFound & SchemaTypes.ProbeMatchType) != SchemaTypes.ProbeMatchType)
            {
                AddSchemaTypes(discoveryVersion, typesFound, discoverySchema);
                AddElements(discoveryVersion, elementsFound, discoverySchema);
                schemaSet.Reprocess(discoverySchema);
            }

            return(discoveryVersion.Implementation.QualifiedNames.ProbeMatchType);
        }
コード例 #2
0
ファイル: SelectHeaderDialog.cs プロジェクト: notes2c/WSCF
        /// <summary>
        /// Initializes a new instance of SelectHeaderDialog class.
        /// </summary>
        /// <param name="headerSchemas">Reference to an instance of <see cref="SchemaElements"/> class.</param>
        /// <param name="selectedHeader">Reference to an instance of <see cref="SchemaElement"/> class.</param>
        /// <remarks>The headerSchemas parameter contains the header schemas available for the wizard.
        /// This collection is used to fill the cbHeaderMessage combo box later. selectedHeader parameter is
        /// used to return the selected header value from the dialog box to the caller.
        /// </remarks>
        public SelectHeaderDialog(SchemaElements headerSchemas,
                                  ref SchemaElement selectedHeader)
        {
            //
            // Required for Windows Form Designer support
            //
            InitializeComponent();

            this.headerSchemas  = headerSchemas;
            this.selectedHeader = selectedHeader;

            closingByForce = true;
        }
コード例 #3
0
 static void AddElements(DiscoveryVersion discoveryVersion, SchemaElements elementsFound, XmlSchema discoverySchema)
 {
     if ((elementsFound & SchemaElements.Types) == 0)
     {
         AddTypesElement(discoveryVersion, discoverySchema);
     }
     if ((elementsFound & SchemaElements.Scopes) == 0)
     {
         AddScopesElement(discoveryVersion, discoverySchema);
     }
     if ((elementsFound & SchemaElements.XAddrs) == 0)
     {
         AddXAddrsElement(discoveryVersion, discoverySchema);
     }
     if ((elementsFound & SchemaElements.MetadataVersion) == 0)
     {
         AddMetadataVersionSchemaElement(discoveryVersion, discoverySchema);
     }
 }
コード例 #4
0
        public static XmlQualifiedName EnsureProbeSchema(DiscoveryVersion discoveryVersion, XmlSchemaSet schemaSet)
        {
            Fx.Assert(schemaSet != null, "The schemaSet must be non null.");
            Fx.Assert(discoveryVersion != null, "The discoveryVersion must be non null.");

            // do not find/add ProbeMatch related schema items
            SchemaTypes    typesFound    = SchemaTypes.ProbeMatchType | SchemaTypes.ResolveType;
            SchemaElements elementsFound = SchemaElements.XAddrs | SchemaElements.MetadataVersion;

            XmlSchema   discoverySchema  = null;
            ICollection discoverySchemas = schemaSet.Schemas(discoveryVersion.Namespace);

            if ((discoverySchemas == null) || (discoverySchemas.Count == 0))
            {
                discoverySchema = CreateSchema(discoveryVersion);
                schemaSet.Add(discoverySchema);
            }
            else
            {
                foreach (XmlSchema schema in discoverySchemas)
                {
                    discoverySchema = schema;
                    if (schema.SchemaTypes.Contains(discoveryVersion.Implementation.QualifiedNames.ProbeType))
                    {
                        typesFound |= SchemaTypes.ProbeType;
                        break;
                    }

                    LocateSchemaTypes(discoveryVersion, schema, ref typesFound);
                    LocateSchemaElements(discoveryVersion, schema, ref elementsFound);
                }
            }

            if ((typesFound & SchemaTypes.ProbeType) != SchemaTypes.ProbeType)
            {
                AddSchemaTypes(discoveryVersion, typesFound, discoverySchema);
                AddElements(discoveryVersion, elementsFound, discoverySchema);
                schemaSet.Reprocess(discoverySchema);
            }

            return(discoveryVersion.Implementation.QualifiedNames.ProbeType);
        }
コード例 #5
0
 static void LocateSchemaElements(DiscoveryVersion discoveryVersion, XmlSchema schema, ref SchemaElements elementsFound)
 {
     if (((elementsFound & SchemaElements.Types) != SchemaElements.Types) &&
         (schema.Elements.Contains(discoveryVersion.Implementation.QualifiedNames.TypesElement)))
     {
         elementsFound |= SchemaElements.Types;
     }
     if (((elementsFound & SchemaElements.Scopes) != SchemaElements.Scopes) &&
         (schema.Elements.Contains(discoveryVersion.Implementation.QualifiedNames.ScopesElement)))
     {
         elementsFound |= SchemaElements.Scopes;
     }
     if (((elementsFound & SchemaElements.XAddrs) != SchemaElements.XAddrs) &&
         (schema.Elements.Contains(discoveryVersion.Implementation.QualifiedNames.XAddrsElement)))
     {
         elementsFound |= SchemaElements.XAddrs;
     }
     if (((elementsFound & SchemaElements.MetadataVersion) != SchemaElements.MetadataVersion) &&
         (schema.Elements.Contains(discoveryVersion.Implementation.QualifiedNames.MetadataVersionElement)))
     {
         elementsFound |= SchemaElements.MetadataVersion;
     }
 }
コード例 #6
0
 static void AddElements(DiscoveryVersion discoveryVersion, SchemaElements elementsFound, XmlSchema discoverySchema)
 {
     if ((elementsFound & SchemaElements.Types) == 0)
     {
         AddTypesElement(discoveryVersion, discoverySchema);
     }
     if ((elementsFound & SchemaElements.Scopes) == 0)
     {
         AddScopesElement(discoveryVersion, discoverySchema);
     }
     if ((elementsFound & SchemaElements.XAddrs) == 0)
     {
         AddXAddrsElement(discoveryVersion, discoverySchema);
     }
     if ((elementsFound & SchemaElements.MetadataVersion) == 0)
     {
         AddMetadataVersionSchemaElement(discoveryVersion, discoverySchema);
     }
 }
コード例 #7
0
 static void LocateSchemaElements(DiscoveryVersion discoveryVersion, XmlSchema schema, ref SchemaElements elementsFound)
 {
     if (((elementsFound & SchemaElements.Types) != SchemaElements.Types) &&
         (schema.Elements.Contains(discoveryVersion.Implementation.QualifiedNames.TypesElement)))
     {
         elementsFound |= SchemaElements.Types;
     }
     if (((elementsFound & SchemaElements.Scopes) != SchemaElements.Scopes) &&
         (schema.Elements.Contains(discoveryVersion.Implementation.QualifiedNames.ScopesElement)))
     {
         elementsFound |= SchemaElements.Scopes;
     }
     if (((elementsFound & SchemaElements.XAddrs) != SchemaElements.XAddrs) &&
         (schema.Elements.Contains(discoveryVersion.Implementation.QualifiedNames.XAddrsElement)))
     {
         elementsFound |= SchemaElements.XAddrs;
     }
     if (((elementsFound & SchemaElements.MetadataVersion) != SchemaElements.MetadataVersion) &&
         (schema.Elements.Contains(discoveryVersion.Implementation.QualifiedNames.MetadataVersionElement)))
     {
         elementsFound |= SchemaElements.MetadataVersion;
     }
 }