0

我想在 AX2009 中针对 xsd 验证我的 xml。但是无论我在 xml 中进行什么更改,xml 都将始终验证... Wat 我的代码有问题吗?

static void Job174(Args _args)
{
    XMLDocument                 xmlDocument;
    XMLSchema                   xmlSchema;
    XMLSchemaValidationError    validationError;
    XMLReader                   xmlReader;
    FileName                    xsdFile;
    ;

    xsdFile = 'c:\\e\\note.xsd';
    xmlSchema   = xmlSchema::newFile(xsdFile);
    if(xmlSchema)
    {
        //xmlDocument = new XMLDocument();
        //xmlDocument.load('c:\\e\\note.xml');
        xmlReader = XMLReader::newXml('c:\\e\\note.xml');

        validationError = xmlReader.validate(xmlSchema.writeToString());
        if (validationError)
          info(strfmt('%1',checkFailed(validationError.message())));
        else
          info('XML is Ok..!');
    }
}
4

1 回答 1

1

您在 xmlReader 对象上使用了 newXml 而不是 newFile。

我尝试了这段代码并且工作正常。

static void XMLValidateExample(Args _args) 
{
    XMLSchema                   xmlSchema;
    XMLSchemaValidationError    validationError;
    XMLReader                   xmlReader;
    FileName                    xsdFile;
    ;

    xsdFile = @"C:\Users\c.paz\Desktop\ari.xsd";
    xmlSchema   = xmlSchema::newFile(xsdFile);

    if(xmlSchema)
    {
        xmlReader = XMLReader::newFile(@"C:\Users\c.paz\Desktop\ARRENDAMIENTO OCC-error.xml");
        validationError = xmlReader.validate(xmlSchema.writeToString());

        if (validationError)
            info(strfmt('%1',checkFailed(validationError.message())));
        else
            info('XML is Ok..!');
    }
}

此致!

于 2014-01-15T19:18:07.743 回答