Connect with us

.NET

Validando SCHEMA XML usando XSD e C#

Published

on

Mais um problema recorrente. Normalmente temos que gerar ou enviar XML para clientes com a informação de nossos CRMs. Isso costuma causar alguma dor de cabeça quando não se tem um arquivo XSD com o SCHEMA que deve ser seguido pelo XML.

Pensando nisso, preparei esse código que é para ser aplicado em uma aplicação winforms, com 2 inputs, um arquivo XSD e um XML e o output vai para um TXT multiline. Espero que ajude.

Para começar, você precisará criar um novo projeto WinForms no Visual Studio. Em seguida, adicione os seguintes controles ao seu formulário: dois botões (um para selecionar o arquivo XSD e outro para selecionar o arquivo XML), um controle TextBox para exibir o resultado da validação e um controle OpenFileDialog para permitir ao usuário selecionar os arquivos.

Em seguida, você precisará adicionar as seguintes bibliotecas ao seu projeto:

using System;
using System.IO;
using System.Xml;
using System.Xml.Schema;

A primeira biblioteca é necessária para trabalhar com arquivos e diretórios. As outras duas bibliotecas são usadas para validar o arquivo XML com o arquivo XSD.

Abaixo está o código completo para a aplicação:

using System;
using System.IO;
using System.Xml;
using System.Xml.Schema;
using System.Windows.Forms;

namespace ExemploValidacaoXML
{
    public partial class Form1 : Form
    {
        private OpenFileDialog openFileDialog1 = new OpenFileDialog();
        private OpenFileDialog openFileDialog2 = new OpenFileDialog();

        public Form1()
        {
            InitializeComponent();
            openFileDialog1.Filter = "XSD files (*.xsd)|*.xsd";
            openFileDialog2.Filter = "XML files (*.xml)|*.xml";
        }

        private void button1_Click(object sender, EventArgs e)
        {
            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                textBox1.Text = openFileDialog1.FileName;
            }
        }

        private void button2_Click(object sender, EventArgs e)
        {
            if (openFileDialog2.ShowDialog() == DialogResult.OK)
            {
                textBox2.Text = openFileDialog2.FileName;
            }
        }

        private void button3_Click(object sender, EventArgs e)
        {
            try
            {
                string xsdPath = textBox1.Text;
                string xmlPath = textBox2.Text;
                string validationMessage = string.Empty;

                // Load the XSD schema.
                XmlSchemaSet schemaSet = new XmlSchemaSet();
                schemaSet.Add(null, xsdPath);

                // Load the XML file.
                XmlReaderSettings settings = new XmlReaderSettings();
                settings.ValidationType = ValidationType.Schema;
                settings.Schemas = schemaSet;

                // Set the validation event handler.
                settings.ValidationEventHandler += new ValidationEventHandler(ValidationEventHandler);

                // Create the XmlReader object.
                XmlReader reader = XmlReader.Create(xmlPath, settings);

                // Read the XML file.
                while (reader.Read()) { }

                if (string.IsNullOrEmpty(validationMessage))
                {
                    validationMessage = "O arquivo XML é válido de acordo com o esquema XSD especificado.";
                }

                textBox3.Text = validationMessage;
            }
            catch (Exception ex)
            {
                textBox3.Text = ex.Message;
            }
        }

        private void ValidationEventHandler(object sender, ValidationEventArgs e)
        {
            if (e.Severity == XmlSeverityType.Error)
            {
                textBox3.Text += "Erro: " + e.Message + Environment.NewLine;
            }
            else
            {
                textBox3.Text += "Aviso: " + e.Message + Environment.NewLine;
            }
        }
    }
}

