KML นําเสนอ 3 วิธีในการเพิ่มข้อมูลที่กําหนดเองลงในฟีเจอร์ KML ซึ่งแนวทางที่เลือกจะขึ้นอยู่กับประเภทของข้อมูลที่คุณเพิ่ม และวิธีที่คุณวางแผนจะใช้ข้อมูลในงานนําเสนอ KML โดยองค์ประกอบ <ExtendedData> มีกลไกต่อไปนี้
- องค์ประกอบ <Data> - ช่วยให้คุณสามารถเพิ่มคู่ชื่อ/ค่าที่ไม่ได้พิมพ์ลงในข้อมูลผู้ใช้ที่เชื่อมโยงกับฟีเจอร์ที่ระบุ (NetworkLink, Placemark, GroundOverlay, PhotoOverlay, ScreenOverlay, Docs หรือ Folder) คู่ชื่อ/ค่าเหล่านี้จะแสดงในบอลลูนโดยค่าเริ่มต้น ข้อมูลนี้ยังใช้กับการแทนที่เอนทิตีในองค์ประกอบ <text> ของ <BalloonStyle> ได้ (ดูส่วนการใช้องค์ประกอบ BalloonStyle เป็นเทมเพลต)
- องค์ประกอบ <Schema> และ <SchemaData> - ช่วยให้คุณเพิ่มข้อมูลที่พิมพ์ลงในข้อมูลผู้ใช้ที่เชื่อมโยงกับฟีเจอร์ที่ระบุได้
- ข้อมูล XML ที่กําหนดเอง - ช่วยให้คุณเก็บรักษาข้อมูลผู้ใช้ไว้ในไฟล์ KML Google Earth จะส่งข้อมูลนี้ไปพร้อมกับไฟล์ และบันทึกไว้และจะไม่นํามาใช้
หมายเหตุ: กลไก 3 อย่างนี้สามารถรวมกันในไฟล์เดียวกันได้ หากคุณเพิ่มข้อมูลประเภทต่างๆ จากแหล่งที่มาที่แตกต่างกัน แนวทางการใช้ข้อมูลที่กําหนดเอง (Schema/SchemaData) บางอย่างสําหรับข้อมูลบางอย่างที่กําหนดเองและการใช้ข้อมูลที่ไม่ได้พิมพ์ (ข้อมูล) สําหรับข้อมูลที่กําหนดเองอื่นๆ
คุณควรใช้วิธีใด
ในกรณีส่วนใหญ่ องค์ประกอบ <Data> มีกลไกที่เรียบง่ายและมีประสิทธิภาพที่สุดในการเพิ่มข้อมูลที่ไม่ได้พิมพ์ลงในฟีเจอร์ KML วิธีการนี้ค่อนข้างง่ายและรองรับการใช้เทมเพลต BalloonStyle ซึ่งใช้ได้กับหมุดทั้งหมดในไฟล์ KML (ดูตัวอย่างการใช้งานในการแทนที่เอนทิตีสําหรับองค์ประกอบข้อมูลเพิ่มเติม)
องค์ประกอบ <Schema> และ <SchemaData> ช่วยให้คุณเพิ่มข้อมูลผู้ใช้แบบ type ได้ องค์ประกอบเหล่านี้มีไว้สําหรับผู้ใช้ที่มีข้อมูล GIS (ระบบข้อมูลทางภูมิศาสตร์) เป็นหลัก หากพิมพ์ข้อมูลที่แอปพลิเคชันคอมพิวเตอร์ภายนอกใช้ไปแล้ว คุณอาจต้องใช้องค์ประกอบ <Schema> และ <SchemaData> เพื่อเพิ่มประเภทข้อมูลที่มีโครงสร้างลงในฟีเจอร์ (Google Earth จะไม่ใช้ข้อมูลที่พิมพ์นี้ แต่แอปพลิเคชันอื่นอาจต้องการ) ผู้ใช้บรรยากาศสบายๆ อาจไม่จําเป็นต้องมีมุมมองทางเทคนิคเพิ่มเติมของกลไกนี้ <SchemaData> เช่นเดียวกับ <Data> จะช่วยให้ใช้เทมเพลต BalloonStyle ได้
หากคุณเพียงต้องการส่งข้อมูลพร้อมกับไฟล์ KML และไม่จําเป็นต้องมี Google Earth เพื่อประมวลผลข้อมูล ให้ใช้ฟีเจอร์ข้อมูล XML ที่กําหนดเองซึ่งจะช่วยให้คุณอ้างอิงคํานําหน้าเนมสเปซ XML และส่งผ่านข้อมูลในบริบท KML ปัจจุบันได้ ดูข้อมูลเพิ่มเติมได้ที่ส่วนข้อมูล XML ที่กําหนดเอง
การเพิ่มคู่ชื่อ/ค่าที่ไม่ได้พิมพ์
องค์ประกอบ <Data> เป็นกลไกที่เรียบง่ายแต่ทรงพลังในการเพิ่มคู่ชื่อ/ค่าที่ไม่ได้พิมพ์ลงในฟีเจอร์ KML ไวยากรณ์สําหรับองค์ประกอบนี้มีดังนี้
<ExtendedData>
<Data name="string">
<displayName>...</displayName> <!-- string -->
<value>...</value> <!-- string -->
</Data> </ExtendedData>
แอตทริบิวต์ name คือรหัสที่ไม่ซ้ํากันสําหรับข้อมูลนี้ ระบบจะใช้องค์ประกอบ <displayName> เมื่อต้องการแสดงชื่อของข้อมูลนี้ในรูปแบบที่ใช้ง่าย <displayName> อาจมี CDATA ที่มีทั้งการเว้นวรรค, URL และไฮเปอร์ลิงก์
ต่อไปนี้คือตัวอย่างของหมุดที่มีข้อมูลที่กําหนดเองเกี่ยวกับสนามกอล์ฟหลายหลุม
<kml xmlns="http://www.opengis.net/kml/2.2"> <Document> <name>My Golf Course Example</name> <Placemark> <name>Club house</name> <ExtendedData> <Data name="holeNumber"> <value>1</value> </Data> <Data name="holeYardage"> <value>234</value> </Data> <Data name="holePar"> <value>4</value> </Data> </ExtendedData> <Point> <coordinates>-111.956,33.5043</coordinates> </Point>
</Placemark> <Placemark> <name>By the lake</name> <ExtendedData> <Data name="holeNumber"> <value>5</value> </Data> <Data name="holeYardage"> <value>523</value> </Data> <Data name="holePar"> <value>5</value> </Data> </ExtendedData> <Point> <coordinates>-111.95,33.5024</coordinates> </Point>
</Placemark> </Document> </kml>
การจับภาพหน้าจอนี้จะแสดงการแสดงองค์ประกอบ <Data> ในตารางในตารางบอลลูนของหมุดโดยค่าเริ่มต้น
ตัวอย่างข้อมูลที่ใช้การจัดรูปแบบเริ่มต้นของบอลลูน
ทบทวน: การใช้องค์ประกอบ BalloonStyle เป็นเทมเพลต
ใน KML คุณจะกําหนดสไตล์ได้เพียงครั้งเดียวและกําหนดรหัสให้กับสไตล์นั้นได้ หลังจากกําหนดรูปแบบในลักษณะนี้แล้ว คุณสามารถอ้างอิงได้หลายครั้งในไฟล์ KML (หรือภายในไฟล์ KML อื่นๆ) โดยใช้องค์ประกอบ <styleUrl> สไตล์ที่กําหนดในลักษณะนี้เรียกว่าสไตล์ที่แชร์ องค์ประกอบ <text> ภายใน <BalloonStyle> รองรับการแทนที่เอนทิตี โดยอาจแทนที่ค่าแต่ละค่าสําหรับแต่ละอินสแตนซ์ของเอนทิตี เอนทิตีมาตรฐานที่แทนที่ได้มีดังนี้
- $[name]
- แทนที่ด้วยชื่อของหมุด
- $[description]
- แทนที่ด้วยคําอธิบายของหมุด
- $[ที่อยู่]
- แทนที่ด้วยที่อยู่ของหมุด
- $[รหัส]
- แทนที่ด้วยรหัสของหมุด
- $[ตัวอย่าง]
- แทนที่ด้วยตัวอย่างข้อมูลของหมุด
- $[geDirections]
- แทนที่ด้วยเส้นทางการขับขี่ไปยัง/จากหมุด
การแทนที่เอนทิตีสําหรับองค์ประกอบข้อมูลเพิ่มเติม
Google Earth ยังรองรับการแทนที่องค์ประกอบข้อมูลแบบขยายบางอย่างภายในองค์ประกอบ <text> ของ <BalloonStyle> สามารถอ้างอิงเอนทิตีต่อไปนี้ภายในองค์ประกอบ <text> ได้
ตัวแปร | แทนที่ด้วย | ตัวอย่าง |
---|---|---|
$[name_แอตทริบิวต์_ข้อมูลของ_ข้อมูล_องค์ประกอบ] | เนื้อหาขององค์ประกอบ <value> | รูหมายเลข, หลุมยา |
$[ชื่อ_attribute_of_Data/ชื่อที่แสดง] | เนื้อหาขององค์ประกอบ <displayName> | หมายเลขหลุม, ขนาดหลุม |
นี่คือตัวอย่างที่สร้างเทมเพลต <BalloonStyle> สําหรับตัวอย่างของสนามกอล์ฟ สําหรับบอลลูนหมุดแต่ละลูก Google Earth จะใช้ชื่อหมุดแทนชื่อใหม่ แล้วเขียนข้อมูลที่มีหมายเลขหลุม พาร์ และภาพหุ้มแต่ละหลุม
<?xml version="1.0" encoding="UTF-8"?> <kml xmlns="http://www.opengis.net/kml/2.2"> <Document> <name>Data+BalloonStyle</name> <Style id="golf-balloon-style"> <BalloonStyle> <text> <![CDATA[ This is $[name] This is hole $[holeNumber] The par for this hole is $[holePar] The yardage is $[holeYardage] ]]> </text> </BalloonStyle> </Style> <!-- Shared style sample Two Placemarks use the same balloon template --> <Placemark> <name>Club house</name> <styleUrl>#golf-balloon-style</styleUrl> <ExtendedData> <Data name="holeNumber"> <value>1</value> </Data> <Data name="holeYardage"> <value>234</value> </Data> <Data name="holePar"> <value>4</value> </Data> </ExtendedData> <Point> <coordinates>-111.956,33.5043</coordinates> </Point> </Placemark> <Placemark> <name>By the lake</name> <styleUrl>#golf-balloon-style</styleUrl> <ExtendedData> <Data name="holeNumber"> <value>5</value> </Data> <Data name="holeYardage"> <value>523</value> </Data> <Data name="holePar"> <value>5</value> </Data> </ExtendedData> <Point> <coordinates>-111.95,33.5024</coordinates> </Point> </Placemark> </Document> </kml>
ต่อไปนี้เป็นการจับภาพหน้าจอของตัวอย่างนี้
ตัวอย่างข้อมูลที่ใช้การจัดรูปแบบเริ่มต้นของบอลลูน
ต่อไปนี้คือตัวอย่างจริงที่จะใช้องค์ประกอบ <displayName> เทคนิคนี้ช่วยปรับข้อความในข้อความและจัดรูปแบบอย่างประณีตยิ่งขึ้น
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Document>
<name>Entity-Replacement</name>
<Style id="displayName-value">
<BalloonStyle>
<text>
<![CDATA[
This is $[name]<br/>
$[holeNumber/displayName] $[holeNumber]<br/>
$[holePar/displayName] $[holePar]<br/>
$[holeYardage/displayName] $[holeYardage]
]]>
</text>
</BalloonStyle>
</Style>
<!-- Shared style sample
Two Placemarks use the same balloon template
-->
<Placemark>
<name>Club house</name>
<styleUrl>#displayName-value</styleUrl>
<ExtendedData>
<Data name="holeNumber">
<displayName><![CDATA[
<b>This is hole </b>
]]></displayName>
<value>1</value>
</Data>
<Data name="holePar">
<displayName><![CDATA[
<i>The par for this hole is </i>
]]></displayName>
<value>4</value>
</Data>
<Data name="holeYardage">
<displayName><![CDATA[
<b><i>The yardage is </i></b>
]]></displayName>
<value>234</value>
</Data>
</ExtendedData>
<Point>
<coordinates>-111.956,33.5043</coordinates>
</Point>
</Placemark>
<Placemark>
<name>By the lake</name>
<styleUrl>#Entity-Replacement</styleUrl>
<ExtendedData>
<Data name="holeNumber">
<displayName><![CDATA[
<b>This is hole </b>
]]></displayName>
<value>5</value>
</Data>
<Data name="holePar">
<displayName><![CDATA[
<i>The par for this hole is </i>
]]></displayName>
<value>5</value>
</Data>
<Data name="holeYardage">
<displayName><![CDATA[
<b><i>The yardage is </i></b>
]]></displayName>
<value>523</value>
</Data>
</ExtendedData>
<Point>
<coordinates>-111.95,33.5024</coordinates>
</Point>
</Placemark>
</Document>
</kml>
ตัวอย่างบอลลูนที่ใช้เทมเพลตรูปแบบบอลลูนมีดังนี้
การเพิ่มข้อมูลที่พิมพ์ลงในฟีเจอร์
องค์ประกอบ <สคีมา> และ <SchemaData> ช่วยให้คุณเพิ่มข้อมูลที่พิมพ์ลงในฟีเจอร์ได้ แอปพลิเคชัน GIS และแอปพลิเคชันบางอย่างจําเป็นต้องใช้ฟีเจอร์นี้ เนื่องจากแอปพลิเคชันดังกล่าวจัดการข้อมูลที่พิมพ์
ภาพรวมของการเพิ่มข้อมูลที่พิมพ์
หากต้องการเพิ่มประเภทที่กําหนดเองให้กับฟีเจอร์ KML คุณจะต้องทํางานพื้นฐาน 2 อย่างดังนี้
- สร้างองค์ประกอบ <Schema> ซึ่งประกาศประเภทใหม่
- สร้างอินสแตนซ์ของประเภทใหม่โดยใช้องค์ประกอบ <SchemaData>
ประกาศองค์ประกอบสคีมา
องค์ประกอบสคีมาประกาศประเภทที่มีโครงสร้าง <Schema> เป็นส่วนย่อยของ <เอกสาร> เสมอ เอกสารอาจมีองค์ประกอบสคีมาอย่างน้อย 1 รายการ
แอตทริบิวต์รหัส
องค์ประกอบ <Schema> จะมีแอตทริบิวต์รหัสเสมอ ระบบจะอ้างอิง Whish เมื่อมีการสร้างอินสแตนซ์ประเภทนี้ (โดยใช้ <SchemaData>) รหัสนี้ต้องไม่ซ้ํากันภายในไฟล์ KML
แอตทริบิวต์ชื่อ
คุณจะระบุแอตทริบิวต์ name สําหรับการแทนที่เอนทิตีหรือไม่ก็ได้
ไวยากรณ์
องค์ประกอบของสคีมามีไวยากรณ์ต่อไปนี้
<Schema name="string" id="ID"> <SimpleField type="string" name="string"> <displayName>...</displayName> <!-- string --> </SimpleField> </Schema>
<SimpleField> จะมีทั้งแอตทริบิวต์ name และ type เสมอ หากไม่มีแอตทริบิวต์ทั้ง 2 รายการ ระบบจะไม่สนใจช่องนี้ แอตทริบิวต์ชื่อใช้สําหรับการแทนที่เอนทิตีในองค์ประกอบ <text> ของ <BalloonStyle> ประเภทของ Simplefield อาจเป็นอย่างใดอย่างหนึ่งต่อไปนี้
string
int
uint
short
ushort
float
double
bool
กําหนดอินสแตนซ์แต่ละรายการของข้อมูล
ใช้องค์ประกอบ <SchemaData> เพื่อสร้างอินสแตนซ์ประเภทที่ผู้ใช้กําหนด ไวยากรณ์สําหรับ <SchemaData> มีดังนี้
<ExtendedData> <SchemaData schemaUrl="anyURI"> <SimpleData name=""> ... </SimpleData> <!-- string --> </SchemaData> </ExtendedData>
แอตทริบิวต์ schemaUrl จะอ้างอิง id ของสคีมาที่ประกาศประเภทดังกล่าว (เหมือนกับที่ styleUrl อ้างอิง id ของรูปแบบที่ประกาศไปแล้ว) หาก schemaUrl เป็นที่อยู่ http Google Earth จะดึงข้อมูลไฟล์นี้ไปทั่วทั้งเครือข่าย ประเภทที่ผู้ใช้กําหนดต่อหมุดมีได้เพียง 1 ประเภทเท่านั้น
ตัวอย่าง
ตัวอย่างต่อไปนี้แสดงประเภทที่กําหนดโดยผู้ใช้ชื่อ ScenicVista ประเภทนี้มี 3 ช่อง ได้แก่ TrailHeadName, TrailLength และ ElevationGet ช่อง TrailHeadName มีค่าประเภท string
ช่อง TrailLengt มีค่าประเภท double
ช่อง ElevationGet มีค่าประเภท int
หมุดชื่อเส้นทางง่ายมีอินสแตนซ์ของประเภทผู้ใช้นี้ อินสแตนซ์นี้มีค่า "Pi in the Sky"" สําหรับช่อง TrailHeadName, ค่า 3.14159 สําหรับช่อง TrailLength และค่า 10 สําหรับช่อง ElevationGet
<kml xmlns="http://www.opengis.net/kml/2.2"> <Document> <name>ExtendedData+SchemaData</name> <open>1</open> <!-- Declare the type "TrailHeadType" with 3 fields --> <Schema name="TrailHeadType" id="TrailHeadTypeId"> <SimpleField type="string" name="TrailHeadName"> <displayName><![CDATA[<b>Trail Head Name</b>]]></displayName> </SimpleField> <SimpleField type="double" name="TrailLength"> <displayName><![CDATA[<i>Length in miles</i>]]></displayName> </SimpleField> <SimpleField type="int" name="ElevationGain"> <displayName><![CDATA[<i>Change in altitude</i>]]></displayName> </SimpleField> </Schema> <!-- This is analogous to adding three fields to a new element of type TrailHead: <TrailHeadType> <TrailHeadName>...</TrailHeadName> <TrailLength>...</TrailLength> <ElevationGain>...</ElevationGain> </TrailHeadType>
--> <!-- Instantiate some Placemarks extended with TrailHeadType fields --> <Placemark> <name>Easy trail</name> <ExtendedData> <SchemaData schemaUrl="#TrailHeadTypeId"> <SimpleData name="TrailHeadName">Pi in the sky</SimpleData> <SimpleData name="TrailLength">3.14159</SimpleData> <SimpleData name="ElevationGain">10</SimpleData> </SchemaData> </ExtendedData> <Point> <coordinates>-122.000,37.002</coordinates> </Point> </Placemark> <Placemark> <name>Difficult trail</name> <ExtendedData> <SchemaData schemaUrl="#TrailHeadTypeId"> <SimpleData name="TrailHeadName">Mount Everest</SimpleData> <SimpleData name="TrailLength">347.45</SimpleData> <SimpleData name="ElevationGain">10000</SimpleData> </SchemaData> </ExtendedData> <Point> <coordinates>-121.998,37.0078</coordinates> </Point> </Placemark> </Document> </kml>
ตัวอย่างสคีมาข้อมูลที่ใช้การจัดรูปแบบเริ่มต้นของบอลลูน
การแทนที่เอนทิตีสําหรับชื่อที่แสดง
กลไก Schema/SchemaData รองรับการแทนที่เอนทิตีในองค์ประกอบ <text> ขององค์ประกอบ <BalloonStyle>
<displayName> ของ <Schema> ช่วยให้คุณระบุเวอร์ชันที่ใช้ง่ายสําหรับประเภทข้อมูลที่กําหนดเองได้ การเปลี่ยนสตริง 1 ครั้งใน <สคีมา> จะมีผลต่อการเปลี่ยน <displayName> สําหรับฟีเจอร์ทั้งหมดที่มีประเภทนั้นๆ
ในองค์ประกอบ <text> ขององค์ประกอบ <BalloonStyle> ให้ใช้ไวยากรณ์ต่อไปนี้เพื่อให้เป็นไปตาม <displayName>
$[TYPENAME/TYPEFIELD/displayName]
ที่ไหน
- ประเภท
- เป็นแอตทริบิวต์ name ของ <Schema>
- ประเภท
- เป็นแอตทริบิวต์ name ของ <SimpleField>
- displayName
- เป็นองค์ประกอบ <displayName> ภายใน <SimpleField>
โค้ดต่อไปนี้จะเพิ่มเทมเพลต BalloonStyle ในตัวอย่าง SchemaData ก่อนหน้า เช่นเดียวกับในตัวอย่างสนามกอล์ฟ เทมเพลตจะสร้างขึ้นโดยใช้องค์ประกอบ <Style>, <BalloonStyle> และ <text> ที่จุดเริ่มต้นของเอกสาร หมุดแต่ละรายการในไฟล์อ้างอิงเทมเพลตสไตล์นี้ (ชื่อ "ExtendedData+SchemaData")
<kml xmlns="http://www.opengis.net/kml/2.2"> <Document> <name>ExtendedData+SchemaData</name> <open>1</open> <!-- Create a balloon template referring to the user-defined type --> <Style id="trailhead-balloon-template"> <BalloonStyle> <text> <![CDATA[ <h2>My favorite trails!</h2> <br/><br/> The $[TrailHeadType/TrailHeadName/displayName] is <i>$[TrailHeadType/TrailHeadName]</i>. The trail is $[TrailHeadType/TrailLength] miles. <br/> The climb is $[TrailHeadType/ElevationGain] meters. <br/><br/> ]]> </text> </BalloonStyle> </Style> <!-- Declare the type "TrailHeadType" with 3 fields --> <Schema name="TrailHeadType" id="TrailHeadTypeId"> <SimpleField type="string" name="TrailHeadName"> <displayName><![CDATA[<b>Trail Head Name</b>]]></displayName> </SimpleField> <SimpleField type="double" name="TrailLength"> <displayName><![CDATA[<i>The length in miles</i>]]></displayName> </SimpleField> <SimpleField type="int" name="ElevationGain"> <displayName><![CDATA[<i>change in altitude</i>]]></displayName> </SimpleField> </Schema> <!-- Instantiate some Placemarks extended with TrailHeadType fields --> <Placemark> <name>Easy trail</name> <styleUrl>#trailhead-balloon-template</styleUrl> <ExtendedData> <SchemaData schemaUrl="#TrailHeadTypeId"> <SimpleData name="TrailHeadName">Pi in the sky</SimpleData> <SimpleData name="TrailLength">3.14159</SimpleData> <SimpleData name="ElevationGain">10</SimpleData> </SchemaData> </ExtendedData> <Point> <coordinates>-122.000,37.002</coordinates> </Point> </Placemark> <Placemark> <name>Difficult trail</name> <styleUrl>#trailhead-balloon-template</styleUrl> <ExtendedData> <SchemaData schemaUrl="#TrailHeadTypeId"> <SimpleData name="TrailHeadName">Mount Everest</SimpleData> <SimpleData name="TrailLength">347.45</SimpleData> <SimpleData name="ElevationGain">10000</SimpleData> </SchemaData> </ExtendedData> <Point> <coordinates>-121.998,37.0078</coordinates> </Point> </Placemark> </Document> </kml>
ตัวอย่าง SchemaData โดยใช้เทมเพลต BalloonStyle
เปรียบเทียบบอลลูนที่สร้างขึ้นโดยใช้เทมเพลต BalloonStyle กับรูปแบบบอลลูนเริ่มต้นสําหรับข้อมูลเดียวกันกับที่แสดงในการจับภาพหน้าจอก่อนหน้านี้
เพิ่มข้อมูล XML ที่กําหนดเองไปยังฟีเจอร์
วิธีที่ง่ายที่สุดในการเพิ่มข้อมูลผู้ใช้ลงในฟีเจอร์คือการเพิ่มข้อมูลเป็นค่าของ <ExtendedData> โดยตรง Google Earth จะเก็บรักษาข้อมูลนี้ไว้แต่ไม่ได้ประมวลผล
องค์ประกอบของข้อมูลที่กําหนดเองด้วยวิธีนี้ต้องมีคํานําหน้า namespace (xmlns:prefix="namespace") คุณจะเพิ่มคํานําหน้านี้ในองค์ประกอบ <chromebook> หรือองค์ประกอบ <ExtendedData> ก็ได้ คํานําหน้าเนมสเปซภายนอกต้องอยู่ในรูปแบบข้อมูลผู้ใช้ในแต่ละอินสแตนซ์ ดังที่แสดงในตัวอย่างต่อไปนี้
<kml xmlns="http://www.opengis.net/kml/2.2"> <Document> <name>ExtendedData Test</name> <Placemark> <name>CampsiteData</name> <!-- Imported schema requires use of namespace prefix --> <ExtendedData xmlns:camp="http://campsites.com"> <camp:number>14</camp:number> <camp:parkingSpaces>2</camp:parkingSpaces> <camp:tentSites>4</camp:tentSites> </ExtendedData> <Point> <coordinates>-114.041,53.7199</coordinates> </Point> </Placemark> </Document> </kml>