Fr?d?ric Boone wrote:
> OK I realize my question was not very clear.
> Here is the way I proceed (maybe this is not the right way):
> 
> * I created a addon directory in .xxe/addon called "astromodel". I
> attach a zip of this directory if you want to try by yourself.
> 
> * I open XXE
> 
> * I go to new-->astromodel-->template
> 
> * then I get the styled editor corresponding to the  xmldata.css that
> you gave me (in fact astromodel.css is just a copy)
> 
> * at the end of the editor there is a param with xsi:type=ParamFloat
> 
> * Now to add a new parameter after this one I click on the icon at the
> top of the top right window called "Edit"  or at the +> icon in this
> parameter.
> 
> * Clicking on one of these icons opens a menu with only one choice,
> namely "param"
> 
> Now what I would like when I click on one of these icons is a menu with
> ParamFloat
> ParamInt etc...
> and param should not appear in this menu.
> 

You have declared element "param" to be of the "ParamType" type, which
is an abstract type. Therefore, when you insert a "param" element in
XXE, it inserts an unusable, invalid, "param" element.

In order to make the newly inserted "param" element usable one needs to:
[1] Specify an xsi:type attribute by hand using the Attribute tool.
[2] Let's say that xsi:type="ParamInt". Then you need to insert by hand
a "default" child element in order to fix the validity of the newly
inserted "param" element.

Very tedious indeed. However there is no bug here: XXE works as expected.

Given your schema, the only way to improve things, is to define several
"param" *element* *templates* (see
http://www.xmlmind.com/xmleditor/_distrib/doc/configure/elementTemplate.html),
each "param" element template having its one xsi:type and a valid content.

See in attached XXE configuration file:
---
  <cfg:elementTemplate name="float">
    <param xmlns="astromodelns" xsi:type="ParamFloat">
      <name></name>
      <varName></varName>
      <unit></unit>
      <description></description>
      <default>0</default>
    </param>
  </cfg:elementTemplate>

  <cfg:elementTemplate name="int">
    <param xmlns="astromodelns" xsi:type="ParamInt">
      <name></name>
      <varName></varName>
      <unit></unit>
      <description></description>
      <default>0</default>
    </param>
  </cfg:elementTemplate>

  <cfg:elementTemplate name="string">
    <param xmlns="astromodelns" xsi:type="ParamString">
      <name></name>
      <varName></varName>
      <unit></unit>
      <description></description>
      <default></default>
    </param>
  </cfg:elementTemplate>

  <cfg:elementTemplate name="coor">
    <param xmlns="astromodelns" xsi:type="ParamCoor">
      <name></name>
      <varName></varName>
      <unit></unit>
      <description></description>
      <default>00:00:00</default>
    </param>
  </cfg:elementTemplate>
---
[[[NOTE: Add attribute selectable="override" to the first
cfg:elementTemplate after XXE v3.6 is released. A bug prevents custom
element templates having an xsi:type attribute and intended to replace
the default, automatically generated, element template, from working in
v3.5.2.]]]

Alternatively, you may consider changing your schema and defining a
substitution group containing several param elements "intparam",
"floatparam", "stringparam", etc. Let's say that substitution groups are
much more XXE friendly than xsi:type attributes (truly one of the W3C
XML Schema horrors).


---
PS:
Remainder: as of XXE v3.6, support requests related to configuring XXE
will be reserved to Professional Edition customers. More information in
http://www.xmlmind.com/xmleditor/std_to_perso.html

-------------- next part --------------
A non-text attachment was scrubbed...
Name: astromodel.xxe
Type: text/xml
Size: 1924 bytes
Desc: not available
Url : 
http://www.xmlmind.com/pipermail/xmleditor-support/attachments/20070410/23a423bf/attachment.xml
 

Reply via email to