<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.0//EN" "http://www.web3d.org/specifications/x3d-3.0.dtd">
<X3D profile='Coreversion='3.0xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance' xsd:noNamespaceSchemaLocation=' http://www.web3d.org/specifications/x3d-3.0.xsd '>
<head>
<component level='3'/>
<component name='Geometry2D'/>
<component level='3name='Geometry2D'/>
<meta name='titlecontent='TestSchematronDiagnostics.x3d'/>
<meta name='descriptioncontent='Test Schematron diagnostics capabilities for detecting various content errors and style warnings.'/>
<meta name='creatorcontent='Don Brutzman'/>
<meta name='createdcontent='19 October 2008'/>
<meta name='modifiedcontent='21 November 2009'/>
<meta name='errorcontent='this file has many errors'/>
<meta name='warningcontent='this file has many warnings'/>
<meta name='hintcontent='this file has many hints'/>
<meta name='infocontent='this file has info'/>
<meta name='identifiercontent=' http://www.web3d.org/x3d/content/examples/Basic/development/TestSchematronDiagnostics.x3d '/>
<meta name='generatorcontent='X3D-Edit 3.2, https://savage.nps.edu/X3D-Edit'/>
<meta name='licensecontent='../license.html'/>
</head>
<!--

Index for ExternProtoDeclare definitions: DoubleMixedDeclaration, DoubleDeclarationUrlMissingPoundProtoName, DoubleDeclarationUrlMissingPoundProtoName, ExternProtoDeclareBeforeInstance, ExternProtoDeclareAfterInstance, X3D
Index for ProtoDeclare definitions: MissingProtoBody, DoubleProtoDeclaration, DoubleProtoDeclaration, EmptyProtoInterfaceEmptyProtoBody, IllegalProtoInterface, ProtoDeclareBeforeInstance, ProtoDeclareAfterInstance, X3D, ReferenceTest, DoubleMixedDeclaration
Index for DEF nodes: AnchorBookmark, AppearanceWithProtoInstanceChild, BackgroundWithParentLOD, BadBoundingBoxValues, BadNameBadFieldValueNameMissingInitialization, BothUrlAndCDATA, CharacterBeforeQuotes, ChildrenCorrectContainerField, ChildrenIncorrectContainerField, Clock, ContainsISchildButNoParentProtoDeclare, CountTests, DEF, DEF_USEinsideProtoDeclareScope, DEFAppendedSpace, DefaultImageData, DEFcontainsUSEcopyOfSelf, DEFdescriptionMatch, DEFEmbedded Space, DEFoutsideProtoDeclareScope, DEFPrependedSpace, DoubleDeclaration2, DoubleDEF, DoubleDEF, DuplicatedDeclaration, DuplicateImageData, EmbeddedQuoteMarksOK, EscapedQuoteMarkWarning, ExtrusionCrossSectionMiscountSpineMismatchCrossSectionMiscount, familyValuesMissingIntermediateQuotes, FogWithParentLOD, GeometryNodeCollisionParentNeedsProxyContainerField, GeometryNodeNeedsShapeParent, HasCDATAwithoutEcmascriptHeader, HasLegalCDATA, HasUrlNoCDATA, HelloWorld, IllegalChild, IllegalCombinationDEFUSE, IllegalImageData, IllegalInfoQuotes, IllegalViewpointGroupChild, ImageDataTest, improperDEF, IncorrectChildNode, ISconnectDescription, LegalChild, LegalGeoSystem, MismatchedKeyArrays, MismatchedKeyArraysSFVec3f, MissingComponentH-AnimLevel1, MissingIndex, MissingParentShape, NavigationInfoWithParentLOD, NeedQuoteMarks, NoChildAppearance, NoChildGeometry, noChildNodeforUSE, NoChildren, NoChildrenNoUrl, NoImageData, NoLocalFogV3.0, NoMaterialNoTexture, NoOutputROUTE, NoParentSoundNode, NormalPath, NoROUTE, NoROUTEs, NoROUTEsNoKeyValueArray, NoSpacesInDescription, NoUrlIllegalChild, NoUrlNoCDATA, OI, OKviewpoint, OnlyFieldDeclarationsAllowedInProtoInterface, PrototypeRootNode, RouteButNoFields, separateBackColorWrong, SingleProtoInstanceChild, textureContainerField, ThreeUnescapedQuoteMarksMissingSpaceEndsApostrophe, UnlabeledChildProxyNode, UnquotedTypeAndTransitionTypeErrors, UrlDotWrlPrecedesDotX3d, USEandDEFtogether, USEmismatchDEFnodeType, USEoutsideProtoDeclareScope, USEprecedesDEF, USEwithChildElement, ViewpointWithParentLOD, watchListContainerField, ZeroMagnitudeRotationAxes
Index for Viewpoint images: ISconnectDescription, OKviewpoint, DEFdescriptionMatch, ViewpointWithParentLOD
-->
<Scene DEF='improperDEFUSE='improperUSE'>
<!-- - illegal comment starts with extra hyphen - character -->
<TouchSensor DEF='IllegalCombinationDEFUSEUSE='IllegalCombinationDEFUSE'/>
<CylinderSensor DEF='DoubleDEFenabled='false'/>
<TimeSensor DEF='DoubleDEF'/>
<WorldInfo DEF='DEFPrependedSpace'/>
<WorldInfo DEF='DEFEmbedded Space'/>
<WorldInfo DEF='DEFAppendedSpace'/>
<WorldInfo DEF='IllegalInfoQuotesinfo='WorldInfo info strings need to be quoted'/>
<WorldInfo DEF='IllegalChild'>
<WorldInfo/>
</WorldInfo>
<WorldInfo DEF='LegalChild'>
<MetadataString containerField='metadata'/>
</WorldInfo>
<Anchor DEF='NoChildrenNoUrl'/>
<Anchor DEF='AnchorBookmarkparameter='target=unquoted'
  url=' "#missingBookmark" '>
