Altova XMLSpy 2024 Enterprise Edition

Methode: HRESULT IsValid([in, out] VARIANT *strError, [in, out] VARIANT *nErrorPos, [in, out] VARIANT *pBadData, [out,retval] VARIANT_BOOL *bValid);

 

Rückgabewert

True, wenn das Dokument gültig ist, false, wenn es nicht gültig ist. Um IsValid() aufrufen zu können, muss die Benutzeroberfläche der Applikation sichtbar sein. (Wenn Sie eine Validierung durchführen wollen, ohne dass die Benutzeroberfläche angezeigt wird, verwenden Sie bitte Altova RaptorXML Server.)

 

Beschreibung

IsValid validiert das Dokument anhand des damit verknüpften Schemas bzw. der DTD. strError gibt dieselbe Fehlermeldung zurück, wie wenn Sie die Datei über die Benutzeroberfläche validieren.

 

 

Fehler

1400

Das Objekt ist nicht mehr gültig.

1407

Ungültiger Parameter oder es wurde für den Rückgabeparameter eine ungültige Adresse angegeben.

1408

Datei kann nicht validiert werden.

 

 

Beispiel

Im folgenden C++-Codefragment finden Sie ein Beispiel für die Verwendung der Methode IsValid.

 

#import "XMLSpy.tlb"

 

 

CComPtr< XMLSpyLib::IDocument12> ipDoc = ipXMLSpy->GetActiveDocument();

if ( ipDoc )

{

      // prepare in/out parameters for IsValid call

      CComVariant variantError;

      CComVariant variantErrorPos;

      CComVariant variantBadData;

      // IsValid always shows a dialog with the validation result. This cannot be turned off.

      bool bIsValid = ipDoc->IsValid( &variantError, &variantErrorPos, &variantBadData ) == VARIANT_TRUE;

 

      if ( !bIsValid )

       {

              // retrieve values from out parameters

              CString strError = (V_VT( &variantError ) == VT_BSTR ? V_BSTR( &variantError ) : _T( "" ));

              long npos = (V_VT( &variantErrorPos ) == VT_I4 ? V_I4( &variantErrorPos ) : -1);

              CComQIPtr< XMLSpyLib::IXMLData > ipXMLBadData = (V_VT( &variantBadData ) == VT_DISPATCH ? V_DISPATCH( &variantBadData ) : nullptr);

 

              if ( ipXMLBadData )

                      strError += CString( _T("\ Node: ") ) + (LPCWSTR)ipXMLBadData->GetName();

 

              if ( !strError.IsEmpty() )

                      AfxMessageBox( "Validation failed - " + strError );

       }

}

 

© 2017-2023 Altova GmbH