forked from NYCPlanning/edm-metadata-builder
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathexpxml_readme.php
More file actions
171 lines (144 loc) · 5.57 KB
/
expxml_readme.php
File metadata and controls
171 lines (144 loc) · 5.57 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
<?php
//this code exports the table into the Esri accepted xml format
include 'config.php'; //connect to database
$uid = $_GET['id'];
$tbname = $_GET['tbname'];
//the file extension to be downloaded and the file name is passed through the header
header('content-type: text/xml');
header('Content-Disposition: attachment; filename='.$tbname.'.xml');
if (isset($_POST["export-sde"])) {
//creating a temporary table temp so as to get the xml in the Esri accepatble format
$r = "CREATE TABLE temp AS
(
SELECT common_name AS title,
tags_guide AS themekey ,
summary||summary_update_date AS purpose,
description||description_data_loc AS abstract,
credits AS datacred,
genconst AS useconst,
legconst AS accconst,
update_freq AS update,
version AS edition,
date_last_update AS pubdate,
rpoc_contact_position AS cntpos,
processing_env AS native,
fgdc_geo_format AS geoform,
series_name AS sername,
common_name AS issue,
contact AS publish,
data_source AS othercit,
spatial_repre_type AS direct,
sdp_vector_object_count AS ptvctcnt,
arcgis_item_prop_name AS enttypl,
sr_geo_coor_ref AS horizdn,
sr_projection AS mapprojn,
caveats AS complete,
terms_fees AS fees,
dis_transfer_option_location AS onlink,
dis_transfer_option_description AS resdesc,
extent AS bounding
FROM readme
WHERE uid = '".$uid."')";
$table = pg_query($r);
$fp = fopen("php://output", 'w'); //opening the xml fille to be downloaded
//the following query uses Postgres XML functions. '\' is added to maintain Mixed Case.
$q = "SELECT
xmlelement(name metadata,
xmlelement(name idinfo,
xmlelement(name citation,
XMLELEMENT (name citeinfo,
XMLAGG (XMLFOREST (title, edition, pubdate, geoform, othercit, onlink)),
XMLELEMENT (name serinfo,
XMLAGG (XMLFOREST (sername, issue))),
XMLELEMENT (name pubinfo,
XMLAGG (XMLFOREST (publish))))),
XMLELEMENT (name descript,
XMLAGG (XMLFOREST (purpose, abstract ))),
XMLELEMENT (name status,
XMLAGG (XMLFOREST (update))),
XMLELEMENT (name spdom,
XMLAGG (XMLFOREST (bounding))),
xmlelement(name keywords,
XMLELEMENT (name theme,
XMLAGG (XMLFOREST (themekey)))),
XMLAGG (XMLFOREST (datacred)),
XMLAGG (XMLFOREST (native)),
XMLAGG (XMLFOREST (accconst)),
XMLAGG (XMLFOREST (useconst)),
XMLELEMENT (name ptcontac,
XMLELEMENT (name cntinfo,
XMLELEMENT (name cntorgp,
XMLAGG (XMLFOREST ('NYC Department of City Planning' AS cntorg))),
XMLELEMENT (name cntaddr,
XMLAGG (XMLFOREST ('mailing and physical' AS addrtype)),
XMLAGG (XMLFOREST ('120 Broadway, 31st Floor' AS address)),
XMLAGG (XMLFOREST ('New York' AS city)),
XMLAGG (XMLFOREST ('New York' AS state)),
XMLAGG (XMLFOREST ('10271' AS postal))),
XMLAGG (XMLFOREST ('DCPopendata@planning.nyc.gov' AS cntemail))))
),
XMLELEMENT (name dataqual,
XMLAGG (XMLFOREST (complete))
),
XMLELEMENT (name spdoinfo,
XMLAGG (XMLFOREST (direct)),
XMLELEMENT (name ptvctinf,
XMLELEMENT (name sdtsterm,
XMLAGG (XMLFOREST (ptvctcnt))))
),
XMLELEMENT (name spref,
XMLELEMENT (name horizsys,
XMLELEMENT (name planar,
XMLELEMENT (name mapproj,
XMLAGG (XMLFOREST (mapprojn)))
),
XMLELEMENT (name geodetic,
XMLAGG (XMLFOREST (horizdn))))
),
XMLELEMENT (name eainfo,
XMLELEMENT (name detailed,
XMLELEMENT (name enttyp,
XMLAGG (XMLFOREST (enttypl))))
),
XMLELEMENT (name distinfo,
XMLELEMENT (name distrib,
XMLELEMENT (name cntinfo,
XMLELEMENT (name cntorgp,
XMLAGG (XMLFOREST ('NYC Department of City Planning' AS cntorg))),
XMLELEMENT (name cntaddr,
XMLAGG (XMLFOREST ('mailing and physical' AS addrtype)),
XMLAGG (XMLFOREST ('120 Broadway' AS address)),
XMLAGG (XMLFOREST ('New York' AS city)),
XMLAGG (XMLFOREST ('New York' AS state)),
XMLAGG (XMLFOREST ('10007' AS postal)),
XMLAGG (XMLFOREST ('US' AS country))))),
XMLAGG (XMLFOREST (resdesc)),
XMLELEMENT (name stdorder,
XMLAGG (XMLFOREST (fees)))
),
XMLELEMENT (name metc,
XMLELEMENT (name cntinfo,
XMLELEMENT (name cntorgp,
XMLAGG (XMLFOREST ('NYC Department of City Planning' AS cntorg))),
XMLAGG (XMLFOREST (cntpos)),
XMLELEMENT (name cntaddr,
XMLAGG (XMLFOREST ('mailing and physical' AS addrtype)),
XMLAGG (XMLFOREST ('120 Broadway, 31st Floor' AS address)),
XMLAGG (XMLFOREST ('New York' AS city)),
XMLAGG (XMLFOREST ('New York' AS state)),
XMLAGG (XMLFOREST ('10271' AS postal))),
XMLAGG (XMLFOREST ('DCPopendata@planning.nyc.gov' AS cntemail)))
)
)
FROM temp";
$query = pg_query($q);
//fetching the results and writing it into the xml file opened
while($row = pg_fetch_row($query)) {
echo $row[0];
}
fclose($fp);
//dropping the temporary table
$d = "DROP TABLE temp";
$drop = pg_query($d);
}
?>