VCOM:VectorWorks:Filing:IXMLFileValidator

From Vectorworks Developer
Revision as of 14:58, 12 August 2013 by Root (talk | contribs) (1 revision)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

.SDK|SDK ..SDK:Types|SDK Types ..VCOM:VCOM (Vectorworks Component Object Model)|VCOM Basics ..VCOM:Class Reference|VCOM Class Reference

Description

namespace VectorWorks::Filing


This interface validates a XML file against XML Schema.

Interface

// ----------------------------------------------------------------------------------------------------
// {384AE042-47F6-44a4-9980-622320B292F5}
static const VWIID IID_XMLFileValidator = { 0x384ae042, 0x47f6, 0x44a4, { 0x99, 0x80, 0x62, 0x23, 0x20, 0xb2, 0x92, 0xf5 } };

class IXMLFileValidator : public IVWUnknown
{
public:
  virtual VCOMError VCOM_CALLTYPE SetXML(IFileIdentifier* pXMLFileID) = 0;
  virtual VCOMError VCOM_CALLTYPE SetXML(IXMLFileIOBuffer* pInputBuffer, EXMLEncoding encoding) = 0;

  virtual VCOMError VCOM_CALLTYPE SetSchema(IFileIdentifier* pSchemaFileID) = 0;
  virtual VCOMError VCOM_CALLTYPE SetSchema(IXMLFileIOBuffer* pSchemaBuffer, EXMLEncoding encoding) = 0;

  virtual VCOMError VCOM_CALLTYPE SetErrorListener(IXMLFileValidatorErrorListener* pListener) = 0;

  virtual VCOMError VCOM_CALLTYPE Validate() = 0;

  virtual VCOMError VCOM_CALLTYPE ValidateXMLName(const TXString& name) = 0;
  virtual VCOMError VCOM_CALLTYPE CreateXMLName(const TXString& name, TXString& outXMLName, IXMLFileValidatorNameErrorsListener* pErrListener = NULL) = 0;
};

Members

SetXML Set XML for validation in this instance.
SetSchema Set XML Schema that will be used for validation.
SetErrorListener Set error listener instance that will receive error messages.
Validate Execute validation on the XML file using the XML Schema specified in this class.
ValidateXMLName Determines if the specified name is a valid XML name.
CreateXMLName Creates a valid XML name for the specified one. If the specified is valid then it is returned.

Remarks

Also every validation routine returns error codes from namespace VCOM:VectorWorks:Filing:XMLErrors.

There is predefined type for smart VCOM pointer VCOMPtr to IXMLFileValidator interface:

typedef VCOMPtr<IXMLFileValidator>  IXMLFileValidatorPtr;

If you use IXMLFileValidatorErrorListener::Validate without specifying schema, validation will use the schema that is provided by the XML file itself. If it doesn't provide schema, the file will not be validated.

If you provide schema in IXMLFileValidatorErrorListener::Validate call, this schema will be used regardless if the XML provides schema or not.

Example of XML providing shcema:

<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<Root   xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
        xsi:noNamespaceSchemaLocation='Test.xsd'>
  > 
  <inner>inner value</inner>
  <sub1>sub value</sub1>
</Root>

Example

See VCOM:Working with XML Files#Validating

Version

Available from: VectorWorks 12

See Also

VCOM:VCOMPtr | VCOM:VectorWorks:Filing:IFolderIdentifier | VCOM:VectorWorks:Filing:IFileIdentifier | VCOM:VectorWorks:Filing:IXMLFile

[[VCOM:VCOMPtr]] | [[VCOM:VectorWorks:Filing:IFolderIdentifier]] | [[VCOM:VectorWorks:Filing:IFileIdentifier]] | [[VCOM:VectorWorks:Filing:IXMLFile]]