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

RELAX NG schema for SVG #779

Closed
murata2makoto opened this issue Jul 9, 2017 · 3 comments
Closed

RELAX NG schema for SVG #779

murata2makoto opened this issue Jul 9, 2017 · 3 comments
Assignees
Labels
spec: EPUB 3.2 Impacting the support of EPUB 3.2 status: completed Work completed, can be closed type: improvement The issue suggests an improvement of an existing feature
Milestone

Comments

@murata2makoto
Copy link
Contributor

Before the publication of EPUB 3.0, I volunteered to create a schema for SVG 1.1 (Second edition). At that time, there were two sets of RELAX NG schema for SVG 1.1 (First edition). However, there are several syntactical changes between the first edition and the second edition.

Rather than trying to update existing first-edition RNG schemas, I decided to create a RNG schema by automatic conversion from the second-edition DTD. This is the origin of svg11-flat.rnc, which is used by epubcheck. Obviously, this automatically generated RNG schema is not modularized and thus not easy to maintain.

Validator.nu uses a set of RELAX NG schema for SVG. I suppose that it captures widely-used features of SVG 1.1 (Second edition) and sometimes SVG2 features. If we adopt Validator.nu for the validation of content documents, schema maintenance will be a lot easier.

@tofi86
Copy link
Collaborator

tofi86 commented Jul 9, 2017

Thanks for taking a closer look at all the SVG schemas and issues, dear Makoto san.

This looks like a big field which needs improvements and @rdeltour also put this on the refactoring roadmap. In the follow up section "HTML validation" he also proposes switching the HTML validation engine, which could also be used to validate SVG then.

I will label this as "epub-3.1" for further discussion.

@tofi86 tofi86 added type: improvement The issue suggests an improvement of an existing feature epub-3.1 labels Jul 9, 2017
@murata2makoto
Copy link
Contributor Author

If there are other schema issues, please let me know.

@mattgarrish mattgarrish added spec: EPUB 3.2 Impacting the support of EPUB 3.2 and removed epub-3.1 labels Nov 12, 2018
@rdeltour rdeltour added type: improvement The issue suggests an improvement of an existing feature and removed type: improvement The issue suggests an improvement of an existing feature refactoring labels Nov 12, 2018
@rdeltour rdeltour added the status: in progress The issue is being implemented by the development team label Jan 10, 2019
@rdeltour rdeltour self-assigned this Jan 10, 2019
@rdeltour rdeltour added this to the 4.2.0-alpha-1 milestone Jan 12, 2019
@rdeltour rdeltour added status: has PR The issue is being processed in a pull request and removed status: in progress The issue is being implemented by the development team labels Jan 12, 2019
rdeltour added a commit that referenced this issue Jan 12, 2019
This is a major schema update, to reuse the latest schemas from
the Nu Html Checker, with the following tweaks:

- adapt the integration in schema drivers
- replace the Nu Html Checker's pluggable datatype library with
  EPUBCheck’s more limited static RelaxNG datatypes
- add EPUB-specific content model extensions

Changes specific to XHTML:

