PowerShell / PowerShell/PSScriptAnalyzer

New Rule Suggestion: Validate ps1xml Schema

Aperta
#1,234 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Up-for-Grabs
Lingua principale
C#
Stelle
2.2k
Fork
414
Merge medio
13h 1m
PR unite (30g)
2

Descrizione

*.Format.ps1xml and *.Types.ps1xml have a XSD now. This can be used to create a rule to validate types and format XML schema.

In my build scripts I have the following code to validate ps1xml files.

$ps1xmlFiles = Get-ChildItem -Path $modulePath -Filter *.ps1xml

foreach ($ps1xml in $ps1xmlFiles) {
    [xml]$xml = Get-Content -Path $ps1xml.FullName
    $null = $xml.Schemas.Add($null, 'https://raw.githubusercontent.com/PowerShell/PowerShell/master/src/Schemas/Format.xsd')
    $null = $xml.Schemas.Add($null, 'https://raw.githubusercontent.com/PowerShell/PowerShell/master/src/Schemas/Types.xsd')
    $xml.Validate( { throw "File '$($ps1xml.Name)' schema error: $($_.Message)" })
}

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Direzione di ricerca

Inizia con lo snippet di convalida PowerShell proposto e gli schemi referenziati Format.xsd e Types.xsd. Esamina il modo in cui le regole di PSScriptAnalyzer individuano e segnalano i problemi, quindi verifica che la regola gestisca sia i file *.Format.ps1xml sia i file *.Types.ps1xml e segnali gli errori dello schema; aggiungi o esegui i test della regola pertinenti, se disponibili.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
powershell, xml
Ambito
tooling
Tipo di issue
Funzionalità
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
35/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.