Selasa, 15 November 2016

PowerShell v3 Function New XsdFromXml

This nothing more than a wrapper for my previous posts script: PowerShell (v3) - Inferring a Schema (XSD) from XML File. Nothing new if you read the last post.

function New-XsdFromXml
{
      <#
            .NOTES
                  .Author Will Steele (will.steele@live.com)
                  .Last Modified Date: 2012/08/11
                 
            .SYNOPSIS
                  Create XSD file from XML.
           
            .EXAMPLE
                  New-XsdFromXml -Xml C:data est.xml -Xsd C:data est.xsd
                 
            .PARAMETER Xml
                  A required string indicating a file path to an .xml file.
                 
            .PARAMETER Xsd
                  A required string indicating a file path to an output .xsd file.
                 
            .LINK
                  http://learningpcs.blogspot.com/2012/08/powershell-v3-function-new-xsdfromxml.html
      #>

      [CmdletBinding()]
      param(
            $Xml,
            $Xsd
      )

      # Read xml
      $reader = [System.Xml.XmlReader]::Create($Xml)

      # Instntiate XmlSchemaSet and XmlSchemaInference to process new XSD
      $schemaSet = New-Object System.Xml.Schema.XmlSchemaSet
      $schema = New-Object  System.Xml.Schema.XmlSchemaInference

      # Infer schemaSet from XML document in $reader
      $schemaSet = $schema.InferSchema($reader);

      # Create new output file
      $file = New-Object System.IO.FileStream($Xsd, [IO.FileMode]::CreateNew)

      # Create XmlTextWriter with UTF8 Encoding to write to file
      $xwriter = New-Object System.Xml.XmlTextWriter($file, [Text.Encoding]::UTF8)

      # Set formatting to indented
      $xwriter.Formatting = [System.Xml.Formatting]::Indented

      # Parse SchemaSet objects
      $schemaSet.Schemas() |
      ForEach-Object {
            [System.Xml.Schema.XmlSchema] $_.Write($xwriter)
      }

      # Close objects with handles on file
      $xwriter.Close()
      $reader.Close()
}

lamsim

About lamsim

Author Description here.. Nulla sagittis convallis. Curabitur consequat. Quisque metus enim, venenatis fermentum, mollis in, porta et, nibh. Duis vulputate elit in elit. Mauris dictum libero id justo.

Subscribe to this Blog via Email :