Explicação do código:

  • No construtor do formulário, definimos o filtro de arquivos para cada controle OpenFileDialog. O primeiro controle OpenFileDialog é usado para selecionar o arquivo XSD e o segundo é usado para selecionar o arquivo XML.
  • No evento Click do botão “Selecionar XSD”, definimos o texto do controle TextBox1 com o caminho do arquivo XSD selecionado pelo usuário.
  • No evento Click do botão “Selecionar XML”, definimos o texto do controle TextBox2 com o caminho do arquivo XML selecionado pelo usuário.
  • No evento Click do botão “Validar”, carregamos o esquema XSD e o arquivo XML e executamos a validação. Para carregar o esquema XSD, criamos um objeto XmlSchemaSet e adicionamos o arquivo XSD especificado pelo usuário. Para carregar o arquivo XML, criamos um objeto XmlReaderSettings e definimos a propriedade ValidationType como “Schema” e a propriedade Schemas como o XmlSchemaSet que acabamos de criar. Em seguida, definimos o manipulador de eventos ValidationEventHandler para lidar com erros e avisos de validação.
  • Quando a validação é concluída, verificamos se há mensagens de validação. Se não houver mensagens, definimos a mensagem “O arquivo XML é válido de acordo com o esquema XSD especificado.” no controle TextBox3. Caso contrário, definimos as mensagens de validação no controle TextBox3.
  • Finalmente, criamos o método ValidationEventHandler para manipular erros e avisos de validação. Se a gravidade do erro for XmlSeverityType.Error, adicionamos uma mensagem de erro ao controle TextBox3. Caso contrário, adicionamos uma mensagem de aviso.
  • Espero que este exemplo seja útil para você. Se tiver alguma dúvida, não hesite em perguntar.

Ajudou a você ? deixe um cometário! Obrigado.

Continue Reading
Click to comment

Leave a Reply

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

.NET

Microsoft está oferecendo cursos gratuitos com certificado!

Published

on

🚨🥁 A Microsoft está oferecendo cursos GRATUITOS com certificados. Não esqueça de compartilhar e ajudar alguém 👍🏼🚀😀

(Lembre-se, é um certificado, não uma certificação)! 😀

🌐 Microsoft Azure Fundamentals

  • AZ-900
  • 24-Hour
  • Link: https://lnkd.in/d6Xnvn_a

🌐 Microsoft Azure Administrator

  • AZ-104
  • 96-Hour
  • Link: https://lnkd.in/dyYZaDqH

🌐 Developing Solutions for Microsoft Azure

  • AZ-204
  • 120-Hour
  • Course Link: https://lnkd.in/daGp_ZqN

🌐 Designing Microsoft Azure Infrastructure Solutions

  • AZ-305
  • 96-Hour
  • Link: https://lnkd.in/d3bCnx2t

🌐 Designing and Implementing Microsoft DevOps solutions

  • Course AZ-400
  • 96-Hour Course
  • Course Link: https://lnkd.in/dGej85sS

🌐 Microsoft Azure Data Fundamentals

  • Course DP-900
  • 24-Hour Course
  • Course Link: https://lnkd.in/d2t4Jz6i

🌐 Microsoft Azure Al Fundamentals

  • Course Al-900
  • 24-Hour Course
  • Course Link https://lnkd.in/d8DEgKiJ

🌐Designing and Implementing a Microsoft Azure Al Solution

  • Course Al-102
  • 96-Hour Course
  • Course Link: https://lnkd.in/d_QBZtHa

🌐 Develop Generative Al Solutions with Azure OpenAl Service

  • Course Al-050
  • 24-Hour Course
  • Course Link: https://lnkd.in/ddf28zBD

🌐 Microsoft Security, Compliance, and Identity Fundamentals

  • Course SC-900
  • 24-Hour Course
  • Course Link: https://lnkd.in/dmzUN3jS

🌐 Microsoft Security Operations Analyst

  • Course SC-200
  • 96-Hour Course
  • Course Link: https://lnkd.in/dTUt7C7P

🌐 Microsoft Cybersecurity Architect

  • Course SC-100
  • 96-Hour Course
  • Course Link: https://lnkd.in/dK5Nw2Qa

🌐 Microsoft Azure Security Technologies

  • Course AZ-500
  • 96-Hour Course
  • Course Link: https://lnkd.in/dSfKTws5

🌐 Designing and Implementing Microsoft Azure Networking Solutions

  • Course AZ-700
  • 72-Hour Course
  • Link: https://lnkd.in/dEKyyz5Y

🌐 Data Engineering on Microsoft Azure

  • Course DP-203
  • 96-Hour Course
  • Link: https://lnkd.in/damz4ewp

