1

I am trying to add definiton for xsi namespace into saxon .NET api.

I have already used this - but this does not help:

Processor xmlProcessor = new Processor();
SchemaManager manager1 = xmlProcessor.SchemaManager;
SchemaValidator validator = manager1.NewSchemaValidator();

DocumentBuilder builder = xmlProcessor.NewDocumentBuilder();
XdmNode xdmNode = builder.Build(xmlDocument);
validator.SetSource(xdmNode);
XPathCompiler compiler = xmlProcessor.NewXPathCompiler();

I need this for parsing xpath like this:

substring-before(substring-after(//IzdaniRacunEnostavni/@xsi:noNamespaceSchemaLocation,'http://www.gzs.si/e-poslovanje/sheme/'))

And if this is not supported in Home Edition, are there any free external liubrarires that fully support xpath 2.0?

n32303
  • 831
  • 1
  • 10
  • 25

1 Answers1

3

I have found a solution to my question:

You must use compiler.DeclareNamespace method .

    Processor xmlProcessor = new Processor();
    DocumentBuilder builder = xmlProcessor.NewDocumentBuilder();
    XdmNode xdmNode = builder.Build(xmlDocument);
    XPathCompiler compiler = xmlProcessor.NewXPathCompiler();
    compiler.DeclareNamespace("xsi", "http://www.w3.org/2001/XMLSchema-instance");
n32303
  • 831
  • 1
  • 10
  • 25