Skip to content
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

Unify 3mfverify.exe with xml-linting in lib3MF-repo #11

Open
martinweismann opened this issue Apr 26, 2018 · 8 comments
Open

Unify 3mfverify.exe with xml-linting in lib3MF-repo #11

martinweismann opened this issue Apr 26, 2018 · 8 comments
Assignees

Comments

@martinweismann
Copy link
Member

https://github.com/3MFConsortium/lib3mf/tree/XML_Schema_Validation/Tools/Schema
contains scripts to perform xml-schema validation for an individual 3dmodel.model against the xsd-files from the different published extensions.

3mfverify.exe appears to verify much more (OPC structure,…) but does not include the latest extensions.

@pencerw : Let's work on unifying the functionality from these tools.
Do you know any internals about the 3mfverify-tool? It might suffice to feed the correct schemata into it.

@pencerw
Copy link
Contributor

pencerw commented Apr 26, 2018

@martinweismann unfortunately I came into this repo only in January, and know nothing about the source of these files: https://github.com/3MFConsortium/3mf-samples/tree/master/3mf-Verify

It appears that @pabloprado added them to the repository - perhaps he or @alexanderoster knows?

@thatrani
Copy link
Member

@sawhite500 , is there a replacement for 3mfverify.exe that HP created?

@ghost
Copy link

ghost commented Jun 26, 2019

@sawhite500 , is there a replacement for 3mfverify.exe that HP created?

I just checked - there hasn't been any activity on that tool for well over a year. Is there a need / request to add capability from the POV of the consortium?

@KrisIverson
Copy link

KrisIverson commented Jun 26, 2019 via email

@ghost
Copy link

ghost commented Jun 26, 2019 via email

@KrisIverson
Copy link

KrisIverson commented Jun 26, 2019 via email

@martinweismann
Copy link
Member Author

I see two main users of such a tool:

  • As an implementer of the 3MF standard I would like a tool that, given a 3MF file from someone else, tells me, whether it is valid (do i have to accept this file?) and whether files created by my tool are valid (do others have to accept this file?)
  • As a user working with 3MF files, I want to be able to point others (producers, consumers) to an authoritative tool that can judge whether a 3mf-file is valid. This way, interoperation between tools can be put on very solid grounds without deep understanding of the 3MF specifications. (Obviously, this does not replace detailed spec knowledge if errors or interop-problems arise)

What kind of tool should this be:

  • 3mfverify was not to bad at that. As far as I remember it verifies the OPC package structure and verifies, whether the 3dmodel and the relationship-files are a valid instances of their respective schemata. However, it is limited to the core spec, and it did not respect any "soft parts" of the core specification, i.e. wording of the specification that can not be backed into an XSD, e.g. one MUST not reference resource IDs of objects defined later in a file.
  • Arguably, one can say, that these capabilities fall into the scope of a reference implementation itself. However, tools reading a file type are usually held to be forgiving about errors in files. E.g. XML linting and verification of schema conformance should not part of the parsing a 3MF file, since this is
    a) a deteriorates performance
    b) might lead to rejection of files that could easily be understood by others although they violate the schema (e.g. unknown attributes of an element within the namespace of the core-spec).

@thatrani
Copy link
Member

I would also add to the wishlist that it is a web service.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants