wiki:AST Schema

Version 3 (modified by stachnik, 14 years ago) ( diff )

--

  • Example XML File
    <?xml version="1.0" standalone="yes"?>
    <scroot:rootNode xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation="http://vsl.cis.udel.edu/ns/tass/tass_ast
                                  tass_ast.xsd"
              xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:scroot="http://vsl.cis.udel.edu/ns/tass/tass_ast">
      <id_RootNode>1</id_RootNode>
      <fdn_mainFunction>4</fdn_mainFunction>
      <globalScopeNodes>
        <id_GlobalScopeNodes>2</id_GlobalScopeNodes>
        <child>
          <id_FunctionDeclarationNode>4</id_FunctionDeclarationNode>
          <identifier>
            <id_IdentifierNode>5</id_IdentifierNode>
            <name>test</name>
          </identifier>
          <outputType>
            <id_TypeNode>6</id_TypeNode>
          </outputType>
          <formals>
            <id_FormalVariableDeclarationNodes>7</id_FormalVariableDeclarationNodes>
          </formals>
        </child>
      </globalScopeNodes>
      
    </scroot:rootNode>
    
  • ASTNode Schema
    <?xml version="1.0"?>
    <xs:schema targetNamespace="http://vsl.cis.udel.edu/ns/tass/ASTNode" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:astnode="http://vsl.cis.udel.edu/ns/tass/ASTNode" xmlns:bln="http://vsl.cis.udel.edu/ns/tass/BlockNode" xmlns:fdn="http://vsl.cis.udel.edu/ns/tass/declaration/FunctionDeclarationNode" xmlns:gsn="http://vsl.cis.udel.edu/ns/tass/GlobalScopeNode" xmlns:idn="http://vsl.cis.udel.edu/ns/tass/IdentifierNode" xmlns:ln="http://vsl.cis.udel.edu/ns/tass/LabelNode" xmlns:misc="http://vsl.cis.udel.edu/ns/tass/misc" xmlns:rtn="http://vsl.cis.udel.edu/ns/tass/RootNode" xmlns:seq="http://vsl.cis.udel.edu/ns/tass/SequenceNode" xmlns:stn="http://vsl.cis.udel.edu/ns/tass/StatementNode" xmlns:szn="http://vsl.cis.udel.edu/ns/tass/SizeableNode" xmlns:tyn="http://vsl.cis.udel.edu/ns/tass/TypeNode">
      <xs:import namespace="http://vsl.cis.udel.edu/ns/tass/BlockNode" schemaLocation="BlockNode.xsd"/>
      <xs:import namespace="http://vsl.cis.udel.edu/ns/tass/declaration/FunctionDeclarationNode" schemaLocation="declaration\FunctionDeclarationNode.xsd"/>
      <xs:import namespace="http://vsl.cis.udel.edu/ns/tass/GlobalScopeNode" schemaLocation="GlobalScopeNode.xsd"/>
      <xs:import namespace="http://vsl.cis.udel.edu/ns/tass/IdentifierNode" schemaLocation="IdentifierNode.xsd"/>
      <xs:import namespace="http://vsl.cis.udel.edu/ns/tass/LabelNode" schemaLocation="LabelNode.xsd"/>
      <xs:import namespace="http://vsl.cis.udel.edu/ns/tass/misc" schemaLocation="misc.xsd"/>
      <xs:import namespace="http://vsl.cis.udel.edu/ns/tass/RootNode" schemaLocation="RootNode.xsd"/>
      <xs:import namespace="http://vsl.cis.udel.edu/ns/tass/SequenceNode" schemaLocation="SequenceNode.xsd"/>
      <xs:import namespace="http://vsl.cis.udel.edu/ns/tass/StatementNode" schemaLocation="StatementNode.xsd"/>
      <xs:import namespace="http://vsl.cis.udel.edu/ns/tass/SizeableNode" schemaLocation="SizeableNode.xsd"/>
      <xs:import namespace="http://vsl.cis.udel.edu/ns/tass/TypeNode" schemaLocation="TypeNode.xsd"/>
      <xs:group name="_ASTNodeGroup">
        <xs:sequence>
          <xs:element name="id_ASTNode" type="xs:int" minOccurs="1" maxOccurs="1"/>
          <xs:element name="source" type="misc:Source" minOccurs="0" maxOccurs="1"/>
        </xs:sequence>
      </xs:group>
      <xs:complexType name="ASTNode">
        <xs:choice>
          <xs:group ref="astnode:_ASTNodeGroup"/>
          <xs:group ref="tyn:_TypeNodeGroup"/>
          <xs:group ref="stn:_StatementNodeGroup"/>
          <xs:group ref="bln:_BlockNodeGroup"/>
          <xs:group ref="szn:_SizeableNodeGroup"/>
          <xs:group ref="seq:_VariableDeclarationNodesGroup"/>
          <xs:group ref="seq:_StatementNodesGroup"/>
          <xs:group ref="seq:_LabelNodesGroup"/>
          <xs:group ref="seq:_GlobalScopeNodesGroup"/>
          <xs:group ref="seq:_FormalVariableDeclarationNodesGroup"/>
          <xs:group ref="rtn:_RootNodeGroup"/>
          <xs:group ref="ln:_LabelNodeGroup"/>
          <xs:group ref="idn:_IdentifierNodeGroup"/>
          <xs:group ref="gsn:_GlobalScopeNodeGroup"/>
          <xs:group ref="fdn:_FunctionDeclarationNodeGroup"/>
        </xs:choice>
      </xs:complexType>
    </xs:schema>
    
Note: See TracWiki for help on using the wiki.