<Group/>
</Anchor>
<Inline DEF='HelloWorld'
  url=' "../HelloWorld.x3d" "http://www.web3d.org/x3d/content/examples/Basic/HelloWorld.x3d" "../HelloWorld.wrl" '/>
<Inline DEF='UrlDotWrlPrecedesDotX3d'
  url=' "test.wrl" "test.x3d" "adjacentquote" "marks" '/>
<Inline DEF='NoUrlIllegalChild'>
<WorldInfo/>
</Inline>
<Shape DEF='NoChildAppearance'>
<Box/>
</Shape>
<Shape DEF='NoChildGeometry'>
<Appearance DEF='NoMaterialNoTexture'/>
</Shape>
<!-- test no other fields if USE present -->
<Shape USE='NoChildAppearance'/>
<Shape USE='NoChildAppearance'/>
<Shape USE='NoChildAppearance'/>
<Shape DEF='USEwithChildElement'>
<Box/>
<Appearance DEF='AppearanceWithProtoInstanceChild'>
<ProtoInstance name='NodeSubstituteNoDeclaration'/>
</Appearance>
</Shape>
<Appearance DEF='MissingParentShape'/>
<Shape USE='USEwithChildElement'>
<Appearance USE='NoMaterialNoTexture'/>
</Shape>
<Shape DEF='SingleProtoInstanceChild'>
<ProtoInstance name='NodeSubstituteNoDeclaration'/>
</Shape>
<!-- no DEF name -->
<TimeSensor DEF='NoOutputROUTE'/>
<TimeSensor DEF='ClockcycleInterval='100loop='true'/>
<ColorInterpolator/>
<!-- no DEF name -->
<PositionInterpolator DEF='NoROUTEsNoKeyValueArraykey='0 0'/>
<!-- MismatchedKeyArrays ROUTE:  [self-route from value_changed to set_fraction ] -->
<ScalarInterpolator DEF='MismatchedKeyArrayskey='0keyValue='0 0'/>
<!-- MismatchedKeyArraysSFVec3f ROUTE:  [self-route from value_changed to set_fraction ] -->
<NormalInterpolator DEF='MismatchedKeyArraysSFVec3fkey='0 1keyValue='0 0 0 1 1'/>
<!-- bogus ROUTEs to allow trapping deeper error -->
<ROUTE fromNode='MismatchedKeyArraysfromField='value_changedtoNode='MismatchedKeyArraystoField='set_fraction'/>
<ROUTE fromNode='MismatchedKeyArraysSFVec3ffromField='value_changedtoNode='MismatchedKeyArraysSFVec3ftoField='set_fraction'/>
<BooleanSequencer containerField='children'/>
<BooleanSequencer DEF='NoROUTEskey='0 0.5 1keyValue='true false truecontainerField='children'/>
<IntegerTrigger integerKey='-1containerField='children'/>
<IntegerTrigger DEF='NoROUTEintegerKey='-1containerField='children'/>
<OrientationInterpolator DEF='OI'/>
<LoadSensor DEF='ChildrenIncorrectContainerFieldtimeOut='0'>
<ImageTexture DEF='textureContainerField'
  url=' "http:/bogus" '/>
