- From: Don Brutzman <brutzman@nps.navy.mil>
- Date: Tue, 21 Nov 2000 01:35:02 -0800
- To: xmlschema-dev@w3.org
I'm happy to report that the first draft of the X3D Schema is available. http://www.web3D.org/TaskGroups/x3d/translation/X3dSchemaDraft.xml Schema for the Extensible 3D (X3D) tagset representing the draft Virtual Reality Modeling Language (VRML) 200x. Revised: 21 November 2000 Author: Don Brutzman Acknowledgements: Thanks for insights and assistance from Len Bullard, Rick Goldberg, Chris Lilley, Joe Williams. Summary: - Schemas define XML tagsets in depth using a native-XML format. - Schemas are an alternative to Document Type Definitions (DTDs). - This X3D Schema matches the functionality of the X3D DTD and provides significant further capabilities, such as strong type checking of attribute values and stylesheet autogeneration of the Scene Authoring Interface (SAI). Design patterns: - VRML base types have clarified names (MFFloat becomes Floats etc.) and are represented by Schema simpleTypes. - List types are used to augment Schema simple types and create arrays of VRML base types (integerList etc) for further use by Schema simpleTypes. - VRML node types match the interface hierarchy, capture strong-typing, and collect common attributes shared by nodes for use by API interfaces. VRML Node types are represented by Schema complexTypes. - Non-node VRML fields using base types are represented by XML attributes. - VRML nodes implement node types and are represented by XML elements. Version plan: - 0.4 Nodes for Core and Baseline profiles (20 November 2000) - 0.5 Nodes for DisJavaVrml, GeoVrml, H-Anim, Nurbs, any others in Full profile - 0.6 Autogenerated Scene Authoring Interface (SAI) in various formats including Interface Description Language (IDL), Java interfaces, and eponymous matching Java classes that implement the Java interfaces - 0.7 Resolution of compromise/compact representations (wrapper tags) and DTD internal parameter-entity names updated to match interface hierarchy naming scheme - 0.8 Exemplar content and authoring tools correspond to Schema tagset - 0.9 Public review and Xj3D open-source implementation version - 1.0 X3D Task Group consensus for inclusion in VRML 200x specification - 1.1 Web3D Consortium endorsement References: - This schema: http://www.web3D.org/TaskGroups/x3d/translation/X3dSchemaDraft.xml - X3D tagset DTDs: http://www.web3D.org/TaskGroups/x3d/translation/x3d-compromise.dtd http://www.web3D.org/TaskGroups/x3d/translation/x3d-compact.dtd http://www.web3D.org/TaskGroups/x3d/translation/DisJavaVrml.dtd http://www.web3D.org/TaskGroups/x3d/translation/GeoVrml.dtd http://www.web3D.org/TaskGroups/x3d/translation/H-Anim.dtd http://www.web3D.org/TaskGroups/x3d/translation/Nurbs.dtd - interface hierarchy: http://www.hypermultimedia.com/Xj3D/x3d_candidate_fig.txt - Wrapper tag issues: http://www.web3D.org/TaskGroups/x3d/ComposingSceneGraphAlternatives.html - Schema DTD: http://www.w3.org/2000/10/XMLSchema.dtd - Datatypes DTD: http://www.w3.org/2000/10/datatypes.dtd - Schema schema: http://www.w3.org/2000/10/XMLSchema.xsd - Datatypes schema: http://www.w3.org/2000/10/datatypes.xsd - Schema Primer: http://www.w3.org/TR/2000/WD-xmlschema-0-20000922 - Schema Structures: http://www.w3.org/TR/2000/WD-xmlschema-1-20000922 - Schema Datatypes: http://www.w3.org/TR/2000/WD-xmlschema-2-20000922 - Schema group: http://www.w3.org/XML/Schema - Schema validator: http://www.w3.org/2000/09/webdata/xsv - Robin Cover's pages: http://www.oasis-open.org/cover/schemas.html - Best practices: http://www.xfront.com/BestPractices.html - Xeena XML editor: http://www.alphaWorks.ibm.com/tech/xeena - Xeena xsd profile: http://www.web3D.org/TaskGroups/x3d/translation/XMLSchema.profile - X3D-Edit: http://www.web3D.org/TaskGroups/x3d/translation/README.X3D-Edit.html - X3D-Schema-Edit: http://www.web3D.org/TaskGroups/x3d/translation/X3D-Schema-Edit.bat XmlSchema.dtd revisions: - Modified two Schema DTD entries (for documentation and appinfo) from ANY to (#PCDATA) in order to allow text nodes as documentation content. This matches the semantics of XMLSchema.xml schema. - Post XmlSchema.dtd modifications to xmlschema-dev as a bug fix. X3D work in progress: - Verify correct profile attributes for all nodes. - Verify node types against latest interface hierarchy. - Verify attribute distribution among node types using SAI version 1. - Verify all nodes, attributes and relationships using DTD. - Produce summary of attribute additions relative to VRML 97 specification. - Designate optionalAttributes for appropriate fields in Core profile nodes. - Using XSV validator to check the internal consistency of the schema. - Insert namespace prefixes (xsd: etc.) once Xeena editing permits. - Added StringsUrl type to allow further pattern restrictions on valid url values, with expectation that further detail needs to be specified that is compatible with URNs. StringsUrl maps to VRML 97 MFStrings. - Multiple interfaces for Anchor, Collision, MovieTexture, TimeSensor: apparently there is no native Schema approach available for directly indicating multiple simultaneous types. Thus an otherInterfaces attribute is provided in combination with explicit repetition of attributes for these other interfaces. This allows proper autogeneration of multiple IDL and API interfaces by XSLT stylesheets. - Are there any other multiple interface nodes? - Add additional type restrictions such as FloatNonNegative etc. ? Consider whether this can be codified as further base types or included as range restrictions on existing base types. Challenge is getting FloatNonNegative to map to Float externally while still providing range-checking of attribute values. - Can FloatNonNegative pattern restrictions instead be added on a localized node-by-node basis? Probably too verbose but at least that preserves base-type definitions. - Can deprecations be encoded as allowable options, or alternate/duplicate attributes? Stylesheets can capture and propagate the deprecations if consistently defined. - Can SubstitutionGroup be used for deprecated node labels like LOD-level (now LOD-children) and Switch-choice (now Switch-children)? - Patterns for multifield types need to be completed. - Establish different namespace scopes for DEF/USE (and ROUTE/IS) inside ProtoDeclare. - Establish different namespace scopes for node and ProtoDeclare names. - Extract tooltips from X3D-Edit for initial annotation->appinfo text. - Ensure setup and configuration files properly documented and available online as part of X3D-Edit distribution. - Update the x3d-compromise.dtd and x3d-compact.dtd to precisely match the internal names used for node types (e.g. GroupingNode). - Add source urls for annotations appinfo/documentation once specification addresses are stable. Initially VRML 97 specification URLs for clarity. Updating to XLink urls into VRML 200x is the eventual goal. - Can X3D be designated as root node? Apparently not in revised Schema recommendation. - Can USE be substituted anywhere? XML Schema substitutionGroup? Wildcard? - Consider adding Browser class for values exposed to a browser. Perhaps best provided via attributes on Scene node (and thus a Scene interface). Comments welcome. Apologies if the verbose cut & paste seems excessive. This is (cough cough) my first schema so doubtless there some things to fix/improve/etc. Thanks in advance for any help. all the best, Don -- Don Brutzman Naval Postgraduate School, Code UW/Br Root 200 work 831.656.2149 Monterey California 93943-5000 USA fax 831.656.3679 Virtual worlds/underwater robots/Internet http://web.nps.navy.mil/~brutzman
Received on Tuesday, 21 November 2000 04:36:55 UTC