Add special handling for file URL scheme on Windows
diff --git a/jsonLoader.go b/jsonLoader.go
index bea6786..4280a04 100644
--- a/jsonLoader.go
+++ b/jsonLoader.go
@@ -31,6 +31,8 @@
"errors"
"io/ioutil"
"net/http"
+ "path/filepath"
+ "runtime"
"strings"
"github.com/xeipuuv/gojsonreference"
@@ -76,6 +78,15 @@
if reference.HasFileScheme {
filename := strings.Replace(refToUrl.String(), "file://", "", -1)
+ if runtime.GOOS == "windows" {
+ // on Windows, a file URL may have an extra leading slash, use slashes
+ // instead of backslashes, and have spaces escaped
+ if strings.HasPrefix(filename, "/") {
+ filename = filename[1:]
+ }
+ filename = filepath.FromSlash(filename)
+ filename = strings.Replace(filename, "%20", " ", -1)
+ }
document, err = l.loadFromFile(filename)
if err != nil {
return nil, err