</LoadSensor>
<LoadSensor DEF='ChildrenCorrectContainerFieldtimeOut='0'>
<ImageTexture DEF='watchListContainerFieldcontainerField='watchList'/>
</LoadSensor>
<LoadSensor DEF='IncorrectChildNodetimeOut='0'>
<Group containerField='watchList'/>
</LoadSensor>
<Script DEF='HasLegalCDATA'>
<field name='duplicatedFieldNametype='SFBoolaccessType='inputOnly'/>
<field name='duplicatedFieldNametype='SFBoolaccessType='inputOnly'/>
<![CDATA[
      
ecmascript:
function initialize()
{
   // initialize() method silences ROUTE check
}
    
]]>
</Script>
<Script DEF='HasCDATAwithoutEcmascriptHeader'>
<field name='noAccessTypetype='SFBool'/>
<field name='noTypeaccessType='inputOnly'/>
<field type='noNameaccessType='inputOnly'/>
<field name='neverSettype='SFBoolaccessType='outputOnly'/>
<![CDATA[
      
// empty Script body

    
]]>
</Script>
<Script DEF='HasUrlNoCDATA'
  url='TestSchematronDiagnostics.js'>
</Script>
<Script DEF='NoUrlNoCDATA'>
</Script>
<Script DEF='BothUrlAndCDATA'
  url=' "TestSchematronDiagnostics.js" '>
<field name='inputFunctionDefinedTwicetype='SFBoolaccessType='inputOnly'/>
<field name='noInputFunctionAllowedtype='SFBoolaccessType='outputOnly'/>
<![CDATA[
      
ecmascript:

function set_noInputFunctionAllowed (newValue)
{
    // cannot have input function for output field
}
function set_inputFunctionDefinedTwice (newValue)
{
    // only one definition allowed; this is #1
}
function set_inputFunctionDefinedTwice (newValue)
{
    // only one definition allowed; this is #2
}

    
]]>
</Script>
<Script DEF='RouteButNoFields'
  url='TestSchematronDiagnostics.js'>
</Script>
<ROUTE fromNode='NoFieldsfromField='blahtoNode='NoFieldstoField='blah'/>
<ProtoInstance name='NoDeclaration'/>
<ProtoDeclare name='MissingProtoBody'/>
<WorldInfo DEF='DEFoutsideProtoDeclareScope'/>
<ProtoDeclare name='DoubleMixedDeclarationDEF='DuplicatedDeclaration'>
<ProtoBody>
<Group/>
<Viewpoint DEF='ISconnectDescriptionfieldOfView='0.7854'>
<IS>
<connect nodeField='descriptionprotoField='description'/>
</IS>
</Viewpoint>
<!-- TODO not yet working... -->
<WorldInfo USE='DEFoutsideProtoDeclareScope'/>
<WorldInfo DEF='USEoutsideProtoDeclareScope'/>
<WorldInfo DEF='DEF_USEinsideProtoDeclareScope'/>
<WorldInfo USE='DEF_USEinsideProtoDeclareScope'/>
</ProtoBody>
</ProtoDeclare>
<WorldInfo USE='USEoutsideProtoDeclareScope'/>
<ExternProtoDeclare name='DoubleMixedDeclaration'
  url=' http://bogus#DifferentRemotePrototypeName '/>
