plugin.rnc 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. plugin =
  2. element plugin {
  3. attribute id { xsd:NCName },
  4. (feature | transtype | extension-point | require | metadata | template)*
  5. }
  6. feature =
  7. element feature {
  8. attribute extension { xsd:NCName },
  9. (attribute file { text }
  10. | (attribute value { text },
  11. attribute type { "file" | "text" }?))?,
  12. anyElement*
  13. }
  14. transtype =
  15. element transtype {
  16. attribute name {
  17. list { xsd:NCName+ }
  18. },
  19. attribute desc { text }?,
  20. attribute abstract { xsd:boolean }?,
  21. attribute extends {
  22. list { xsd:NCName+ }
  23. }?,
  24. param*
  25. }
  26. param =
  27. element param {
  28. attribute required { xsd:boolean }?,
  29. attribute deprecated { xsd:boolean }?,
  30. attribute name {
  31. list { xsd:NCName+ }
  32. }?,
  33. attribute desc { text }?,
  34. param.val
  35. }
  36. param.val |=
  37. attribute type { "enum" },
  38. val*
  39. param.val |=
  40. attribute type { "string" },
  41. val*
  42. param.val |= attribute type { "file" | "dir" }
  43. val =
  44. element val {
  45. attribute desc { text }?,
  46. attribute default { xsd:boolean }?,
  47. text
  48. }
  49. extension-point =
  50. element extension-point {
  51. attribute id { xsd:NCName },
  52. attribute name { text }
  53. }
  54. require =
  55. element require {
  56. attribute plugin { xsd:NCName },
  57. attribute importance { "required" | "optional" }?
  58. }
  59. metadata =
  60. element metadata {
  61. attribute type { xsd:NCName },
  62. attribute value { text }
  63. }
  64. template =
  65. element template {
  66. attribute file { text }
  67. }
  68. anyElement =
  69. element * {
  70. (attribute * { text }
  71. | text
  72. | anyElement)*
  73. }
  74. start = plugin