Exemple #1
0
        void parseEntityDecl()
        {
            // <!ENTITY already parsed.

            Entity  entity;
            bool isPE = false;
            string  name, notation, val = null, systemID = null, publicID = null;

            requireWhitespace();
            if (isChar('%'))
            {
                isPE = true;
                requireWhitespace();
            }

            name = getName();
            requireWhitespace();

            if (isString("PUBLIC"))
            {
                publicID = parsePublicID();
                systemID = parseSystemLiteral();
            }
            else if (isString("SYSTEM"))
            {
                systemID = parseSystemLiteral();
            }
            else
            {
                val = getEntityValue(isPE);
            }

            if (isPE)
            {
                // Parameter entity

                entity = new ParameterEntity(name);
                entity.SystemId = systemID;
                entity.PublicId = publicID;
                ((ParameterEntity)entity).Value = val;

                dtd.AddParameterEntity(name, entity);
            }
            else if (isString("NDATA"))
            {
                // Unparsed entity

                requireWhitespace();
                notation = getName();

                entity = new UnparsedEntity(name);
                entity.SystemId = systemID;
                entity.PublicId = publicID;
                ((UnparsedEntity)entity).Notation = notation;

                dtd.AddUnparsedEntity(name, entity);
            }
            else
            {
                // Parsed general entity

                entity = new ParsedGeneralEntity(name);
                entity.SystemId = systemID;
                entity.PublicId = publicID;
                ((ParsedGeneralEntity)entity).Value = val;

                dtd.AddParsedGeneralEntity(name, entity);
            }
            discardWhitespace();
            requireChar('>');
        }
Exemple #2
0
        void initPredefinedEntities()
        {
            ParsedGeneralEntity entity;

            entity = new ParsedGeneralEntity("lt");
            entity.Value = "<";
            predefinedEntities.Add(entity.Name, entity);

            entity = new ParsedGeneralEntity("gt");
            entity.Value = ">";
            predefinedEntities.Add(entity.Name, entity);

            entity = new ParsedGeneralEntity("amp");
            entity.Value = "&";
            predefinedEntities.Add(entity.Name, entity);

            entity = new ParsedGeneralEntity("apos");
            entity.Value = "'";
            predefinedEntities.Add(entity.Name, entity);

            entity = new ParsedGeneralEntity("quot");
            entity.Value = "\"";
            predefinedEntities.Add(entity.Name, entity);
        }