<ProtoInstance name='DoubleMixedDeclarationDEF='DoubleDeclaration2'>
<fieldValue name='duplicatedFieldValueNamevalue='blah'/>
<fieldValue name='duplicatedFieldValueName'/>
<fieldValue value='noName'/>
</ProtoInstance>
<ProtoDeclare name='DoubleProtoDeclaration'
  url='http:/bogus'/>
<ProtoDeclare name='DoubleProtoDeclaration'
  url=' http:///bogus '/>
<ExternProtoDeclare name='DoubleDeclarationUrlMissingPoundProtoName'
  url=' http:///bogus '/>
<ExternProtoDeclare name='DoubleDeclarationUrlMissingPoundProtoName'
  url='http:/bogus'/>
<ProtoDeclare name='EmptyProtoInterfaceEmptyProtoBody'>
<ProtoInterface/>
<ProtoBody/>
</ProtoDeclare>
<ProtoDeclare name='IllegalProtoInterface'>
<ProtoInterface>
<Group DEF='OnlyFieldDeclarationsAllowedInProtoInterface'/>
</ProtoInterface>
<ProtoBody>
<Group/>
</ProtoBody>
</ProtoDeclare>
<ExternProtoDeclare name='ExternProtoDeclareBeforeInstance'
  url='httpsMissing'/>
<ProtoInstance name='ExternProtoDeclareBeforeInstance'/>
<ProtoInstance name='ExternProtoDeclareAfterInstance'/>
<ExternProtoDeclare name='ExternProtoDeclareAfterInstance'
  url='httpMissing'/>
