Sean Russell wrote:
> 
> 1) If you don't, you'll get limited acceptance.  You may draw TeX users, or
> the XML nuts like myself... but you won't get anybody converting from Word.
> Believe me, I tried at my last contract to get people to use XML as a
> standard document format so that we could manage critical documents
> centrally.  It was impossible to get buy-in, because of the relative
> difficulty of the existing XML document-oriented editors (Morphon, at the
> time :-/).  XXE is loads better, but knowing that group of people, I don't
> think it is quite to the comfort level where they'd accept it as a substitute
> 
> Notice that I do believe that, even if it isn't a "Word" experience, they'll
> be willing to cross over.  Many professional end users, I've found, aren't
> sticklers for having a Word clone if you can argue the benefits of a better
> document format, such as XML docbook -- as long as the tool is sufficiently
> easy to use.  If it is painful to use the tool, only masochists will use the
> tool.  Again, these people don't care about the fact that the document is
> docbook, except peripherally -- they just want to be productive and write
> documents.
> 
> Another assumption I'm making for this point is that you even care about
> getting average users to use XXE.  You may not, which is your prerogative,
> and in which case, this point is moot.

Our strategy for making XXE easy to use for the average user is to let
``power users'' customize it for specific XML applications, not to add
more generic commands or to make generic commands more powerful.

Customization means specifying macro-commands, adding custom key and/or
mouse bindings, popup menus, menu bar menu, toolbar icons (in a
XML-application specific XXE configuration file such as
config/xhtml/xhtml.xxe).

We even want to be able to replace, the standard view of an element
(text, icon, border, color) by a custom one (Java Component implementing
simple interfaces) if this is critical to the productivity of the user.
This is beyond customization: this is specialization.

Example 1: Show a temperature attribute as an embedded thermometer. Let
the user drag the quick silver level to change the value of the
attribute.

Example 2: Embed a button in the document view which inserts (after the
element for which it is generated content) a predefined element
template.

This said, may be your idea is a great one. We need to be rejected by
average users a certain number of times (with the symptoms you describe)
before trying to implement it.



> 2) The world has more than enough tree-oriented XML editors.  XXE is a
> document-oriented editor.  I believe that this difference in perspective
> makes all the difference.  The assumption is that people are using XXE as a
> word processor.  The document structure itself is incidental.  If you could
> find a way to completely hide the document structure and maintain its
> validity, wouldn't this be valuable?  In the end, for most documents authored
> with XXE, the use is going to be in some human-readable visual display.
> 
> > > However, adding just the legal ancestors to the list
> > > I think is a reasonable compromise because the number of extra element
> > > choices will always be relatively small
> >
> > It depends on the DTD/XML Schema.
> 
> I'm only talking about adding the direct ancestors which can legally follow in
> the document.  How deep are the elements being stacked?  10?  100?  I'd be
> surprised if you could show me a /document/ oriented XML document that has a
> child that is more than 10 elements deep ... IE, count( ancestor-or-self::* )
> > 10.  I'd be /really/ surprised if you could show that this is common :-)

DocBook example: the caret is inside an emphasis element which is inside
a para element, which is inside in a section, which is inside... (but
let's stop here).

After an emphasis, you can insert (i.e. elements that would not make
your document invalid):
command
link
interface
replaceable
guiicon
quote
exceptionname
keycombo
revhistory
errorcode
structname
superscript
envar
sgmltag
cmdsynopsis
guimenuitem
symbol
fieldsynopsis
anchor
constructorsynopsis
emphasis
structfield
authorinitials
keycap
action
menuchoice
keysym
citerefentry
computeroutput
parameter
productnumber
xref
errorname
guilabel
methodsynopsis
glossterm
author
foreignphrase
email
interfacename
ooexception
varname
acronym
optional
ulink
indexterm
constant
type
option
remark
errortype
application
guibutton
inlinemediaobject
guimenu
citetitle
medialabel
wordasword
prompt
classsynopsis
trademark
footnoteref
mousebutton
userinput
function
methodname
inlinegraphic
footnote
keycode
ooclass
synopsis
returnvalue
subscript
guisubmenu
filename
hardware
funcsynopsis
destructorsynopsis
productname
inlineequation
markup
phrase
systemitem
literal
modespec
corpauthor
database
abbrev
othercredit
citation
oointerface
classname
beginpage
firstterm
token
property
olink

After the para, you can insert:
screenshot
programlisting
simpara
formalpara
blockquote
procedure
figure
cmdsynopsis
calloutlist
caution
warning
equation
example
tip
fieldsynopsis
sidebar
classsynopsis
note
constructorsynopsis
address
informalexample
qandaset
anchor
mediaobjectco
abstract
literallayout
synopsis
simplelist
mediaobject
graphicco
segmentedlist
table
destructorsynopsis
funcsynopsis
methodsynopsis
informalfigure
para
itemizedlist
bridgehead
sect2
msgset
informaltable
authorblurb
screen
graphic
screenco
orderedlist
glosslist
important
indexterm
informalequation
remark
variablelist
highlights
programlistingco
epigraph
beginpage

Yes. DocBook is a monster. Here we need a DocBook specific menu which
implements your idea but limiting it, not only to valid elements, but
also to commonly used elements.

Also note that with an XML Schema, you can have different element types
having the same element name. 

Example: the caret is inside a xyz:span, which is inside an xyz:para,
which is inside a xyz:section. (xyz denotes the prefix of the target
namespace of the schema).

Before the xyz:span (because it is first child of xyz:para), you can
insert xyz:info which is meta info about the xyz:para.

Before the xyz:para (because it is first child of xyz:section), you can
also insert xyz:info which is *totally different* meta-info about the
xyz:section.



> Now, it may be significantly time-consuming to determine which ancestors can
> be legally inserted somewhere in the document -- I don't know how you're
> doing validation internally.  However, the number of elements added to the
> list will remain small.
> 
> A better argument against my request is whether the ease-of-use benefit of
> adding this outweighs the confusion it might produce.  I don't know.  I
> believe that it would be more useful than confusing, but I don't know.

Yes. We generally experimented on ourselves (here at XMLmind) new
features of XXE by writing at least a few dozen pages, with a couple of
DTDs/XML Schema, before deciding if they were worth keeping or not. We
also used pretty slow PCs for these experiments.



> > But in the short term, we don't have the resources to experiment this
> > idea using a native implementation. Sorry.
> 
> I can understand.  'Course, you could make the source-code available and I
> could take a look at it myself ;-)

The Professional Edition (~$200) includes full source code. XXE is not
intended to be an opaque product.

Reply via email to