public bool IsValidateableXmlNamespace(string xmlNamespaceUri, bool isAttribute) { if (string.IsNullOrEmpty(xmlNamespaceUri) && isAttribute) { // we own the empty namespace for attributes return(true); } if (_validatableXmlNamespaces == null) { var validatableXmlNamespaces = new HashSet <string>(); var schemaVersion = SchemaVersion == XmlConstants.UndefinedVersion ? XmlConstants.SchemaVersionLatest : SchemaVersion; foreach (var schemaResource in XmlSchemaResource.GetMetadataSchemaResourceMap(schemaVersion).Values) { AddAllSchemaResourceNamespaceNames(validatableXmlNamespaces, schemaResource); } if (SchemaVersion == XmlConstants.UndefinedVersion) { // we are getting called before the version is set return(validatableXmlNamespaces.Contains(xmlNamespaceUri)); } _validatableXmlNamespaces = validatableXmlNamespaces; } return(_validatableXmlNamespaces.Contains(xmlNamespaceUri)); }
public bool IsParseableXmlNamespace(string xmlNamespaceUri, bool isAttribute) { if (string.IsNullOrEmpty(xmlNamespaceUri) && isAttribute) { // we own the empty namespace for attributes return(true); } if (_parseableXmlNamespaces == null) { _parseableXmlNamespaces = new HashSet <string>(); foreach (var schemaResource in XmlSchemaResource.GetMetadataSchemaResourceMap(SchemaVersion).Values) { _parseableXmlNamespaces.Add(schemaResource.NamespaceUri); } } return(_parseableXmlNamespaces.Contains(xmlNamespaceUri)); }
private static XmlSchemaSet ComputeSchemaSet(SchemaDataModelOption dataModel) { var namespaceNames = GetPrimarySchemaNamespaces(dataModel); Debug.Assert(namespaceNames.Count > 0, "Unknown Datamodel"); var schemaSet = new XmlSchemaSet(); // remove the default XmlResolver which will look on // disk for the referenced schemas that we already provided schemaSet.XmlResolver = null; var schemaResourceMap = XmlSchemaResource.GetMetadataSchemaResourceMap(XmlConstants.SchemaVersionLatest); var schemasAlreadyAdded = new HashSet <string>(); foreach (var namespaceName in namespaceNames) { Debug.Assert(schemaResourceMap.ContainsKey(namespaceName), "the namespace name is not one we have a schema set for"); var schemaResource = schemaResourceMap[namespaceName]; AddXmlSchemaToSet(schemaSet, schemaResource, schemasAlreadyAdded); } schemaSet.Compile(); return(schemaSet); }