2012-03-13 3 views
1

을 사용하여 XSD에 대해 XML의 유효성을 검사하는 방법 Saxon Home Edition (HE) 9.4를 사용하여 XSD에 대해 XML의 유효성을 검사하려면 어떻게해야합니까?Saxon Home Edition (HE) 9.4

이 기본 작업을 수행하려면 Enterprise 버전이 필요합니까? 오류 메시지의 의미는 무엇입니까? 여기에 제가 사용하고있는 코드가 있습니다.

private void btnSaxonTest3_Click(object sender, EventArgs e) 
// validate xml against xsd and show multiple errors 
{ 
    try 
    { 
    SetGlobalVariables(); 
    Saxon.Api.Processor proc = new Processor(true); 
    //this is the property to set for multiple errors 
    //proc.SetProperty("net.sf.saxon.lib.FeatureKeys.VALIDATION_WARNINGS", "true"); //Enterprise function only? 

    SchemaManager schemaManager = proc.SchemaManager; 

    FileStream xsdFs = new FileStream(GvXSDFullPath, FileMode.Open); 

    schemaManager.Compile(XmlReader.Create(xsdFs)); 
    SchemaValidator validator = schemaManager.NewSchemaValidator(); 

    FileStream xmlFs = new FileStream(GvXMLFullPath, FileMode.Open); 

    validator.SetSource(XmlReader.Create(xmlFs)); 
    validator.ErrorList = new ArrayList(); 
    try 
    { 
     validator.Run(); 
    } 
    catch (Exception) 
    { 
     AddMsg("Instance validation failed with " + validator.ErrorList.Count + " errors"); 
     foreach (StaticError error in validator.ErrorList) 
     { 
     AddMsg("At line " + error.LineNumber + ": " + error.Message); 
     } 
     txtResults.Text = GvResults; 
     return; 
    } // try catch 
    } 
    catch (Exception ex) 
    { 
    AddMsg(ex.ToString()); 
    } 
    AddMsg("Process completed"); 
    txtResults.Text = GvResults; 
} 

답변

2

EE 버전이 필요합니다. 여기 색슨의 각 버전에 대해 자세히 알아볼 수 있습니다 :이 사건이 아니었다 기대했다

http://www.saxonica.com/products/products.xml

+0

감사합니다. .NET Schematron 구현으로 XSD 파일에 마크 업을 추가하고 기본 비즈니스 규칙 검증을 수행하는 방법이 마음에 들었습니다. 내가 Saxon과 함께 이것을하기 위해 현금을 써야하는 것처럼 들린다. – user610064