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

Schema repository contains non-schema information #37

Open
ronaldtse opened this issue Apr 15, 2021 · 14 comments
Open

Schema repository contains non-schema information #37

ronaldtse opened this issue Apr 15, 2021 · 14 comments
Labels
bug Something isn't working

Comments

@ronaldtse
Copy link
Contributor

ronaldtse commented Apr 15, 2021

  • ZIP files
    • Propose to remove them, no one needs them
  • HTML files that contain description of schemas - these annotations should be subsumed into the XSD files
    • Propose to remove them and use the new automated documentation generation pipeline
  • XSL processing files - these are not schemas
    • Propose to remove them
  • Schemas located at: /{number}/{name} instead of /{number}/{part}/{name}/{version}.
    • Can we move them to the proper location?
  • Example XML files that demonstrate XSD usage
    • Propose to move to separate repo that stores examples (examples are never normative)

Ideally we only want XSD files inside this repository. Then we can manage annotations inside the XSD schemas, and automatically generate model-driven documentation.

@ejbleys thoughts?

@ronaldtse ronaldtse added the bug Something isn't working label Apr 15, 2021
@ejbleys
Copy link
Contributor

ejbleys commented Apr 15, 2021 via email

@ronaldtse
Copy link
Contributor Author

XSL processing files - these are not schemas
These files should be retained: they are required for transformation between schemas, hence form part of the schemas space

XSL files are useful for transforming XML files from one schema to another, but the XSL files themselves are supporting tools, not schemas. In addition, creating documentation for XSL files requires a different process from creating documentation for XSD schema files.

I propose that we create a separate repository to store supporting tools. The location of XSL files are not mentioned in standards, so we are free to place them.

Propose to remove them and use the new automated documentation generation pipeline
Need to see what is presented before can commit

Will show. The content of the current HTML files should be subsumed into the schema files annotation elements.

Schemas located at: /{number}/{name} instead of /{number}/{part}/{name}/{version}.
These files should be retained: they are used by users that have not updated to more recent versions.
This is an undertaking that TC211 made to its members - old versions will remain available for use.

Certainly we don't want to break this commitment.

There are two situations I've seen:

  1. If a standard came from standards.iso.org => i.e. regardless what we do they are already broken, so we have a free hand in placing them at the right place. It is up to standards.iso.org to create the correct redirect.

  2. A location is merely a re-direct. For example, I see a number of duplicated files in the paths "1.0" to "1.0.0" because presumably the new correct place is "1.0.0" but we want to retain a link from "1.0" to it. In this case this is a re-direct and we should not store duplicated files.

I wonder if we should consider "upgrading" the schemas repository to a real ISO 19135-1 register... in the future

@ronaldtse
Copy link
Contributor Author

@ejbleys On https://schemas.isotc211.org there is now this sample section:

Screenshot 2021-04-15 at 11 53 12 AM

Click on it and you can see how the auto-gen schema documentation looks like:

eg.
Screenshot 2021-04-15 at 11 54 01 AM

and

Screenshot 2021-04-15 at 11 54 14 AM

@ejbleys
Copy link
Contributor

ejbleys commented Apr 15, 2021 via email

@PeterParslow
Copy link

This comment is specific to the codelist files.

I hadn't really noticed that 19115-3 describes them as "files ... available for download". The way they are used - even in the examples within the standard itself - clarifies that this "download" is effectively direct access in location ("download" of the particular fragment?).

In 19115-3 the examples are informative (as they were in 19139:2006), but it certainly the approach which all the implementations that I have seen use - so moving the code lists breaks implementations. Of course, not all implementations do validate the code list references from instance documents - but some do (at least, the UK profile of 19115:2003 and it's open source & online editor implementations!).

It is also good practice - these code list entries are in themselves resources; 19115-3 even describes the code list as a "registry" (recommendation in Table 9)

19139 puts it this way

"The codeList attribute contains a URL that references a codeList definition within a registry or a codelist catalogue." (7.3.5.2 req/codelist/XCT, unchanged since edition 1).

To me, this suggests that the promise made to users not to move the XSDs also applies to the Codelists.

@ejbleys
Copy link
Contributor

ejbleys commented Apr 15, 2021 via email

@PeterParslow
Copy link

I'll leave Ron to address the question.

"As part of XMG, I am proposing that all future codeListValues reside in a single codelists.xml"

As long as they have clear fragment identifier targets (something of type xml:id that can be exposed with html id), that can work. I believe it would be better for them to be hosted on a vocab server capable of providing responses in a variety of ways - that is, I believe the code lists should be decomposed & hosted on a registry server. Codelists are essentially a set of terms. But at present, our standards say that instances should reference the code list (by URL) and the code list item using two different attributes. So we "have to" keep the existing ones as they are.

@ejbleys
Copy link
Contributor

ejbleys commented Apr 15, 2021 via email

@ronaldtse
Copy link
Contributor Author

In light of the above discussion of code lists and resources:

  • Tools are by nature different from data. Given this repository is called "schemas", they definitely don't belong to the schema category. Let's keep them in a separate repository? e.g. "xml-resources"?

  • XML codelists are not schemas, they can "exist" inside schemas. If they are offered separately as XML files, they should probably be considered "supporting resources".

I just don't want these things to pollute the current schema naming pattern of:

  • https://schemas.isotc211.org/{standard-path-pattern}/{filename}

I wonder if we should place them in a place like:

  • https://resources.isotc211.org/{standard-path-pattern}/{filename}
  • https://schemas.isotc211.org/resources/{standard-path-pattern}/{filename}

@ejbleys
Copy link
Contributor

ejbleys commented Apr 18, 2021 via email

@PeterParslow
Copy link

If you want to change or add to the URI pattern(s) that are in the "good practice", could you get all the "MG" convenors to agree. It would be good to document there where this is a transition - showing that some standards were published before the pattern was agreed.

https://committee.iso.org/sites/tc211/home/resolutions/isotc-211-good-practices/--structure-of-uris-in-isotc-211.html - no pattern there for "resources", but as Evert says, some standards do describe them.

@ronaldtse
Copy link
Contributor Author

HTML files that contain description of schemas - these annotations should be subsumed into the XSD files
Propose to remove them and use the new automated documentation generation pipeline

The new pipeline has been in place, and we have just migrated (and cleaned up) all the descriptions into their proper locations so they are now viewable.

@ronaldtse
Copy link
Contributor Author

A location is merely a re-direct. For example, I see a number of duplicated files in the paths "1.0" to "1.0.0" because presumably the new correct place is "1.0.0" but we want to retain a link from "1.0" to it. In this case this is a re-direct and we should not store duplicated files.

I have done this in #62 to create symlinks for all {major}.{minor} to {major}.{minor}.{patch}, and verified that all {major}.{minor} pages work.

@ejbleys
Copy link
Contributor

ejbleys commented Mar 30, 2023 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

3 participants