<questionid="arch-what"> Whatisthisprojectgoodfor? <hint> Pleaseprovideherefewlinesdescribingthetheproject, whatproblemitshouldsolve,providelinkstodocumentation, specifications,etc. </hint> </question>
-->
<answer id="arch-what">
It helps with editing XML files and supports leveraging XML in developed application.
</answer>
<!-- Question: compat-i18n
<questionid="compat-i18n"> Isyourmodulecorrectlyinternationalized? <hint> Correctinternationalizationmeansthatitobeysinstuctions at<ahref="http://www.netbeans.org/devhome/docs/i18n/index.html"> NetBeansI18Npages</a>. </hint> </question>
-->
<answer id="compat-i18n">
All but code generated by JavaCC.
</answer>
<!-- Question: compat-standards
<questionid="compat-standards"> Doesthemoduleimplementsordefinesanystandards?Isthe implementationexactoritdeviatessomehow? </question>
-->
<answer id="compat-standards">
The support implements following standards XML1.0 Recommendation, XML Schema Recommendation, XSLT Recommendation, CSS Level 2 Recommendation, DOM Level 1 Core and XML Recommendation,
SAX version2, JAXP 1.1 Specification and XML Catalog Standard.
</answer>
<!-- Question: compat-version
<questionid="compat-version"> Doesyourmoduleproperlycoexistswithearlierandfuture versions?Canyoucorrectlyreadsettings?Willfuture versionsbeabletoreadsettings? <hint> Veryhelpfulforreadingsettingsistostoreversionnumber there,sofutureversionscandecidewhetherhowtoread/convert thesettingsandolderversionscanignorethenewones. </hint> </question>
-->
<answer id="compat-version">
It uses several persistence mechanisms including Java serialization of
third party objects. It's not fully under module control.
</answer>
<questionid="deploy-jar"> DoyoudeployjustmoduleJARfile(s)orsomeotherfiles? <hint> IfyourmoduleconsistjustfromonemoduleJARfile,justconfirmthat. IfitusesmorethanoneJAR,describewheretherearelocated,how theyrefertoeachother. IfitconsistofmoduleJAR(s)andotherfiles,pleasedescribe whatistheirpurpose,whyotherfilesarenecessary.Please makesurethatinstallation/deinstallationleavesthesystem instateasitwasbeforeinstallation. </hint> </question>
-->
<answer id="deploy-jar">
It comes with several files in <tt>ext</tt>tt> area. Namely <tt>flute.jar</tt>,
<tt>sac.jar</tt>, <tt>resolver_nb.jar</tt> and <tt>xerces2.jar</tt>. SAC and
Flute should be moved to libs. Resolver and Xerces should be replaced by existing
<tt>libs</tt> sub projects.
</answer>
<questionid="deploy-packages"> Arepackagesofyourmodulemadeinaccessiblebynotdeclaringthem public? <hint> NetBeansmodulesystemallowsrestrictionofaccessrightsto publicclassesofyourmodulefromothermodules.Thisprevents unwanteddependenciesofothersonyourcodeandshouldbeused wheneverpossible(<ahref="http://www.netbeans.org/download/apis/org/openide/doc-files/upgrade.html#3.4-public-packages"> publicpackages </a>). </hint> </question>
-->
<answer id="deploy-packages"> XML tools APIs are exported. Also several experimental packages is exposed.
Openide-Module-Provides and Openide-Module-Requires guarding tokens are defined
for these.
</answer>
<!-- Question: deploy-shared
<questionid="deploy-shared"> Doyouneedtobeinstalledinsharedlocationoronlyinuserdirectory? <hint> Installationlocationshallnotmatter,ifitdoesexplainwhy. </hint> </question>
-->
<answer id="deploy-shared">
It does not matter.
</answer>
<!-- Question: exec-classloader
<questionid="exec-classloader"> Doesyourcodeusesownclassloader? <hint> Abitunusual.Pleaseexplainwhyandwhatfor. </hint> </question>
-->
<answer id="exec-classloader">
Yes, xerces2.jar is loaded by an isolatings classloader. There is strong
implementation dependency and the module can use two Xerces versions.
</answer>
<!-- Question: exec-component
<questionid="exec-component"> Isexecutionofyourcodeinfluencedby(string)property ofanyofyourcomponents? <hint> Often<code>JComponent.getClientProperty</code>,<code>Action.getValue</code> or<code>PropertyDescriptor.getValue</code>,etc.areusedtoinfluence abehaviourofsomecode.Thisofcourseformsaninterfacethatshould bedocumented.Alsoifonedependsonsomeinterfacethatanobject implements(<code>componentinstanceofRunnable</code>)thatformsan APIaswell. </hint> </question>
-->
<answer id="exec-component">
A lot of defined by Open APIs.
</answer>
<questionid="exec-reflection"> Doesyourcodeusesjava.lang.reflecttoexecutesomeothercode? <hint> ThisusuallyindicatesamissingorunsufficientAPIintheother partofthesystem.Iftheothersideisnotawareofyourdependency thiscontractcanbeeasilybroken. </hint> </question>
-->
<answer id="exec-reflection">
Yes to access <code>EntityCatalog</code>'s map that is filled by deprecated registration methods.
In TAX to construct instance of isolated Xerces parser.
In <code>TokenContext</code> for fill a map from instance fields.
In <code>BeanUtil</code> to introspect beans.
In <code>AbstractObjectNode</code> to introspect listeners using a debug action.
In <code>ElementInfo</code> and <code>WriteCache</code> to apply declaratively defined
property values.
In <code>org.netbeans.modules.xml.tree.nodes.propertysheet</code> which is tuned copy of
OpenAPI's propertysheet API.
In <code>TreeEventChangeSupport</code> to get access to listeners list.
In <code>TreeStreamResult</code> and <code>XNIBuilder</code> to access/set internal DTD
as plain string. It could be replaced by a map.
</answer>
<!-- Question: format-clipboard
<questionid="format-clipboard"> Whichprotocolsyourcodereads/insertswhencommunicatingwith clipboard? </question>
-->
<answer id="format-clipboard">
Implementations of cut, copy and paste (<code>CutAction</code>, <code>CopyAction</code>
and <code>PasteAction</code>) reads/writes from/into clipboard. It uses standard
<a href="@JDK@@JDKMODULE_JAVA_DATATRANSFER@/java/awt/datatransfer/package-summary.html">java datatransfer mechanism</a>
and <a href="@org-openide-util-ui@/org/openide/util/datatransfer/package-summary.html">Netbeans extension to the mechanism</a>.
</answer>
<!-- Question: format-dnd
<questionid="format-dnd"> Whichprotocolsyourcodeunderstandsduringdrag-n-drop? </question>
-->
<answer id="format-dnd">
See format-clibpoard.
</answer>
<questionid="lookup-lookup"> Doesyourmoduleuses<code>org.openide.util.Lookup</code> tofindanycomponentstocommunicateto?Whichones? <hint> Pleasedescribetheinterfacesyouaresearchingfor,where aredefined,whetheryouaresearchingforjustoneormoreofthem, iftheorderisimportant,etc.Alsoclasifythestabilityofsuch APIcontract. </hint> </question>
-->
<answer id="lookup-lookup">
Almost all XMLDataObject properties all in turn searched in default Lookup.
</answer>
<!-- Question: lookup-register
<questionid="lookup-register"> Doyouregisteranythingintothelookupforothertofind? <hint> Doyouregisterusinglayerfileorusing<code>META-INF/services</code>? Whoissupposedtofindyourcomponent? </hint> </question>
-->
<answer id="lookup-register"> XML submodules registers in lookup their action and cookies.
Also text grammars and user's catalogs are registered in lookup.
</answer>
<questionid="perf-huge_dialogs"> Doesyourmodulecontainanydialogsorwizardswithhuge amountofGUIcontrolslikecomboboxes,lists,trees,text areas? </question>
-->
<answer id="perf-huge_dialogs">
Several multi-step wizards with tables.
</answer>
<!-- Question: perf-limit
<questionid="perf-limit"> Arethereanylimitsinnumber/sizeofelementsyourcode canhandle? </question>
-->
<answer id="perf-limit">
Size of available memory is the limit. It depends on JVM configuration.
</answer>
<!-- Question: perf-mem
<questionid="perf-mem"> Whatistheamountofmemoryyourcomponentoccupies?Estimate witharelactiontothenumberofwindows,etc. </question>
-->
<answer id="perf-mem"> XML Document model takes 10-20 times memory comparing to plain text representation.
</answer>
<!-- Question: perf-menus
<questionid="perf-menus"> Doesyourmoduleusedynamicallychangingcontextmenusor contextsensitiveactionswithcomplicatedlogicforenable/disable? </question>
-->
<answer id="perf-menus">
It creates dynamically changing context menus. Enableness logic is under
providers control. Known providers uses cookie checks that can needlessly
initialize these.
</answer>
<!-- Question: perf-progress
<questionid="perf-progress"> Doesyourmoduleexecutessomelongrunningtask? <hint>Typicallytheyaretaskslikeconnectingover network,computinghugeamountofdata,compilation. Suchcommunicationshouldbedoneasynchronously(forexample using<code>RequestProcessor</code>),definitivelyitshould notblockAWTthread. </hint> </question>
-->
<answer id="perf-progress"> XSLT transformations and XML validation tasks. User cannot cancel those
and there is not any progress feedback.
</answer>
<!-- Question: perf-scale
<questionid="perf-scale"> Whichexternalcriteriainfluencetheperformanceofyour program(sizeoffileineditor,numberoffilesinmenu, insourcedirectory,etc.)andhowwellyourcodescales? Pleaseincludesomeestimates. </question>
-->
<answer id="perf-scale">
It scales linearly to input. Transformations and validation depends on
complexity of declarations.
</answer>
<!-- Question: perf-startup
<questionid="perf-startup"> Doesyourmoduleexecutesanythingonstartup? </question>
-->
<answer id="perf-startup">
It registers some editor stuff.
</answer>
<questionid="resources-file"> Doesyourmoduleuse<code>java.io.File</code>directly? <hint> NetBeansprovidealogicalwrapperoverplainfilescalled <code>org.openide.filesystems.FileObject</code>that providesuniformaccesstosuchresourcesandistheprefered waythatshouldbeused.Butofcoursetherecanbesituationswhen thisisnotsuitable. </hint> </question>
-->
<answer id="resources-file">
Yes to access files that are referenced by <code>file:</code> protocol.
</answer>
<!-- Question: resources-layer
<questionid="resources-layer"> Doesyourmoduleprovideownlayer?Doesitcreatesomefilesor foldersonit?Whatitistryingtocommunicatebythatandwithwhich component? <hint> NetBeansallowsautomaticanddeclarativeinstallationofresources bymodulelayers.Moduleregisterfilesintoappropriateplaces andothercomponentsusethatinformationtoperformtheirtask (buildmenu,toolbar,windowlayout,listoftemplates,setof options,etc.). </hint> </question>
-->
<answer id="resources-layer">
Yes. Almost all registrations are placed on it.
</answer>
<!-- Question: resources-mask
<questionid="resources-mask"> Doesyourmodulemask/hide/overrideanyresourceprovidedbyanotheronein modulelayer? <hint> Ifyoumaskafileprovidedbyanothermodule,youprobablydepend onthatanddonotwanttheothermoduleto(forexample)change thefile'sname.ThatmoduleshallthusmakethatfileavailableasanAPI ofsomestabilitycategory. </hint> </question>
-->
<answer id="resources-mask">
Branded version of module masks its own parts.
</answer>
<!-- Question: resources-read
<questionid="resources-read"> Doesyourmodulereadanyresourcesfromlayers?Forwhatpurpose? <hint> Asthisissomekindofintermoduledependency,itisakindofAPI. Pleasedescribeitandclasifyaccordingto <ahref="http://openide.netbeans.org/tutorial/api-design.html#categories"> commonstabilitycategories</a>. </hint> </question>
-->
<answer id="resources-read">
Grammar and scenario providers registrations. Probably more to come and start to use
layer as a naming service.
Can also register global XML catalogs as instances of <code>CatalogReader</code> in
<code>Plugins/XML/UserCatalogs</code>.
</answer>
<!-- <questionid="arch-overall"when="init"> Describetheoverallarchitecture. <hint> WhatwillbeAPIfor <ahref="http://openide.netbeans.org/tutorial/api-design.html#design.apiandspi"shape="rect"> clientsandwhatsupportAPI</a>? Whatpartswillbepluggable? Howwillplug-insberegistered?Pleaseuse<code><apitype="export"/></code> todescribeyourgeneralAPIs. Ifpossiblepleaseprovide simplediagrams. </hint> </question>
-->
<answer id="arch-overall">
<p> XML APIs provide support for editing XML files and leveraging XML in developed application.
<api name="XMLAPIs" group="java"type="export" category="official"url="index.html"/>
</p> <!-- XXX need more detailed description -->
</answer>
</api-answers>
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.27 Sekunden
(vorverarbeitet am 2026-09-28)
¤