<ProtoDeclare name='ProtoDeclareBeforeInstance'>
<ProtoBody>
<Group/>
</ProtoBody>
</ProtoDeclare>
<ProtoInstance name='ProtoDeclareBeforeInstance'/>
<ProtoInstance name='ProtoDeclareAfterInstance'/>
<ProtoDeclare name='ProtoDeclareAfterInstance'>
<ProtoBody>
<Group>
<IS>
<connect nodeField='danglingConnectNodeFieldprotoField='danglingConnectProtoField'/>
</IS>
</Group>
</ProtoBody>
</ProtoDeclare>
<Group DEF='ContainsISchildButNoParentProtoDeclare'>
<IS>
<connect nodeField='isolatedConnectNodeFieldprotoField='isolatedConnectProtoField'/>
</IS>
</Group>
<!-- test isolated (invalid) connect element <connect nodeField="isolatedConnectNodeField" protoField="isolatedConnectProtoField"/> -->
<Shape DEF='BadBoundingBoxValuesbboxCenter='1a 2b 3cbboxSize='-1 -2 -3'>
<Extrusion DEF='ExtrusionCrossSectionMiscountSpineMismatchCrossSectionMiscountcrossSection='1 2 3orientation='0 0 1 0 0 0 1 0 0 0 1 0scale='1 1 1 1 1 1 1 1 1 1 1 1spine='0 0 0 0 2 0'/>
<!-- check for reserved word in DEF -->
<Appearance DEF='DEF'>
<TwoSidedMaterial DEF='separateBackColorWrongbackShininess='0.123'/>
</Appearance>
</Shape>
<ROUTE fromNode='blahfromField='set_blahtoNode='bleahtoField='bleah_changed'/>
<Viewpoint DEF='OKviewpointdescription='this viewpoint is OKfieldOfView='0.7854'/>
<Viewpoint DEF='DEFdescriptionMatchdescription='DEFdescriptionMatchfieldOfView='0.7854'/>
<OrthoViewpoint DEF='NoSpacesInDescriptiondescription='NeedToPutSpacesInDescription'/>
<GeoViewpoint navType='OTHERgeoSystem='"GD" "WE"position='0 0 100000orientation='0 0 1 0fieldOfView='0.7854jump='trueheadlight='truecontainerField='children'/>
<!-- check for reserved word in name definitions -->
<ProtoDeclare name='X3D'>
<ProtoBody>
<Group DEF='PrototypeRootNode'/>
</ProtoBody>
</ProtoDeclare>
<ExternProtoDeclare name='X3D'>
<field name='X3Dtype='SFBoolaccessType='inputOnly'/>
</ExternProtoDeclare>
<ProtoInstance name='X3DDEF='BadNameBadFieldValueNameMissingInitialization'>
<fieldValue name='X3D'/>
</ProtoInstance>
<ProtoInstance name='X3D'>
<fieldValue name='X3Dvalue='doubleInitialization'>
<Shape/>
</fieldValue>
</ProtoInstance>
<HAnimJoint DEF='MissingComponentH-AnimLevel1'/>
<LOD>
<Background DEF='BackgroundWithParentLOD'/>
<Fog DEF='FogWithParentLODfogType='LINEAR'/>
<NavigationInfo DEF='NavigationInfoWithParentLODtype='"EXAMINE" "ANY"transitionType='"ANIMATE"'/>
<Viewpoint DEF='ViewpointWithParentLODfieldOfView='0.7854'/>
</LOD>
<ViewpointGroup DEF='IllegalViewpointGroupChild'>
<Transform/>
</ViewpointGroup>
<Shape>
<Box/>
<Appearance>
<PixelTexture DEF='NoImageData'/>
</Appearance>
</Shape>
<Shape>
<Box/>
<Appearance>
<PixelTexture DEF='IllegalImageDataimage='1 a b c d'/>
</Appearance>
</Shape>
<Shape>
<Box/>
<Appearance>
<PixelTexture DEF='DefaultImageData'/>
</Appearance>
</Shape>
<Shape>
<Box/>
<Appearance>
<PixelTexture DEF='DuplicateImageData'/>
</Appearance>
</Shape>
<Shape>
<Box/>
<Appearance>
<PixelTexture DEF='ImageDataTestimage='1 1 1 0xAA'/>
</Appearance>
</Shape>
<WorldInfo DEF='USEandDEFtogetherUSE='USEandDEFtogether'/>
<WorldInfo USE='USEprecedesDEF'/>
<WorldInfo DEF='USEprecedesDEF'/>
<WorldInfo USE='noDEFforUSE'/>
<WorldInfo DEF='noChildNodeforUSE'/>
<WorldInfo USE='noChildNodeforUSE'>
<MetadataSet containerField='metadata'>
<MetadataString name='someStringArrayvalue='unquoted string valuescontainerField='metadata'/>
</MetadataSet>
</WorldInfo>
<Group DEF='DEFcontainsUSEcopyOfSelf'>
<Group USE='DEFcontainsUSEcopyOfSelf'/>
</Group>
<WorldInfo DEF='USEmismatchDEFnodeType'/>
<Group USE='USEmismatchDEFnodeType'/>
<LocalFog DEF='NoLocalFogV3.0'/>
<PointLight global='true'/>
<Shape>
<IndexedFaceSet DEF='CountTestscoordIndex='0 1 2 -1'>
<Coordinate point='0 0 0 0 1 0 1 0 0 5'/>
<Color color='1 1 1'/>
<ColorRGBA color='1 1 1 0containerField='color'/>
<TextureCoordinate/>
<TextureCoordinateGenerator mode='SPHEREcontainerField='texCoord'/>
</IndexedFaceSet>
<Appearance USE='NoMaterialNoTexture'/>
</Shape>
<Shape>
<Text DEF='CharacterBeforeQuotesstring='x " "solid='true'>
<FontStyle family='unquotedFontFamilyNamejustify='unquotedIllegalJustification'/>
</Text>
<Appearance USE='NoMaterialNoTexture'/>
</Shape>
<Shape>
<Text DEF='ThreeUnescapedQuoteMarksMissingSpaceEndsApostrophestring='"" x" 'solid='true'>
<FontStyle DEF='familyValuesMissingIntermediateQuotesfamily='"SANS SERIF"justify='"BEGIN" "BEGIN"'/>
</Text>
<Appearance USE='NoMaterialNoTexture'/>
</Shape>
<Shape>
<Text DEF='EscapedQuoteMarkWarningstring='"here is a single escaped \" quote mark character"solid='true'>
<FontStyle justify='"IllegalValue"'/>
</Text>
<Appearance USE='NoMaterialNoTexture'/>
</Shape>
<Shape>
<Text DEF='NeedQuoteMarksstring='quote marks are required for single stringsolid='true'>
<FontStyle/>
</Text>
<Appearance USE='NoMaterialNoTexture'/>
</Shape>
<Shape>
<Text DEF='EmbeddedQuoteMarksOKstring='"plain text with \"quote marks\" embedded"solid='true'>
<FontStyle/>
</Text>
<Appearance USE='NoMaterialNoTexture'/>
</Shape>
<Shape>
<IndexedQuadSet DEF='MissingIndex'>
<Coordinate point='0 0 0'/>
</IndexedQuadSet>
<Appearance USE='NoMaterialNoTexture'/>
</Shape>
<NormalInterpolator DEF='NormalPathkey='0 0.5 1keyValue='0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 1 0 0 1 0 0 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 5'/>
<GeoLocation DEF='LegalGeoSystemgeoCoords='36.607 -121.885 0.0geoSystem='"GD" "WE"containerField='children'/>
<ProtoDeclare name='ReferenceTest'>
<ProtoInterface>
<field name='defaultTesttype='SInt32value='78accessType='initializeOnly'/>
<field name='incorrectInitializationSFColorRGBAtype='SFColorRGBAvalue='1 1 1accessType='initializeOnly'/>
</ProtoInterface>
<ProtoBody>
<Script
  url=' "http:///bogus" '>