- keep allowing missing `title` in the `head` element
- but report missing `title` as a WARNING (with a Schematron check)
- keep allowing `meta http-equiv` in encoding declaration state
  (allowed in W3C but forbidden in WHATWG's HTML standard)
- keep allowing the `border` attribute on `table` elements
  (allowed in W3C but forbidden in WHATWG's HTML standard)
- report `aria-describedat` as a schema error
- add tests for several obsolete features which appeared in previous
  test content (`time/@pubdate`, `iframe/@seamless`, `keygen`, `menu`,
  `dropzone`, `contextmenu`, in-body `style`, `style/@scoped`)

Changes specific to MathML:

- use the schemas from Nu Html Checker, which are based on older
  MathML schema but bring some specific tweaks.
- re-add the changes from the newer MathML 3.0 (2nd edition) schemas
- improve the schema checks of EPUB-specific `annotation-xml`
  restrictions (notably check the combination of the `name` and
  `encoding` attributes)

Changes specific to SVG:

- use the schemas from Nu Html Checker, which are based SVG 1.1

Changes specific to Navigation Documents:

- do not check the presence of mandatory headings on `nav` elements
  with no `epub:type` attribute

Fixes #892
Fixes #779
Fixes #896
Fixes (partially?) #893
Closes #448
rdeltour added a commit that referenced this issue Jan 12, 2019
This is a major schema update, to reuse the latest schemas from
the Nu Html Checker, with the following tweaks:

- adapt the integration in schema drivers
- replace the Nu Html Checker's pluggable datatype library with
  EPUBCheck’s more limited static RelaxNG datatypes
- add EPUB-specific content model extensions

Changes specific to XHTML:

- keep allowing missing `title` in the `head` element
- but report missing `title` as a WARNING (with a Schematron check)
- keep allowing `meta http-equiv` in encoding declaration state
  (allowed in W3C but forbidden in WHATWG's HTML standard)
- keep allowing the `border` attribute on `table` elements
  (allowed in W3C but forbidden in WHATWG's HTML standard)
- report `aria-describedat` as a schema error
- add tests for several obsolete features which appeared in previous
  test content (`time/@pubdate`, `iframe/@seamless`, `keygen`, `menu`,
  `dropzone`, `contextmenu`, in-body `style`, `style/@scoped`)

Changes specific to MathML:

- use the schemas from Nu Html Checker, which are based on older
  MathML schema but bring some specific tweaks.
- re-add the changes from the newer MathML 3.0 (2nd edition) schemas
- improve the schema checks of EPUB-specific `annotation-xml`
  restrictions (notably check the combination of the `name` and
  `encoding` attributes)

Changes specific to SVG:

- use the schemas from Nu Html Checker, which are based SVG 1.1

Changes specific to Navigation Documents:

- do not check the presence of mandatory headings on `nav` elements
  with no `epub:type` attribute

Fixes #892
Fixes #779
Fixes #896
Fixes (partially?) #893
Closes #448
rdeltour added a commit that referenced this issue Jan 12, 2019
This is a major schema update, to reuse the latest schemas from
the Nu Html Checker, with the following tweaks:

- adapt the integration in schema drivers
- replace the Nu Html Checker's pluggable datatype library with
  EPUBCheck’s more limited static RelaxNG datatypes
- add EPUB-specific content model extensions

Changes specific to XHTML:

- keep allowing missing `title` in the `head` element
- but report missing `title` as a WARNING (with a Schematron check)
- keep allowing `meta http-equiv` in encoding declaration state
  (allowed in W3C but forbidden in WHATWG's HTML standard)
- keep allowing the `border` attribute on `table` elements
  (allowed in W3C but forbidden in WHATWG's HTML standard)
- report `aria-describedat` as a schema error
- add tests for several obsolete features which appeared in previous
  test content (`time/@pubdate`, `iframe/@seamless`, `keygen`, `menu`,
  `dropzone`, `contextmenu`, in-body `style`, `style/@scoped`)

Changes specific to MathML:

- use the schemas from Nu Html Checker, which are based on older
  MathML schema but bring some specific tweaks.
- re-add the changes from the newer MathML 3.0 (2nd edition) schemas
- improve the schema checks of EPUB-specific `annotation-xml`
  restrictions (notably check the combination of the `name` and
  `encoding` attributes)

Changes specific to SVG:

- use the schemas from Nu Html Checker, which are based SVG 1.1

Changes specific to Navigation Documents:

- do not check the presence of mandatory headings on `nav` elements
  with no `epub:type` attribute

Fixes #892
Fixes #779
Fixes #896
Fixes (partially?) #893
Closes #448
@rdeltour rdeltour added status: completed Work completed, can be closed and removed status: has PR The issue is being processed in a pull request labels Jan 12, 2019
@rdeltour
Copy link
Member

Done in #934, will be released in v4.2.0.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
spec: EPUB 3.2 Impacting the support of EPUB 3.2 status: completed Work completed, can be closed type: improvement The issue suggests an improvement of an existing feature
Projects
None yet
Development

No branches or pull requests

4 participants