🌐 Designing and implementing a data science solution on Azure

  • Course DP-100
  • 96-Hour Course
  • Link: https://lnkd.in/dedSYpEN

🌐 Administering Microsoft Azure SQL Solutions

  • Course DP-300
  • 96-Hour Course
  • Link: https://lnkd.in/dREpV56r

FreeCourses #microsoft #azure #cloud #Upskill #MicrosoftAzure #ITCareer #Cybersecurity #Opportunity #CareerDevelopment #LearningResources #ShareKnowledge #free #certification #certificacao

Continue Reading

.NET

O .NET 8: Descubra as Incríveis Novidades do .NET 8 que Vão Revolucionar Seu Desenvolvimento!

O .NET 8 oferece uma gama de novos recursos e melhorias que tornam a plataforma ainda mais robusta e eficiente. Com aprimoramentos no C#, suporte avançado para desenvolvimento full-stack com Blazor, a introdução do .NET MAUI, melhorias de performance, atualizações no ASP.NET Core e suporte ao HTTP/3, o .NET 8 está bem equipado para enfrentar as demandas de desenvolvimento moderno. Desenvolvedores podem esperar uma experiência mais fluida, rápida e integrada, seja na criação de aplicações web, desktop ou mobile.

Published

on

O .NET 8, lançado pela Microsoft, traz uma série de inovações e melhorias que visam aumentar a produtividade dos desenvolvedores, melhorar a performance das aplicações e expandir a versatilidade da plataforma. A seguir, vamos explorar algumas das principais novidades e fornecer exemplos práticos de como essas mudanças podem ser aplicadas.

Principais Novidades do .NET 8

1. Aprimoramentos no C# 12

O .NET 8 inclui a versão mais recente do C#, o C# 12, que apresenta várias melhorias e novos recursos. Dentre os destaques, temos:

  • Primary Constructors para Structs e Classes: Simplifica a definição de construtores para structs e classes.
  • Default Interpolated Strings: Torna a interpolação de strings mais flexível e poderosa.
public struct Pessoa(string nome, int idade);
var pessoa = new Pessoa("Alice", 30);
Console.WriteLine($"Nome: {pessoa.nome}, Idade: {pessoa.idade}");

2. Blazor Full-Stack

O Blazor, a tecnologia de construção de interfaces web interativas utilizando C#, agora suporta full-stack development. Isso significa que os desenvolvedores podem criar tanto o front-end quanto o back-end usando Blazor, proporcionando uma experiência de desenvolvimento mais coesa.

@page "/contador"
@code {
    private int contador = 0;
    private void IncrementarContador() => contador++;
}
<button @onclick="IncrementarContador">Clique me: @contador</button>

3. MAUI (Multi-platform App UI)

O .NET MAUI é a evolução do Xamarin.Forms e permite a criação de aplicações multi-plataforma (iOS, Android, Windows, macOS) com um único código-base.

public class App : Application
{
    public App()
    {
        MainPage = new ContentPage
        {
            Content = new StackLayout
            {
                Children = {
                    new Label { Text = "Bem-vindo ao .NET MAUI!" }
                }
            }
        };
    }
}

4. Melhorias de Performance

O .NET 8 continua a tradição de aprimorar a performance da plataforma. Algumas melhorias incluem otimizações no JIT (Just-In-Time) compiler, melhorias na alocação de memória e novos recursos no runtime que reduzem o overhead das aplicações.

5. Atualizações no ASP.NET Core

O ASP.NET Core, framework para construção de aplicações web e APIs, recebeu várias melhorias no .NET 8:

  • Minimal APIs com mais funcionalidades: Inclui mais suporte para autenticação e autorização, e melhores ferramentas de depuração.
  • Novo sistema de autenticação: Simplifica a configuração de autenticação em aplicações web.
var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();

app.MapGet("/saudacao", () => "Olá, Mundo!");

app.Run();

6. Suporte ao HTTP/3

O .NET 8 traz suporte aprimorado ao HTTP/3, permitindo a construção de aplicações que se beneficiam das melhorias de performance e segurança do novo protocolo.

7. Hot Reload

