Difference between revisions of "Current Freeplane File Format"
From Freeplane - free mind mapping and knowledge management software
(→Mapping between old and new format: almost done, attributes still missing) |
m (→Mapping between old and new format: correct formatting) |
||
Line 250: | Line 250: | ||
| | | | ||
<?xml version="1.0" encoding="UTF-8"?> | <?xml version="1.0" encoding="UTF-8"?> | ||
− | <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> | + | <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" |
+ | elementFormDefault="qualified"> | ||
| not relevant | | not relevant | ||
|- | |- | ||
Line 405: | Line 406: | ||
| Replaced by element <tt><style:text-properties ... /></tt> with attributes | | Replaced by element <tt><style:text-properties ... /></tt> with attributes | ||
fo:color="#rrggbb" | fo:color="#rrggbb" | ||
− | fo:font-weight="normal|bold" | + | fo:font-weight="normal<nowiki>|</nowiki>bold" |
− | fo:font-style="normal|italic" | + | fo:font-style="normal<nowiki>|</nowiki>italic" |
fo:font-family="name of the font" | fo:font-family="name of the font" | ||
fo:font-size="integer" | fo:font-size="integer" | ||
Line 443: | Line 444: | ||
</xs:element> | </xs:element> | ||
| Plugin hooks (like Latex) are replaced by an element <tt><node:content></tt> with a corresponding namespace definition, like in: | | Plugin hooks (like Latex) are replaced by an element <tt><node:content></tt> with a corresponding namespace definition, like in: | ||
− | <node:content xmlns:latex="plugins/latex/LatexNodeHook.properties"> | + | <node:content |
− | <latex:equation><![CDATA[''some equation in Latex'']]></latex:equation> | + | xmlns:latex="plugins/latex/LatexNodeHook.properties"> |
+ | <latex:equation> | ||
+ | <![CDATA[''some equation in Latex'']]> | ||
+ | </latex:equation> | ||
+ | </node:content> | ||
As shown here, in the case of non-XML dialect, the use of a CDATA section is highly recommended. | As shown here, in the case of non-XML dialect, the use of a CDATA section is highly recommended. | ||
|- | |- | ||
Line 460: | Line 465: | ||
<xs:complexType> | <xs:complexType> | ||
<xs:sequence> | <xs:sequence> | ||
− | <nowiki><!--Anything that is valid XML, but should be http://www.w3.org/1999/xhtml --></nowiki> | + | <nowiki><!--Anything that is valid XML, |
− | <xs:any namespace="##any" minOccurs="0" maxOccurs="unbounded" processContents="skip"/> | + | but should be http://www.w3.org/1999/xhtml --></nowiki> |
+ | <xs:any namespace="##any" minOccurs="0" maxOccurs="unbounded" | ||
+ | processContents="skip"/> | ||
</xs:sequence> | </xs:sequence> | ||
</xs:complexType> | </xs:complexType> | ||
Line 519: | Line 526: | ||
<xs:element ref='icon'/> | <xs:element ref='icon'/> | ||
<xs:element ref='node'/> | <xs:element ref='node'/> | ||
− | <nowiki><!-- For nodes with extended formatting content or for notes | + | <nowiki><!-- For nodes with extended formatting content or for notes. --></nowiki> |
<xs:element ref='richcontent'/> | <xs:element ref='richcontent'/> | ||
<xs:element ref='attribute_layout'/> | <xs:element ref='attribute_layout'/> | ||
Line 527: | Line 534: | ||
|- | |- | ||
| | | | ||
− | <xs:attribute name='BACKGROUND_COLOR' type='xs:string' use='optional'/> | + | <xs:attribute name='BACKGROUND_COLOR' |
+ | type='xs:string' use='optional'/> | ||
| Replaced by attribute <tt>draw:fill-color="#rrggbb"</tt> | | Replaced by attribute <tt>draw:fill-color="#rrggbb"</tt> | ||
|- | |- | ||
Line 543: | Line 551: | ||
</xs:simpleType> | </xs:simpleType> | ||
</xs:attribute> | </xs:attribute> | ||
− | | Replaced by attribute <tt>node:folded="false|true"</tt> | + | | Replaced by attribute <tt>node:folded="false<nowiki>|</nowiki>true"</tt> |
|- | |- | ||
− | | | + | | |
<xs:attribute name='ID' type='xs:ID' use='optional'/> | <xs:attribute name='ID' type='xs:ID' use='optional'/> | ||
| Replaced by attribute <tt>xml:id="ID"</tt> | | Replaced by attribute <tt>xml:id="ID"</tt> | ||
|- | |- | ||
− | | | + | | |
<xs:attribute name='LINK' type='xs:string' use='optional'/> | <xs:attribute name='LINK' type='xs:string' use='optional'/> | ||
| Replaced by attribute <tt>xlink:href="URL"</tt> | | Replaced by attribute <tt>xlink:href="URL"</tt> | ||
|- | |- | ||
− | | | + | | |
<xs:attribute name='POSITION' use='optional'> | <xs:attribute name='POSITION' use='optional'> | ||
<xs:simpleType> | <xs:simpleType> | ||
Line 562: | Line 570: | ||
</xs:simpleType> | </xs:simpleType> | ||
</xs:attribute> | </xs:attribute> | ||
− | | Replaced by attribute <tt>node:side="left|right"</tt> | + | | Replaced by attribute <tt>node:side="left<nowiki>|</nowiki>right"</tt> |
|- | |- | ||
− | | | + | | |
<xs:attribute name='STYLE' type='xs:string' use='optional'/> | <xs:attribute name='STYLE' type='xs:string' use='optional'/> | ||
− | | Replaced by attribute <tt>draw:style="fork|bubble"</tt> | + | | Replaced by attribute <tt>draw:style="fork<nowiki>|</nowiki>bubble"</tt> |
|- | |- | ||
− | | | + | | |
<xs:attribute name='TEXT' type='xs:string' use='optional'/> | <xs:attribute name='TEXT' type='xs:string' use='optional'/> | ||
| Obsolete. | | Obsolete. | ||
|- | |- | ||
− | | | + | | |
<xs:attribute name='CREATED' type='xs:integer' use='optional'/> | <xs:attribute name='CREATED' type='xs:integer' use='optional'/> | ||
<xs:attribute name='MODIFIED' type='xs:integer' use='optional'/> | <xs:attribute name='MODIFIED' type='xs:integer' use='optional'/> | ||
Line 578: | Line 586: | ||
;Note:the 'dateTime' format is normally according to [http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/#isoformats ISO8601] instead of the current UN*X-like number of seconds. '''''TBD''''' - To Be Discussed. | ;Note:the 'dateTime' format is normally according to [http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/#isoformats ISO8601] instead of the current UN*X-like number of seconds. '''''TBD''''' - To Be Discussed. | ||
|- | |- | ||
− | | | + | | |
<xs:attribute name='HGAP' type='xs:integer' use='optional'/> | <xs:attribute name='HGAP' type='xs:integer' use='optional'/> | ||
<xs:attribute name='VGAP' type='xs:integer' use='optional'/> | <xs:attribute name='VGAP' type='xs:integer' use='optional'/> | ||
Line 584: | Line 592: | ||
| Replaced respectively by attributes <tt>node:margin-horizontal="integer"</tt>, <tt>node:margin-vertical="integer"</tt> and <tt>node:shift-vertical="integer"</tt> | | Replaced respectively by attributes <tt>node:margin-horizontal="integer"</tt>, <tt>node:margin-vertical="integer"</tt> and <tt>node:shift-vertical="integer"</tt> | ||
|- | |- | ||
− | | | + | | |
− | <xs:attribute name='ENCRYPTED_CONTENT' type='xs:string' use='optional'/> | + | <xs:attribute name='ENCRYPTED_CONTENT' |
− | | Replaced by attribute <tt>node:encrypted="false|true"</tt> | + | type='xs:string' use='optional'/> |
+ | | Replaced by attribute <tt>node:encrypted="false<nowiki>|</nowiki>true"</tt> | ||
|- | |- | ||
− | | | + | | |
</xs:complexType> | </xs:complexType> | ||
</xs:element> | </xs:element> | ||
</xs:schema> | </xs:schema> | ||
− | | | + | | |
|} | |} | ||
[[Category:Developer_Documentation]] | [[Category:Developer_Documentation]] |
Revision as of 21:43, 28 August 2010
Original FreeMind File Format
The original FreeMind format was never described completely formally, but there is some documentation:
- Freeplane's file format is described in the Wiki.
- There is a schema validation in SVN (integration branch), with a latest revision.
- Note
- the above documentation is outdated in regard to elements introduced by Freeplane, like connector labels, attributes, scripts, user icons and (scalable) images embedded in the map.
Freeplane's version of it
The following schema takes the schema pointed at in the previous chapter and completes it with Freeplane specific extensions (in bold for easy identification):
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> <xs:element name='Parameters'> <xs:complexType> <!--Is the time management plugin.--> <xs:attribute name='REMINDUSERAT' type='xs:integer' use='optional'/> </xs:complexType> </xs:element> <!--Used for node notes.--> <xs:element name='text'> <xs:complexType/> </xs:element> <!-- BEGIN ATTRIBUTES --> <xs:element name='attribute_value'> <xs:complexType> <xs:attribute name='VALUE' type='xs:string' use='required'/> </xs:complexType> </xs:element> <xs:element name='attribute_name'> <xs:complexType> <xs:choice minOccurs='0' maxOccurs='unbounded'> <xs:element ref='attribute_value'/> </xs:choice> <xs:attribute name='NAME' type='xs:string' use='required'/> <xs:attribute name='MANUAL' type='xs:boolean' use='optional' /> <xs:attribute name='RESTRICTED' type='xs:boolean' use='optional' /> <xs:attribute name='VISIBLE' type='xs:boolean' use='optional' /> </xs:complexType> </xs:element> <xs:element name='attribute_registry'> <xs:complexType> <xs:choice minOccurs='0' maxOccurs='unbounded'> <xs:element ref='attribute_name'/> </xs:choice> <xs:attribute name='SHOW_ATTRIBUTES' use='optional'> <xs:simpleType> <xs:restriction base='xs:string'> <xs:enumeration value='selected'/> <xs:enumeration value='hide'/> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:complexType> </xs:element> <xs:element name='attribute_layout'> <xs:complexType> <xs:attribute name='NAME_WIDTH' type='xs:integer' use='optional'/> <xs:attribute name='VALUE_WIDTH' type='xs:integer' use='optional'/> </xs:complexType> </xs:element> <xs:element name='attribute'> <xs:complexType> <xs:attribute name='NAME' type='xs:string' use='required'/> <xs:attribute name='VALUE' type='xs:string' use='required'/> </xs:complexType> </xs:element> <!-- END ATTRIBUTES --> <xs:element name='arrowlink'> <xs:complexType> <xs:attribute name='COLOR' type='xs:string' use='optional'/> <xs:attribute name='DESTINATION' type='xs:string' use='required'/> <xs:attribute name='ENDARROW' type='xs:string' use='optional'/> <xs:attribute name='ENDINCLINATION' type='xs:string' use='optional'/> <xs:attribute name='ID' type='xs:string' use='optional'/> <xs:attribute name='STARTARROW' type='xs:string' use='optional'/> <xs:attribute name='STARTINCLINATION' type='xs:string' use='optional'/> <xs:attribute name='SOURCE_LABEL' type='xs:string' use='optional'/> <xs:attribute name='MIDDLE_LABEL' type='xs:string' use='optional'/> <xs:attribute name='TARGET_LABEL' type='xs:string' use='optional'/> <xs:attribute name='EDGE_LIKE' type='xs:boolean' use='optional'/> </xs:complexType> </xs:element> <xs:element name='cloud'> <xs:complexType> <xs:attribute name='COLOR' type='xs:string' use='optional'/> <xs:attribute name='WIDTH' type='xs:integer' use='optional'/> </xs:complexType> </xs:element> <xs:element name='edge'> <xs:complexType> <xs:attribute name='COLOR' type='xs:string' use='optional'/> <xs:attribute name='STYLE' type='xs:string' use='optional'/> <xs:attribute name='WIDTH' type='xs:string' use='optional'/> </xs:complexType> </xs:element> <xs:element name='font'> <xs:complexType> <xs:attribute name='BOLD' use='optional'> <xs:simpleType> <xs:restriction base='xs:string'> <xs:enumeration value='true'/> <xs:enumeration value='false'/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name='ITALIC' use='optional'> <xs:simpleType> <xs:restriction base='xs:string'> <xs:enumeration value='true'/> <xs:enumeration value='false'/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name='NAME' type='xs:string' use='optional'/> <xs:attribute name='SIZE' type='xs:integer' use='optional'/> </xs:complexType> </xs:element> <xs:element name='hook'> <xs:complexType> <xs:sequence> <xs:element ref='Parameters' minOccurs='0' maxOccurs='1'/> <xs:element ref='text' minOccurs='0' maxOccurs='1'/> </xs:sequence> <xs:attribute name='NAME' type='xs:string' use='required'/> <!-- for embedded images NAME="ExternalObject" --> <xs:attribute name='URI' type='xs:anyURI' use='optional'/> <xs:attribute name='SIZE' type='xs:decimal' use='optional'/> <!-- for map config info NAME="MapStyle" --> <xs:attribute name='max_node_width' type='xs:integer' use='optional'/> <xs:attribute name='zoom' type='xs:decimal' use='optional'/> <!-- for equations NAME="plugins/latex/LatexNodeHook.properties" --> <xs:attribute name='EQUATION' type='xs:string' use='optional'/> </xs:complexType> </xs:element> <xs:element name='icon'> <xs:complexType> <xs:attribute name='BUILTIN' type='xs:string' use='required'/> </xs:complexType> </xs:element> <xs:element name='html'> <xs:complexType> <xs:sequence> <!--Anything that is valid XML, but should be http://www.w3.org/1999/xhtml --> <xs:any namespace="##any" minOccurs="0" maxOccurs="unbounded" processContents="skip"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name='richcontent'> <xs:complexType> <!-- And contains XHTML as unique child:--> <xs:sequence> <xs:element ref='html' minOccurs='1' maxOccurs='1'/> </xs:sequence> <!--Currently, only NODE or NOTE is allowed.--> <xs:attribute name='TYPE' use='required'> <xs:simpleType> <xs:restriction base='xs:string'> <xs:enumeration value='NODE'/> <xs:enumeration value='NOTE'/> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:complexType> </xs:element> <xs:element name='map'> <xs:complexType> <xs:sequence> <xs:element ref='attribute_registry' minOccurs='0' maxOccurs='1'/> <xs:element ref='node' minOccurs='1' maxOccurs='1' /> </xs:sequence> <xs:attribute name='version' type='xs:string' use='required'/> </xs:complexType> </xs:element> <xs:element name='node'> <xs:complexType> <xs:choice minOccurs='0' maxOccurs='unbounded'> <xs:element ref='arrowlink'/> <xs:element ref='cloud'/> <xs:element ref='edge'/> <xs:element ref='font'/> <xs:element ref='hook'/> <xs:element ref='icon'/> <xs:element ref='node'/> <!-- For nodes with extended formatting content or for notes to nodes. --> <xs:element ref='richcontent'/> <xs:element ref='attribute_layout'/> <xs:element ref='attribute'/> </xs:choice> <xs:attribute name='BACKGROUND_COLOR' type='xs:string' use='optional'/> <xs:attribute name='COLOR' type='xs:string' use='optional'/> <xs:attribute name='FOLDED' use='optional'> <xs:simpleType> <xs:restriction base='xs:string'> <xs:enumeration value='true'/> <xs:enumeration value='false'/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name='ID' type='xs:ID' use='optional'/> <xs:attribute name='LINK' type='xs:string' use='optional'/> <xs:attribute name='POSITION' use='optional'> <xs:simpleType> <xs:restriction base='xs:string'> <xs:enumeration value='left'/> <xs:enumeration value='right'/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name='STYLE' type='xs:string' use='optional'/> <xs:attribute name='TEXT' type='xs:string' use='optional'/> <xs:attribute name='CREATED' type='xs:integer' use='optional'/> <xs:attribute name='MODIFIED' type='xs:integer' use='optional'/> <xs:attribute name='HGAP' type='xs:integer' use='optional'/> <xs:attribute name='VGAP' type='xs:integer' use='optional'/> <xs:attribute name='VSHIFT' type='xs:integer' use='optional'/> <xs:attribute name='ENCRYPTED_CONTENT' type='xs:string' use='optional'/> </xs:complexType> </xs:element> </xs:schema>
Mapping between old and new format
WiP
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> |
not relevant |
<xs:element name='Parameters'> <xs:complexType> <!--Is the time management plugin.--> <xs:attribute name='REMINDUSERAT' type='xs:integer' use='optional'/> </xs:complexType> </xs:element> |
Replaced by parameter node:reminder="dateTime" to node:node (this limits the number of reminders to one per node but Freeplane can't anyway handle more than one). |
<!--Used for node notes.--> <xs:element name='text'> <xs:complexType/> </xs:element> |
Obsolete - all nodes are "rich" |
<!-- BEGIN ATTRIBUTES --> <xs:element name='attribute_value'> <xs:complexType> <xs:attribute name='VALUE' type='xs:string' use='required'/> </xs:complexType> </xs:element> <xs:element name='attribute_name'> <xs:complexType> <xs:choice minOccurs='0' maxOccurs='unbounded'> <xs:element ref='attribute_value'/> </xs:choice> <xs:attribute name='NAME' type='xs:string' use='required'/> <xs:attribute name='MANUAL' type='xs:boolean' use='optional' /> <xs:attribute name='RESTRICTED' type='xs:boolean' use='optional' /> <xs:attribute name='VISIBLE' type='xs:boolean' use='optional' /> </xs:complexType> </xs:element> <xs:element name='attribute_registry'> <xs:complexType> <xs:choice minOccurs='0' maxOccurs='unbounded'> <xs:element ref='attribute_name'/> </xs:choice> <xs:attribute name='SHOW_ATTRIBUTES' use='optional'> <xs:simpleType> <xs:restriction base='xs:string'> <xs:enumeration value='selected'/> <xs:enumeration value='hide'/> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:complexType> </xs:element> <xs:element name='attribute_layout'> <xs:complexType> <xs:attribute name='NAME_WIDTH' type='xs:integer' use='optional'/> <xs:attribute name='VALUE_WIDTH' type='xs:integer' use='optional'/> </xs:complexType> </xs:element> <xs:element name='attribute'> <xs:complexType> <xs:attribute name='NAME' type='xs:string' use='required'/> <xs:attribute name='VALUE' type='xs:string' use='required'/> </xs:complexType> </xs:element> <!-- END ATTRIBUTES --> |
TBD - attributes are still to be done |
<xs:element name='arrowlink'> <xs:complexType> <xs:attribute name='COLOR' type='xs:string' use='optional'/> <xs:attribute name='DESTINATION' type='xs:string' use='required'/> <xs:attribute name='ENDARROW' type='xs:string' use='optional'/> <xs:attribute name='ENDINCLINATION' type='xs:string' use='optional'/> <xs:attribute name='ID' type='xs:string' use='optional'/> <xs:attribute name='STARTARROW' type='xs:string' use='optional'/> <xs:attribute name='STARTINCLINATION' type='xs:string' use='optional'/> <xs:attribute name='SOURCE_LABEL' type='xs:string' use='optional'/> <xs:attribute name='MIDDLE_LABEL' type='xs:string' use='optional'/> <xs:attribute name='TARGET_LABEL' type='xs:string' use='optional'/> <xs:attribute name='EDGE_LIKE' type='xs:boolean' use='optional'/> </xs:complexType> </xs:element> |
Replaced by element <draw:connector ... /> with attributes
draw:start-shape="ID" draw:color="#rrggbb" draw:end-shape="ID" map:start-arrow="true|false" map:end-arrow="true|false" xml:id="ID" map:start-inclination="int;int;" map:end-inclination="int;int;" draw:style="normal|edge-like" And with possible sub-nodes: <map:start-label>...</map:start-label> <svg:title>...</svg:title> (or svg:desc?!) <map:end-label>...</map:end-label> |
<xs:element name='cloud'> <xs:complexType> <xs:attribute name='COLOR' type='xs:string' use='optional'/> <xs:attribute name='WIDTH' type='xs:integer' use='optional'/> </xs:complexType> </xs:element> |
Replaced by element <node:cloud ... /> with attributes
draw:color="#rrggbb" (WIDTH parameter isn't used currently and is always 0) |
<xs:element name='edge'> <xs:complexType> <xs:attribute name='COLOR' type='xs:string' use='optional'/> <xs:attribute name='STYLE' type='xs:string' use='optional'/> <xs:attribute name='WIDTH' type='xs:string' use='optional'/> </xs:complexType> </xs:element> |
Replaced by element <node:edge ... /> with attributes
draw:color="#rrggbb" draw:style="linear|sharp-linear|bezier|sharp-bezier|horizontal" draw:stroke="solid|none" svg:stroke-width="length" (Freeplane uses only integers)
|
<xs:element name='font'> <xs:complexType> <xs:attribute name='BOLD' use='optional'> <xs:simpleType> <xs:restriction base='xs:string'> <xs:enumeration value='true'/> <xs:enumeration value='false'/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name='ITALIC' use='optional'> <xs:simpleType> <xs:restriction base='xs:string'> <xs:enumeration value='true'/> <xs:enumeration value='false'/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name='NAME' type='xs:string' use='optional'/> <xs:attribute name='SIZE' type='xs:integer' use='optional'/> </xs:complexType> </xs:element> |
Replaced by element <style:text-properties ... /> with attributes
fo:color="#rrggbb" fo:font-weight="normal|bold" fo:font-style="normal|italic" fo:font-family="name of the font" fo:font-size="integer"
|
<xs:element name='hook'> <xs:complexType> <xs:sequence> <xs:element ref='Parameters' minOccurs='0' maxOccurs='1'/> <xs:element ref='text' minOccurs='0' maxOccurs='1'/> </xs:sequence> <xs:attribute name='NAME' type='xs:string' use='required'/> <!-- for embedded images NAME="ExternalObject" --> <xs:attribute name='URI' type='xs:anyURI' use='optional'/> <xs:attribute name='SIZE' type='xs:decimal' use='optional'/> |
Replaced by the following element:
<draw:frame draw:transform="scale(sx [sy])"> <draw:image xlink:href="URL"/> </draw:frame>
|
<!-- for map config info NAME="MapStyle" --> <xs:attribute name='max_node_width' type='xs:integer' use='optional'/> <xs:attribute name='zoom' type='xs:decimal' use='optional'/> |
Replaced by attributes to the element <map:map>:
node:max-width="integer" map:zoom="percentage" |
<!-- for equations NAME="plugins/latex/LatexNodeHook.properties" --> <xs:attribute name='EQUATION' type='xs:string' use='optional'/> </xs:complexType> </xs:element> |
Plugin hooks (like Latex) are replaced by an element <node:content> with a corresponding namespace definition, like in:
<node:content xmlns:latex="plugins/latex/LatexNodeHook.properties"> <latex:equation> <![CDATA[some equation in Latex]]> </latex:equation> </node:content> As shown here, in the case of non-XML dialect, the use of a CDATA section is highly recommended. |
<xs:element name='icon'> <xs:complexType> <xs:attribute name='BUILTIN' type='xs:string' use='required'/> </xs:complexType> </xs:element> |
Replaced by element <node:icon ... /> with attributes
node:icon-name="..." (a string) |
<xs:element name='html'> <xs:complexType> <xs:sequence> <!--Anything that is valid XML, but should be http://www.w3.org/1999/xhtml --> <xs:any namespace="##any" minOccurs="0" maxOccurs="unbounded" processContents="skip"/> </xs:sequence> </xs:complexType> </xs:element> |
Obsolete, as all nodes are rich content... |
<xs:element name='richcontent'> <xs:complexType> <!-- And contains XHTML as unique child:--> <xs:sequence> <xs:element ref='html' minOccurs='1' maxOccurs='1'/> </xs:sequence> <!--Currently, only NODE or NOTE is allowed.--> <xs:attribute name='TYPE' use='required'> <xs:simpleType> <xs:restriction base='xs:string'> <xs:enumeration value='NODE'/> <xs:enumeration value='NOTE'/> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:complexType> </xs:element> |
Replaced by either
<node:content xmlns:xhtml="http://www.w3.org/1999/xhtml"> <xhtml:body> ... </xhtml:body> or <office:annotation xmlns:xhtml="http://www.w3.org/1999/xhtml"> <xhtml:body> ... </xhtml:body>
|
<xs:element name='map'> <xs:complexType> <xs:sequence> <xs:element ref='attribute_registry' minOccurs='0' maxOccurs='1'/> <xs:element ref='node' minOccurs='1' maxOccurs='1' /> </xs:sequence> <xs:attribute name='version' type='xs:string' use='required'/> </xs:complexType> </xs:element> |
Replaced by element <map:map> |
<xs:element name='node'> |
Replaced by element <node:node> |
<xs:complexType> <xs:choice minOccurs='0' maxOccurs='unbounded'> <xs:element ref='arrowlink'/> <xs:element ref='cloud'/> <xs:element ref='edge'/> <xs:element ref='font'/> <xs:element ref='hook'/> <xs:element ref='icon'/> <xs:element ref='node'/> <!-- For nodes with extended formatting content or for notes. --> <xs:element ref='richcontent'/> <xs:element ref='attribute_layout'/> <xs:element ref='attribute'/> </xs:choice> |
Mapped obviously as described above... |
<xs:attribute name='BACKGROUND_COLOR' type='xs:string' use='optional'/> |
Replaced by attribute draw:fill-color="#rrggbb" |
<xs:attribute name='COLOR' type='xs:string' use='optional'/> |
It's actually the color of the font and has been moved to the corresponding element <style:text-properties ... />. |
<xs:attribute name='FOLDED' use='optional'> <xs:simpleType> <xs:restriction base='xs:string'> <xs:enumeration value='true'/> <xs:enumeration value='false'/> </xs:restriction> </xs:simpleType> </xs:attribute> |
Replaced by attribute node:folded="false|true" |
<xs:attribute name='ID' type='xs:ID' use='optional'/> |
Replaced by attribute xml:id="ID" |
<xs:attribute name='LINK' type='xs:string' use='optional'/> |
Replaced by attribute xlink:href="URL" |
<xs:attribute name='POSITION' use='optional'> <xs:simpleType> <xs:restriction base='xs:string'> <xs:enumeration value='left'/> <xs:enumeration value='right'/> </xs:restriction> </xs:simpleType> </xs:attribute> |
Replaced by attribute node:side="left|right" |
<xs:attribute name='STYLE' type='xs:string' use='optional'/> |
Replaced by attribute draw:style="fork|bubble" |
<xs:attribute name='TEXT' type='xs:string' use='optional'/> |
Obsolete. |
<xs:attribute name='CREATED' type='xs:integer' use='optional'/> <xs:attribute name='MODIFIED' type='xs:integer' use='optional'/> |
Replaced respectively by attributes node:inserted="dateTime" and node:modified="dateTime"
|
<xs:attribute name='HGAP' type='xs:integer' use='optional'/> <xs:attribute name='VGAP' type='xs:integer' use='optional'/> <xs:attribute name='VSHIFT' type='xs:integer' use='optional'/> |
Replaced respectively by attributes node:margin-horizontal="integer", node:margin-vertical="integer" and node:shift-vertical="integer" |
<xs:attribute name='ENCRYPTED_CONTENT' type='xs:string' use='optional'/> |
Replaced by attribute node:encrypted="false|true" |
</xs:complexType> </xs:element> </xs:schema> |