On 8/24/06, Miguel Montes wrote:

Thanks Stepan. So, it should be

BDTD ::= SEQUENCE {
       name UTF8String,
       entity SET OF HTMLEntity,
       element SET OF HTMLElement
}

HTMLEntity ::= SEQUENCE {
       name UTF8String,
       value INTEGER,
       general [0] IMPLICIT BOOLEAN DEFAULT FALSE,
       parameter [1] IMPLICIT BOOLEAN DEFAULT FALSE,
       data UTF8String
}

HTMLElement ::= SEQUENCE {
       index INTEGER,
       name UTF8String,
       type INTEGER,
       oStart BOOLEAN,
       oEnd BOOLEAN,
       exclusions SET OF INTEGER,
       inclusions SET OF INTEGER,
       attributes SET OF HTMLElementAttributes OPTIONAL,
       contentModel HTMLContentModel
}

HTMLContentModel ::= SEQUENCE OF SEQUENCE {
       type INTEGER,
       index INTEGER
}

HTMLElementAttributes ::= SEQUENCE {
       name UTF8String,
       type INTEGER,
       modifier INTEGER,
       defaultValue UTF8String OPTIONAL,
       possibleValues SET OF UTF8String OPTIONAL
}


If we want exclusions and inclusions in HTMLElement to be optional, it
should be something like

HTMLElement ::= SEQUENCE {
       index INTEGER,
       name UTF8String,
       type INTEGER,
       oStart BOOLEAN,
       oEnd BOOLEAN,
       exclusions [0] IMPLICIT SET OF INTEGER OPTIONAL,
       inclusions [1] IMPLICIT SET OF INTEGER OPTIONAL,
       attributes SET OF HTMLElementAttributes OPTIONAL,
       contentModel HTMLContentModel
}

Is this right?


Yes, that is right.

- Stepan.

On 8/23/06, Stepan Mishura wrote:
>
> Hi Miguel,
>
> I've looked thought proposed ASN.1 notation and it looks OK for me. I
have
> only few comments.
> (However I don't know all details of DTD, i.e. I've not checked whether
> your
> notation correctly represents DTD so I'll comment only proposed
> ASN.1notation.)
>
> BTW, I've changed the subject if you don't mind.
>
> Common remark: a component of SEQUENCE(OF), SET(OF) should starts with a
> lower-case letter.
>
> Other comment see below.
>
> On 8/23/06, Miguel Montes wrote:
>
> > Hi:
> > We are working on the html parser, and need to have working DTD. The
> > current
> > implementation of DTD.read(), based on serialization, has some
problems,
> > and
> > I think we should have a well defined binary format. I suggest the
> > following
> > ASN.1 format, and if there is consensus on it, we could contribute the
> > code
> > to read and write it.
> > I would like to hear the opinion of Stepan and anyone who has worked
> with
> > ASN.1 before.
> >
> > BDTD ::= SEQUENCE {
> >       Name UTF8String,
> >       Entity SET OF HTMLEntity,
> >       Element SET OF HTMLElement
> > }
> >
> > HTMLEntity ::= SEQUENCE {
> >       Name UTF8String,
> >       Value INTEGER,
> >       General BOOLEAN DEFAULT FALSE,
> >       Parameter BOOLEAN DEFAULT FALSE,
> >       Data UTF8String
> > }
>
>
> This won't work. I'll try to explain. We have 2 DEFAULT components here.
> If
> a component is declared as DEFAULT then it is also OPTIONAL and can be
> missed. A decoder can detect which component is missed only if a in
block
> of
> OPTIONAL components plus next mandatory component all elements are
> distinct.
>
> We have the next block:
> general         BOOLEAN    DEFAULT FALSE
> parameter    BOOLEAN    DEFAULT FALSE
> data              UTF8String
>
> So 1-st and 2-nd elements are not distinct. This can be fixed by tagging
> some elements. I'd use implicit tagging, for example:
>
> general                                    BOOLEAN    DEFAULT FALSE
> parameter    [0]  IMPLICIT     BOOLEAN    DEFAULT FALSE
>
> or
>
> general         [0]  IMPLICIT     BOOLEAN    DEFAULT FALSE
> parameter    [1]  IMPLICIT     BOOLEAN    DEFAULT FALSE
>
> Thanks,
> Stepan.
>
> P.S. I'll let you know if I have more corrections.
>
>
>
>
>
> > HTMLElement ::= SEQUENCE {
> >       Index INTEGER,
> >       Name UTF8String,
> >       Type INTEGER,
> >       OStart BOOLEAN,
> >       OEnd BOOLEAN,
> >       Exclusions SET OF INTEGER,
> >       Inclusions SET OF INTEGER,
> >       Attributes SET OF HTMLElementAttributes OPTIONAL,
> >       ContentModel HTMLContentModel,
> > }
> >
> > HTMLContentModel ::= SEQUENCE OF SEQUENCE {
> >       Type INTEGER,
> >       Index INTEGER
> > }
> >
> > HTMLElementAttributes ::= SEQUENCE {
> >       Name UTF8String,
> >       Type INTEGER,
> >       Modifier INTEGER,
> >       DefaultValue UTF8String OPTIONAL,
> >       PossibleValues SET OF UTF8String OPTIONAL
> > }
> > --
> > Miguel Montes
> >


------------------------------------------------------
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to