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('>'); }
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); }