xml/legacyminidomparser/xmlparser/test/t_SmilDtd.h
changeset 34 c7e9f1c97567
parent 0 e35f40988205
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/xml/legacyminidomparser/xmlparser/test/t_SmilDtd.h	Mon Sep 13 13:16:40 2010 +0530
@@ -0,0 +1,119 @@
+// Copyright (c) 2001-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// This file contains the definition of the SMILDTD class 
+// 
+//
+/**
+ * @file 
+ * @publishedPartner
+ * @released
+ */
+#ifndef T_SMILDTD_H
+#define T_SMILDTD_H
+
+#include <e32def.h>
+#include <gmxmldocument.h>
+#ifndef SYMBIAN_ENABLE_SPLIT_HEADERS 
+#include "t_smildtdenum.h"
+#endif
+/**
+MXMLDtd is a mixin class. If User wants  to  derive from MXMLDtd class ,
+then  one  should not derive from any other class at the same time. 
+i.e A class can not derive from CBase  at all  using MXMLDtd.
+
+Represents the SMIL DTD.
+It is used for validation of SMIL documents. 
+@publishedPartner
+@released
+*/
+class CSMILDtd: public MXMLDtd
+	{
+public:	
+
+	/** Allocates and constructs a new SMIL DTD validator.
+	
+	@leave KErrNoMemory Out of memory	
+	@return New SMIL DTD validator */
+	IMPORT_C static CSMILDtd* NewL();
+
+	/** Allocates and constructs a new SMIL DTD validator, leaving the object on the 
+	cleanup stack.
+
+	@leave KErrNoMemory Out of memory		
+	@return New SMIL DTD validator */
+	IMPORT_C static CSMILDtd* NewLC();
+
+	/** Destructor. */
+  	IMPORT_C virtual ~CSMILDtd();
+
+protected:
+	/*
+	 * Function to determine whether an Element name is valid in DTD
+	 * @return ETrue the if element name valid - else EFalse
+	 * @param aElement the element name to be tested
+	 * @leave can leave due to OOM
+	 */
+	virtual TBool IsValidElementL(const TDesC& aElement) const;
+
+	/*
+	 * Function to determine whether an attribute name and value is valid in DTD
+	 * @return KErrNone if name&value are valid, KXMLBadAttributeName if attrib name invalid
+	 * KXMLBadAttributeValue if attrib value invalid
+	 * @param aElement the element to which the attributes belong
+	 * @param aAttribute the attribute to be tested
+	 * @leave aAttributeValue the attributeValue to be tested
+	 * @leave can leave due to OOM
+	 */
+	
+	virtual TInt IsValidAttributeForElementL(const TDesC& aElement, const TDesC& aAttribute, const TDesC& aAttributeValue) const;
+
+	/*
+	 * Function to determine whether the parent/child relationship is valid in DTD
+	 * @return ETrue if parent/child relationship is valid
+	 * @param aParentElement the name of the parent element to be tested
+	 * @param aChildElements an array of child element name to be tested
+	 * @leave can leave due to OOM
+	 */
+	
+	virtual TBool AreValidChildElementsL(const TDesC& aParentElement, const CDesCArray& aChildElements) const;
+
+
+	/*
+	 * Function to determine whether it is valid for a particular element to
+	 * have children
+	 * @param aElement the name of the element to be tested
+	 * @return ETrue if it is valid for element to have children
+	 */
+	virtual TBool CanElementHaveChildren(const TDesC& aElement) const;
+
+
+	/*
+	 * Constructor
+	 */
+	CSMILDtd();
+
+private:
+	/*
+	 * Second stage constructor
+	 */
+	void ConstructL();
+	
+	TBool CheckValidChildren(const TSMILDTDChildStateType aStateTrans[],TInt aStateCount, const CDesCArray& aChildElements) const;
+
+	};
+
+#endif
+
+
+