Skip to content
Snippets Groups Projects
xmlschema.ast 3.48 KiB
Newer Older
// -*-Java-*-

 
 
// Copyright (C) 2007,2008,2009  Anders Nilsson <anders.nilsson@cs.lth.se>
//
// This file is part of XMLSchemaCompiler.
//
// XMLSchemaCompiler is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
// XMLSchemaCompiler is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with XMLSchemaCompiler.  If not, see <http://www.gnu.org/licenses/>.



Start ::= Specification;

Anders Nilsson's avatar
Anders Nilsson committed
Specification ::= XmlHeader XsSchema;

XmlHeader ::= Attribute*;

abstract Element;
abstract ComplexElement : Element ::= Attribute* Element*;

XsAll            : ComplexElement;
XsAnnotation     : ComplexElement;
XsAny            : ComplexElement;
XsAnyAttribute   : ComplexElement;
Anders Nilsson's avatar
Anders Nilsson committed
XsAppinfo        : ComplexElement;
XsAttribute      : ComplexElement;
XsAttributeGroup : ComplexElement;
XsChoice         : ComplexElement;
Anders Nilsson's avatar
Anders Nilsson committed
XsComplexContent : ComplexElement;
XsComplexType    : ComplexElement;
XsDocumentation  : ComplexElement;
XsElement        : ComplexElement;
Anders Nilsson's avatar
Anders Nilsson committed
XsEnumeration    : ComplexElement;
XsExtension      : ComplexElement;
XsGroup          : ComplexElement;
XsInclude        : ComplexElement;
Anders Nilsson's avatar
Anders Nilsson committed
XsList           : ComplexElement;
XsMaxInclusive   : ComplexElement;
XsMinInclusive   : ComplexElement;
XsMinExclusive   : ComplexElement;
Anders Nilsson's avatar
Anders Nilsson committed
XsMaxLength      : ComplexElement;
Anders Nilsson's avatar
Anders Nilsson committed
XsMinLength      : ComplexElement;
XsPattern        : ComplexElement;
XsRestriction    : ComplexElement;
XsSequence       : ComplexElement;
XsSimpleType     : ComplexElement;
XsSchema         : ComplexElement;
Anders Nilsson's avatar
Anders Nilsson committed
XsWhiteSpace     : ComplexElement;


abstract SimpleElement : Element;
StringElement : SimpleElement ::= <STRING>;
CDataElement : SimpleElement ::= <STRING>;
IntElement : SimpleElement ::= <INTEGER_LITERAL>;
FloatElement : SimpleElement ::= <FLOAT_LITERAL>;

Anders Nilsson's avatar
Anders Nilsson committed
abstract Attribute ::= AttValue;
Abstract             : Attribute;
AttributeFormDefault : Attribute;
Base                 : Attribute;
Anders Nilsson's avatar
Anders Nilsson committed
Default              : Attribute;
ElementFormDefault   : Attribute;
Encoding             : Attribute;
Fixed                : Attribute;
Anders Nilsson's avatar
Anders Nilsson committed
ItemType             : Attribute;
MinOccurs            : Attribute;
MaxOccurs            : Attribute;
Mixed                : Attribute;
Name                 : Attribute;
Namespace            : Attribute;
ProcessContents      : Attribute;
Anders Nilsson's avatar
Anders Nilsson committed
Ref                  : Attribute;
Source               : Attribute;
SchemaLocation       : Attribute;
Administrator's avatar
Administrator committed
Standalone           : Attribute;
TargetNamespace      : Attribute;
Anders Nilsson's avatar
Anders Nilsson committed
Type                 : Attribute;
Use                  : Attribute;
Anders Nilsson's avatar
Anders Nilsson committed
Value                : Attribute;
Version              : Attribute;
Xmlns                : Attribute;
XmlnsXs              : Attribute;
XmlnsScxml           : Attribute;

// DiscardedElement : Element ::= Identifier Attribute* Element*;

Anders Nilsson's avatar
Anders Nilsson committed
AttValue ::= <STRING_LITERAL>;
// Identifier ::= <IDENTIFIER>;

// // Types used by rewrite rules
// abstract OClass : ComplexElement ::= <Id:String>;
// OwlClassDecl : OClass;
// OwlClassUse : OClass;

// abstract OwlValuesFrom: ComplexElement;


// Properties ::= Property:Element*;
// Restrictions ::= OwlRestriction*;

// abstract OwlProperty : ComplexElement;