mirror of
https://gitlab.gnome.org/GNOME/libxml2
synced 2025-03-28 21:33:13 +00:00
First commit of the new Relax-NG validation code, not generally useful
* Makefile.am configure.in relaxng.c include/libxml/relaxng.h: First commit of the new Relax-NG validation code, not generally useful yet. * test/relaxng/* result/relaxng/*: current state of the regression tests Daniel
This commit is contained in:
parent
814a76db87
commit
6eadf63ca6
@ -1,3 +1,11 @@
|
||||
Thu Jan 23 19:26:20 CET 2003 Daniel Veillard <daniel@veillard.com>
|
||||
|
||||
* Makefile.am configure.in relaxng.c include/libxml/relaxng.h:
|
||||
First commit of the new Relax-NG validation code, not generally
|
||||
useful yet.
|
||||
* test/relaxng/* result/relaxng/*: current state of the regression
|
||||
tests
|
||||
|
||||
Thu Jan 23 19:22:54 CET 2003 Daniel Veillard <daniel@veillard.com>
|
||||
|
||||
* tree.c: minimized the memory allocated for GetContent
|
||||
|
44
Makefile.am
44
Makefile.am
@ -7,8 +7,9 @@ DIST_SUBDIRS = include . doc example python
|
||||
|
||||
INCLUDES = -I$(top_builddir)/include -I@srcdir@/include @THREAD_CFLAGS@ @Z_CFLAGS@
|
||||
|
||||
noinst_PROGRAMS=testSchemas testSAX testHTML testXPath testURI testDocbook \
|
||||
testThreads testC14N testAutomata testRegexp testReader
|
||||
noinst_PROGRAMS=testSchemas testRelax testSAX testHTML testXPath testURI \
|
||||
testDocbook testThreads testC14N testAutomata testRegexp \
|
||||
testReader
|
||||
|
||||
bin_PROGRAMS = xmllint xmlcatalog
|
||||
|
||||
@ -26,7 +27,7 @@ libxml2_la_SOURCES = SAX.c entities.c encoding.c error.c parserInternals.c \
|
||||
xpointer.c xinclude.c nanohttp.c nanoftp.c DOCBparser.c \
|
||||
catalog.c globals.c threads.c c14n.c \
|
||||
xmlregexp.c xmlschemas.c xmlschemastypes.c xmlunicode.c \
|
||||
triostr.c trio.c xmlreader.c
|
||||
triostr.c trio.c xmlreader.c relaxng.c
|
||||
else
|
||||
libxml2_la_SOURCES = SAX.c entities.c encoding.c error.c parserInternals.c \
|
||||
parser.c tree.c hash.c list.c xmlIO.c xmlmemory.c uri.c \
|
||||
@ -34,7 +35,7 @@ libxml2_la_SOURCES = SAX.c entities.c encoding.c error.c parserInternals.c \
|
||||
xpointer.c xinclude.c nanohttp.c nanoftp.c DOCBparser.c \
|
||||
catalog.c globals.c threads.c c14n.c \
|
||||
xmlregexp.c xmlschemas.c xmlschemastypes.c xmlunicode.c \
|
||||
xmlreader.c
|
||||
xmlreader.c relaxng.c
|
||||
endif
|
||||
|
||||
DEPS = $(top_builddir)/libxml2.la
|
||||
@ -105,6 +106,11 @@ testSchemas_LDFLAGS =
|
||||
testSchemas_DEPENDENCIES = $(DEPS)
|
||||
testSchemas_LDADD= $(LDADDS)
|
||||
|
||||
testRelax_SOURCES=testRelax.c
|
||||
testRelax_LDFLAGS =
|
||||
testRelax_DEPENDENCIES = $(DEPS)
|
||||
testRelax_LDADD= $(LDADDS)
|
||||
|
||||
testReader_SOURCES=testReader.c
|
||||
testReader_LDFLAGS =
|
||||
testReader_DEPENDENCIES = $(DEPS)
|
||||
@ -680,6 +686,36 @@ Schemastests: testSchemas$(EXEEXT)
|
||||
fi ; \
|
||||
done; done)
|
||||
|
||||
Relaxtests: testRelax$(EXEEXT)
|
||||
@(echo > .memdump)
|
||||
@echo "##"
|
||||
@echo "## Relax-NG regression tests"
|
||||
@echo "##"
|
||||
-@(for i in $(srcdir)/test/relaxng/*.rng ; do \
|
||||
name=`basename $$i | sed 's+\.rng++'`; \
|
||||
for j in $(srcdir)/test/relaxng/"$$name"_*.xml ; do \
|
||||
if [ -f $$j ] ; then \
|
||||
xno=`basename $$j | sed 's+.*_\(.*\).xml+\1+'`; \
|
||||
if [ ! -f $(srcdir)/result/relaxng/"$$name"_"$$xno" ]; \
|
||||
then \
|
||||
echo New test file "$$name"_"$$xno" ; \
|
||||
$(CHECKER) $(top_builddir)/testRelax $$i $$j \
|
||||
> $(srcdir)/result/relaxng/"$$name"_"$$xno" \
|
||||
2> $(srcdir)/result/relaxng/"$$name"_"$$xno".err; \
|
||||
else \
|
||||
echo Testing "$$name"_"$$xno" ; \
|
||||
$(CHECKER) $(top_builddir)/testRelax $$i $$j \
|
||||
> res.$$name 2> err.$$name;\
|
||||
grep "MORY ALLO" .memdump | grep -v "MEMORY ALLOCATED : 0";\
|
||||
diff $(srcdir)/result/relaxng/"$$name"_"$$xno" \
|
||||
res.$$name;\
|
||||
diff $(srcdir)/result/relaxng/"$$name"_"$$xno".err \
|
||||
err.$$name;\
|
||||
grep Unimplemented err.$$name; \
|
||||
rm res.$$name err.$$name ; \
|
||||
fi ; fi ; \
|
||||
done; done)
|
||||
|
||||
dist-hook: libxml.spec
|
||||
-cp libxml.spec $(distdir)
|
||||
(cd $(srcdir) ; tar -cf - --exclude CVS win32 macos vms test result SAXresult ) | (cd $(distdir); tar xf -)
|
||||
|
@ -581,9 +581,9 @@ AC_SUBST(WITH_ICONV)
|
||||
|
||||
AC_ARG_WITH(schemas, [ --with-schemas Add experimental Schemas support (off)])
|
||||
if test "$with_schemas" = "yes" ; then
|
||||
echo Enabling Schemas support
|
||||
echo "Enabling Schemas/Relax-NG support"
|
||||
WITH_SCHEMAS=1
|
||||
TEST_SCHEMAS="Schemastests"
|
||||
TEST_SCHEMAS="Schemastests Relaxtests"
|
||||
with_regexps=yes
|
||||
else
|
||||
WITH_SCHEMAS=0
|
||||
|
62
include/libxml/relaxng.h
Normal file
62
include/libxml/relaxng.h
Normal file
@ -0,0 +1,62 @@
|
||||
/*
|
||||
* relaxng.h: header for the implementation of the Relax-NG validation
|
||||
*
|
||||
* See Copyright for the status of this software.
|
||||
*
|
||||
* daniel@veillard.com
|
||||
*/
|
||||
|
||||
#ifndef __XML_RELAX_NG__
|
||||
#define __XML_RELAX_NG__
|
||||
|
||||
#include <libxml/hash.h>
|
||||
|
||||
typedef struct _xmlRelaxNG xmlRelaxNG;
|
||||
typedef xmlRelaxNG *xmlRelaxNGPtr;
|
||||
|
||||
|
||||
/**
|
||||
* A schemas validation context
|
||||
*/
|
||||
typedef void (*xmlRelaxNGValidityErrorFunc) (void *ctx, const char *msg, ...);
|
||||
typedef void (*xmlRelaxNGValidityWarningFunc) (void *ctx, const char *msg, ...);
|
||||
|
||||
typedef struct _xmlRelaxNGParserCtxt xmlRelaxNGParserCtxt;
|
||||
typedef xmlRelaxNGParserCtxt *xmlRelaxNGParserCtxtPtr;
|
||||
|
||||
typedef struct _xmlRelaxNGValidCtxt xmlRelaxNGValidCtxt;
|
||||
typedef xmlRelaxNGValidCtxt *xmlRelaxNGValidCtxtPtr;
|
||||
|
||||
/*
|
||||
* Interfaces for parsing.
|
||||
*/
|
||||
xmlRelaxNGParserCtxtPtr xmlRelaxNGNewParserCtxt (const char *URL);
|
||||
xmlRelaxNGParserCtxtPtr xmlRelaxNGNewMemParserCtxt(const char *buffer,
|
||||
int size);
|
||||
void xmlRelaxNGFreeParserCtxt (xmlRelaxNGParserCtxtPtr ctxt);
|
||||
void xmlRelaxNGSetParserErrors(xmlRelaxNGParserCtxtPtr ctxt,
|
||||
xmlRelaxNGValidityErrorFunc err,
|
||||
xmlRelaxNGValidityWarningFunc warn,
|
||||
void *ctx);
|
||||
xmlRelaxNGPtr xmlRelaxNGParse (xmlRelaxNGParserCtxtPtr ctxt);
|
||||
void xmlRelaxNGFree (xmlRelaxNGPtr schema);
|
||||
void xmlRelaxNGDump (FILE *output,
|
||||
xmlRelaxNGPtr schema);
|
||||
/*
|
||||
* Interfaces for validating
|
||||
*/
|
||||
void xmlRelaxNGSetValidErrors(xmlRelaxNGValidCtxtPtr ctxt,
|
||||
xmlRelaxNGValidityErrorFunc err,
|
||||
xmlRelaxNGValidityWarningFunc warn,
|
||||
void *ctx);
|
||||
xmlRelaxNGValidCtxtPtr xmlRelaxNGNewValidCtxt (xmlRelaxNGPtr schema);
|
||||
void xmlRelaxNGFreeValidCtxt (xmlRelaxNGValidCtxtPtr ctxt);
|
||||
int xmlRelaxNGValidateDoc (xmlRelaxNGValidCtxtPtr ctxt,
|
||||
xmlDocPtr instance);
|
||||
int xmlRelaxNGValidateStream(xmlRelaxNGValidCtxtPtr ctxt,
|
||||
xmlParserInputBufferPtr input,
|
||||
xmlCharEncoding enc,
|
||||
xmlSAXHandlerPtr sax,
|
||||
void *user_data);
|
||||
void xmlRelaxNGCleanupTypes (void);
|
||||
#endif /* __XML_RELAX_NG__ */
|
1
result/relaxng/spec1_1
Normal file
1
result/relaxng/spec1_1
Normal file
@ -0,0 +1 @@
|
||||
./test/relaxng/spec1_1.xml validates
|
5
result/relaxng/spec1_1.err
Normal file
5
result/relaxng/spec1_1.err
Normal file
@ -0,0 +1,5 @@
|
||||
xmlRelaxNGValidateDefinition(): validated empty
|
||||
xmlRelaxNGValidateDefinition(): validated bar1 : 0
|
||||
xmlRelaxNGValidateDefinition(): validated empty
|
||||
xmlRelaxNGValidateDefinition(): validated bar2 : 0
|
||||
xmlRelaxNGValidateDefinition(): validated foo : 0
|
1
result/relaxng/tutor1_1_1
Normal file
1
result/relaxng/tutor1_1_1
Normal file
@ -0,0 +1 @@
|
||||
./test/relaxng/tutor1_1_1.xml validates
|
7
result/relaxng/tutor1_1_1.err
Normal file
7
result/relaxng/tutor1_1_1.err
Normal file
@ -0,0 +1,7 @@
|
||||
xmlRelaxNGValidateDefinition(): validated name : 0
|
||||
xmlRelaxNGValidateDefinition(): validated email : 0
|
||||
xmlRelaxNGValidateDefinition(): validated card : 0
|
||||
xmlRelaxNGValidateDefinition(): validated name : 0
|
||||
xmlRelaxNGValidateDefinition(): validated email : 0
|
||||
xmlRelaxNGValidateDefinition(): validated card : 0
|
||||
xmlRelaxNGValidateDefinition(): validated addressBook : 0
|
1
result/relaxng/tutor1_2_1
Normal file
1
result/relaxng/tutor1_2_1
Normal file
@ -0,0 +1 @@
|
||||
./test/relaxng/tutor1_2_1.xml validates
|
7
result/relaxng/tutor1_2_1.err
Normal file
7
result/relaxng/tutor1_2_1.err
Normal file
@ -0,0 +1,7 @@
|
||||
xmlRelaxNGValidateDefinition(): validated name : 0
|
||||
xmlRelaxNGValidateDefinition(): validated email : 0
|
||||
xmlRelaxNGValidateDefinition(): validated card : 0
|
||||
xmlRelaxNGValidateDefinition(): validated name : 0
|
||||
xmlRelaxNGValidateDefinition(): validated email : 0
|
||||
xmlRelaxNGValidateDefinition(): validated card : 0
|
||||
xmlRelaxNGValidateDefinition(): validated addressBook : 0
|
1
result/relaxng/tutor1_3_1
Normal file
1
result/relaxng/tutor1_3_1
Normal file
@ -0,0 +1 @@
|
||||
./test/relaxng/tutor1_3_1.xml validates
|
7
result/relaxng/tutor1_3_1.err
Normal file
7
result/relaxng/tutor1_3_1.err
Normal file
@ -0,0 +1,7 @@
|
||||
xmlRelaxNGValidateDefinition(): validated name : 0
|
||||
xmlRelaxNGValidateDefinition(): validated email : 0
|
||||
xmlRelaxNGValidateDefinition(): validated card : 0
|
||||
xmlRelaxNGValidateDefinition(): validated name : 0
|
||||
xmlRelaxNGValidateDefinition(): validated email : 0
|
||||
xmlRelaxNGValidateDefinition(): validated card : 0
|
||||
xmlRelaxNGValidateDefinition(): validated addressBook : 0
|
1
result/relaxng/tutor1_4_1
Normal file
1
result/relaxng/tutor1_4_1
Normal file
@ -0,0 +1 @@
|
||||
./test/relaxng/tutor1_4_1.xml validates
|
7
result/relaxng/tutor1_4_1.err
Normal file
7
result/relaxng/tutor1_4_1.err
Normal file
@ -0,0 +1,7 @@
|
||||
xmlRelaxNGValidateDefinition(): validated name : 0
|
||||
xmlRelaxNGValidateDefinition(): validated email : 0
|
||||
xmlRelaxNGValidateDefinition(): validated card : 0
|
||||
xmlRelaxNGValidateDefinition(): validated name : 0
|
||||
xmlRelaxNGValidateDefinition(): validated email : 0
|
||||
xmlRelaxNGValidateDefinition(): validated card : 0
|
||||
xmlRelaxNGValidateDefinition(): validated addressBook : 0
|
1
result/relaxng/tutor2_1_1
Normal file
1
result/relaxng/tutor2_1_1
Normal file
@ -0,0 +1 @@
|
||||
./test/relaxng/tutor2_1_1.xml validates
|
8
result/relaxng/tutor2_1_1.err
Normal file
8
result/relaxng/tutor2_1_1.err
Normal file
@ -0,0 +1,8 @@
|
||||
xmlRelaxNGValidateDefinition(): validated givenName : 0
|
||||
xmlRelaxNGValidateDefinition(): validated familyName : 0
|
||||
xmlRelaxNGValidateDefinition(): validated email : 0
|
||||
xmlRelaxNGValidateDefinition(): validated card : 0
|
||||
xmlRelaxNGValidateDefinition(): validated name : 0
|
||||
xmlRelaxNGValidateDefinition(): validated email : 0
|
||||
xmlRelaxNGValidateDefinition(): validated card : 0
|
||||
xmlRelaxNGValidateDefinition(): validated addressBook : 0
|
1
result/relaxng/tutor3_1_1
Normal file
1
result/relaxng/tutor3_1_1
Normal file
@ -0,0 +1 @@
|
||||
./test/relaxng/tutor3_1_1.xml validates
|
4
result/relaxng/tutor3_1_1.err
Normal file
4
result/relaxng/tutor3_1_1.err
Normal file
@ -0,0 +1,4 @@
|
||||
xmlRelaxNGValidateAttribute(email): 0
|
||||
xmlRelaxNGValidateAttribute(name): 0
|
||||
xmlRelaxNGValidateDefinition(): validated card : 0
|
||||
xmlRelaxNGValidateDefinition(): validated addressBook : 0
|
1
result/relaxng/tutor3_1_2
Normal file
1
result/relaxng/tutor3_1_2
Normal file
@ -0,0 +1 @@
|
||||
./test/relaxng/tutor3_1_2.xml validates
|
4
result/relaxng/tutor3_1_2.err
Normal file
4
result/relaxng/tutor3_1_2.err
Normal file
@ -0,0 +1,4 @@
|
||||
xmlRelaxNGValidateAttribute(email): 0
|
||||
xmlRelaxNGValidateAttribute(name): 0
|
||||
xmlRelaxNGValidateDefinition(): validated card : 0
|
||||
xmlRelaxNGValidateDefinition(): validated addressBook : 0
|
3
result/relaxng/tutor3_2_1
Normal file
3
result/relaxng/tutor3_2_1
Normal file
@ -0,0 +1,3 @@
|
||||
Expecting element name, got email
|
||||
Extra content for element card
|
||||
./test/relaxng/tutor3_2_1.xml validation generated an internal error
|
3
result/relaxng/tutor3_2_1.err
Normal file
3
result/relaxng/tutor3_2_1.err
Normal file
@ -0,0 +1,3 @@
|
||||
error detected at relaxng.c:2365
|
||||
error detected at relaxng.c:2413
|
||||
xmlRelaxNGValidateDefinition(): validated card : -1
|
1
result/relaxng/tutor3_3_1
Normal file
1
result/relaxng/tutor3_3_1
Normal file
@ -0,0 +1 @@
|
||||
./test/relaxng/tutor3_3_1.xml validates
|
9
result/relaxng/tutor3_3_1.err
Normal file
9
result/relaxng/tutor3_3_1.err
Normal file
@ -0,0 +1,9 @@
|
||||
xmlRelaxNGValidateAttribute(email): 0
|
||||
xmlRelaxNGValidateAttribute(name): 0
|
||||
xmlRelaxNGValidateAttribute(note): -1
|
||||
xmlRelaxNGValidateDefinition(): validated card : 0
|
||||
xmlRelaxNGValidateAttribute(email): 0
|
||||
xmlRelaxNGValidateAttribute(name): 0
|
||||
xmlRelaxNGValidateAttribute(note): 0
|
||||
xmlRelaxNGValidateDefinition(): validated card : 0
|
||||
xmlRelaxNGValidateDefinition(): validated addressBook : 0
|
1
result/relaxng/tutor3_4_1
Normal file
1
result/relaxng/tutor3_4_1
Normal file
@ -0,0 +1 @@
|
||||
./test/relaxng/tutor3_4_1.xml validates
|
9
result/relaxng/tutor3_4_1.err
Normal file
9
result/relaxng/tutor3_4_1.err
Normal file
@ -0,0 +1,9 @@
|
||||
xmlRelaxNGValidateAttribute(email): 0
|
||||
xmlRelaxNGValidateAttribute(name): 0
|
||||
xmlRelaxNGValidateDefinition(): validated card : 0
|
||||
xmlRelaxNGValidateAttribute(email): 0
|
||||
xmlRelaxNGValidateAttribute(name): -1
|
||||
xmlRelaxNGValidateAttribute(givenName): 0
|
||||
xmlRelaxNGValidateAttribute(familyName): 0
|
||||
xmlRelaxNGValidateDefinition(): validated card : 0
|
||||
xmlRelaxNGValidateDefinition(): validated addressBook : 0
|
1
result/relaxng/tutor3_5_1
Normal file
1
result/relaxng/tutor3_5_1
Normal file
@ -0,0 +1 @@
|
||||
./test/relaxng/tutor3_5_1.xml validates
|
16
result/relaxng/tutor3_5_1.err
Normal file
16
result/relaxng/tutor3_5_1.err
Normal file
@ -0,0 +1,16 @@
|
||||
xmlRelaxNGValidateAttribute(name): 0
|
||||
xmlRelaxNGValidateAttribute(email): 0
|
||||
xmlRelaxNGValidateDefinition(): validated card : 0
|
||||
xmlRelaxNGValidateAttribute(name): 0
|
||||
xmlRelaxNGValidateAttribute(email): 0
|
||||
xmlRelaxNGValidateDefinition(): validated card : 0
|
||||
xmlRelaxNGValidateDefinition(): validated name : 0
|
||||
xmlRelaxNGValidateAttribute(email): 0
|
||||
xmlRelaxNGValidateDefinition(): validated card : 0
|
||||
xmlRelaxNGValidateAttribute(name): 0
|
||||
xmlRelaxNGValidateDefinition(): validated email : 0
|
||||
xmlRelaxNGValidateDefinition(): validated card : 0
|
||||
xmlRelaxNGValidateDefinition(): validated name : 0
|
||||
xmlRelaxNGValidateDefinition(): validated email : 0
|
||||
xmlRelaxNGValidateDefinition(): validated card : 0
|
||||
xmlRelaxNGValidateDefinition(): validated addressBook : 0
|
2
result/relaxng/tutor3_5_2
Normal file
2
result/relaxng/tutor3_5_2
Normal file
@ -0,0 +1,2 @@
|
||||
Extra content for element addressBook
|
||||
./test/relaxng/tutor3_5_2.xml validation generated an internal error
|
5
result/relaxng/tutor3_5_2.err
Normal file
5
result/relaxng/tutor3_5_2.err
Normal file
@ -0,0 +1,5 @@
|
||||
xmlRelaxNGValidateAttribute(name): -1
|
||||
xmlRelaxNGValidateDefinition(): validated email : 0
|
||||
xmlRelaxNGValidateDefinition(): validated card : -1
|
||||
error detected at relaxng.c:2413
|
||||
xmlRelaxNGValidateDefinition(): validated addressBook : -1
|
1
result/relaxng/tutor3_6_1
Normal file
1
result/relaxng/tutor3_6_1
Normal file
@ -0,0 +1 @@
|
||||
./test/relaxng/tutor3_6_1.xml validates
|
3
result/relaxng/tutor3_6_1.err
Normal file
3
result/relaxng/tutor3_6_1.err
Normal file
@ -0,0 +1,3 @@
|
||||
xmlRelaxNGValidateAttribute(email): 0
|
||||
xmlRelaxNGValidateDefinition(): validated card : 0
|
||||
xmlRelaxNGValidateDefinition(): validated addressBook : 0
|
1
result/relaxng/tutor3_7_1
Normal file
1
result/relaxng/tutor3_7_1
Normal file
@ -0,0 +1 @@
|
||||
Relax-NG schema ./test/relaxng/tutor3_7.rng failed to compile
|
1
result/relaxng/tutor3_7_1.err
Normal file
1
result/relaxng/tutor3_7_1.err
Normal file
@ -0,0 +1 @@
|
||||
xmlRelaxNGParseElement: element has no content
|
1
result/relaxng/tutor3_8_1
Normal file
1
result/relaxng/tutor3_8_1
Normal file
@ -0,0 +1 @@
|
||||
./test/relaxng/tutor3_8_1.xml validates
|
9
result/relaxng/tutor3_8_1.err
Normal file
9
result/relaxng/tutor3_8_1.err
Normal file
@ -0,0 +1,9 @@
|
||||
xmlRelaxNGValidateDefinition(): validated name : 0
|
||||
xmlRelaxNGValidateDefinition(): validated email : 0
|
||||
xmlRelaxNGValidateDefinition(): validated empty
|
||||
xmlRelaxNGValidateDefinition(): validated prefersHTML : 0
|
||||
xmlRelaxNGValidateDefinition(): validated card : 0
|
||||
xmlRelaxNGValidateDefinition(): validated name : 0
|
||||
xmlRelaxNGValidateDefinition(): validated email : 0
|
||||
xmlRelaxNGValidateDefinition(): validated card : 0
|
||||
xmlRelaxNGValidateDefinition(): validated addressBook : 0
|
1
result/relaxng/tutor3_9_1
Normal file
1
result/relaxng/tutor3_9_1
Normal file
@ -0,0 +1 @@
|
||||
./test/relaxng/tutor3_9_1.xml validates
|
2
result/relaxng/tutor3_9_1.err
Normal file
2
result/relaxng/tutor3_9_1.err
Normal file
@ -0,0 +1,2 @@
|
||||
xmlRelaxNGValidateAttribute(email): 0
|
||||
xmlRelaxNGValidateDefinition(): validated card : 0
|
1
result/relaxng/tutor4_1_1
Normal file
1
result/relaxng/tutor4_1_1
Normal file
@ -0,0 +1 @@
|
||||
./test/relaxng/tutor4_1_1.xml validates
|
8
result/relaxng/tutor4_1_1.err
Normal file
8
result/relaxng/tutor4_1_1.err
Normal file
@ -0,0 +1,8 @@
|
||||
xmlRelaxNGParseGrammar()
|
||||
xmlRelaxNGValidateDefinition(): validated name : 0
|
||||
xmlRelaxNGValidateDefinition(): validated email : 0
|
||||
xmlRelaxNGValidateDefinition(): validated card : 0
|
||||
xmlRelaxNGValidateDefinition(): validated name : 0
|
||||
xmlRelaxNGValidateDefinition(): validated email : 0
|
||||
xmlRelaxNGValidateDefinition(): validated card : 0
|
||||
xmlRelaxNGValidateDefinition(): validated addressBook : 0
|
1
result/relaxng/tutor4_2_1
Normal file
1
result/relaxng/tutor4_2_1
Normal file
@ -0,0 +1 @@
|
||||
./test/relaxng/tutor4_2_1.xml validates
|
8
result/relaxng/tutor4_2_1.err
Normal file
8
result/relaxng/tutor4_2_1.err
Normal file
@ -0,0 +1,8 @@
|
||||
xmlRelaxNGParseGrammar()
|
||||
xmlRelaxNGValidateDefinition(): validated name : 0
|
||||
xmlRelaxNGValidateDefinition(): validated email : 0
|
||||
xmlRelaxNGValidateDefinition(): validated card : 0
|
||||
xmlRelaxNGValidateDefinition(): validated name : 0
|
||||
xmlRelaxNGValidateDefinition(): validated email : 0
|
||||
xmlRelaxNGValidateDefinition(): validated card : 0
|
||||
xmlRelaxNGValidateDefinition(): validated addressBook : 0
|
14
test/relaxng/spec1.rng
Normal file
14
test/relaxng/spec1.rng
Normal file
@ -0,0 +1,14 @@
|
||||
<?xml version="1.0"?>
|
||||
<element name="foo"
|
||||
xmlns="http://relaxng.org/ns/structure/1.0"
|
||||
xmlns:a="http://relaxng.org/ns/annotation/1.0"
|
||||
xmlns:ex1="http://www.example.com/n1"
|
||||
xmlns:ex2="http://www.example.com/n2">
|
||||
<a:documentation>A foo element.</a:documentation>
|
||||
<element name="ex1:bar1">
|
||||
<empty/>
|
||||
</element>
|
||||
<element name="ex2:bar2">
|
||||
<empty/>
|
||||
</element>
|
||||
</element>
|
3
test/relaxng/spec1_1.xml
Normal file
3
test/relaxng/spec1_1.xml
Normal file
@ -0,0 +1,3 @@
|
||||
<?xml version="1.0"?>
|
||||
<foo><pre1:bar1 xmlns:pre1="http://www.example.com/n1"/><pre2:bar2 xmlns:pre2="http://www.example.com/n2"/></foo>
|
||||
|
12
test/relaxng/tutor1_1.rng
Normal file
12
test/relaxng/tutor1_1.rng
Normal file
@ -0,0 +1,12 @@
|
||||
<element name="addressBook" xmlns="http://relaxng.org/ns/structure/1.0">
|
||||
<zeroOrMore>
|
||||
<element name="card">
|
||||
<element name="name">
|
||||
<text/>
|
||||
</element>
|
||||
<element name="email">
|
||||
<text/>
|
||||
</element>
|
||||
</element>
|
||||
</zeroOrMore>
|
||||
</element>
|
10
test/relaxng/tutor1_1_1.xml
Normal file
10
test/relaxng/tutor1_1_1.xml
Normal file
@ -0,0 +1,10 @@
|
||||
<addressBook>
|
||||
<card>
|
||||
<name>John Smith</name>
|
||||
<email>js@example.com</email>
|
||||
</card>
|
||||
<card>
|
||||
<name>Fred Bloggs</name>
|
||||
<email>fb@example.net</email>
|
||||
</card>
|
||||
</addressBook>
|
12
test/relaxng/tutor1_2.rng
Normal file
12
test/relaxng/tutor1_2.rng
Normal file
@ -0,0 +1,12 @@
|
||||
<element name="addressBook" xmlns="http://relaxng.org/ns/structure/1.0">
|
||||
<oneOrMore>
|
||||
<element name="card">
|
||||
<element name="name">
|
||||
<text/>
|
||||
</element>
|
||||
<element name="email">
|
||||
<text/>
|
||||
</element>
|
||||
</element>
|
||||
</oneOrMore>
|
||||
</element>
|
10
test/relaxng/tutor1_2_1.xml
Normal file
10
test/relaxng/tutor1_2_1.xml
Normal file
@ -0,0 +1,10 @@
|
||||
<addressBook>
|
||||
<card>
|
||||
<name>John Smith</name>
|
||||
<email>js@example.com</email>
|
||||
</card>
|
||||
<card>
|
||||
<name>Fred Bloggs</name>
|
||||
<email>fb@example.net</email>
|
||||
</card>
|
||||
</addressBook>
|
17
test/relaxng/tutor1_3.rng
Normal file
17
test/relaxng/tutor1_3.rng
Normal file
@ -0,0 +1,17 @@
|
||||
<element name="addressBook" xmlns="http://relaxng.org/ns/structure/1.0">
|
||||
<zeroOrMore>
|
||||
<element name="card">
|
||||
<element name="name">
|
||||
<text/>
|
||||
</element>
|
||||
<element name="email">
|
||||
<text/>
|
||||
</element>
|
||||
<optional>
|
||||
<element name="note">
|
||||
<text/>
|
||||
</element>
|
||||
</optional>
|
||||
</element>
|
||||
</zeroOrMore>
|
||||
</element>
|
10
test/relaxng/tutor1_3_1.xml
Normal file
10
test/relaxng/tutor1_3_1.xml
Normal file
@ -0,0 +1,10 @@
|
||||
<addressBook>
|
||||
<card>
|
||||
<name>John Smith</name>
|
||||
<email>js@example.com</email>
|
||||
</card>
|
||||
<card>
|
||||
<name>Fred Bloggs</name>
|
||||
<email>fb@example.net</email>
|
||||
</card>
|
||||
</addressBook>
|
12
test/relaxng/tutor1_4.rng
Normal file
12
test/relaxng/tutor1_4.rng
Normal file
@ -0,0 +1,12 @@
|
||||
<rng:element name="addressBook" xmlns:rng="http://relaxng.org/ns/structure/1.0">
|
||||
<rng:zeroOrMore>
|
||||
<rng:element name="card">
|
||||
<rng:element name="name">
|
||||
<rng:text/>
|
||||
</rng:element>
|
||||
<rng:element name="email">
|
||||
<rng:text/>
|
||||
</rng:element>
|
||||
</rng:element>
|
||||
</rng:zeroOrMore>
|
||||
</rng:element>
|
10
test/relaxng/tutor1_4_1.xml
Normal file
10
test/relaxng/tutor1_4_1.xml
Normal file
@ -0,0 +1,10 @@
|
||||
<addressBook>
|
||||
<card>
|
||||
<name>John Smith</name>
|
||||
<email>js@example.com</email>
|
||||
</card>
|
||||
<card>
|
||||
<name>Fred Bloggs</name>
|
||||
<email>fb@example.net</email>
|
||||
</card>
|
||||
</addressBook>
|
27
test/relaxng/tutor2_1.rng
Normal file
27
test/relaxng/tutor2_1.rng
Normal file
@ -0,0 +1,27 @@
|
||||
<element name="addressBook" xmlns="http://relaxng.org/ns/structure/1.0">
|
||||
<zeroOrMore>
|
||||
<element name="card">
|
||||
<choice>
|
||||
<element name="name">
|
||||
<text/>
|
||||
</element>
|
||||
<group>
|
||||
<element name="givenName">
|
||||
<text/>
|
||||
</element>
|
||||
<element name="familyName">
|
||||
<text/>
|
||||
</element>
|
||||
</group>
|
||||
</choice>
|
||||
<element name="email">
|
||||
<text/>
|
||||
</element>
|
||||
<optional>
|
||||
<element name="note">
|
||||
<text/>
|
||||
</element>
|
||||
</optional>
|
||||
</element>
|
||||
</zeroOrMore>
|
||||
</element>
|
11
test/relaxng/tutor2_1_1.xml
Normal file
11
test/relaxng/tutor2_1_1.xml
Normal file
@ -0,0 +1,11 @@
|
||||
<addressBook>
|
||||
<card>
|
||||
<givenName>John</givenName>
|
||||
<familyName>Smith</familyName>
|
||||
<email>js@example.com</email>
|
||||
</card>
|
||||
<card>
|
||||
<name>Fred Bloggs</name>
|
||||
<email>fb@example.net</email>
|
||||
</card>
|
||||
</addressBook>
|
12
test/relaxng/tutor3_1.rng
Normal file
12
test/relaxng/tutor3_1.rng
Normal file
@ -0,0 +1,12 @@
|
||||
<element name="addressBook" xmlns="http://relaxng.org/ns/structure/1.0">
|
||||
<zeroOrMore>
|
||||
<element name="card">
|
||||
<attribute name="name">
|
||||
<text/>
|
||||
</attribute>
|
||||
<attribute name="email">
|
||||
<text/>
|
||||
</attribute>
|
||||
</element>
|
||||
</zeroOrMore>
|
||||
</element>
|
3
test/relaxng/tutor3_1_1.xml
Normal file
3
test/relaxng/tutor3_1_1.xml
Normal file
@ -0,0 +1,3 @@
|
||||
<addressBook>
|
||||
<card name="John Smith" email="js@example.com"/>
|
||||
</addressBook>
|
3
test/relaxng/tutor3_1_2.xml
Normal file
3
test/relaxng/tutor3_1_2.xml
Normal file
@ -0,0 +1,3 @@
|
||||
<addressBook>
|
||||
<card email="js@example.com" name="John Smith"/>
|
||||
</addressBook>
|
8
test/relaxng/tutor3_2.rng
Normal file
8
test/relaxng/tutor3_2.rng
Normal file
@ -0,0 +1,8 @@
|
||||
<element name="card" xmlns="http://relaxng.org/ns/structure/1.0">
|
||||
<element name="name">
|
||||
<text/>
|
||||
</element>
|
||||
<element name="email">
|
||||
<text/>
|
||||
</element>
|
||||
</element>
|
1
test/relaxng/tutor3_2_1.xml
Normal file
1
test/relaxng/tutor3_2_1.xml
Normal file
@ -0,0 +1 @@
|
||||
<card><email>js@example.com</email><name>John Smith</name></card>
|
17
test/relaxng/tutor3_3.rng
Normal file
17
test/relaxng/tutor3_3.rng
Normal file
@ -0,0 +1,17 @@
|
||||
<element name="addressBook" xmlns="http://relaxng.org/ns/structure/1.0">
|
||||
<zeroOrMore>
|
||||
<element name="card">
|
||||
<attribute name="name">
|
||||
<text/>
|
||||
</attribute>
|
||||
<attribute name="email">
|
||||
<text/>
|
||||
</attribute>
|
||||
<optional>
|
||||
<attribute name="note">
|
||||
<text/>
|
||||
</attribute>
|
||||
</optional>
|
||||
</element>
|
||||
</zeroOrMore>
|
||||
</element>
|
4
test/relaxng/tutor3_3_1.xml
Normal file
4
test/relaxng/tutor3_3_1.xml
Normal file
@ -0,0 +1,4 @@
|
||||
<addressBook>
|
||||
<card name="foo" email="bar"/>
|
||||
<card name="foo2" note="second" email="bar2"/>
|
||||
</addressBook>
|
22
test/relaxng/tutor3_4.rng
Normal file
22
test/relaxng/tutor3_4.rng
Normal file
@ -0,0 +1,22 @@
|
||||
<element name="addressBook" xmlns="http://relaxng.org/ns/structure/1.0">
|
||||
<zeroOrMore>
|
||||
<element name="card">
|
||||
<choice>
|
||||
<attribute name="name">
|
||||
<text/>
|
||||
</attribute>
|
||||
<group>
|
||||
<attribute name="givenName">
|
||||
<text/>
|
||||
</attribute>
|
||||
<attribute name="familyName">
|
||||
<text/>
|
||||
</attribute>
|
||||
</group>
|
||||
</choice>
|
||||
<attribute name="email">
|
||||
<text/>
|
||||
</attribute>
|
||||
</element>
|
||||
</zeroOrMore>
|
||||
</element>
|
4
test/relaxng/tutor3_4_1.xml
Normal file
4
test/relaxng/tutor3_4_1.xml
Normal file
@ -0,0 +1,4 @@
|
||||
<addressBook>
|
||||
<card name="foo" email="bar"/>
|
||||
<card givenName="d" familyName="v" email="bar"/>
|
||||
</addressBook>
|
22
test/relaxng/tutor3_5.rng
Normal file
22
test/relaxng/tutor3_5.rng
Normal file
@ -0,0 +1,22 @@
|
||||
<element name="addressBook" xmlns="http://relaxng.org/ns/structure/1.0">
|
||||
<zeroOrMore>
|
||||
<element name="card">
|
||||
<choice>
|
||||
<element name="name">
|
||||
<text/>
|
||||
</element>
|
||||
<attribute name="name">
|
||||
<text/>
|
||||
</attribute>
|
||||
</choice>
|
||||
<choice>
|
||||
<element name="email">
|
||||
<text/>
|
||||
</element>
|
||||
<attribute name="email">
|
||||
<text/>
|
||||
</attribute>
|
||||
</choice>
|
||||
</element>
|
||||
</zeroOrMore>
|
||||
</element>
|
7
test/relaxng/tutor3_5_1.xml
Normal file
7
test/relaxng/tutor3_5_1.xml
Normal file
@ -0,0 +1,7 @@
|
||||
<addressBook>
|
||||
<card name="John Smith" email="js@example.com"/>
|
||||
<card email="js@example.com" name="John Smith"/>
|
||||
<card email="js@example.com"><name>John Smith</name></card>
|
||||
<card name="John Smith"><email>js@example.com</email></card>
|
||||
<card><name>John Smith</name><email>js@example.com</email></card>
|
||||
</addressBook>
|
3
test/relaxng/tutor3_5_2.xml
Normal file
3
test/relaxng/tutor3_5_2.xml
Normal file
@ -0,0 +1,3 @@
|
||||
<addressBook>
|
||||
<card><email>js@example.com</email><name>John Smith</name></card>
|
||||
</addressBook>
|
8
test/relaxng/tutor3_6.rng
Normal file
8
test/relaxng/tutor3_6.rng
Normal file
@ -0,0 +1,8 @@
|
||||
<element name="addressBook" xmlns="http://relaxng.org/ns/structure/1.0">
|
||||
<zeroOrMore>
|
||||
<element name="card">
|
||||
<attribute name="email"/>
|
||||
</element>
|
||||
</zeroOrMore>
|
||||
</element>
|
||||
|
3
test/relaxng/tutor3_6_1.xml
Normal file
3
test/relaxng/tutor3_6_1.xml
Normal file
@ -0,0 +1,3 @@
|
||||
<addressBook>
|
||||
<card email="js@example.com"/>
|
||||
</addressBook>
|
2
test/relaxng/tutor3_7.rng
Normal file
2
test/relaxng/tutor3_7.rng
Normal file
@ -0,0 +1,2 @@
|
||||
<element name="x" xmlns="http://relaxng.org/ns/structure/1.0"/>
|
||||
|
1
test/relaxng/tutor3_7_1.xml
Normal file
1
test/relaxng/tutor3_7_1.xml
Normal file
@ -0,0 +1 @@
|
||||
<x/>
|
17
test/relaxng/tutor3_8.rng
Normal file
17
test/relaxng/tutor3_8.rng
Normal file
@ -0,0 +1,17 @@
|
||||
<element name="addressBook" xmlns="http://relaxng.org/ns/structure/1.0">
|
||||
<zeroOrMore>
|
||||
<element name="card">
|
||||
<element name="name">
|
||||
<text/>
|
||||
</element>
|
||||
<element name="email">
|
||||
<text/>
|
||||
</element>
|
||||
<optional>
|
||||
<element name="prefersHTML">
|
||||
<empty/>
|
||||
</element>
|
||||
</optional>
|
||||
</element>
|
||||
</zeroOrMore>
|
||||
</element>
|
4
test/relaxng/tutor3_8_1.xml
Normal file
4
test/relaxng/tutor3_8_1.xml
Normal file
@ -0,0 +1,4 @@
|
||||
<addressBook>
|
||||
<card><name>foo</name><email>bar</email><prefersHTML/></card>
|
||||
<card><name>foo</name><email>bar</email></card>
|
||||
</addressBook>
|
5
test/relaxng/tutor3_9.rng
Normal file
5
test/relaxng/tutor3_9.rng
Normal file
@ -0,0 +1,5 @@
|
||||
<element name="card" xmlns="http://relaxng.org/ns/structure/1.0">
|
||||
<attribute name="email">
|
||||
<text/>
|
||||
</attribute>
|
||||
</element>
|
1
test/relaxng/tutor3_9_1.xml
Normal file
1
test/relaxng/tutor3_9_1.xml
Normal file
@ -0,0 +1 @@
|
||||
<card email="foo"/>
|
22
test/relaxng/tutor4_1.rng
Normal file
22
test/relaxng/tutor4_1.rng
Normal file
@ -0,0 +1,22 @@
|
||||
<grammar xmlns="http://relaxng.org/ns/structure/1.0">
|
||||
|
||||
<start>
|
||||
<element name="addressBook">
|
||||
<zeroOrMore>
|
||||
<element name="card">
|
||||
<ref name="cardContent"/>
|
||||
</element>
|
||||
</zeroOrMore>
|
||||
</element>
|
||||
</start>
|
||||
|
||||
<define name="cardContent">
|
||||
<element name="name">
|
||||
<text/>
|
||||
</element>
|
||||
<element name="email">
|
||||
<text/>
|
||||
</element>
|
||||
</define>
|
||||
|
||||
</grammar>
|
4
test/relaxng/tutor4_1_1.xml
Normal file
4
test/relaxng/tutor4_1_1.xml
Normal file
@ -0,0 +1,4 @@
|
||||
<addressBook>
|
||||
<card><name>John Smith</name><email>js@example.com"</email></card>
|
||||
<card><name>John Smith2</name><email>js2@example.com"</email></card>
|
||||
</addressBook>
|
34
test/relaxng/tutor4_2.rng
Normal file
34
test/relaxng/tutor4_2.rng
Normal file
@ -0,0 +1,34 @@
|
||||
<grammar xmlns="http://relaxng.org/ns/structure/1.0">
|
||||
|
||||
<start>
|
||||
<ref name="AddressBook"/>
|
||||
</start>
|
||||
|
||||
<define name="AddressBook">
|
||||
<element name="addressBook">
|
||||
<zeroOrMore>
|
||||
<ref name="Card"/>
|
||||
</zeroOrMore>
|
||||
</element>
|
||||
</define>
|
||||
|
||||
<define name="Card">
|
||||
<element name="card">
|
||||
<ref name="Name"/>
|
||||
<ref name="Email"/>
|
||||
</element>
|
||||
</define>
|
||||
|
||||
<define name="Name">
|
||||
<element name="name">
|
||||
<text/>
|
||||
</element>
|
||||
</define>
|
||||
|
||||
<define name="Email">
|
||||
<element name="email">
|
||||
<text/>
|
||||
</element>
|
||||
</define>
|
||||
|
||||
</grammar>
|
4
test/relaxng/tutor4_2_1.xml
Normal file
4
test/relaxng/tutor4_2_1.xml
Normal file
@ -0,0 +1,4 @@
|
||||
<addressBook>
|
||||
<card><name>John Smith</name><email>js@example.com"</email></card>
|
||||
<card><name>John Smith2</name><email>js2@example.com"</email></card>
|
||||
</addressBook>
|
19
test/relaxng/tutor4_3.rng
Normal file
19
test/relaxng/tutor4_3.rng
Normal file
@ -0,0 +1,19 @@
|
||||
<define name="inline" xmlns="http://relaxng.org/ns/structure/1.0">
|
||||
<zeroOrMore>
|
||||
<choice>
|
||||
<text/>
|
||||
<element name="bold">
|
||||
<ref name="inline"/>
|
||||
</element>
|
||||
<element name="italic">
|
||||
<ref name="inline"/>
|
||||
</element>
|
||||
<element name="span">
|
||||
<optional>
|
||||
<attribute name="style"/>
|
||||
</optional>
|
||||
<ref name="inline"/>
|
||||
</element>
|
||||
</choice>
|
||||
</zeroOrMore>
|
||||
</define>
|
20
test/relaxng/tutor4_4.rng
Normal file
20
test/relaxng/tutor4_4.rng
Normal file
@ -0,0 +1,20 @@
|
||||
<define name="inline">
|
||||
<choice>
|
||||
<text/>
|
||||
<element name="bold">
|
||||
<ref name="inline"/>
|
||||
</element>
|
||||
<element name="italic">
|
||||
<ref name="inline"/>
|
||||
</element>
|
||||
<element name="span">
|
||||
<optional>
|
||||
<attribute name="style"/>
|
||||
</optional>
|
||||
<ref name="inline"/>
|
||||
</element>
|
||||
</choice>
|
||||
<optional>
|
||||
<ref name="inline"/>
|
||||
</optional>
|
||||
</define>
|
Loading…
x
Reference in New Issue
Block a user