[Mono-list] Problems using RelaxngValidatingReader (c#)
Jesper Lund Stocholm
Jesper.LundStocholm at ciber.dk
Thu Oct 23 22:14:58 UTC 2014
Hi Atsushi,
Thank you for your reply.
I finally got it to work.
Now, I have tried to do make an RNC-equivalent to the RNG-schema I made. The RNC-schemas is this:
element library
{
element book
{
attribute id {xsd:ID},
attribute available {xsd:boolean},
element isbn {token - "12345"},
element title {attribute xml:lang {xsd:language}, xsd:token},
element year {xsd:integer}
}+
}
As far as I can see, it /should/ validate XML like this:
<?xml version="1.0" encoding="utf-8"?>
<library>
<book id="b0836217462" available="true">
<isbn>37474739292</isbn>
<title xml:lang="en">Being a Dog Is a Full-Time Job</title>
<year>2014</year>
</book>
<book id="b0836wew217462" available="false">
<isbn>1234</isbn>
<title xml:lang="en">Relax NG - a simpler schema language for XML</title>
<year>2020</year>
</book>
</library>
But I cannot get past an exception saying that
Commons.Xml.Relaxng.RelaxngException: Invalid start tag closing found. LocalName
= library, NS = .file:///C:/projects/monodemo/MonoDemo/bin/Debug/bookstore.xml
line 2, column 2
Is the answer to this as simple as the reply you gave me earlier ... and am I missing something completely obvious?
Project available here: https://bitbucket.org/jlundstocholm/monodemo/src/1d1b2e1eeeb50f87aa3f6a3bfa6a6366d96f4e74?at=master
:o)
Jesper Lund Stocholm
-----Original Message-----
From: Atsushi Eno [mailto:atsushieno at veritas-vos-liberabit.com]
Sent: 23. oktober 2014 17:14
To: Jesper Lund Stocholm; mono-list at lists.ximian.com
Subject: Re: [Mono-list] Problems using RelaxngValidatingReader (c#)
Hello,
An <element> has to contain one ore more pattern, https://www.oasis-open.org/committees/relax-ng/spec.html#full-syntax
which is missing in your <element name='book'></element>.
Specify <empty/> there.
Atsushi Eno
On 2014年10月21日 15:15, Jesper Lund Stocholm wrote:
> I am trying to use the RelaxngValidatingReader (located at mcs/class/Commons.Xml.Relaxng/ ) but I am getting errors that I cannot understand.
>
> (if this is the wrong list, please let me know the correct one - I
> couldn't find a better match)
>
> I have made a simple C# console application in Visual Studio - I am
> using sample data from the Relax NG book by Eric van der Vlist)
>
> My code is this:
>
> var rngPattern = Encoding.UTF8.GetBytes(
>
> @"
> <element name='library' xmlns='http://relaxng.org/ns/structure/1.0'>
> <oneOrMore>
> <element name='book'></element>
> </oneOrMore>
> </element>"
> );
>
> var stream = new MemoryStream(rngPattern);
>
> stream.Position = 0;
> var xmlReader = XmlReader.Create(stream); var pattern0 =
> RelaxngPattern.Read(xmlReader);
>
> My Xml is this:
>
> <?xml version="1.0" encoding="utf-8"?> <library
> xmlns="http://tempuri.org">
> <book id="b0836217462" available="true">
> <isbn>37474739292</isbn>
> <title xml:lang="en">Being a Dog Is a Full-Time Job</title>
> <author id="CMS"></author>
> <character id="PP"></character>
> <character id="Snoopy"></character>
> <character id="Schroeder"></character>
> <character id="Lucy"></character>
> </book>
> </library>
>
> But whenever I get to the last line in my code, an exception is thrown :
>
> Commons.Xml.Relaxng.RelaxngException: RELAX NG pattern did not appear.
>
>
> Can you help me closer to the cause of this? Is it a namespace issue?
>
>
>
>
> Med venlig hilsen / Best regards
>
> Jesper Lund Stocholm
> mailto:jesper.stocholm at ciber.com
> www.ciber.com
>
>
>
>
>
>
>
> _______________________________________________
> Mono-list maillist - Mono-list at lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-list
>
>
>
More information about the Mono-list
mailing list