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