<field name='missingInitializationValue1type='SFBoolaccessType='initializeOnly'/>
<field name='missingInitializationValue2type='SFInt32accessType='initializeOnly'/>
<field name='incorrectInitializationSFVec3ftype='SFVec3fvalue='0.0accessType='initializeOnly'/>
<field name='incorrectInitializationMFColortype='MFColorvalue='1 2 3 4 5 6 7accessType='initializeOnly'/>
<field name='missingInitializationValueHasIStype='SFBoolvalue='trueaccessType='initializeOnly'/>
<fieldValue name='shouldBeField'/>
<IS>
<connect nodeField='missingInitializationValueHasISprotoField='test'/>
</IS>
</Script>
<!-- Subsequent nodes do not render, but still must be a valid X3D subgraph -->
</ProtoBody>
</ProtoDeclare>
<ProtoInstance name='ReferenceTest'>
<fieldValue name='defaultTestvalue='78'/>
<fieldValue name='incorrectInitializationSFColorRGBAvalue='1 1 1 1 1'/>
<field name='shouldBeFieldValue'/>
</ProtoInstance>
<Transform DEF='ZeroMagnitudeRotationAxesrotation='0 0 0 0scaleOrientation='0 0 0 0'/>
<Box DEF='GeometryNodeNeedsShapeParent'/>
<Collision DEF='UnlabeledChildProxyNode'>
<Box DEF='GeometryNodeCollisionParentNeedsProxyContainerField'/>
</Collision>
<Sound DEF='NoChildren'/>
<AudioClip DEF='NoParentSoundNode'/>
<Sound>
<AudioClip description='bad clip reference'
  url=' "blah" '/>
