ruby_rnv 0.2.0
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 +7 -0
- data/Gemfile +3 -0
- data/ext/rnv/extconf.rb +15 -0
- data/ext/rnv/ruby_rnv.c +742 -0
- data/ext/rnv/src/ary.c +78 -0
- data/ext/rnv/src/ary.h +10 -0
- data/ext/rnv/src/drv.c +472 -0
- data/ext/rnv/src/drv.h +35 -0
- data/ext/rnv/src/er.c +15 -0
- data/ext/rnv/src/er.h +16 -0
- data/ext/rnv/src/erbit.h +14 -0
- data/ext/rnv/src/ht.c +90 -0
- data/ext/rnv/src/ht.h +22 -0
- data/ext/rnv/src/ll.h +43 -0
- data/ext/rnv/src/m.c +60 -0
- data/ext/rnv/src/m.h +10 -0
- data/ext/rnv/src/rn.c +569 -0
- data/ext/rnv/src/rn.h +150 -0
- data/ext/rnv/src/rnc.c +1191 -0
- data/ext/rnv/src/rnc.h +68 -0
- data/ext/rnv/src/rnd.c +436 -0
- data/ext/rnv/src/rnd.h +25 -0
- data/ext/rnv/src/rnl.c +62 -0
- data/ext/rnv/src/rnl.h +18 -0
- data/ext/rnv/src/rnv.c +158 -0
- data/ext/rnv/src/rnv.h +30 -0
- data/ext/rnv/src/rnx.c +153 -0
- data/ext/rnv/src/rnx.h +16 -0
- data/ext/rnv/src/rx.c +749 -0
- data/ext/rnv/src/rx.h +43 -0
- data/ext/rnv/src/rx_cls_ranges.c +126 -0
- data/ext/rnv/src/rx_cls_u.c +262 -0
- data/ext/rnv/src/s.c +103 -0
- data/ext/rnv/src/s.h +32 -0
- data/ext/rnv/src/sc.c +62 -0
- data/ext/rnv/src/sc.h +26 -0
- data/ext/rnv/src/type.h +121 -0
- data/ext/rnv/src/u.c +88 -0
- data/ext/rnv/src/u.h +26 -0
- data/ext/rnv/src/xcl.c +472 -0
- data/ext/rnv/src/xmlc.c +20 -0
- data/ext/rnv/src/xmlc.h +16 -0
- data/ext/rnv/src/xsd.c +789 -0
- data/ext/rnv/src/xsd.h +27 -0
- data/ext/rnv/src/xsd_tm.c +100 -0
- data/ext/rnv/src/xsd_tm.h +15 -0
- data/lib/rnv.rb +2 -0
- data/lib/rnv/ox_sax_document.rb +84 -0
- data/lib/rnv/validator.rb +104 -0
- metadata +175 -0
data/ext/rnv/src/xsd.h
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
/* $Id: xsd.h,v 1.14 2005/01/05 09:46:25 dvd Exp $ */
|
2
|
+
|
3
|
+
#include <stdarg.h>
|
4
|
+
#include "type.h"
|
5
|
+
|
6
|
+
#ifndef XSD_H
|
7
|
+
#define XSD_H 1
|
8
|
+
|
9
|
+
#define XSD_ER_TYP 0
|
10
|
+
#define XSD_ER_PAR 1
|
11
|
+
#define XSD_ER_PARVAL 2
|
12
|
+
#define XSD_ER_VAL 3
|
13
|
+
#define XSD_ER_NPAT 4
|
14
|
+
#define XSD_ER_WS 5
|
15
|
+
#define XSD_ER_ENUM 6
|
16
|
+
|
17
|
+
extern void xsd_default_verror_handler(rnv_t *rnv, int erno,va_list ap);
|
18
|
+
|
19
|
+
extern void xsd_init(rx_st_t *rx_st);
|
20
|
+
extern void xsd_clear(void);
|
21
|
+
|
22
|
+
extern int xsd_allows(rx_st_t *rx_st, char *typ,char *ps,char *s,int n);
|
23
|
+
extern int xsd_equal(rx_st_t *rx_st, char *typ,char *val,char *s,int n);
|
24
|
+
|
25
|
+
extern void xsd_test(void);
|
26
|
+
|
27
|
+
#endif
|
@@ -0,0 +1,100 @@
|
|
1
|
+
/* $Id: xsd_tm.c,v 1.9 2004/02/25 00:00:32 dvd Exp $ */
|
2
|
+
|
3
|
+
#include <stdlib.h> /*strtol*/
|
4
|
+
#include <limits.h>
|
5
|
+
#include <string.h> /*strlen*/
|
6
|
+
#include <assert.h>
|
7
|
+
#include "xsd_tm.h"
|
8
|
+
|
9
|
+
static int leap(int yr) {return !(yr%4)&&((yr%100)||!(yr%400));}
|
10
|
+
static int y2d(int yr) {return yr*365+yr/4-yr/100+yr/400;}
|
11
|
+
static int ymd2dn(int yr,int mo,int dy) {
|
12
|
+
switch(mo) {
|
13
|
+
case 12: dy+=30;
|
14
|
+
case 11: dy+=31;
|
15
|
+
case 10: dy+=30;
|
16
|
+
case 9: dy+=31;
|
17
|
+
case 8: dy+=31;
|
18
|
+
case 7: dy+=30;
|
19
|
+
case 6: dy+=31;
|
20
|
+
case 5: dy+=30;
|
21
|
+
case 4: dy+=31;
|
22
|
+
case 3: dy+=28;
|
23
|
+
case 2: dy+=31;
|
24
|
+
case 1: break;
|
25
|
+
}
|
26
|
+
if(mo>2&&leap(yr)) ++dy;
|
27
|
+
return dy;
|
28
|
+
}
|
29
|
+
|
30
|
+
static int ymd2ds(int yr,int mo,int dy) {
|
31
|
+
return (yr>=0?y2d(yr-1):y2d(yr)-366)+ymd2dn(yr,mo,dy);
|
32
|
+
}
|
33
|
+
|
34
|
+
#define DAYSECS 86400
|
35
|
+
#define TZSECS 50400
|
36
|
+
|
37
|
+
static void addsecs(struct xsd_tm *tmp,int secs) {
|
38
|
+
tmp->secs+=secs;
|
39
|
+
if(tmp->secs<0) {
|
40
|
+
--tmp->days;
|
41
|
+
tmp->secs+=DAYSECS;
|
42
|
+
} else if(tmp->secs>=DAYSECS) {
|
43
|
+
++tmp->days;
|
44
|
+
tmp->secs-=DAYSECS;
|
45
|
+
}
|
46
|
+
}
|
47
|
+
|
48
|
+
void xsd_mktmn(struct xsd_tm *tmp,char *fmt,char *s,int n) {
|
49
|
+
char *end=s+n;
|
50
|
+
int yr=2000,mo=1,dy=1,hr=0,mi=0,zh=15,zm=0;
|
51
|
+
double se=0.0;
|
52
|
+
for(;;) {
|
53
|
+
if(s==end||!*fmt) break;
|
54
|
+
switch(*s) {
|
55
|
+
case '-':
|
56
|
+
switch(*fmt) {
|
57
|
+
case 'y': ++fmt; yr=strtol(s,&s,10); continue;
|
58
|
+
case 'z': ++fmt; ++s; zh=strtol(s,&s,10); ++s; zm=strtol(s,&s,10); continue;
|
59
|
+
}
|
60
|
+
break;
|
61
|
+
case '+': assert(*fmt=='z'); ++fmt;
|
62
|
+
zh=-strtol(s,&s,10); ++s; zm=-strtol(s,&s,10); continue;
|
63
|
+
case 'Z': assert(*fmt=='z'); ++fmt; zh=0; zm=0; ++s; continue;
|
64
|
+
case '0': case '1': case '2': case '3': case '4':
|
65
|
+
case '5': case '6': case '7': case '8': case '9':
|
66
|
+
switch(*(fmt++)) {
|
67
|
+
case 'y': yr=strtol(s,&s,10); continue;
|
68
|
+
case 'm': mo=strtol(s,&s,10); continue;
|
69
|
+
case 'd': dy=strtol(s,&s,10); continue;
|
70
|
+
case 't': hr=strtol(s,&s,10); ++s; mi=strtol(s,&s,10); ++s; se=strtod(s,&s); continue;
|
71
|
+
}
|
72
|
+
break;
|
73
|
+
}
|
74
|
+
++s;
|
75
|
+
}
|
76
|
+
tmp->mics=(int)((se-(int)se)*1000000+0.5);
|
77
|
+
tmp->secs=(int)se+60*(mi+60*hr);
|
78
|
+
tmp->days=ymd2ds(yr,mo,dy);
|
79
|
+
if((tmp->tz=(zh!=15))) addsecs(tmp,60*(zm+60*zh));
|
80
|
+
}
|
81
|
+
void xsd_mktm(struct xsd_tm *tmp,char *fmt,char *val) {xsd_mktmn(tmp,fmt,val,strlen(val));}
|
82
|
+
|
83
|
+
static int tmcmp(struct xsd_tm *tmp1, struct xsd_tm *tmp2) {
|
84
|
+
int dd=tmp1->days-tmp2->days, ds=tmp1->secs-tmp2->secs, dm=tmp1->mics-tmp2->mics;
|
85
|
+
return dd<0?-1:dd>0?1:ds<0?-1:ds>0?1:dm<0?-1:dm>0?1:0;
|
86
|
+
}
|
87
|
+
|
88
|
+
extern int xsd_tmcmp(struct xsd_tm *tmp1, struct xsd_tm *tmp2) {
|
89
|
+
if(tmp1->tz==tmp2->tz) {
|
90
|
+
return tmcmp(tmp1,tmp2);
|
91
|
+
} else if(tmp1->tz) {
|
92
|
+
struct xsd_tm tm; tm.mics=tmp2->mics;
|
93
|
+
tm.days=tmp2->days; tm.secs=tmp2->secs; addsecs(&tm,TZSECS);
|
94
|
+
if(tmcmp(tmp1,&tm)==1) return 1;
|
95
|
+
tm.days=tmp2->days; tm.secs=tmp2->secs; addsecs(&tm,-TZSECS);
|
96
|
+
if(tmcmp(tmp1,&tm)==-1) return -1;
|
97
|
+
return 2;
|
98
|
+
} else return -xsd_tmcmp(tmp2,tmp1);
|
99
|
+
}
|
100
|
+
|
@@ -0,0 +1,15 @@
|
|
1
|
+
/* $Id: xsd_tm.h,v 1.2 2003/12/25 03:05:34 dvd Exp $ */
|
2
|
+
|
3
|
+
#ifndef XSD_TM_H
|
4
|
+
#define XSD_TM_H 1
|
5
|
+
|
6
|
+
struct xsd_tm {int days,secs,mics,tz;};
|
7
|
+
|
8
|
+
/* fmt is a combination of ymdtz */
|
9
|
+
extern void xsd_mktm(struct xsd_tm *tmp,char *fmt,char *val);
|
10
|
+
extern void xsd_mktmn(struct xsd_tm *tmp,char *fmt,char *s,int n);
|
11
|
+
|
12
|
+
/* -1 - less, 0 - equal, 1 - greater, other - unknown */
|
13
|
+
extern int xsd_tmcmp(struct xsd_tm *tmp1, struct xsd_tm *tmp2);
|
14
|
+
|
15
|
+
#endif
|
data/lib/rnv.rb
ADDED
@@ -0,0 +1,84 @@
|
|
1
|
+
class OxSaxDocument < ::Ox::Sax
|
2
|
+
attr_accessor :current_element, :current_attributes, :current_ns
|
3
|
+
|
4
|
+
def initialize(document)
|
5
|
+
@document = document
|
6
|
+
@current_ns = {}
|
7
|
+
@pos = nil
|
8
|
+
@line = nil
|
9
|
+
@column = nil
|
10
|
+
end
|
11
|
+
|
12
|
+
def start_element(name)
|
13
|
+
save_line_col
|
14
|
+
@current_element = name.to_s
|
15
|
+
@current_attributes = []
|
16
|
+
end
|
17
|
+
|
18
|
+
def end_element(name)
|
19
|
+
save_line_col
|
20
|
+
@document.end_tag(name_with_ns_uri(name.to_s))
|
21
|
+
@current_element = nil
|
22
|
+
end
|
23
|
+
|
24
|
+
def attr(name, value)
|
25
|
+
if @current_element
|
26
|
+
if name.to_s.start_with?("xmlns")
|
27
|
+
ns = name.to_s.split(":")
|
28
|
+
@current_ns[ns.length > 1 ? ns.last : ""] = value.to_s
|
29
|
+
else
|
30
|
+
@current_attributes << name_with_ns_uri(name.to_s, false)
|
31
|
+
@current_attributes << value.to_s
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
def attrs_done
|
37
|
+
save_line_col
|
38
|
+
if @current_element
|
39
|
+
@document.start_tag(name_with_ns_uri(@current_element), @current_attributes)
|
40
|
+
@current_element = nil
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
def text(value)
|
45
|
+
save_line_col
|
46
|
+
@document.characters(value)
|
47
|
+
end
|
48
|
+
|
49
|
+
if false
|
50
|
+
def value(value)
|
51
|
+
save_line_col
|
52
|
+
@document.characters(value.as_s)
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
def instruct(inst)
|
57
|
+
end
|
58
|
+
|
59
|
+
private
|
60
|
+
def get_ns_uri(ns)
|
61
|
+
@current_ns[ns] ? "#{@current_ns[ns]}:" : ""
|
62
|
+
end
|
63
|
+
|
64
|
+
def name_with_ns_uri(name, explicit_xmlns = true)
|
65
|
+
name_with_ns = name.split(":")
|
66
|
+
if name_with_ns.length > 1
|
67
|
+
"#{get_ns_uri(name_with_ns.first)}#{name_with_ns.last}"
|
68
|
+
else
|
69
|
+
if explicit_xmlns
|
70
|
+
"#{get_ns_uri("")}#{name_with_ns.first}"
|
71
|
+
else
|
72
|
+
name
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
def save_line_col
|
78
|
+
@document.last_line = @line
|
79
|
+
@document.last_col = @column
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
# handler = OxSaxDocument.new(@document)
|
84
|
+
# Ox.sax_parse(handler, file)
|
@@ -0,0 +1,104 @@
|
|
1
|
+
require 'nokogiri'
|
2
|
+
require 'rnv/rnv'
|
3
|
+
|
4
|
+
module RNV
|
5
|
+
# @!visibility private
|
6
|
+
class NokogiriSaxDocument < Nokogiri::XML::SAX::Document
|
7
|
+
# @return [Nokogiri::XML::SAX::ParserContext]
|
8
|
+
attr_accessor :ctx
|
9
|
+
# @param [RNV::Document] document
|
10
|
+
def initialize(document)
|
11
|
+
@document = document
|
12
|
+
end
|
13
|
+
|
14
|
+
def start_element_namespace(name, attrs = [], prefix = nil, uri = nil, ns = nil)
|
15
|
+
update_line_col
|
16
|
+
tag_attrs = attrs.map { |attr| [attr.uri ? "#{attr.uri}:#{attr.localname}" : attr.localname, attr.value] }
|
17
|
+
tag_name = uri ? "#{uri}:#{name}" : name
|
18
|
+
@document.start_tag(tag_name, tag_attrs.flatten)
|
19
|
+
end
|
20
|
+
|
21
|
+
def end_element_namespace(name, prefix = nil, uri = nil)
|
22
|
+
update_line_col
|
23
|
+
tag_name = uri ? "#{uri}:#{name}" : name
|
24
|
+
@document.end_tag(tag_name)
|
25
|
+
end
|
26
|
+
|
27
|
+
def characters str
|
28
|
+
update_line_col
|
29
|
+
@document.characters(str)
|
30
|
+
end
|
31
|
+
|
32
|
+
def cdata_block str
|
33
|
+
update_line_col
|
34
|
+
@document.characters(str)
|
35
|
+
end
|
36
|
+
|
37
|
+
private
|
38
|
+
|
39
|
+
def update_line_col
|
40
|
+
@document.last_line = @ctx.line
|
41
|
+
@document.last_col = @ctx.column
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
class Validator
|
46
|
+
# @return [RNV::Document]
|
47
|
+
attr_accessor :document
|
48
|
+
|
49
|
+
def initialize
|
50
|
+
@document = RNV::Document.new
|
51
|
+
end
|
52
|
+
|
53
|
+
# errors from document
|
54
|
+
# @return [Array<RNV::Error>]
|
55
|
+
def errors
|
56
|
+
@document.errors
|
57
|
+
end
|
58
|
+
|
59
|
+
# @param [String] str RNC schema buffer
|
60
|
+
def load_schema_from_string(str)
|
61
|
+
@document.load_string(str)
|
62
|
+
end
|
63
|
+
|
64
|
+
# @param [String] file RNC schema filename
|
65
|
+
def load_schema_from_file(file)
|
66
|
+
@document.load_file(file)
|
67
|
+
end
|
68
|
+
|
69
|
+
# parse and validate buffer
|
70
|
+
# @param [String] str XML buffer to parse
|
71
|
+
# @return [Boolean] true if valid
|
72
|
+
def parse_string(str)
|
73
|
+
@document.errors = [] # reset errors
|
74
|
+
@document.start_document
|
75
|
+
rnv_doc = NokogiriSaxDocument.new(@document)
|
76
|
+
|
77
|
+
parser = Nokogiri::XML::SAX::Parser.new(rnv_doc)
|
78
|
+
parser.parse_memory(str) do |ctx|
|
79
|
+
rnv_doc.ctx = ctx
|
80
|
+
end
|
81
|
+
|
82
|
+
@document.valid?
|
83
|
+
end
|
84
|
+
|
85
|
+
# parse and validate file
|
86
|
+
# @param [String, File] xml XML file to parse
|
87
|
+
# @return [Boolean] true if valid
|
88
|
+
def parse_file(xml)
|
89
|
+
@document.errors = [] # reset errors
|
90
|
+
@document.start_document
|
91
|
+
rnv_doc = NokogiriSaxDocument.new(@document)
|
92
|
+
|
93
|
+
file = xml.is_a?(File) ? xml : File.open(xml)
|
94
|
+
|
95
|
+
parser = Nokogiri::XML::SAX::Parser.new(rnv_doc)
|
96
|
+
parser.parse(file) do |ctx|
|
97
|
+
rnv_doc.ctx = ctx
|
98
|
+
end
|
99
|
+
|
100
|
+
@document.valid?
|
101
|
+
end
|
102
|
+
|
103
|
+
end
|
104
|
+
end
|
metadata
ADDED
@@ -0,0 +1,175 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: ruby_rnv
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.2.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Julien Boulnois
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2021-04-07 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.14'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.14'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '10.0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '10.0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: minitest
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '5.0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '5.0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rake-compiler
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: ruby-prof
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: nokogiri
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :runtime
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
description:
|
98
|
+
email:
|
99
|
+
executables: []
|
100
|
+
extensions:
|
101
|
+
- ext/rnv/extconf.rb
|
102
|
+
extra_rdoc_files: []
|
103
|
+
files:
|
104
|
+
- Gemfile
|
105
|
+
- ext/rnv/extconf.rb
|
106
|
+
- ext/rnv/ruby_rnv.c
|
107
|
+
- ext/rnv/src/ary.c
|
108
|
+
- ext/rnv/src/ary.h
|
109
|
+
- ext/rnv/src/drv.c
|
110
|
+
- ext/rnv/src/drv.h
|
111
|
+
- ext/rnv/src/er.c
|
112
|
+
- ext/rnv/src/er.h
|
113
|
+
- ext/rnv/src/erbit.h
|
114
|
+
- ext/rnv/src/ht.c
|
115
|
+
- ext/rnv/src/ht.h
|
116
|
+
- ext/rnv/src/ll.h
|
117
|
+
- ext/rnv/src/m.c
|
118
|
+
- ext/rnv/src/m.h
|
119
|
+
- ext/rnv/src/rn.c
|
120
|
+
- ext/rnv/src/rn.h
|
121
|
+
- ext/rnv/src/rnc.c
|
122
|
+
- ext/rnv/src/rnc.h
|
123
|
+
- ext/rnv/src/rnd.c
|
124
|
+
- ext/rnv/src/rnd.h
|
125
|
+
- ext/rnv/src/rnl.c
|
126
|
+
- ext/rnv/src/rnl.h
|
127
|
+
- ext/rnv/src/rnv.c
|
128
|
+
- ext/rnv/src/rnv.h
|
129
|
+
- ext/rnv/src/rnx.c
|
130
|
+
- ext/rnv/src/rnx.h
|
131
|
+
- ext/rnv/src/rx.c
|
132
|
+
- ext/rnv/src/rx.h
|
133
|
+
- ext/rnv/src/rx_cls_ranges.c
|
134
|
+
- ext/rnv/src/rx_cls_u.c
|
135
|
+
- ext/rnv/src/s.c
|
136
|
+
- ext/rnv/src/s.h
|
137
|
+
- ext/rnv/src/sc.c
|
138
|
+
- ext/rnv/src/sc.h
|
139
|
+
- ext/rnv/src/type.h
|
140
|
+
- ext/rnv/src/u.c
|
141
|
+
- ext/rnv/src/u.h
|
142
|
+
- ext/rnv/src/xcl.c
|
143
|
+
- ext/rnv/src/xmlc.c
|
144
|
+
- ext/rnv/src/xmlc.h
|
145
|
+
- ext/rnv/src/xsd.c
|
146
|
+
- ext/rnv/src/xsd.h
|
147
|
+
- ext/rnv/src/xsd_tm.c
|
148
|
+
- ext/rnv/src/xsd_tm.h
|
149
|
+
- lib/rnv.rb
|
150
|
+
- lib/rnv/ox_sax_document.rb
|
151
|
+
- lib/rnv/validator.rb
|
152
|
+
homepage:
|
153
|
+
licenses:
|
154
|
+
- MIT
|
155
|
+
metadata: {}
|
156
|
+
post_install_message:
|
157
|
+
rdoc_options: []
|
158
|
+
require_paths:
|
159
|
+
- lib
|
160
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
161
|
+
requirements:
|
162
|
+
- - ">="
|
163
|
+
- !ruby/object:Gem::Version
|
164
|
+
version: '2.4'
|
165
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
166
|
+
requirements:
|
167
|
+
- - ">="
|
168
|
+
- !ruby/object:Gem::Version
|
169
|
+
version: '0'
|
170
|
+
requirements: []
|
171
|
+
rubygems_version: 3.0.8
|
172
|
+
signing_key:
|
173
|
+
specification_version: 4
|
174
|
+
summary: RelaxNG compact syntax validator
|
175
|
+
test_files: []
|