<!-- - illegal comment starts with extra hyphen - character -->
<
TouchSensor DEF='
IllegalCombinationDEFUSE'
USE='
IllegalCombinationDEFUSE'/>
<
CylinderSensor DEF='
DoubleDEF'
enabled='
false'/>
<
TimeSensor DEF='
DoubleDEF'/>
<
WorldInfo DEF='
DEFPrependedSpace'/>
<
WorldInfo DEF='
DEFEmbedded Space'/>
<
WorldInfo DEF='
DEFAppendedSpace'/>
<
WorldInfo DEF='
IllegalInfoQuotes'
info='
WorldInfo info strings need to be quoted'/>
<
WorldInfo DEF='
IllegalChild'>
<WorldInfo/>
</
WorldInfo>
<
WorldInfo DEF='
LegalChild'>
<MetadataString containerField='metadata'/>
</
WorldInfo>
<
Anchor DEF='
NoChildrenNoUrl'/>
<
Anchor DEF='
AnchorBookmark'
parameter='
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'>
</
Shape>
<
Shape DEF='
SingleProtoInstanceChild'>
<ProtoInstance name='NodeSubstituteNoDeclaration'/>
</
Shape>
<!-- no DEF name -->
<
TimeSensor DEF='
NoOutputROUTE'/>
<
TimeSensor DEF='
Clock'
cycleInterval='
100'
loop='
true'/>
<
ColorInterpolator/>
<!-- no DEF name -->
<
PositionInterpolator DEF='
NoROUTEsNoKeyValueArray'
key='
0 0'/>
<!--
MismatchedKeyArrays ROUTE:
[
self-route from value_changed to set_fraction
]
-->
<
ScalarInterpolator DEF='
MismatchedKeyArrays'
key='
0'
keyValue='
0 0'/>
<!--
MismatchedKeyArraysSFVec3f ROUTE:
[
self-route from value_changed to set_fraction
]
-->
<
NormalInterpolator DEF='
MismatchedKeyArraysSFVec3f'
key='
0 1'
keyValue='
0 0 0 1 1'/>
<!-- bogus ROUTEs to allow trapping deeper error -->
<
ROUTE fromNode='
MismatchedKeyArrays'
fromField='
value_changed'
toNode='
MismatchedKeyArrays'
toField='
set_fraction'/>
<
ROUTE fromNode='
MismatchedKeyArraysSFVec3f'
fromField='
value_changed'
toNode='
MismatchedKeyArraysSFVec3f'
toField='
set_fraction'/>
<
BooleanSequencer containerField='
children'/>
<
BooleanSequencer DEF='
NoROUTEs'
key='
0 0.5 1'
keyValue='
true false true'
containerField='
children'/>
<
IntegerTrigger integerKey='
-1'
containerField='
children'/>
<
IntegerTrigger DEF='
NoROUTE'
integerKey='
-1'
containerField='
children'/>
<
OrientationInterpolator DEF='
OI'/>
<
LoadSensor DEF='
ChildrenIncorrectContainerField'
timeOut='
0'>
<
ImageTexture DEF='
textureContainerField'
url='
"
http:/bogus"
'/>
</
LoadSensor>
<
LoadSensor DEF='
ChildrenCorrectContainerField'
timeOut='
0'>
<
ImageTexture DEF='
watchListContainerField'
containerField='
watchList'/>
</
LoadSensor>
<
LoadSensor DEF='
IncorrectChildNode'
timeOut='
0'>
<Group containerField='watchList'/>
</
LoadSensor>
<
Script DEF='
HasLegalCDATA'>
<field name='duplicatedFieldName' type='SFBool' accessType='inputOnly'/>
<field name='duplicatedFieldName' type='SFBool' accessType='inputOnly'/>
</
Script>
<
Script DEF='
RouteButNoFields'
url='
TestSchematronDiagnostics.js'>
</
Script>
<
ROUTE fromNode='
NoFields'
fromField='
blah'
toNode='
NoFields'
toField='
blah'/>
<
ProtoInstance name='
NoDeclaration'/>
<
ProtoDeclare name='
MissingProtoBody'/>
<
WorldInfo DEF='
DEFoutsideProtoDeclareScope'/>
<
ProtoDeclare name='
DoubleMixedDeclaration'
DEF='
DuplicatedDeclaration'>
<
ProtoBody>
<
Group/>
<
Viewpoint DEF='
ISconnectDescription'
fieldOfView='
0.7854'>
<
IS>
<
connect nodeField='
description'
protoField='
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='
DoubleMixedDeclaration'
DEF='
DoubleDeclaration2'>
<fieldValue name='duplicatedFieldValueName' value='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'>
</
ProtoDeclare>
<
Group DEF='
ContainsISchildButNoParentProtoDeclare'>
</
Group>
<!-- test isolated (invalid) connect element <connect nodeField="isolatedConnectNodeField" protoField="isolatedConnectProtoField"/> -->
<
Shape DEF='
BadBoundingBoxValues'
bboxCenter='
1a 2b 3c'
bboxSize='
-1 -2 -3'>
<
Extrusion DEF='
ExtrusionCrossSectionMiscountSpineMismatchCrossSectionMiscount'
crossSection='
1 2 3'
orientation='
0 0 1 0 0 0 1 0 0 0 1 0'
scale='
1 1 1 1 1 1 1 1 1 1 1 1'
spine='
0 0 0 0 2 0'/>
<!-- check for reserved word in DEF -->
<
Appearance DEF='
DEF'>
<
TwoSidedMaterial DEF='
separateBackColorWrong'
backShininess='
0.123'/>
</
Appearance>
</
Shape>
<
ROUTE fromNode='
blah'
fromField='
set_blah'
toNode='
bleah'
toField='
bleah_changed'/>
<
Viewpoint DEF='
OKviewpoint'
description='
this viewpoint is OK'
fieldOfView='
0.7854'/>
<
Viewpoint DEF='
DEFdescriptionMatch'
description='
DEFdescriptionMatch'
fieldOfView='
0.7854'/>
<
OrthoViewpoint DEF='
NoSpacesInDescription'
description='
NeedToPutSpacesInDescription'/>
<
GeoViewpoint navType='
OTHER'
geoSystem='
"GD" "WE"'
position='
0 0 100000'
orientation='
0 0 1 0'
fieldOfView='
0.7854'
jump='
true'
headlight='
true'
containerField='
children'/>
<!-- check for reserved word in name definitions -->
<
ProtoDeclare name='
X3D'>
<
ProtoBody>
<
Group DEF='
PrototypeRootNode'/>
</
ProtoBody>
</
ProtoDeclare>
<
ExternProtoDeclare name='
X3D'>
<field name='X3D' type='SFBool' accessType='inputOnly'/>
</
ExternProtoDeclare>
<
ProtoInstance name='
X3D'
DEF='
BadNameBadFieldValueNameMissingInitialization'>
<fieldValue name='X3D'/>
</
ProtoInstance>
<
ProtoInstance name='
X3D'>
<
fieldValue name='
X3D'
value='
doubleInitialization'>
<Shape/>
</
fieldValue>
</
ProtoInstance>
<
HAnimJoint DEF='
MissingComponentH-AnimLevel1'/>
<
LOD>
<
Background DEF='
BackgroundWithParentLOD'/>
<
Fog DEF='
FogWithParentLOD'
fogType='
LINEAR'/>
<
NavigationInfo DEF='
NavigationInfoWithParentLOD'
type='
"EXAMINE" "ANY"'
transitionType='
"ANIMATE"'/>
<
Viewpoint DEF='
ViewpointWithParentLOD'
fieldOfView='
0.7854'/>
</
LOD>
<
ViewpointGroup DEF='
IllegalViewpointGroupChild'>
<Transform/>
</
ViewpointGroup>
<
Shape>
<
Box/>
<
Appearance>
<
PixelTexture DEF='
NoImageData'/>
</
Appearance>
</
Shape>
<
Shape>
<
Box/>
<
Appearance>
<
PixelTexture DEF='
IllegalImageData'
image='
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='
ImageDataTest'
image='
1 1 1 0xAA'/>
</
Appearance>
</
Shape>
<
WorldInfo DEF='
USEandDEFtogether'
USE='
USEandDEFtogether'/>
<
WorldInfo USE='
USEprecedesDEF'/>
<
WorldInfo DEF='
USEprecedesDEF'/>
<
WorldInfo USE='
noDEFforUSE'/>
<
WorldInfo DEF='
noChildNodeforUSE'/>
<
WorldInfo USE='
noChildNodeforUSE'>
<
MetadataSet containerField='
metadata'>
<MetadataString name='someStringArray' value='unquoted string values' containerField='metadata'/>
</
MetadataSet>
</
WorldInfo>
<
Group DEF='
DEFcontainsUSEcopyOfSelf'>
</
Group>
<
WorldInfo DEF='
USEmismatchDEFnodeType'/>
<
Group USE='
USEmismatchDEFnodeType'/>
<
LocalFog DEF='
NoLocalFogV3.0'/>
<
PointLight global='
true'/>
<
Shape>
<
IndexedFaceSet DEF='
CountTests'
coordIndex='
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 0' containerField='color'/>
<TextureCoordinate/>
<TextureCoordinateGenerator mode='SPHERE' containerField='texCoord'/>
</
IndexedFaceSet>
<
Appearance USE='
NoMaterialNoTexture'/>
</
Shape>
<
Shape>
<
Text DEF='
CharacterBeforeQuotes'
string='
x " "'
solid='
true'>
<FontStyle family='unquotedFontFamilyName' justify='unquotedIllegalJustification'/>
</
Text>
<
Appearance USE='
NoMaterialNoTexture'/>
</
Shape>
<
Shape>
<
Text DEF='
ThreeUnescapedQuoteMarksMissingSpaceEndsApostrophe'
string='
"" x" ''
solid='
true'>
<
FontStyle DEF='
familyValuesMissingIntermediateQuotes'
family='
"SANS SERIF"'
justify='
"BEGIN" "BEGIN"'/>
</
Text>
<
Appearance USE='
NoMaterialNoTexture'/>
</
Shape>
<
Shape>
<
Text DEF='
EscapedQuoteMarkWarning'
string='
"here is a single escaped \" quote mark character"'
solid='
true'>
<FontStyle justify='"IllegalValue"'/>
</
Text>
<
Appearance USE='
NoMaterialNoTexture'/>
</
Shape>
<
Shape>
<
Text DEF='
NeedQuoteMarks'
string='
quote marks are required for single string'
solid='
true'>
<FontStyle/>
</
Text>
<
Appearance USE='
NoMaterialNoTexture'/>
</
Shape>
<
Shape>
<
Text DEF='
EmbeddedQuoteMarksOK'
string='
"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='
NormalPath'
key='
0 0.5 1'
keyValue='
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='
LegalGeoSystem'
geoCoords='
36.607 -121.885 0.0'
geoSystem='
"GD" "WE"'
containerField='
children'/>
<
ProtoDeclare name='
ReferenceTest'>
<
ProtoInterface>
<
field name='
defaultTest'
type='
SInt32'
value='
78'
accessType='
initializeOnly'/>
<
field name='
incorrectInitializationSFColorRGBA'
type='
SFColorRGBA'
value='
1 1 1'
accessType='
initializeOnly'/>
</
ProtoInterface>
<
ProtoBody>
<
Script
url='
"
http:///bogus"
'>
<
field name='
missingInitializationValue1'
type='
SFBool'
accessType='
initializeOnly'/>
<
field name='
missingInitializationValue2'
type='
SFInt32'
accessType='
initializeOnly'/>
<
field name='
incorrectInitializationSFVec3f'
type='
SFVec3f'
value='
0.0'
accessType='
initializeOnly'/>
<
field name='
incorrectInitializationMFColor'
type='
MFColor'
value='
1 2 3 4 5 6 7'
accessType='
initializeOnly'/>
<
field name='
missingInitializationValueHasIS'
type='
SFBool'
value='
true'
accessType='
initializeOnly'/>
<
fieldValue name='
shouldBeField'/>
<
IS>
<
connect nodeField='
missingInitializationValueHasIS'
protoField='
test'/>
</
IS>
</
Script>
<!-- Subsequent nodes do not render, but still must be a valid X3D subgraph -->
</
ProtoBody>
</
ProtoDeclare>
<
ProtoInstance name='
ReferenceTest'>
<fieldValue name='defaultTest' value='78'/>
<fieldValue name='incorrectInitializationSFColorRGBA' value='1 1 1 1 1'/>
<field name='shouldBeFieldValue'/>
</
ProtoInstance>
<
Transform DEF='
ZeroMagnitudeRotationAxes'
rotation='
0 0 0 0'
scaleOrientation='
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='
UnquotedTypeAndTransitionTypeErrors'
transitionType='
ALTERNATE'
type='
OTHER'/>