1 /**
2  * This file is part of the mingw-w64 runtime package.
3  * No warranty is given; refer to the file DISCLAIMER within this package.
4  */
5 
6 #include <winapifamily.h>
7 
8 #ifndef __WSDXMLDOM_H__
9 #define __WSDXMLDOM_H__
10 
11 #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
12 
13 typedef struct _WSDXML_TYPE {
14   const WCHAR *Uri;
15   const BYTE *Table;
16 } WSDXML_TYPE;
17 
18 typedef struct _WSDXML_NAMESPACE {
19   const WCHAR *Uri;
20   const WCHAR *PreferredPrefix;
21   struct _WSDXML_NAME *Names;
22   WORD NamesCount;
23   WORD Encoding;
24 } WSDXML_NAMESPACE;
25 
26 typedef struct _WSDXML_NAME {
27   WSDXML_NAMESPACE *Space;
28   WCHAR *LocalName;
29 } WSDXML_NAME;
30 
31 typedef struct _WSDXML_PREFIX_MAPPING {
32   DWORD Refs;
33   struct _WSDXML_PREFIX_MAPPING *Next;
34   WSDXML_NAMESPACE *Space;
35   WCHAR *Prefix;
36 } WSDXML_PREFIX_MAPPING;
37 
38 typedef struct _WSDXML_ATTRIBUTE {
39   struct _WSDXML_ELEMENT *Element;
40   struct _WSDXML_ATTRIBUTE *Next;
41   WSDXML_NAME *Name;
42   WCHAR *Value;
43 } WSDXML_ATTRIBUTE;
44 
45 typedef struct _WSDXML_NODE {
46   enum {
47     ElementType,
48     TextType
49   } Type;
50   struct _WSDXML_ELEMENT *Parent;
51   struct _WSDXML_NODE *Next;
52 } WSDXML_NODE;
53 
54 typedef struct _WSDXML_ELEMENT {
55   WSDXML_NODE Node;
56   WSDXML_NAME *Name;
57   WSDXML_ATTRIBUTE *FirstAttribute;
58   WSDXML_NODE *FirstChild;
59   WSDXML_PREFIX_MAPPING *PrefixMappings;
60 } WSDXML_ELEMENT;
61 
62 typedef struct _WSDXML_TEXT {
63   WSDXML_NODE Node;
64   WCHAR *Text;
65 } WSDXML_TEXT;
66 
67 typedef struct _WSDXML_ELEMENT_LIST {
68   struct _WSDXML_ELEMENT_LIST *Next;
69   WSDXML_ELEMENT *Element;
70 } WSDXML_ELEMENT_LIST;
71 
72 #endif
73 #endif
74