A funcionalidade de Hot Reload permite que os desenvolvedores façam mudanças no código durante a execução da aplicação, e essas mudanças são refletidas instantaneamente, sem a necessidade de recompilar ou reiniciar a aplicação.

Exemplo:

Alterações em uma aplicação Blazor são aplicadas instantaneamente durante a execução:

<h1>Hello, world!</h1>
<p>Bem-vindo ao uso de Hot Reload no Blazor!</p>

Conclusão

O .NET 8 oferece uma gama de novos recursos e melhorias que tornam a plataforma ainda mais robusta e eficiente. Com aprimoramentos no C#, suporte avançado para desenvolvimento full-stack com Blazor, a introdução do .NET MAUI, melhorias de performance, atualizações no ASP.NET Core e suporte ao HTTP/3, o .NET 8 está bem equipado para enfrentar as demandas de desenvolvimento moderno. Desenvolvedores podem esperar uma experiência mais fluida, rápida e integrada, seja na criação de aplicações web, desktop ou mobile.

Continue Reading

.NET

A Microsoft está oferecendo cursos de certificação GRATUITOS!

Published

on

A Microsoft está oferecendo cursos de certificação GRATUITOS!

Sem taxa, sem assinatura, sem necessidade de registro, basta começar a aprender. Esses cursos incluem palestras em vídeo, tutoriais e notas fáceis. Conheça os seguintes cursos gratuitos.

1. Fundamentos do Microsoft Azure
– Curso AZ-900T00
– Curso de 24 horas
– Link do curso: https://lnkd.in/dtYedpnZ

2. Desenvolvendo soluções para Microsoft Azure
– Curso AZ-204T00
– Curso de 120 horas
– Link do curso: https ://lnkd.in/dzVWhp7u

3. Administrador do Microsoft Azure
– Curso AZ-104T00
– Curso de 96 horas
– Link do curso: https://lnkd.in/djrYxCqW

4. Configurando e operando o Microsoft Azure Virtual Desktop
– Curso AZ-140
– Curso de 96 horas
– Link do curso: https://lnkd.in/dsd5CPJy

5. Projetando soluções de infraestrutura Microsoft Azure
– Curso AZ-305T00
– Curso de 96 horas
– Link do curso: https://lnkd.in/dq28keX9

7. Fundamentos de dados do Microsoft Azure
– Curso DP-900T00
– Curso de 24 horas
– Link do curso: https://lnkd.in/dmtfCKHM

8. Fundamentos de IA do Microsoft Azure
– Curso AI-900T00
– Curso de 24 horas
– Link do curso: https:// lnkd.in/drnFx6qF

9. Projetando e implementando uma solução de IA do Microsoft Azure
– Curso AI-102T00
– Curso de 96 horas
– Link do curso: https://lnkd.in/dt_rFFgK

10. Desenvolva soluções de IA generativas com o serviço Azure OpenAI
– Curso AI-050T00
– Curso de 24 horas
– Link do curso: https://lnkd.in/dKNN3mph

11. Fundamentos de segurança, conformidade e identidade da Microsoft
– Curso SC-900T00
– Curso de 24 horas
– Link do curso: https://lnkd.in/dVWxqa_E

12. Engenharia de dados no Microsoft Azure
– Curso DP-203T00
– Curso de 96 horas
– Link do curso: https://lnkd.in/duKTsYMa

13. Analista de operações de segurança da Microsoft
– Curso SC-200T00
– Curso de 96 horas
– Link do curso: https://lnkd.in/du3d55NG

14. Projetando e implementando soluções de rede Microsoft Azure
– Curso AZ-700T00
– Curso de 72 horas
– Link do curso: https://lnkd.in/dgmBzYDS

15. Projetando e implementando uma solução de ciência de dados no Azure
– Curso DP-100T01
– Curso de 96 horas
– Link do curso: https://lnkd.in/dZ8WXxYx

#Segurança #Cibernética #Microsoft #DesenvolvimentodeCarreira #SegurançadaInformação #Cursos #nuvem #az900 #azure #carreiratech #techrecruiter

Continue Reading

Trending

Copyright © 2023 CodeInsider.com.br - criado por Dallm IT