Difference between revisions of "Talk:INX extension descriptor format"
Jump to navigation
Jump to search
| Line 4: | Line 4: | ||
:Additional information (as far as I could find it ;) ): [http://thread.gmane.org/gmane.comp.graphics.inkscape.devel/26105 Subject: Extensions (inx) files] (inkscape-devel mailing list) | :Additional information (as far as I could find it ;) ): [http://thread.gmane.org/gmane.comp.graphics.inkscape.devel/26105 Subject: Extensions (inx) files] (inkscape-devel mailing list) | ||
--[[User:~suv|~suv]] 06:46, 28 August 2010 (UTC) | --[[User:~suv|~suv]] 06:46, 28 August 2010 (UTC) | ||
== Relax NG Compact == | |||
This is what I get when I convert [http://bazaar.launchpad.net/~inkscape.dev/inkscape/trunk/annotate/head%3A/share/extensions/inkscape.extension.rng RELAX NG Schema] to Relax NG Compact with Trang. Is this the right version for the current scheme? --[[User:Flor|Flor]] 18:29, 1 November 2010 (UTC) | |||
<small><pre> | |||
default namespace = | |||
"http://www.inkscape.org/namespace/inkscape/extension" | |||
start = | |||
element inkscape-extension { | |||
element _name { text }, | |||
element id { text }, | |||
element dependency { | |||
attribute type { inx.dependency-type.values }, | |||
attribute location { inx.location.values }?, | |||
attribute _description { text }?, | |||
text | |||
}*, | |||
(inx.parameters | |||
| element param { | |||
attribute name { text }, | |||
attribute type { "notebook" }, | |||
element page { | |||
attribute name { text }, | |||
attribute _gui-text { text }, | |||
inx.parameters+ | |||
}+ | |||
})*, | |||
(element input { | |||
inx.io.common, | |||
element output_extension { text }? | |||
} | |||
| element output { | |||
inx.io.common, | |||
element dataloss { xsd:boolean }? | |||
} | |||
| element effect { | |||
attribute needs-document { xsd:boolean }?, | |||
attribute needs-live-preview { xsd:boolean }?, | |||
element object-type { | |||
xsd:token "all" | xsd:token "path" | xsd:token "rect" | |||
}, | |||
element effects-menu { | |||
attribute hidden { xsd:boolean "true" } | |||
| element submenu { | |||
attribute _name { text }, | |||
empty | |||
} | |||
} | |||
} | |||
| element path-effect { empty } | |||
| element print { empty }), | |||
(element script { | |||
element command { | |||
inx.reldir.attr, | |||
attribute interpreter { "python" | "perl" }?, | |||
text | |||
}, | |||
element helper_extension { xsd:NMTOKEN }?, | |||
element check { inx.reldir.attr, text }* | |||
} | |||
| element xslt { | |||
element file { inx.reldir.attr, text } | |||
} | |||
| element plugin { | |||
element name { text } | |||
}) | |||
} | |||
inx.reldir.attr = attribute reldir { inx.location.values } | |||
inx.location.values = "extensions" | "path" | "plugins" | |||
inx.dependency-type.values = "extension" | "executable" | "plugin" | |||
inx.io.common = | |||
element extension { text }, | |||
element mimetype { text }, | |||
element _filetypename { text }?, | |||
element _filetypetooltip { text }? | |||
inx.parameter = | |||
attribute name { xsd:token }, | |||
attribute gui-hidden { xsd:boolean }?, | |||
attribute _gui-text { text }?, | |||
((attribute type { "int" }, | |||
attribute min { xsd:integer }?, | |||
attribute max { xsd:integer }?, | |||
(empty | xsd:integer)) | |||
| (attribute type { "float" }, | |||
attribute precision { xsd:integer }?, | |||
attribute min { xsd:float }?, | |||
attribute max { xsd:float }?, | |||
xsd:float) | |||
| (attribute type { "boolean" }, | |||
xsd:boolean) | |||
| (attribute type { "string" }, | |||
attribute max_length { xsd:integer }?, | |||
(empty | text)) | |||
| (attribute type { "description" }, | |||
text) | |||
| (attribute type { "enum" }, | |||
(element _item { inx.parameter.enum.item } | |||
| element item { inx.parameter.enum.item })+) | |||
| (attribute type { "optiongroup" }, | |||
attribute appearance { "minimal" }?, | |||
(element option { inx.parameter.optiongroup.option } | |||
| element _option { inx.parameter.optiongroup.option })+)) | |||
inx.parameters = | |||
element param { inx.parameter } | |||
| element _param { inx.parameter } | |||
inx.parameter.enum.item = | |||
attribute value { text }, | |||
xsd:token | |||
inx.parameter.optiongroup.option = | |||
attribute value { text }?, | |||
text | |||
</pre></small> | |||
Revision as of 18:29, 1 November 2010
- How does the created Relax NG Compact (RNC) example differ/compare to the RELAX NG Schema in trunk?
The Example INX file is outdated - the format was slightly changed in 0.47, see revisions 5472, 5946 and 5947I added the namespace etc. Does that cover all the changes? --Flor 18:06, 1 November 2010 (UTC)
- Additional information (as far as I could find it ;) ): Subject: Extensions (inx) files (inkscape-devel mailing list)
--~suv 06:46, 28 August 2010 (UTC)
Relax NG Compact
This is what I get when I convert RELAX NG Schema to Relax NG Compact with Trang. Is this the right version for the current scheme? --Flor 18:29, 1 November 2010 (UTC)
default namespace =
"http://www.inkscape.org/namespace/inkscape/extension"
start =
element inkscape-extension {
element _name { text },
element id { text },
element dependency {
attribute type { inx.dependency-type.values },
attribute location { inx.location.values }?,
attribute _description { text }?,
text
}*,
(inx.parameters
| element param {
attribute name { text },
attribute type { "notebook" },
element page {
attribute name { text },
attribute _gui-text { text },
inx.parameters+
}+
})*,
(element input {
inx.io.common,
element output_extension { text }?
}
| element output {
inx.io.common,
element dataloss { xsd:boolean }?
}
| element effect {
attribute needs-document { xsd:boolean }?,
attribute needs-live-preview { xsd:boolean }?,
element object-type {
xsd:token "all" | xsd:token "path" | xsd:token "rect"
},
element effects-menu {
attribute hidden { xsd:boolean "true" }
| element submenu {
attribute _name { text },
empty
}
}
}
| element path-effect { empty }
| element print { empty }),
(element script {
element command {
inx.reldir.attr,
attribute interpreter { "python" | "perl" }?,
text
},
element helper_extension { xsd:NMTOKEN }?,
element check { inx.reldir.attr, text }*
}
| element xslt {
element file { inx.reldir.attr, text }
}
| element plugin {
element name { text }
})
}
inx.reldir.attr = attribute reldir { inx.location.values }
inx.location.values = "extensions" | "path" | "plugins"
inx.dependency-type.values = "extension" | "executable" | "plugin"
inx.io.common =
element extension { text },
element mimetype { text },
element _filetypename { text }?,
element _filetypetooltip { text }?
inx.parameter =
attribute name { xsd:token },
attribute gui-hidden { xsd:boolean }?,
attribute _gui-text { text }?,
((attribute type { "int" },
attribute min { xsd:integer }?,
attribute max { xsd:integer }?,
(empty | xsd:integer))
| (attribute type { "float" },
attribute precision { xsd:integer }?,
attribute min { xsd:float }?,
attribute max { xsd:float }?,
xsd:float)
| (attribute type { "boolean" },
xsd:boolean)
| (attribute type { "string" },
attribute max_length { xsd:integer }?,
(empty | text))
| (attribute type { "description" },
text)
| (attribute type { "enum" },
(element _item { inx.parameter.enum.item }
| element item { inx.parameter.enum.item })+)
| (attribute type { "optiongroup" },
attribute appearance { "minimal" }?,
(element option { inx.parameter.optiongroup.option }
| element _option { inx.parameter.optiongroup.option })+))
inx.parameters =
element param { inx.parameter }
| element _param { inx.parameter }
inx.parameter.enum.item =
attribute value { text },
xsd:token
inx.parameter.optiongroup.option =
attribute value { text }?,
text