xcop 0.10.1 → 0.10.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fa89e4f1fcf4bd98059669b6fdd5dfae445a9c6fc43bbee41486f974b8d7af6e
4
- data.tar.gz: 32f664bba8e5dc4450919c6af6f19146a80d97ef9bc5db595cbd4800afd8d9e2
3
+ metadata.gz: 38b6fe520c9b6d5c13c9dbb395fc5484c935311f2bfee2c83594b95023099a5a
4
+ data.tar.gz: 8484754dd75c22a9e5f21452a3a92e3704a9a1a9d37285eda11f0a0f9e11c83c
5
5
  SHA512:
6
- metadata.gz: 9fc34e6689bb4f67f3f14c764f2443764daf856b6b4c5be763b07bc9b4ab0003b3841fdb38c3120478dfc9e1f93d23462c8021c4d189ec9a4cf69a60c588200d
7
- data.tar.gz: 71fae53f841ad1cb2ff31e3ca741d4d167643099daad5d270aac8aaac86732b3851c659d18974a707d51f01f4fae1eb7742324681d3ce7aca3b295ddd38776a2
6
+ metadata.gz: '0208353e4449b9b6b0a67b1cdaf324f0f0f600e00251d1dd350165b759b260bb2ffa1565427b45b6247b56421c496b8a2f927b9b980b2a9367d6cb08871d0b52'
7
+ data.tar.gz: f132099516bc9aeea73ffddc77c29f5f3a1e3e634b516da942a267e2748df87fff9a40df74d4f1af1f342e1ce7b67a074118efb07b1684e286dc01bae47f0074
data/lib/xcop/document.rb CHANGED
@@ -126,6 +126,16 @@ class Xcop::Document
126
126
  declared - used
127
127
  end
128
128
 
129
+ # Returns the absolute path of the local XSD schema declared by +xml+,
130
+ # or +nil+ when no schema is declared or the declared location is not a
131
+ # local file. The location comes from +xsi:noNamespaceSchemaLocation+
132
+ # or, failing that, from the second token of +xsi:schemaLocation+.
133
+ #
134
+ # A +schemaLocation+ is a URI, not a file path, so a remote schema such
135
+ # as +http://maven.apache.org/xsd/maven-4.0.0.xsd+ (the normal case for
136
+ # Maven +pom.xml+, +settings.xml+ and +site.xml+) must not be treated as
137
+ # a local file. Any location that carries a URL scheme is therefore
138
+ # skipped, leaving only truly local schemas to be validated. See #163.
129
139
  def schema(xml)
130
140
  root = xml.root
131
141
  return unless root
@@ -138,6 +148,7 @@ class Xcop::Document
138
148
  mapped.value.split.last
139
149
  end
140
150
  return unless location
151
+ return if location.match?(%r{\A[a-z][a-z0-9+.-]*://}i)
141
152
  File.expand_path(location, File.dirname(@path))
142
153
  end
143
154
 
data/lib/xcop/version.rb CHANGED
@@ -6,5 +6,5 @@
6
6
  # Copyright:: Copyright (c) 2017-2026 Yegor Bugayenko
7
7
  # License:: MIT
8
8
  module Xcop
9
- VERSION = '0.10.1'.freeze
9
+ VERSION = '0.10.2'.freeze
10
10
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: xcop
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.10.1
4
+ version: 0.10.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yegor Bugayenko