Powershell XML Schema验证 - 从变量读取模式

时间:2017-11-28 15:25:04

标签: xml powershell validation xsd

我必须使用[System.Xml.XmlReaderSettings] / [System.Xml.ValidationType] :: Schema

根据其架构验证XML

(伪样品)

<?xml version="1.0" encoding="UTF-8"?>
    <rootelement>
      <firstnode>(here validation error against the schema)
      </firstnode>
     </rootelement>

现在,如果XSD位于文件上,它可以正常工作,例如:

$readerSettings = New-Object -TypeName System.Xml.XmlReaderSettings
$readerSettings.Schemas.Add($namespace,"c:\schema.xsd")

给出正确的验证错误:

Line: 1 Offset: 202 - The element 'FirstNode' has invalid child element 'Title'. List of possible elements expected: 'Description'.

但使用URI:

$readerSettings.Schemas.Add($Namespace,'https://server:port/xmlschema/Schema.xsd')

或StringReader:

$CurrentXSD=Invoke-restMethod -Uri 'http://server:port/xmlschema/Schema.xsd'
$readerSettings.Schemas.Add($Namespace,(new-Object System.IO.StringReader($CurrentXSD.OuterXML))

它不起作用,抱怨缺少根元素。

Line: 1 Offset: 40 - The 'rootelement' element is not declared

在所有3种情况下,XSD总是相同的。 有人可以解释一下吗? 非常感谢!

0 个答案:

没有答案