Как я использую PowerShell для Проверки XML-файлов против XSD?

Есть много способов сделать это, но используя новейшие свойства CSS3 +, такие как Flex и Grid , вы можете создать нужный макет. Все, что необходимо для гибкого решения, - это указать контейнер на width: 100%;, чтобы контейнер занимал всю ширину страницы, позволяя свободно размещать макет, установите его display: flex; для использования свойства flex и установите [ 113], чтобы предметы внутри контейнера были выровнены по горизонтали.

Затем разделите правое содержимое в div и левое содержимое в другом div, причем оба находятся внутри контейнера.

Обратитесь к этой скрипке, я исправил некоторые проблемы с кодом, которые у вас есть. Кроме того, не используйте тег шрифта, поскольку он не поддерживается в HTML5 , вместо этого используйте атрибут style. https://jsfiddle.net/9oej1z6p/

25
задан Community 23 May 2017 в 12:32
поделиться

2 ответа

Для этого я написал функцию PowerShell:

Использование:

dir * .xml | Test-Xml -Schema ". \ MySchemaFile.xsd" -Namespace " http://tempuri.org "

Код:

function Test-Xml {
param(
    $InputObject = $null,
    $Namespace = $null,
    $SchemaFile = $null
)

BEGIN {
    $failCount = 0
    $failureMessages = ""
    $fileName = ""
}

PROCESS {
    if ($InputObject -and $_) {
        throw 'ParameterBinderStrings\AmbiguousParameterSet'
        break
    } elseif ($InputObject) {
        $InputObject
    } elseif ($_) {
        $fileName = $_.FullName
        $readerSettings = New-Object -TypeName System.Xml.XmlReaderSettings
        $readerSettings.ValidationType = [System.Xml.ValidationType]::Schema
        $readerSettings.ValidationFlags = [System.Xml.Schema.XmlSchemaValidationFlags]::ProcessInlineSchema -bor
            [System.Xml.Schema.XmlSchemaValidationFlags]::ProcessSchemaLocation -bor 
            [System.Xml.Schema.XmlSchemaValidationFlags]::ReportValidationWarnings
        $readerSettings.Schemas.Add($Namespace, $SchemaFile) | Out-Null
        $readerSettings.add_ValidationEventHandler(
        {
            $failureMessages = $failureMessages + [System.Environment]::NewLine + $fileName + " - " + $_.Message
            $failCount = $failCount + 1
        });
        $reader = [System.Xml.XmlReader]::Create($_, $readerSettings)
        while ($reader.Read()) { }
        $reader.Close()
    } else {
        throw 'ParameterBinderStrings\InputObjectNotBound'
    }
}

END {
    $failureMessages
    "$failCount validation errors were found"
}
}
12
ответ дан 28 November 2019 в 21:04
поделиться

Расширения сообщества PowerShell содержат командлет Test-Xml. Единственным недостатком является то, что расширения не обновлялись некоторое время, но большинство из них работает с последней версией PowerShell (включая Test-Xml). Просто выполните Get-Childitem и передайте список в foreach, вызывая Test-Xml для каждого.

15
ответ дан 28 November 2019 в 21:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: