[x3d-public] x3d case correction tool

Don Brutzman brutzman at nps.edu
Tue Nov 3 11:10:21 PST 2015


Thanks for the good thinking.

Some time ago, when first looking at HTML lower-case elements and X3DOM integration, there was good dialog on the mail lists.  No doubt available in the archives.

It would appear that both forms (CamelCase and lowercase/miXedcAsE) are desirable for X3D authors depending on their html publication context.

At that stage I created a stylesheet that creates a table for producing lower-case version of X3D element names and attributes.  It walks the X3D schema in a manner similar to what you are suggesting.

http://www.web3d.org/x3d/stylesheets/
http://www.web3d.org/x3d/stylesheets/X3dElementsLowerCaseTable.html
http://www.web3d.org/x3d/stylesheets/X3dAttributesLowerCaseTable.html
http://www.web3d.org/x3d/stylesheets/X3dElementsAttributesLowerCaseTable.txt
http://www.web3d.org/x3d/stylesheets/X3dElementsAttributesLowerCaseTableConstruction.xslt

Just tuned them up a little.  Might need more precise filtering to avoid duplicates, etc.

Hopefully this is useful.

As you point out, the X3D Tidy stylesheet looks at this task too.

http://www.web3d.org/x3d/stylesheets/X3dTidy.html
http://www.web3d.org/x3d/stylesheets/X3dTidy.xslt

At this point, it might be good to articulate any use cases and the relevant HTML5 prose on case sensitivity.

Open source.  All suggestions, improvements or additions welcome.


On 11/3/2015 9:34 AM, Andreas Plesch wrote:
> Since the idea of having a x3d document which is conforming as much as possible is attractive, I am thinking of a tool which corrects element names and attribute names to their correct case sensitive spelling. Is there such a tool ?
>
> In principle I think it could work by:
> 1) extract all element and attribute names from the .dtd and/or schema
> 2) go through all elements (recursively) in (nonconforming) x3d document
> 2a)  normalize element name to lower-case and see if there is a corresponding normalized node name in dtd
> 2b) if there is replace with correct, case sensitive element name
>    if not flag as unknown (or ignore, optionally eliminate)
> 2c) do the same for all used attribute names
>
> This would work for most if not all names since they can all (most?) be distinguished in a case insensitive manner.
>
> The tool of choice would be a xsl style sheet which may have to be generated by another stylesheet which processes the .dtd/schema. What would be other strategies (going through json) ? How would one go about this in more detail ? Perhaps the x3d-tidy.xsl style sheet is a starting point ? It looks daunting.
>
> However, I would probably start much more straightforwardly by looking at
> http://www.web3d.org/specifications/X3dDoctypeDocumentation3.3.html and
> http://www.web3d.org/specifications/X3dSchemaDocumentation3.3/x3d-3.3.html
> to assemble a list and then use unix tools such as sed/awk and such
> to transform the x3d. What is used to generate the above documentation from the .dtd/xsd ?
>
> Any input much appreciated,
>
> Andreas
>
>
>
>
> _______________________________________________
> x3d-public mailing list
> x3d-public at web3d.org
> http://web3d.org/mailman/listinfo/x3d-public_web3d.org
>


all the best, Don
-- 
Don Brutzman  Naval Postgraduate School, Code USW/Br       brutzman at nps.edu
Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA   +1.831.656.2149
X3D graphics, virtual worlds, navy robotics http://faculty.nps.edu/brutzman



More information about the x3d-public mailing list