summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorburaq <buraq@epfl.ch>2004-05-26 10:43:52 +0000
committerburaq <buraq@epfl.ch>2004-05-26 10:43:52 +0000
commit0371fea50f5f5a2bc1563be4325698a6ca7abad6 (patch)
tree4bef62993da4ea1329dd8079bf5e9be3698bf780
parent02e928fd366845af48154fbe3e57ecbea99b91a1 (diff)
downloadscala-0371fea50f5f5a2bc1563be4325698a6ca7abad6.tar.gz
scala-0371fea50f5f5a2bc1563be4325698a6ca7abad6.tar.bz2
scala-0371fea50f5f5a2bc1563be4325698a6ca7abad6.zip
new dtd decl items in Scala XML lib
-rw-r--r--sources/scala/xml/dtd/Decl.scala40
1 files changed, 40 insertions, 0 deletions
diff --git a/sources/scala/xml/dtd/Decl.scala b/sources/scala/xml/dtd/Decl.scala
new file mode 100644
index 0000000000..9b8e33ac05
--- /dev/null
+++ b/sources/scala/xml/dtd/Decl.scala
@@ -0,0 +1,40 @@
+package scala.xml.dtd ;
+
+import scala.collection.Map ;
+
+abstract class Decl ;
+
+abstract class MarkupDecl extends Decl ;
+
+case class ElemDecl( name:String ,
+ contentModel:String ,
+ attribs:Map[String,AttrDecl] )
+ extends MarkupDecl {
+
+ def containsText = contentModel.indexOf("#PCDATA") != -1 ;
+};
+
+/* ignore default values 4 now */
+case class AttrDecl( name:String, tpe:String, default:DefaultDecl ) extends MarkupDecl;
+
+/* ignore default values 4 now */
+case class EntityDecl( name:String, tpe:String ) extends MarkupDecl;
+
+/* ignore default values 4 now */
+case class NotationDecl( name:String, tpe:String ) extends MarkupDecl;
+
+case class PEReference(ent:String) extends Decl {
+ if( !Utility.isName( ent ))
+ throw new IllegalArgumentException("ent must be an XML Name");
+
+ final override def toString() = "%"+ent+";"
+}
+
+
+// default declarations for attributes
+
+class DefaultDecl ;
+
+case object REQUIRED, IMPLIED extends DefaultDecl;
+
+case class DEFAULT(fixed:boolean, attValue:String) extends DefaultDecl;