Add an XML ecosystem profile (XSD, RELAX NG, Schematron, XSLT)

Ouverte
#86 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Les mainteneurs répondent en général sous 1 jour

Personne n'a encore pris cette issue.

Évaluation

Difficulté
4/5
Temps estimé
3-5 jours
Accessibilité débutants
53/100
Type d'issue
Fonctionnalité
Clarté
Clairement spécifiée
Activité
Active
Stack technique
python, xml
Domaine
testing, tooling

Piste de recherche

Read the existing profile modules, tests/test_go.py, tests/support.py, and tests/test_ecosystem_contract.py to learn the registration and fixture conventions. Add project_validator/ecosystems/xml.py, register it in BUILT_IN, and add the XML fixture layout and profile tests. Done means the configured fixture passes applicable checks, the bare fixture passes none, snapshots are recorded, and the README “Applies to” column is updated.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

Profile

Recognised by intent (#63): *.xsd, *.rng / *.rnc, *.sch, *.xsl / *.xslt, *.xspec. Supplies the schema practices from #85.

Practice Rule for this ecosystem
schema-declared XSDs declare a targetNamespace and elementFormDefault; instance documents name their schema (xsi:schemaLocation / xsi:noNamespaceSchemaLocation, or an <?xml-model?> processing instruction)
schema-validation CI runs xmllint --noout --schema / --relaxng, jing, or a Schematron processor (SchXslt)
schema-examples XSpec suites (*.xspec) for XSLT and Schematron, run in CI; for XSD / RELAX NG, valid and invalid example documents
tests-run XSpec runs in CI (xspec.sh, the XSpec Maven or Ant targets)
code-formatting xmllint --format checked in CI, or prettier with @prettier/plugin-xml

Notes

data-wellformed (#84) covers well-formedness. External DTDs and entities must never be fetched.

Definition of done

  • One profile module, project_validator/ecosystems/xml.py, registered in BUILT_IN. Nothing in project_validator/checks/ changes: a row marked later belongs to a check that does not exist yet and is recorded on that check's issue.
  • tests/fixtures/well_configured_xml passes every check that applies to it, and tests/fixtures/bare_xml passes none of the ecosystem's practices (tests/test_ecosystem_contract.py). Snapshots recorded with UPDATE_SNAPSHOTS=1.
  • A project layout in tests/support.py, profile tests like tests/test_go.py, and the README "Applies to" column (tests/test_documentation.py).
  • A practice with no good evidence for this ecosystem is left out (the check reports SKIP) rather than judged by weak evidence.
Langage dominant
Python
Étoiles
4
Forks
1
Merge moyen
10 h 41 min
PR mergées (30 j)
79

Préparer son environnement

Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de cpp-best-practices/project_validator

Toutes les issues de cpp-best-practices/project_validator

Issues similaires

Plus d'issues Python

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.