VCOM:VectorWorks:Filing:IXMLFileValidator::CreateXMLName

From Vectorworks Developer
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

Member of VCOM:VectorWorks:Filing:IXMLFileValidator

Convert the specified name into a valid XML name if it contains invalid characters.

If the specified name is ok (see IXMLFileValidator::ValidateXMLName)

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

Parameters

name const TXString& The name that should be checked if it is correct.
outXMLName TXString& Output parameter. Returns the modified correct XML name. If 'name' is correct it is returned without modifications.
pErrListener IXMLFileValidatorNameErrorsListener* Optional. NULL by default. Instance to error listener implementation. See remarks.

Return Value

Uses standard VCOM Error Reporting.

Return value meaning:

kVCOMError_NotInitialized Bad VCOM instance used to call the fuction.
kVCOMError_Failed Routine failed.

Remarks

This function is based on the definition of XML's NCName here: http://www.w3.org/TR/REC-xml/#sec-common-syn

See IXMLFileValidator::ValidateXMLName

The function is not Unicode-aware (only deals with the ASCII 0-127 subset). This, however, is not a problem, as VectorWork XML files should avoid non-ascii characters in NCNames.

The name error listener interface is:

class IXMLFileValidatorNameErrorsListener
{
public:
  enum EIterateResult {
    kIterateResult_ContinueNotHandled,
    kIterateResult_ContinueHandled,
    kIterateResult_StopWithError
  };

public:
                         ~IXMLFileValidatorNameErrorsListener()        {}
  virtual void           StartValidating(const TXString& name) = 0;
  virtual bool           EndValidating(const TXString& name, TXString& outXMLName) = 0;
  virtual void           OnErrorNameEmpty(const TXString& name, TXString& outXMLName) = 0;
  virtual EIterateResult OnErrorSymbol(size_t pos, size_t cnt, TXString& badSymbol) = 0;
};

See Also

VCOM:VectorWorks:Filing:IFolderIdentifier | VCOM:VectorWorks:Filing:IFileIdentifier | VCOM:VectorWorks:Filing:IXMLFileNode |

VCOM:VectorWorks:Filing:IXMLFile | VCOM:VectorWorks:Filing:IXMLFileValidator::ValidateXMLName

[[VCOM:VectorWorks:Filing:IFolderIdentifier]] | [[VCOM:VectorWorks:Filing:IFileIdentifier]] | [[VCOM:VectorWorks:Filing:IXMLFileNode]] | [[VCOM:VectorWorks:Filing:IXMLFile]] | [[VCOM:VectorWorks:Filing:IXMLFileValidator::ValidateXMLName]]