-
Notifications
You must be signed in to change notification settings - Fork 21
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support xml-model processing instruction #21
Comments
Actually, I'm holding off on the commit for now as it needs to sit on top of my existing pull request. Ping me if you want me to add them in or wait until you've dealt with my existing pull request. |
…sing instruction)
Just a word to say I'm really interrested in this feature ! I actually need to validate with the "unusual suspects" : Relax NG, NVDL and schematron (which is a really interresting triple for xml projects). By the way I did not manage to make the Relax NG validation work (installing the 1.0.2-SNAPSHOT localy I still get an error : No SchemaFactory that implements the schema language specified by: http://componentcorp.com/xml/ns/xml-model/1.0 could be loaded) but I hope I find how to do it. Do you mean to release the 1.0.2 on maven central soon ? Anyway thanks for this work. I'm rather an XML developer, but I'll be happy to help. Matthieu |
On Sat, Oct 28, 2017 at 10:51 PM, Matthieu Ricaud-Dussarget < ***@***.***> wrote:
By the way I did not manage to make the Relax NG validation work
(installing the 1.0.2-SNAPSHOT localy I still get an error : No
SchemaFactory that implements the schema language specified by:
http://componentcorp.com/xml/ns/xml-model/1.0 could be loaded) but I hope
I find how to do it.
Sounds like a missing dependency to me.
Jochen
|
Hi Matthieu,
I really should put an example in the documentation. :-)
The long and short is that the plugin needed some code changes to support the JAXP compliant xml-model validator I created, but it does not mandate any particular implementation, so it has no built in dependency. See https://github.com/rosslamont/jxvc <https://github.com/rosslamont/jxvc> and https://github.com/rosslamont/jxvc/wiki/Usage-examples <https://github.com/rosslamont/jxvc/wiki/Usage-examples> for examples of the dependencies you might need. Sadly, I don’t have, nor can I find any NVDL or schematron implementations, but in theory ixvc should support any third party validator. I’m hoping to work on those validators later (after I have an external DTD validator going), but they are pretty non-trivial.
You’ll probably need to add the dependencies directly to the plugin declaration in your pom, but it should probably work as a test dependency too.
Cheers
Ross
… On 29 Oct 2017, at 7:51 am, Matthieu Ricaud-Dussarget ***@***.***> wrote:
Just a word to say I'm really interrested in this feature ! I actually need to validate with the "unusual suspects" : Relax NG, NVDL and schematron (which is a really interresting triple for xml projects).
By the way I did not manage to make the Relax NG validation work (installing the 1.0.2-SNAPSHOT localy I still get an error : No SchemaFactory that implements the schema language specified by: http://componentcorp.com/xml/ns/xml-model/1.0 <http://componentcorp.com/xml/ns/xml-model/1.0> could be loaded) but I hope I find how to do it.
Do you mean to release the 1.0.2 on maven central soon ?
Anyway thanks for this work. I'm rather an XML developer, but I'll be happy to help.
Matthieu
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub <#21 (comment)>, or mute the thread <https://github.com/notifications/unsubscribe-auth/AXKC2NNCDCC3CGiOX5nIoljbWTn5lXDWks5sw5PGgaJpZM4Oy6y_>.
|
Hi Jochen, Hi Ross, Thanks a lot for your answers and sorry for my late one. I finaly find time to test this Relax validation. As attached file xml-validation-test.zip, please get my unit test. When I run "mvn test":
Did I missed something in dependencies ? should I put them on the project instead of plugin dependency ? I tried to add jing as dependency but I get the same results. Any tips welcome :) Cheers PS : by the way I was wondering if the PI's schematypens uri is important, I let the same as yours but in my real project I use this one (from oXygen IDE) :
|
Hi Matthieu,
I raised bug 34 <#34> on this. There are also a few problems in your project, but I’ll respond to them once the fix has been merged in.
Thanks for the ixvc pointer - corrected.
Best Regards
Ross
… On 13 Nov 2017, at 7:44 pm, Matthieu Ricaud-Dussarget ***@***.***> wrote:
Hi Ross,
Thanks a lot for your answer and sorry for my late one. I finaly find time to test this Relax validation.
I add the dependencies to the plugin (actualy there seems to be a typo in your usage examples page : the artifactId is "jxvc" and not "ixvc" ?)
As attached file xml-validation-test.zip <https://github.com/mojohaus/xml-maven-plugin/files/1466078/xml-validation-test.zip>, please get my unit test.
When I run "mvn test":
The xsd validation works fine : I get a validation error and the test fails, which is what expected.
I don't get any errors from the rnc test at this points.
When I comment the xsd test to only let the rnc test, I then get :
an error when <validating> is set to true : "Cannot find the declaration of element 'counter'"
no errors (build success) when is not setted : It should actualy fails because I let an error in the xml file (content is not allowed).
Did I missed something in dependencies ? should I put them on the project instead of plugin dependency ? I tried to add jing as dependency but I get the same results.
Any tips welcome :)
Cheers
Matthieu
PS : by the way I was wondering if the PI's schematypens uri is important, I let the same as yours but in my real project I use this one (from oXygen IDE) :
<?xml-model href="../main/grammars/test.rnc" type="application/xml" schematypens="http://relaxng.org/ns/structure/1.0"?>
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub <#21 (comment)>, or mute the thread <https://github.com/notifications/unsubscribe-auth/AXKC2HADQKbN59HjT5qiQaIJczOxqXU_ks5s2AFigaJpZM4Oy6y_>.
|
Hi Ross, Thanks for the bug raised. I tried with an absolute URI in the PI but I get the same result. Cheers |
Hi Matthieu,
I’ve finally gotten that bug sorted and there is now a release out there with the fix in (1.0.2-beta-1). No example code yet but there is a bug raised for that.
Cheers
Ross
… On 25 Nov 2017, at 9:22 pm, Matthieu Ricaud-Dussarget ***@***.***> wrote:
Hi Ross,
Thanks for the bug raised. I tried with an absolute URI in the PI but I get the same result.
But maybe there's something else as you said.
Let's talk about this later after the bug is fixed.
Cheers
Matthieu
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub <#21 (comment)>, or mute the thread <https://github.com/notifications/unsubscribe-auth/AXKC2NKrbvDBzomH4iGVjigbPVpwRV4Wks5s5-pQgaJpZM4Oy6y_>.
|
Hi Ross, Thanks a lot for your message, It works fine for me with the last release :) Cheers |
I was then trying to go to next step with schematron validation (before nvdl :)) PS : by the way I just found the w3c spec (non normativ) section about schematypens: https://www.w3.org/TR/xml-model/#dt-xml-model-processor#d0e689 |
Thanks Matthieu. At the moment there are no JAXP compliant schematron or nvdl implementations that I know of. If you do know of one, then you should be able to simply add it as a dependency and jaxp libraries should in theory pick it up. Also, please let me know and I will work up some tests and make it work if it doesn't already. I hope to get time to implement these, but as I mentioned they are pretty non-trivial. Regarding the w3 (and ISO) spec, looking at the code, this should already work, but I haven't run a test. Have you tried it (remember in this case you have to supply the "type" rather than "schematypens". If it doesn't work, I already raised a bug. Please add comments there. |
Hi Ross, About schematron / NVDL validation, I tried to add a dependency to jing but it doesn't work. It should not be JAXP compliant. In my company we forked Jing-trang here: https://github.com/ELSGestion/jing-trang, that's why I really would like to use jing (one of the reason is that jing doen't support iso-schematron validation upon NVDL, which we use a lot...) About the PI, I use: But I faced a validation problem: when the RNG schema has a namespace (grammar/@ns attribute) then the validation report this error: Should I add a new bug here for namespace RNG schema support here ? Thanks in advance |
Hi Matthieu, Under the covers, (in the jxvc project) I'm using the standard version of jing with a wrapper around it to make it jaxp compliant. If you have a fork of Jing-trang, you could copy my wrapper sub-projects to use your fork. I'm not sure if that will help you though. Regarding that xmlns bug, I think I stumbled over that as well, but as I am just wrapping jing it would appear to be a jing bug. I'm unfortunately not sure what to do about it at this time. Perhaps you can look into your fork of jing and see where it might be? Best Regards |
Hi Ross, Sorry for this late answer. I use jing a lot (command line or via a IDE like Oxygen XML) and I never had this namespace problem. But I thought it could be linked to the jaxp compliance or something like that (which I don't really understand as a "non java" developer). My colleague @jimetevenard did look deeper this problem and raised this issue. I hope I'll be soon able to plug this plugin with my project and prevent unvalid xml to be commited (some of my collegues will hate me but I assume xml validity is important :)) And yes next step would be schematron validity, but as far as @jimetevenard told me, there's no jaxp compliant schematron validator (?). Let's see that later... Best Regards |
I have created a new open source project ixvc (https://github.com/rosslamont/jxvc) which provides a JAXP compliant validator which can auto detect schema information from an xml file. It supports the usual suspects, (DTD and XSI) but particularly adds support for ISO/IEC 19757-11:2011 xml-model processing instructions, which in turn can load Relax NG and in theory Schematron and NVDL.
I'll set up a pull request with the necessary fixes.
The text was updated successfully, but these errors were encountered: