{"id":44426279,"url":"https://github.com/alliander-opensource/nlcs-netbeheer-schematron","last_synced_at":"2026-02-12T10:34:02.457Z","repository":{"id":278760921,"uuid":"936684491","full_name":"alliander-opensource/nlcs-netbeheer-schematron","owner":"alliander-opensource","description":"Schematron configuratie voor NLCS netbeheer","archived":false,"fork":false,"pushed_at":"2025-04-24T10:52:07.000Z","size":7182,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-06-03T16:30:02.982Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"XSLT","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/alliander-opensource.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-02-21T14:05:30.000Z","updated_at":"2025-05-05T21:07:40.000Z","dependencies_parsed_at":"2025-04-24T11:40:27.934Z","dependency_job_id":null,"html_url":"https://github.com/alliander-opensource/nlcs-netbeheer-schematron","commit_stats":null,"previous_names":["alliander-opensource/nlcs-netbeheer-schematron"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/alliander-opensource/nlcs-netbeheer-schematron","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alliander-opensource%2Fnlcs-netbeheer-schematron","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alliander-opensource%2Fnlcs-netbeheer-schematron/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alliander-opensource%2Fnlcs-netbeheer-schematron/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alliander-opensource%2Fnlcs-netbeheer-schematron/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/alliander-opensource","download_url":"https://codeload.github.com/alliander-opensource/nlcs-netbeheer-schematron/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alliander-opensource%2Fnlcs-netbeheer-schematron/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29363184,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-12T08:51:36.827Z","status":"ssl_error","status_checked_at":"2026-02-12T08:51:26.849Z","response_time":55,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-02-12T10:34:01.438Z","updated_at":"2026-02-12T10:34:02.445Z","avatar_url":"https://github.com/alliander-opensource.png","language":"XSLT","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Schematron NLCS netbeheer        \nDeze repository bevat de versie van de Proof of Concept (PoC) software voor het uitvoeren van inhoudelijke validaties op NLCS++ XML-bestanden. De software ondersteunt versie 10 en 11 van NLCS++.\n\n## Inhoud\n- [Introductie](#Introductie)\n- [Uitgangspunten](#Uitgangspunten)\n- [Validaties](#Validaties)\n- [Installatie](#Installatie)\n- [Gebruik](#Gebruik)\n- [Contact](#Contact)\n- [License](#License)\n\n## Introductie\nNLCS Netbeheer is een initiatief van diverse netbeheerders, waterbedrijven en Mijnaansluiting.nl om te komen tot een informatiemodel en nadere invulling van NLCS: NLCS++. Het doel is betere uitwisseling van informatie over bestaande, geplande en gerealiseerde infrastructuur.\n\nOnderdeel van de NLCS++ uitwisseling is een XML-bestand met daarin de geometrie�n en attributen van de bedrijfsmiddelen (LS Kabel, LS Mof, etc.). Het XSD borgt een valide structuur van het XML-bestand. Echter, voor een inhoudelijke validatie van het XML-bestand was er tot nu toe nog geen oplossing.\n\nIn het kader van dit informatiemodel is onderzocht in de vorm van een PoC in hoeverre **Schematron** een rol kan spelen bij de inhoudelijke validaties van de data die in het XML-bestand wordt vastgelegd. Schematron is een op XML gebaseerde technologie voor het **decentraal** en **systeem agnostisch** kunnen uitvoeren van inhoudelijke validaties van XML-bestanden.\n\nDeze repository bevat de resultaten van de PoC, zodat de netbeheerders en andere belanghebbenden zelf testen kunnen bekijken en uitvoeren. \n\nDoel van de software is om een mogelijkheid te bieden om op **elke plek** (device) **dezelfde** inhoudelijke validaties te kunnen uitvoeren, **die ook voor de netbeheerder worden uitgevoerd**. Schematron **als oplossing** sluit aan bij dit doel, doordat deze systeem agnostisch is\n\nDe software in deze repository kan worden beschouwd als de 'motor' om de inhoudelijke validaties te kunnen uitvoeren. **Deze kan worden ge�ntegreerd naar inzicht van de softwareleverancier**. Verder is er het plan om een centrale service aan te bieden waar een NLCS++ geformatteerd XML-bestand inhoudelijk gevalideerd kan worden: Validatieservice. Deze service zal gebruik gaan maken van dezelfde 'motor' **als die aangeboden wordt om als software in te bouwen**.\n\n## Uitgangspunten\nBij de ontwikkeling van de software zijn de volgende uitgangspunten gehanteerd:\n\n- Testbestanden en inhoudelijke validaties zijn gebaseerd op NLCS++ versie v10 \u0026 v11.\n- De oplossing is schaalbaar naar meerdere versies.\n- De oplossing kan systeem agnostisch en decentraal worden uitgevoerd.\n- Het DWG/DXF-bestand is buiten beschouwing gelaten.\n- Doelstelling is om de inhoudelijke validaties te uniformeren tussen de netbeheerders.\n\n## Validaties\nOm vast te stellen of de Schematron technologie de toekomstige inhoudelijke validaties ondersteunt, zijn de volgende 5 inhoudelijke validaties ontwikkeld:\n\n|Asset type|Type validatie|Validatie omschrijving|\n|----------|--------------|----------------------|\n|MS Kabel|Topologisch|Controleer of de MS Kabel is verbonden met ten minste twee assets.|\n|LS Kabel|Diepte|Controleer of de diepteligging van een LS Kabel correct is geregistreerd.|\n|LS Mof|Topologisch + Attributen|Controleer of de bedrijfsspanning van nieuw gelegde LS Kabels overeenkomt met de verbonden.|\n|LS Aftakmof|Topologisch + Attributen|Bij 3\u003e1 fase: 3-fase aan ��n kant, L1,2,3 aan andere kant.|\n|E Aarddraad|Topologisch|Controleer of de aarddraad verbonden is met een gebouw.|\n\nDeze controles zijn uitgekozen uit een lijst van validaties die op dit moment binnen de Netbeheerders wordt samengesteld. De keuze voor deze controles is gebaseerd op de technische werking van de regels, die mits bewezen in de PoC, ook gaan werken voor andere validaties van dezelfde technische aard. \nBijvoorbeeld, een controle of een diepteligging van een LS kabel juist gevalideerd kan worden, levert een technisch bewijs dat we dit ook voor andere kabels kunnen uitvoeren.\n\nN.B. Dat het hier niet om de definitieve inhoudelijke validaties gaat.\n\nWanneer een inhoudelijke validatie faalt, dan wordt er een omschrijving getoond inclusief de details van de fout. Een overzicht hiervan voor de 5 gerealiseerde inhoudelijke validaties zijn te vinden in [messages.xml](https://github.com/alliander-opensource/nlcs-netbeheer-schematron/blob/main/localization/messages.xml) \n\n## Installatie\n\n1. Clone de repository:\n    ```bash\n    git clone https://github.com/alliander-opensource/nlcs-netbeheer-schematron.git\n    ```\n## Gebruik\nWij gaan ervan uit dat je toegang hebt tot het commando: java in cmd.\n\n1. zorg dat de cmd terminal in de correcte folder zit\n```cmd\ncd \\PATH\\TO\\REPO\n```\n\n2. Een voorbeeld test met parameters.\n``` cmd\njava -jar schxslt-cli.jar -d source_xmls/v10/poc_passing_structure_validations.xml -s validation_schemas/poc_schema.sch -o report.xml -p \"v10_structure\" -v\n```\n- '-d' (required) = de xml die gevalideerd wordt\n- '-s' (required) = het schema dat gebruikt wordt\n- '-o' (optional) = het rapport dat geproduceerd wordt\n- '-p' (IN POC required) = welke fase testen worden gerund\n- '-v' (optional)(no args) = of fouten in de terminal worden geprint (verbose)\n\nin de -p parameter wordt aangegeven welke nlcs++ versie gebruikt wordt door een \"vX_\" prefix aan de fase te geven.\n\n3. alle testen voor v10 (via ./run.bat op Windows)\n``` cmd\nrun source_xmls/v10/poc_passing_structure_validations.xml validation_schemas/poc_schema.sch \"v10_structure\"\nrun source_xmls/v10/poc_failing_structure_validations.xml validation_schemas/poc_schema.sch \"v10_structure\"\nrun source_xmls/v10/poc_passing_complex_validations.xml validation_schemas/poc_schema.sch \"v10_complex\"\nrun source_xmls/v10/poc_failing_complex_validations.xml validation_schemas/poc_schema.sch \"v10_complex\"\nrun source_xmls/v10/poc_passing_depth_validations.xml validation_schemas/poc_schema.sch \"v10_depth_structure\"\nrun source_xmls/v10/poc_failing_depth_validations.xml validation_schemas/poc_schema.sch \"v10_depth_structure\"\nrun source_xmls/v10/poc_passing_depth_validations.xml validation_schemas/poc_schema.sch \"v10_depth_complex\"\nrun source_xmls/v10/poc_failing_depth_validations.xml validation_schemas/poc_schema.sch \"v10_depth_complex\"\nrun source_xmls/v10/poc_depth_example_validations.xml validation_schemas/poc_schema.sch \"v10_depth_example\"\n```\n\n4. alle testen voor v11 (via ./run.bat op Windows)\n``` cmd\nrun source_xmls/v11/poc_passing_structure_validations.xml validation_schemas/poc_schema.sch \"v11_structure\"\nrun source_xmls/v11/poc_failing_structure_validations.xml validation_schemas/poc_schema.sch \"v11_structure\"\nrun source_xmls/v11/poc_passing_complex_validations.xml validation_schemas/poc_schema.sch \"v11_complex\"\nrun source_xmls/v11/poc_failing_complex_validations.xml validation_schemas/poc_schema.sch \"v11_complex\"\nrun source_xmls/v11/poc_passing_depth_validations.xml validation_schemas/poc_schema.sch \"v11_depth_structure\"\nrun source_xmls/v11/poc_failing_depth_validations.xml validation_schemas/poc_schema.sch \"v11_depth_structure\"\nrun source_xmls/v11/poc_passing_depth_validations.xml validation_schemas/poc_schema.sch \"v11_depth_complex\"\nrun source_xmls/v11/poc_failing_depth_validations.xml validation_schemas/poc_schema.sch \"v11_depth_complex\"\nrun source_xmls/v11/poc_depth_example_validations.xml validation_schemas/poc_schema.sch \"v11_depth_example\"\n```\n\nHet resultaat van een inhoudelijke validatie van een **valide** XML-bestand wordt als volgt weergeven in de terminal:\n```cmd\n[valid] ..\\nlcs-netbeheer-schematron\\source_xmls\\v10\\poc_passing_structure_validations.xml\n```\nHet resultaat van een inhoudelijke validatie van een **invalide** XML-bestand wordt als volgt weergeven in de terminal:\n```cmd\n[invalid] ..\\nlcs-netbeheer-schematron\\source_xmls\\v10\\poc_failing_structure_validations.xml\n[invalid] ..\\nlcs-netbeheer-schematron\\source_xmls\\v10\\poc_failing_structure_validations.xml failed-assert /Q{NLCSnetbeheer}NLCSnetbeheerType[1]/Q{NLCSnetbeheer}Feature[5]/Q{NLCSnetbeheer}MSkabel[1]\n            De kabel heeft een ongeldig aantal verbindingen.\n            Handle: 6301\n            Huidig aantal verbindingen: 3\n            Handles van verbindingen: 62EA, 62EB, 62C7\n            Met de status: BESTAAND RESERVE, zou het aantal verbindingen moeten 2 zijn\n\n[invalid] ..\\nlcs-netbeheer-schematron\\source_xmls\\v10\\poc_failing_structure_validations.xml failed-assert /Q{NLCSnetbeheer}NLCSnetbeheerType[1]/Q{NLCSnetbeheer}Feature[9]/Q{NLCSnetbeheer}MSkabel[1]\n            De kabel heeft een ongeldig aantal verbindingen.\n            Handle: 6302\n            Huidig aantal verbindingen: 1\n            Handles van verbindingen: 62C8\n            Met de status: BESTAAND RESERVE, zou het aantal verbindingen moeten 2 zijn\netc.\n```\n## Contact\nVoor vragen of opmerkingen neem contact op met: [ariejohan.vande.werken@alliander.com](mailto:ariejohan.vande.werken@alliander.com).\n\n## License\nCopyright 2025 Keronic\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\nhttp://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falliander-opensource%2Fnlcs-netbeheer-schematron","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falliander-opensource%2Fnlcs-netbeheer-schematron","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falliander-opensource%2Fnlcs-netbeheer-schematron/lists"}