InDesign SDK  20.5
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
IInCopyXMLElementHandler.h
1 //========================================================================================
2 //
3 // $File$
4 //
5 // Owner: Jeff Argast
6 //
7 // $Author$
8 //
9 // $DateTime$
10 //
11 // $Revision$
12 //
13 // $Change$
14 //
15 // Copyright 1997-2010 Adobe Systems Incorporated. All rights reserved.
16 //
17 // NOTICE: Adobe permits you to use, modify, and distribute this file in accordance
18 // with the terms of the Adobe license agreement accompanying it. If you have received
19 // this file from a source other than Adobe, then your use, modification, or
20 // distribution of it requires the prior written permission of Adobe.
21 //
22 //========================================================================================
23 
24 #ifndef __IInCopyXMLElementHandler__
25 #define __IInCopyXMLElementHandler__
26 
27 #include "IPMUnknown.h"
28 
29 #include "InCopyWorkflowID.h"
30 
34 class WideString;
35 
37 {
38 public:
39  enum { kDefaultIID = IID_IINCOPYXMLELEMENTHANDLER };
40 
41  // Initialize the element handler with the Story
42  virtual void Initialize
43  (
44  const UIDRef& storyRef,
45  IInCopyImportOptions* options
46  ) = 0;
47 
48  // localName = the local part of the element name
49  // qName = the qualified element name
50 
51  // the iParentHandler is the parent handler on the stack. If this is one of the root's sibling
52  // element handlers then the parent will be nil.
53 
54  // When this element handler is active it is asked for a child element handler
55  // for each element. If it returns an element handler, the new handler is pushed on the stack
56  // and its methods are called. If it returns nil then this element handler is called.
57  virtual IInCopyXMLElementHandler* QueryElementHandler
58  (
59  const WideString& localName,
60  const WideString& qName,
61  const WideString& uri,
62  IInCopyXMLElementAttr* iAttrs
63  ) = 0;
64 
65  // Receive the start element call. This method is called for the element this handler is registered
66  // for as well as all of its children. The data in iAttrs is not valid after returning from StartElement
67  virtual void StartElement
68  (
69  IInCopyXMLElementHandler* iParentHandler,
70  const WideString& localName,
71  const WideString& qName,
72  const WideString& uri,
73  IInCopyXMLElementAttr* iAttrs
74  ) = 0;
75 
76  // Text data from the element. This may be called multiple times for the content
77  virtual void Characters
78  (
79  IInCopyXMLElementHandler* iParentHandler,
80  const WideString& chars
81  ) = 0;
82 
83  // The end element call will match the start element call.
84  virtual void EndElement
85  (
86  IInCopyXMLElementHandler* iParentHandler,
87  const WideString& localName,
88  const WideString& qName,
89  const WideString& uri
90  ) = 0;
91 
92  // Passes on the processing instruction
93  // The target is the XML app identifier and the pinst is the content
94  // of the instruction
95  virtual void ProcessingInstruction
96  (
97  IInCopyXMLElementHandler* iParentHandler,
98  const WideString& target,
99  const WideString& pinst
100  ) = 0;
101 
102  // Passes comments
103  virtual void Comment
104  (
105  IInCopyXMLElementHandler* iParentHandler,
106  const WideString& commentData
107  ) = 0;
108 
109  // Called to do post processing when a child element handler has finished.
110  virtual void PostProcessChildHandler
111  (
112  IInCopyXMLElementHandler* iChildElementHandler,
113  const WideString& localName,
114  const WideString& qName,
115  const WideString& uri
116  ) = 0;
117 
118  // Called to return the associated story context.
119  virtual IInCopyStoryContext *QueryStoryContext() = 0;
120 };
121 
122 
123 #endif // __IInCopyWorkflow__
124 
125