Example #1
0
        private static void FindSchemaLocationVersion2(XmlReader reader, string xmlPath, out string xsdPath, out string tableNamespace)
        {
            var targetNamespace   = reader.NamespaceURI;
            var relativeNamespace = UriUtility.MakeRelativeOfDirectory(CremaSchemaObsolete.TableNamespaceObsolete, targetNamespace);
            var relativeXsdPath   = PathUtility.ConvertFromUri(relativeNamespace + CremaSchema.SchemaExtension);
            var path  = xmlPath;
            var index = 0;

            xsdPath = null;
            while ((index = path.LastIndexOf(Path.DirectorySeparatorChar + CremaSchemaObsolete.TableDirectoryObsolete + Path.DirectorySeparatorChar)) >= 0)
            {
                var targetPath  = Path.Combine(xmlPath.Remove(index), CremaSchemaObsolete.TableDirectoryObsolete);
                var xsdFilename = Path.GetFileName(relativeXsdPath);
                var found       = Directory.GetFiles(targetPath, xsdFilename, SearchOption.AllDirectories).Where(item => item.EndsWith(relativeXsdPath)).FirstOrDefault();
                if (File.Exists(found) == true)
                {
                    xsdPath = found;
                    break;
                }
                path = path.Remove(index);
            }

            if (xsdPath == null)
            {
                throw new Exception();
            }

            var basePath = xsdPath.Replace(relativeXsdPath, string.Empty);
            var relative = FileUtility.RemoveExtension(xmlPath.Replace(basePath, string.Empty));
            var uri      = new Uri(new Uri(CremaSchemaObsolete.TableNamespaceObsolete + Path.AltDirectorySeparatorChar), relative);

            tableNamespace = uri.ToString();
        }
Example #2
0
 public string GenerateTypePath(string categoryPath, string typeName)
 {
     NameValidator.ValidateCategoryPath(categoryPath);
     return(PathUtility.ConvertFromUri(this.basePath + categoryPath + typeName + CremaSchema.SchemaExtension));
 }