{"id":31282304,"url":"https://github.com/yacnuzun/xverify","last_synced_at":"2026-04-10T15:14:11.942Z","repository":{"id":313513782,"uuid":"1046527119","full_name":"yacnuzun/XVerify","owner":"yacnuzun","description":"XVerify, XML tabanlı sistemler için tek noktadan doğrulama ve dönüştürme çözümüdür. XSD, Schematron ve XSLT işlemlerini modern bir .NET 8 Blazor arayüzü ile birleştirir.","archived":false,"fork":false,"pushed_at":"2025-09-06T15:36:03.000Z","size":136,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-09-06T16:18:57.971Z","etag":null,"topics":["blazor","csharp","docker","dotnet","dotnet8","kubernetes","schematron","xml","xsd","xslt"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/yacnuzun.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-08-28T20:21:12.000Z","updated_at":"2025-09-06T15:35:49.000Z","dependencies_parsed_at":"2025-09-06T16:32:52.932Z","dependency_job_id":null,"html_url":"https://github.com/yacnuzun/XVerify","commit_stats":null,"previous_names":["yacnuzun/xverify"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/yacnuzun/XVerify","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yacnuzun%2FXVerify","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yacnuzun%2FXVerify/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yacnuzun%2FXVerify/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yacnuzun%2FXVerify/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yacnuzun","download_url":"https://codeload.github.com/yacnuzun/XVerify/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yacnuzun%2FXVerify/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":276689013,"owners_count":25686611,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-24T02:00:09.776Z","response_time":97,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["blazor","csharp","docker","dotnet","dotnet8","kubernetes","schematron","xml","xsd","xslt"],"created_at":"2025-09-24T03:54:00.879Z","updated_at":"2025-09-24T03:54:02.708Z","avatar_url":"https://github.com/yacnuzun.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🔍 XVerify\n\n**XML, XSD, Schematron ve XSLT doğrulama ve dönüştürme işlemleri için tek nokta: Modern bir .NET 8 Blazor uygulaması.**\n\n[![.NET 8](https://img.shields.io/badge/.NET-8-512BD4?logo=dotnet)](https://dotnet.microsoft.com/)\n[![Blazor](https://img.shields.io/badge/Blazor-WebAssembly-purple?logo=blazor)](https://dotnet.microsoft.com/apps/aspnet/web-apps/blazor)\n[![Docker](https://img.shields.io/badge/Docker-Container-blue?logo=docker)](https://www.docker.com/)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\nXVerify, SOAP API'lerin ve XML tabanlı sistemlerin kalbinde yer alan XML, XSD, Schematron ve XSLT teknolojilerini görselleştirmenizi, doğrulamanızı ve anlamanızı sağlayan modern bir web uygulamasıdır.\n\n\n## ✨ Öne Çıkan Özellikler\n\n-   **🧪 Çoklu Doğrulama:** Tek seferde XSD şema doğrulaması ve Schematron kural kontrolü yapın.\n-   **🔄 XSLT Dönüşümü:** XML dosyalarınızı anında HTML'ye veya başka bir XML formatına dönüştürün.\n-   **📋 Detaylı Raporlama:** XSD hatalarını liste halinde ve Schematron sonuçlarını SVRL formatında görüntüleyin.\n-   **⚡ Modern UI:** .NET 8'in gücüyle çalışan, interaktif ve hızlı bir Blazor Server arayüzü.\n-   **🐳 Docker Desteği:** Tamamen konteynerize edilmiş yapı sayesinde tutarlı bir geliştirme ve dağıtım ortamı.\n-   **🔩 Modüler Yapı:** Servis tabanlı mimarisi sayesinde kolayca genişletilebilir.\n\n## 🏗️ Mimari ve Teknolojiler\n\n**Backend:**\n-   [.NET 8](https://dotnet.microsoft.com/) - Ana runtime ve framework\n-   [Blazor Server](https://learn.microsoft.com/tr-tr/aspnet/core/blazor/) - Dinamik kullanıcı arayüzü\n-   [System.Xml](https://learn.microsoft.com/tr-tr/dotnet/api/system.xml) - XML, XSD, XSLT işlemleri için .NET kütüphaneleri\n\n**DevOps \u0026 Dağıtım:**\n-   [Docker](https://www.docker.com/) - Konteynerizasyon\n-   [Docker Compose](https://docs.docker.com/compose/) - Çoklu konteyner yönetimi\n\n## 🚀 Hızlı Başlangıç\n\nXVerify'i çalıştırmanın en kolay yolu Docker kullanmaktır.\n\n### Docker ile Çalıştırma\n\n1.  **Depoyu Klonlayın:**\n    ```bash\n    git clone https://github.com/kullanici_adiniz/XVerify.git\n    cd XVerify\n    ```\n\n2.  **Docker Konteynerını Ayağa Kaldırın:**\n    ```bash\n    docker-compose up --build\n    ```\n    Bu komut, uygulamayı derleyecek ve `http://localhost:8080` adresinde yayına alacaktır.\n\n3.  **Tarayıcınızı Açın:**\n    `http://localhost:8080` adresine gidin ve XML dosyalarınızı test etmeye başlayın!\n\n### Geliştirme Modunda Çalıştırma (Docker'sız)\n\n1.  Gerekli [.NET 8 SDK](https://dotnet.microsoft.com/download/dotnet/8.0)'sını yükleyin.\n2.  Solution dizininde:\n    ```bash\n    dotnet restore\n    dotnet run --project WebUI\n    ```\n3.  Uygulama `http://localhost:5000` (veya benzeri bir port) üzerinde çalışacaktır.\n\n## 📖 Kullanım Kılavuzu\n\n1.  **XML Yükleme:** Ana sayfadaki dosya seçiciyi kullanarak bir XML dosyası yükleyin.\n2.  **Doğrulama:** Uygulama, önceden yapılandırılmış (`/Schemas/` dizinindeki) şema ve kuralları otomatik olarak kullanacaktır:\n    -   **`invoice.xsd`**: XML yapısının şema kurallarını doğrular.\n    -   **`rules.xslt`**: Derlenmiş Schematron kurallarını çalıştırarak iş mantığını kontrol eder.\n    -   **`invoice-to-html.xslt`**: XML'i insanların okuyabileceği bir HTML formatına dönüştürür.\n3.  **Sonuçları İnceleme:** Sonuçlar sayfasında üç ana bölüm görüntülenecektir:\n    -   **XSD Hataları:** Herhangi bir şema ihlali listesi.\n    -   **Schematron Raporu:** SVRL formatında ayrıntılı kural ihlal raporu.\n    -   **Dönüştürülmüş HTML:** XML'inizin son kullanıcıya nasıl görüneceğinin önizlemesi.\n\n## 🗂️ Proje Yapısı\nXVerify/\n\n├── Application/ # Core iş mantığı ve servisler\n\n│ ├── Services/\n\n│ │ ├── XsdValidatorService.cs\n\n│ │ ├── SchematronValidatorService.cs\n\n│ │ └── XsltTransformerService.cs\n\n│ └── Dto/\n\n│ └── XmlProcessingResult.cs\n\n├── WebUI/ # Blazor UI Katmanı\n\n│ ├── Pages/\n│ │ └── upload-xml.razor # Ana bileşen\n\n│ └── wwwroot/\n\n├── Schemas/ # XSD, Schematron, XSLT dosyaları\n\n│ ├── invoice.xsd\n\n│ ├── rules.xslt\n\n│ └── invoice-to-html.xslt\n\n├── Dockerfile\n\n└── docker-compose.yml\n\n\n## 🔧 Servisler Nasıl Çalışır?\n\n### SchematronValidatorService\nSchematron doğrulaması üç aşamalı bir ISO işlemiyle gerçekleştirilir:\n1.  **`iso_dsdl_include.xsl`**: `include` direktiflerini işler.\n2.  **`iso_abstract_expand.xsl`**: Soyut kalıpları (abstract patterns) genişletir.\n3.  **`iso_svrl_for_xslt2.xsl`**: Son olarak Schematron kurallarını, XML'i doğrulayacak bir XSLT dosyasına (SVRL) derler.\n\n### XmlProcessingService\nYüklenen bir XML'i işlemek için tüm servisleri koordine eden orkestratör servistir.\n```csharp\npublic async Task\u003cXmlProcessingResult\u003e ProcessAsync(string xmlPath, string xsdPath, string schematronXsltPath, string xsltPath)\n{\n    var xsdErrors = _xsdValidator.ValidateXmlWithXsd(xmlPath, xsdPath);\n    var schematronResult = _schematronValidator.ValidateWithSchematron(xmlPath, schematronXsltPath);\n    var transformedOutput = _xsltTransformer.TransformXmlWithXslt(xmlPath, xsltPath);\n\n    return new XmlProcessingResult { ... };\n}\n\n```\n\n# 💻 Docker container eklendi (Commit: fc8b6cfa, 2025-08-30)\n\n# 🚀 Yeni Eklenenler \n\n- [2025-08-30] Dosya yapıları güncellendi.\n\n# XVerify Project\n\nProje şu anda **uygulama kodu**, **testler** ve **dağıtım (Docker)** dosyaları arasında net bir ayrımla yapılandırılmıştır.\n\n---\n\n## 📂 Project Structure\n\nXVerify/\n\n├─ src/ # Application source code\n\n│ ├─ WebApi/ # Web API project\n\n│ ├─ ClassLib1/ # Example class library\n\n│ └─ ClassLib2/ # Example class library\n\n├─ test/ # Unit and integration tests\n\n│ ├─ WebApi.Tests/\n\n│ └─ ClassLib1.Tests/\n\n├─ docker/ # Docker-related files\n\n│ ├─ Dockerfile\n\n│ ├─ docker-compose.yml\n\n│ └─ .dockerignore\n\n└─ XVerify.sln # Solution file\n\n\n---\n\n## 🚀 Getting Started\n\n### Prerequisites\n- [.NET 8 SDK](https://dotnet.microsoft.com/en-us/download/dotnet/8.0)\n- [Docker](https://docs.docker.com/get-docker/)\n\n### Build \u0026 Run (Local)\n\n```bash\ncd src/WebApi\ndotnet build\ndotnet run\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyacnuzun%2Fxverify","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyacnuzun%2Fxverify","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyacnuzun%2Fxverify/lists"}