</Sound>
<NavigationInfo DEF='UnquotedTypeAndTransitionTypeErrorstransitionType='ALTERNATEtype='OTHER'/>
</Scene>
</X3D>
<!--

Index for ExternProtoDeclare definitions: DoubleMixedDeclaration, DoubleDeclarationUrlMissingPoundProtoName, DoubleDeclarationUrlMissingPoundProtoName, ExternProtoDeclareBeforeInstance, ExternProtoDeclareAfterInstance, X3D
Index for ProtoDeclare definitions: MissingProtoBody, DoubleProtoDeclaration, DoubleProtoDeclaration, EmptyProtoInterfaceEmptyProtoBody, IllegalProtoInterface, ProtoDeclareBeforeInstance, ProtoDeclareAfterInstance, X3D, ReferenceTest, DoubleMixedDeclaration
Index for DEF nodes: AnchorBookmark, AppearanceWithProtoInstanceChild, BackgroundWithParentLOD, BadBoundingBoxValues, BadNameBadFieldValueNameMissingInitialization, BothUrlAndCDATA, CharacterBeforeQuotes, ChildrenCorrectContainerField, ChildrenIncorrectContainerField, Clock, ContainsISchildButNoParentProtoDeclare, CountTests, DEF, DEF_USEinsideProtoDeclareScope, DEFAppendedSpace, DefaultImageData, DEFcontainsUSEcopyOfSelf, DEFdescriptionMatch, DEFEmbedded Space, DEFoutsideProtoDeclareScope, DEFPrependedSpace, DoubleDeclaration2, DoubleDEF, DoubleDEF, DuplicatedDeclaration, DuplicateImageData, EmbeddedQuoteMarksOK, EscapedQuoteMarkWarning, ExtrusionCrossSectionMiscountSpineMismatchCrossSectionMiscount, familyValuesMissingIntermediateQuotes, FogWithParentLOD, GeometryNodeCollisionParentNeedsProxyContainerField, GeometryNodeNeedsShapeParent, HasCDATAwithoutEcmascriptHeader, HasLegalCDATA, HasUrlNoCDATA, HelloWorld, IllegalChild, IllegalCombinationDEFUSE, IllegalImageData, IllegalInfoQuotes, IllegalViewpointGroupChild, ImageDataTest, improperDEF, IncorrectChildNode, ISconnectDescription, LegalChild, LegalGeoSystem, MismatchedKeyArrays, MismatchedKeyArraysSFVec3f, MissingComponentH-AnimLevel1, MissingIndex, MissingParentShape, NavigationInfoWithParentLOD, NeedQuoteMarks, NoChildAppearance, NoChildGeometry, noChildNodeforUSE, NoChildren, NoChildrenNoUrl, NoImageData, NoLocalFogV3.0, NoMaterialNoTexture, NoOutputROUTE, NoParentSoundNode, NormalPath, NoROUTE, NoROUTEs, NoROUTEsNoKeyValueArray, NoSpacesInDescription, NoUrlIllegalChild, NoUrlNoCDATA, OI, OKviewpoint, OnlyFieldDeclarationsAllowedInProtoInterface, PrototypeRootNode, RouteButNoFields, separateBackColorWrong, SingleProtoInstanceChild, textureContainerField, ThreeUnescapedQuoteMarksMissingSpaceEndsApostrophe, UnlabeledChildProxyNode, UnquotedTypeAndTransitionTypeErrors, UrlDotWrlPrecedesDotX3d, USEandDEFtogether, USEmismatchDEFnodeType, USEoutsideProtoDeclareScope, USEprecedesDEF, USEwithChildElement, ViewpointWithParentLOD, watchListContainerField, ZeroMagnitudeRotationAxes
Index for Viewpoint images: ISconnectDescription, OKviewpoint, DEFdescriptionMatch, ViewpointWithParentLOD
-->

<!-- Tag color codes (X3D, XML terminology): <Node DEF='idName' field='value'/> <Element DEF='idName' attribute='value'/> <Prototype name='ProtoName'> <field name='fieldName'/> </Prototype> -->