Loading ...
Sorry, an error occurred while loading the content.

Opinions?

Expand Messages
  • Keith Davies
    Hi All, I ve run into a situation that I m not comfortable with. There are several ways to deal with it, each of which will have ramifications later.
    Message 1 of 20 , Apr 10, 2003
    • 0 Attachment
      Hi All,

      I've run into a situation that I'm not comfortable with. There are
      several ways to deal with it, each of which will have ramifications
      later.

      Currently, most values are quite simple. For instance, armor check
      penalties on a piece of equipment are straightforward. However, this is
      not always the case.

      In a recent (sort of) discussion of 'hand count' and weapon proficiency,
      we considered using prereqs to determine the proficiency required by
      number of hands used. IIRC, 'bastard sword' became something like

      Bastard Sword
      WPROF:Martial|PREEQUIPHANDS:2
      WPROF:Martial|PRESIZEGT:Medium
      WPROF:Exotic|PRESIZE:Medium|PREHANDS:1

      (LST syntax mangling my fault). That is, multiple values could be
      available, and the value used was determined by the preconditions
      associated with those values.

      There are other tags in the system that allow prereqs to be associated.
      It makes sense to design the XML schema so it can support this easily
      and consistently. This will make the schema a superset of what is
      supported in the internal data model, but that'll be fixed in the
      future.

      So, how to do this? There are several possibilities.

      The first is to simply allow prereqs in the element, making no other
      changes. So, the example above would become something like:

      <equip id="equip.bastard-sword">
      <name>Bastard Sword</name>
      <wprof>Martial<prereqs><preequiphands eq="2"/></prereqs></wprof>
      <wprof>Martial<prereqs><presize min="Large"/></prereqs></wprof>
      <wprof>Exotic<prereqs><preequiphands eq="1"/></prereqs>
      </wprof>
      </equip>

      I'm not entirely happy with this. The XML schema design books I've read
      have all said that, unless it is something inherently mixed (such as
      document text) that mixing plain character data with elements is a Bad
      Thing -- that an element should contain either other elements, or plain
      text, but not both. In fact, I've seen recommendations that even
      document text should follow the same rules. The rest of the suggestions
      below are based on the assumption that we *don't* do the above.

      A second possibility is that we introduce a new element whose sole
      purpose is to contain text data.

      <equip id="equip.bastard-sword">
      <name><t>Bastard Sword</t></name>
      <wprof><t>Martial</t><prereqs><preequiphands eq="2"/></prereqs></wprof>
      <wprof><t>Martial</t><prereqs><presize min="Large"/></prereqs></wprof>
      <wprof><t>Exotic</t><prereqs><prehandseq eq="1"/></prereqs>
      </wprof>
      </equip>

      Personally, I don't like the above. I kept the element name as short as
      possible, but it doesn't really add anything.

      A third possibility is to introduce an attribute to contain the text
      values of elements (called 'value', most likely). The above example
      becomes

      <equip id="equip.bastard-sword">
      <name value="Bastard Sword" />
      <wprof value="Martial"><prereqs><preequiphands eq="2"/></prereqs></wprof>
      <wprof value="Martial"><prereqs><presize min="Large"/></prereqs></wprof>
      <wprof value="Exotic"><prereqs><prehandseq eq="1"/></prereqs>
      </wprof>
      </equip>

      I actually don't mind this one. It even becomes valuable if we want to
      constrain the allowed values and move to references because it lets us
      put it in a good place for it.


      The three possibilities above assume that we minimize the techniques
      used and keep things as consistent in application as possible. The
      fourth, though, doesn't.


      A fourth possibility is that we allow more than one mode.
      Specificially, we can store the text value of an element in the element
      body if there are no other child elements, or we store it in the 'value'
      attribute if there are other child elements.

      <equip id="equip.bastard-sword">
      <name>Bastard Sword</name>
      <wprof value="Martial"><prereqs><preequiphands eq="2"/></prereqs></wprof>
      <wprof value="Martial"><prereqs><presize min="Large"/></prereqs></wprof>
      <wprof value="Exotic"><prereqs><prehandseq eq="1"/></prereqs>
      </wprof>
      </equip>

      This lets us avoid mixed-mode elements; each element contains either
      text or child elements at any given time. It does make it harder to
      deal with because we have to look in two places to get the information.
      OTOH, even looking in two places is, I think, simpler than trying to
      sort out what is data and what isn't.

      Thoughts, comments? I'm not entirely satisfied with any of the
      solutions above; I'd welcome suggestions for improvement.


      Keith
      --
      Keith Davies
      keith.davies@...

      PCGen: <reaper/>, smartass
      "You just can't argue with a moron. It's like handling Nuclear
      waste. It's not good, it's not evil, but for Christ's sake, don't
      get any on you!!" -- Chuck, PCGen mailing list
    • matt+haffner
      I have very little real-world experience with XML ouside of Perl and XML::Simple. I know that it does not handle the mixed mode situation well (if at all), so
      Message 2 of 20 , Apr 11, 2003
      • 0 Attachment
        I have very little real-world experience with XML ouside of Perl and XML::Simple. I know that it does not handle the mixed mode situation well (if at all), so I'd strongly lean toward method 3 or 4, giving slight preference to 4 due to flexibility and readability. I agree with you about method 2. Adding an element just to hold text doesn't seem any more compelling than adding a keyword (method 3).

        Method 1 just seems like a parsing nightmare (what happens to text interspersed between elements?) and requires LST editors to perhaps worry about positional placement of the textual elements.

        mh - ZansForCans
      • Brian J. Ackermann
        Greetings All, For myself, I personally like 3, but 4 seems good too. Either would be a better choice than the first two. I just happen to be particularly
        Message 3 of 20 , Apr 11, 2003
        • 0 Attachment
          Greetings All,

          For myself, I personally like 3, but 4 seems good too. Either would be
          a better choice than the first two. I just happen to be particularly
          fond of attributes, as opposed to tags.

          Brian Ackermann

          matt+haffner wrote:

          > I have very little real-world experience with XML ouside of Perl and
          > XML::Simple. I know that it does not handle the mixed mode situation
          > well (if at all), so I'd strongly lean toward method 3 or 4, giving
          > slight preference to 4 due to flexibility and readability. I agree
          > with you about method 2. Adding an element just to hold text doesn't
          > seem any more compelling than adding a keyword (method 3).
          >
          > Method 1 just seems like a parsing nightmare (what happens to text
          > interspersed between elements?) and requires LST editors to perhaps
          > worry about positional placement of the textual elements.
          >
          > mh - ZansForCans
          >
          >
          > *Yahoo! Groups Sponsor*
          > <http://us.ard.yahoo.com/M=249982.3083889.4452939.1728375/D=egroupweb/S=1706030390:HM/A=1524963/R=0/*http://hits.411web.com/cgi-bin/autoredir?camp=556&lineid=3083889&prop=egroupweb&pos=HM>
          >
          >
          >
          > To unsubscribe from this group, send an email to:
          > pcgen-xml-unsubscribe@yahoogroups.com
          >
          >
          >
          > Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service
          > <http://docs.yahoo.com/info/terms/>.
        • tsalla2
          I don t know if a firm decision has been made about how data should be formatted when using prerequisites, so if you are done taking suggestions, sorry I was
          Message 4 of 20 , May 9, 2003
          • 0 Attachment
            I don't know if a firm decision has been made about how data should be
            formatted when using prerequisites, so if you are done taking
            suggestions, sorry I was late. I'm afraid I only just found out about
            this site yesterday. (And I must say, I'm glad it exists.)

            I'm not really enamored with any of the possibilities you mentioned
            either. Of them, I'd probably prefer number 3 or 4.

            The bastard sword is an interesting example, and I think part of the
            confusion here comes from using <prereqs> in a different fashion than
            in other examples I've seen. Most uses indicate whether a character
            can *be* or *have* something, not which category something falls into
            when the character has it. And in the case of weapons, at least,
            there are times when it would be useful to know what category of
            proficiency type it is generally classified as *without a particular
            wielder*. (For a bastard sword, I'm not sure whether "Martial" or
            "Martial, Exotic" would be more appropriate.)

            <prereqs> is going to evaluate to TRUE or FALSE. Why not treat
            multiple cases as some sort of override? An object would be complete
            with a default, but any conditional changes could be flagged with an
            attribute and specified in a new type of element. For example:

            <equip id="equip.bastard-sword">
            <name>Bastard Sword</name>
            <wprof varies="1">Martial, Exotic</wprof>

            <override>
            <case>
            <prereqs><preequiphands eq="2"/></prereqs>
            <include><wprof>Martial</wprof></include>
            </case>
            <case>
            <prereqs><presize min="Large"/></prereqs>
            <include><wprof>Martial</wprof></include>
            </case>
            <case>
            <prereqs><prehandseq eq="1"/></prereqs>
            <include><wprof>Exotic</wprof></include>
            </case>
            <otherwise>
            <include><wprof>Unusable</wprof></include>
            </otherwise>
            </override>
            </equip>

            If you just want to list the proficiency type of a bastard sword in a
            table with a bunch of other weapons, you'd just list its default value
            (outside the <override> section). If you wanted to determine the
            current type for a given user, you'd see the main <wprof> had a
            "varies" attribute set, so you would ignore it and evaluate the
            <override> section. You could even just list all the possible cases
            for the <override> section.

            You could use this approach for less common situations too:

            <equip id="equip.bastard-sword">
            <name varies="1">Bastard Sword</name>
            <wprof varies="1">Martial, Exotic</wprof>

            <override>
            <case>
            <prereqs><preregion eq="The Rebel Kingdom"/></prereqs>
            <include><name>Hand-and-a-Half Sword</name></include>
            </case>
            <case>
            <prereqs><prerace eq="Orc"/></prereqs>
            <include>
            <name>Bastard Blade</name>
            <name>Human-Hewer</name>
            <name>Ir-Korthok</name>
            </include>
            </case>
            <otherwise>
            <include><name>Bastard Sword</name></include>
            </otherwise>
            </override>

            <override>
            <case>
            <prereqs><preequiphands eq="2"/></prereqs>
            <include><wprof>Martial</wprof></include>
            </case>
            <case>
            <prereqs><presize min="Large"/></prereqs>
            <include><wprof>Martial</wprof></include>
            </case>
            <case>
            <prereqs><prehandseq eq="1"/></prereqs>
            <include><wprof>Exotic</wprof></include>
            </case>
            <otherwise>
            <include><wprof>Unusable</wprof></include>
            </otherwise>
            </override>
            </equip>

            I'm not sure this approach solves all your problems, and I'm sure it
            can be refined. "Override" might not be the best term, and perhaps
            "Condition" or something would be better. I thought I'd through the
            idea out there, though. Hope it helps.

            tsalla
          • dlm1065
            I ll be blunt I haven t a clue yet on xml but I will once I have a little more time to focus on learning it. But as a person working on lst I have a question.
            Message 5 of 20 , May 11, 2003
            • 0 Attachment
              I'll be blunt I haven't a clue yet on xml but I will once I have a
              little more time to focus on learning it. But as a person working
              on lst I have a question. Which of the methods is going to allow for
              modifications the easiest by other data sets 3,4, or 5(tsalla's).

              Examples
              1)one book calls it bastard sword, another book calls it sowrd and a
              half, something else calls it Fooboz. I want to use the name fooboz
              with the data from bastard sword, after all why enter the same data
              20 times for different names?

              2)WOTC player's Paladin. In dragonstar he gets technical proficiency
              and other new armor and weapon proficiencies but he also looses
              class skills(like ride) and SA's (like Summon Special Mount).
              Present lst cannot back out class skills(at least not last time I
              checked). It can back out SA's with a CLEAR. To do this lst code you
              have to make an entire new paladin with a name to indicate the book,
              Paladin(DS).

              3)WOTC handbook race elf. In dragonstar the elf racial abilities are
              added to. You gt an additional +2 racial bonus on freefall checks &
              +2 racial bonus to knowledge. Which has a lst code of this in DS
              races.

              RACE:Elf.MOD
              BONUS:SKILL|Freefall,Knowledge (Biology)|2|TYPE=Racial
              TEMPLATE:DS Regions

              So how would method 3,4,5 handle the MOD or CLEAR syntax in a manner
              that would be the simpleist to understand and code??
            • tsalla2
              ... Interesting question. I m not very familiar with the lst format and am not sure how things are coded into PCGen. I can see how something similar to
              Message 6 of 20 , May 11, 2003
              • 0 Attachment
                --- In pcgen-xml@yahoogroups.com, "dlm1065" <dlm1065@h...> wrote:
                > ...
                > Which of the methods is going to allow for
                > modifications the easiest by other data sets 3,4, or 5(tsalla's).
                >
                > ...
                > So how would method 3,4,5 handle the MOD or CLEAR syntax in a manner
                > that would be the simpleist to understand and code??

                Interesting question. I'm not very familiar with the lst format and
                am not sure how things are coded into PCGen. I can see how something
                similar to method 5 could be used to modify data from other sets,
                although that was not what was intended when I suggested it. I was
                trying to apply modifications to an item on the fly based on
                prerequisites... in other words, whether or not a bastard sword is an
                exotic weapon or not depends on the wielder and how he trys to wield
                it. Both options are available in the same campaign, or even with the
                same character. It works the same for all (standard) bastard swords.

                If you are trying to make variants, a different tag could be used in
                the same way (mod and/or clear, etc.) provided the "source" is also
                loaded and the program is set up to handle it. To be honest, though,
                I think it would be better to just copy the source material (for
                example, "paladin"), change the name, and make your changes. If you
                want to highlight what's different, you could just add comment lines
                where appropriate. That way if the source ever changes suddenly, or
                if you don't want to load it, your variant would stay the same.

                The only time this wouldn't really work is if you wanted to tweak
                proprietary stuff and share it publicly. (Which would be wrong.)
                Then you really would need to just share your changes.

                I would be curious to know what the monkeys' thoughts are on this too.

                Curious George (tsalla)
              • dlm1065
                ... (tsalla s). ... manner ... and ... something ... an ... wield ... the ... swords. ... in ... though, ... you ... lines ... or ... too. ... Nope. We do the
                Message 7 of 20 , May 14, 2003
                • 0 Attachment
                  --- In pcgen-xml@yahoogroups.com, "tsalla2" <tsalla@v...> wrote:
                  > --- In pcgen-xml@yahoogroups.com, "dlm1065" <dlm1065@h...> wrote:
                  > > ...
                  > > Which of the methods is going to allow for
                  > > modifications the easiest by other data sets 3,4, or 5
                  (tsalla's).
                  > >
                  > > ...
                  > > So how would method 3,4,5 handle the MOD or CLEAR syntax in a
                  manner
                  > > that would be the simpleist to understand and code??
                  >
                  > Interesting question. I'm not very familiar with the lst format
                  and
                  > am not sure how things are coded into PCGen. I can see how
                  something
                  > similar to method 5 could be used to modify data from other sets,
                  > although that was not what was intended when I suggested it. I was
                  > trying to apply modifications to an item on the fly based on
                  > prerequisites... in other words, whether or not a bastard sword is
                  an
                  > exotic weapon or not depends on the wielder and how he trys to
                  wield
                  > it. Both options are available in the same campaign, or even with
                  the
                  > same character. It works the same for all (standard) bastard
                  swords.
                  >
                  > If you are trying to make variants, a different tag could be used
                  in
                  > the same way (mod and/or clear, etc.) provided the "source" is also
                  > loaded and the program is set up to handle it. To be honest,
                  though,
                  > I think it would be better to just copy the source material (for
                  > example, "paladin"), change the name, and make your changes. If
                  you
                  > want to highlight what's different, you could just add comment
                  lines
                  > where appropriate. That way if the source ever changes suddenly,
                  or
                  > if you don't want to load it, your variant would stay the same.
                  >
                  > The only time this wouldn't really work is if you wanted to tweak
                  > proprietary stuff and share it publicly. (Which would be wrong.)
                  > Then you really would need to just share your changes.
                  >
                  > I would be curious to know what the monkeys' thoughts are on this
                  too.
                  >
                  > Curious George (tsalla)

                  Nope. We do the MOD and CLEAR already. Think of it this way we have
                  the race elf in the srd and book blah says use elf but give it these
                  abilities extra. TSR/WOTC/Hasbro changes the SRD elf by having a MOD
                  pointing to a previous dataset you are actually protecting the
                  intellectual property of WOTC and having to change only one set of
                  data instead of hunting through all the books for "lic. duplicates"
                  of that race which may have only a skill added.

                  Example
                  (the following would be on 1 line tab delimited in an actual lst)

                  RACE:Elf.MOD
                  OUTPUTNAME:Elf(DS)
                  BONUS:SKILL|Freefall,Knowledge (Biology)|2|TYPE=Racial
                  SOURCEPAGE:
                • Keith Davies
                  ... I m currently (as in in the last couple of days ) revising . I think I can reduce the 41 elements to... one. With consistent (although
                  Message 8 of 20 , May 15, 2003
                  • 0 Attachment
                    On Fri, May 09, 2003 at 10:06:27PM +0000, tsalla2 wrote:
                    > I don't know if a firm decision has been made about how data should be
                    > formatted when using prerequisites, so if you are done taking
                    > suggestions, sorry I was late. I'm afraid I only just found out about
                    > this site yesterday. (And I must say, I'm glad it exists.)

                    I'm currently (as in 'in the last couple of days') revising <prereqs>.
                    I think I can reduce the 41 elements to... one. With consistent
                    (although unfortunately not *dead simple*) interpretation.

                    > I'm not really enamored with any of the possibilities you mentioned
                    > either. Of them, I'd probably prefer number 3 or 4.
                    >
                    > The bastard sword is an interesting example, and I think part of the
                    > confusion here comes from using <prereqs> in a different fashion than
                    > in other examples I've seen. Most uses indicate whether a character
                    > can *be* or *have* something, not which category something falls into
                    > when the character has it. And in the case of weapons, at least,
                    > there are times when it would be useful to know what category of
                    > proficiency type it is generally classified as *without a particular
                    > wielder*. (For a bastard sword, I'm not sure whether "Martial" or
                    > "Martial, Exotic" would be more appropriate.)

                    IIRC, there are other places where aspects of the entity being described
                    apply only when the character meets certain prerequisites (see Holy
                    Sword -- the bonus is +2, or higher if the character is a paladin).
                    Thus, there are precedents for doing this.

                    That said, I think it's a crappy example and a lousy way of handling
                    this particular problem. What I'd like to see is the ability to define
                    certain rules associated with, in this case, proficiency. So, bastard
                    sword would become:

                    <equip id="equip.bastard-sword">
                    <name>Bastard Sword</name>
                    <wprof refid='wprof.bastard' />
                    </equip>

                    or something similar. There would be a <proficiency> element somewhere
                    that defines what 'bastard' means (we could further define
                    'bastard-simple', 'bastard-martial', etc. if desired). There are other
                    ways this can be done.

                    > multiple cases as some sort of override? An object would be complete
                    > with a default, but any conditional changes could be flagged with an
                    > attribute and specified in a new type of element. For example:
                    >
                    > <equip id="equip.bastard-sword">
                    > <name>Bastard Sword</name>
                    > <wprof varies="1">Martial, Exotic</wprof>
                    >
                    > <override>
                    > <case>
                    > <prereqs><preequiphands eq="2"/></prereqs>
                    > <include><wprof>Martial</wprof></include>
                    > </case>
                    > <case>
                    > <prereqs><presize min="Large"/></prereqs>
                    > <include><wprof>Martial</wprof></include>
                    > </case>
                    > <case>
                    > <prereqs><prehandseq eq="1"/></prereqs>
                    > <include><wprof>Exotic</wprof></include>
                    > </case>
                    > <otherwise>
                    > <include><wprof>Unusable</wprof></include>
                    > </otherwise>
                    > </override>
                    > </equip>
                    >
                    > If you just want to list the proficiency type of a bastard sword in a
                    > table with a bunch of other weapons, you'd just list its default value
                    > (outside the <override> section). If you wanted to determine the
                    > current type for a given user, you'd see the main <wprof> had a
                    > "varies" attribute set, so you would ignore it and evaluate the
                    > <override> section. You could even just list all the possible cases
                    > for the <override> section.
                    >
                    > You could use this approach for less common situations too:
                    >
                    > <equip id="equip.bastard-sword">
                    > <name varies="1">Bastard Sword</name>
                    > <wprof varies="1">Martial, Exotic</wprof>
                    >
                    > <override>
                    > <case>
                    > <prereqs><preregion eq="The Rebel Kingdom"/></prereqs>
                    > <include><name>Hand-and-a-Half Sword</name></include>
                    > </case>
                    > <case>
                    > <prereqs><prerace eq="Orc"/></prereqs>
                    > <include>
                    > <name>Bastard Blade</name>
                    > <name>Human-Hewer</name>
                    > <name>Ir-Korthok</name>
                    > </include>
                    > </case>
                    > <otherwise>
                    > <include><name>Bastard Sword</name></include>
                    > </otherwise>
                    > </override>
                    >
                    > <override>
                    > <case>
                    > <prereqs><preequiphands eq="2"/></prereqs>
                    > <include><wprof>Martial</wprof></include>
                    > </case>
                    > <case>
                    > <prereqs><presize min="Large"/></prereqs>
                    > <include><wprof>Martial</wprof></include>
                    > </case>
                    > <case>
                    > <prereqs><prehandseq eq="1"/></prereqs>
                    > <include><wprof>Exotic</wprof></include>
                    > </case>
                    > <otherwise>
                    > <include><wprof>Unusable</wprof></include>
                    > </otherwise>
                    > </override>
                    > </equip>
                    >
                    > I'm not sure this approach solves all your problems, and I'm sure it
                    > can be refined. "Override" might not be the best term, and perhaps
                    > "Condition" or something would be better. I thought I'd through the
                    > idea out there, though. Hope it helps.

                    Interesting ideas. I'd need to think about it before pursuing.


                    Keith
                    --
                    Keith Davies
                    keith.davies@...

                    PCGen: <reaper/>, smartass
                    "You just can't argue with a moron. It's like handling Nuclear
                    waste. It's not good, it's not evil, but for Christ's sake, don't
                    get any on you!!" -- Chuck, PCGen mailing list
                  • Keith Davies
                    ... If you want to have multiple items with the same data (more or less) you can do
                    Message 9 of 20 , May 15, 2003
                    • 0 Attachment
                      On Sun, May 11, 2003 at 08:30:33PM +0000, dlm1065 wrote:
                      > I'll be blunt I haven't a clue yet on xml but I will once I have a
                      > little more time to focus on learning it. But as a person working
                      > on lst I have a question. Which of the methods is going to allow for
                      > modifications the easiest by other data sets 3,4, or 5(tsalla's).
                      >
                      > Examples
                      > 1)one book calls it bastard sword, another book calls it sowrd and a
                      > half, something else calls it Fooboz. I want to use the name fooboz
                      > with the data from bastard sword, after all why enter the same data
                      > 20 times for different names?

                      If you want to have multiple items with the same data (more or less) you
                      can do

                      <copy:equip id="equip.fooboz" refid="equip.bastard-sword">
                      <name>Foobox</name>
                      </copy>

                      Alternatively, make name a repeatable element; the names can be used
                      interchangeably because they all point at the same thing. I'm not
                      entirely happy with that, though, because applying it means you're going
                      to either have only single derivations, or multiple. That is, you'll
                      see lists showing

                      Bastard Sword +1
                      Fooboz +1

                      resulting in potentially *huge* numbers of things, or you'll have only
                      one of the above (which one?) meaning that not everything will have
                      entries. Neither is, to me, a good solution. (Now, if they differ in
                      more than name it's a moot point; both should correctly be present.)

                      > 2)WOTC player's Paladin. In dragonstar he gets technical proficiency
                      > and other new armor and weapon proficiencies but he also looses
                      > class skills(like ride) and SA's (like Summon Special Mount).
                      > Present lst cannot back out class skills(at least not last time I
                      > checked). It can back out SA's with a CLEAR. To do this lst code you
                      > have to make an entire new paladin with a name to indicate the book,
                      > Paladin(DS).

                      To be dealt with later; currently my requirement is that we can support
                      *at least* as much as current LST syntax. There are places where the
                      XML will exceed the capabilities of LST (specifically prereqs -- the XML
                      will do much more than the program supports at the moment).

                      > 3)WOTC handbook race elf. In dragonstar the elf racial abilities are
                      > added to. You gt an additional +2 racial bonus on freefall checks &
                      > +2 racial bonus to knowledge. Which has a lst code of this in DS
                      > races.
                      >
                      > RACE:Elf.MOD
                      > BONUS:SKILL|Freefall,Knowledge (Biology)|2|TYPE=Racial
                      > TEMPLATE:DS Regions
                      >
                      > So how would method 3,4,5 handle the MOD or CLEAR syntax in a manner
                      > that would be the simpleist to understand and code??

                      <race id="race.elf" />

                      <mod:race refid="race.elf">
                      <add:bonus />
                      <add:template />
                      </mod:race>

                      or something to that effect. Much is elided above simply because I
                      haven't looked at it too hard recently and am not entirely certain what
                      the syntax is, or because the content is either obvious or not important
                      to the message (specifically for the 'original elf definition')....


                      Keith
                      --
                      Keith Davies
                      keith.davies@...

                      PCGen: <reaper/>, smartass
                      "You just can't argue with a moron. It's like handling Nuclear
                      waste. It's not good, it's not evil, but for Christ's sake, don't
                      get any on you!!" -- Chuck, PCGen mailing list
                    • dlm1065
                      ... manner ... what ... important ... If it looks anything close to what you have here then even a xml cluseless person like me can handle working with it
                      Message 10 of 20 , May 17, 2003
                      • 0 Attachment
                        > > RACE:Elf.MOD
                        > > BONUS:SKILL|Freefall,Knowledge (Biology)|2|TYPE=Racial
                        > > TEMPLATE:DS Regions
                        > >
                        > > So how would method 3,4,5 handle the MOD or CLEAR syntax in a
                        manner
                        > > that would be the simpleist to understand and code??
                        >
                        > <race id="race.elf" />
                        >
                        > <mod:race refid="race.elf">
                        > <add:bonus />
                        > <add:template />
                        > </mod:race>
                        >
                        > or something to that effect. Much is elided above simply because I
                        > haven't looked at it too hard recently and am not entirely certain
                        what
                        > the syntax is, or because the content is either obvious or not
                        important
                        > to the message (specifically for the 'original elf definition')....
                        >
                        >
                        > Keith
                        > --
                        > Keith Davies
                        > keith.davies@k...
                        > > get any on you!!" -- Chuck, PCGen mailing list

                        If it looks anything close to what you have here then even a xml
                        cluseless person like me can handle working with it fairly easily.
                        Appreciate your explanation.
                      • sbwoodside
                        ... I ve been doing work with schemas lately (in a project called Alexandra) and agreed, inlining is a hassle that s good to avoid. ...
                        Message 11 of 20 , May 29, 2003
                        • 0 Attachment
                          --- In pcgen-xml@yahoogroups.com, Keith Davies <keith.davies@k...> wrote:
                          > <equip id="equip.bastard-sword">
                          > <name>Bastard Sword</name>
                          > <wprof>Martial<prereqs><preequiphands eq="2"/></prereqs></wprof>
                          > <wprof>Martial<prereqs><presize min="Large"/></prereqs></wprof>
                          > <wprof>Exotic<prereqs><preequiphands eq="1"/></prereqs>
                          > </wprof>
                          > </equip>
                          >
                          > I'm not entirely happy with this. The XML schema design books I've read
                          > have all said that, unless it is something inherently mixed (such as
                          > document text) that mixing plain character data with elements is a Bad
                          > Thing -- that an element should contain either other elements, or plain
                          > text, but not both. In fact, I've seen recommendations that even
                          > document text should follow the same rules.

                          I've been doing work with schemas lately (in a project called
                          Alexandra) and agreed, inlining is a hassle that's good to avoid.

                          > A fourth possibility is that we allow more than one mode.
                          > Specificially, we can store the text value of an element in the element
                          > body if there are no other child elements, or we store it in the 'value'
                          > attribute if there are other child elements.
                          >
                          > <equip id="equip.bastard-sword">
                          > <name>Bastard Sword</name>
                          > <wprof value="Martial"><prereqs><preequiphands
                          eq="2"/></prereqs></wprof>
                          > <wprof value="Martial"><prereqs><presize
                          min="Large"/></prereqs></wprof>
                          > <wprof value="Exotic"><prereqs><prehandseq eq="1"/></prereqs>
                          > </wprof>
                          > </equip>
                          Generally from what I've read and seen, attributes should be
                          restricted to data that's useful when automatically processing the XML
                          by software (but not people).

                          How about this:
                          <equip id="equip.bastard-sword">
                          <name>Bastard Sword</name>
                          <wprof>
                          <type>Martial</type>
                          <prereqs>
                          <equiphands>2</equiphands>
                          </prereqs>
                          </wprof>
                          <wprof<
                          <type>Martial</type>
                          <prereqs>
                          <size>
                          <limit>minimum</limit>
                          <value>Large</value>
                          </size>
                          </prereqs>
                          </wprof>
                          <wprof>
                          <type>Exotic</type>
                          <prereqs>
                          <handseq>1</handseq>
                          </prereqs>
                          </wprof>
                          </equip>


                          > This lets us avoid mixed-mode elements; each element contains either
                          > text or child elements at any given time. It does make it harder to
                          > deal with because we have to look in two places to get the information.
                          > OTOH, even looking in two places is, I think, simpler than trying to
                          > sort out what is data and what isn't.

                          With XSLT at least it shouldn't be too hard to do that, using
                          apply-templates to automatically expand all the possibilities.

                          simon

                          http://www.simonwoodside.com/
                        • sbwoodside
                          ... I ve been working with XML and schemas for about a year now so maybe I can help a bit. ... In this case with XML it s best to separate the data logic and
                          Message 12 of 20 , May 29, 2003
                          • 0 Attachment
                            --- In pcgen-xml@yahoogroups.com, "dlm1065" <dlm1065@h...> wrote:
                            > I'll be blunt I haven't a clue yet on xml but I will once I have a
                            > little more time to focus on learning it.

                            I've been working with XML and schemas for about a year now so maybe I
                            can help a bit.

                            > But as a person working
                            > on lst I have a question. Which of the methods is going to allow for
                            > modifications the easiest by other data sets 3,4, or 5(tsalla's).
                            >
                            > Examples
                            > 1)one book calls it bastard sword, another book calls it sowrd and a
                            > half, something else calls it Fooboz. I want to use the name fooboz
                            > with the data from bastard sword, after all why enter the same data
                            > 20 times for different names?

                            In this case with XML it's best to separate the data logic and the
                            application logic. Generally attributes are a good place to put
                            application logic, that will be automatically applied, and elements
                            are a good place to apply data logic. You might wind up with something
                            like this...

                            <weapon id="equip.bastard_sword">
                            <names>
                            <common_name>Bastard Sword</common_name>
                            <name>
                            <system>D&D</system>
                            <local_name>Bastard Sword</local_name>
                            </name>
                            <name>
                            <system>
                            <system>System of Doom</system>
                            <local_name>Fooboz</local_name>
                            </system>
                            </name>
                            </names>
                            </weapon>

                            simon
                          • Harald Meland
                            [sbwoodside] ... Sorry for jumping into this discussion without having followed it from the start; I m new here. Is there anything, e.g. a current status
                            Message 13 of 20 , May 30, 2003
                            • 0 Attachment
                              [sbwoodside]

                              > How about this:
                              > <equip id="equip.bastard-sword">
                              > <name>Bastard Sword</name>
                              > <wprof>
                              > <type>Martial</type>
                              > <prereqs>
                              > <equiphands>2</equiphands>
                              > </prereqs>
                              > </wprof>
                              > <wprof<
                              > <type>Martial</type>
                              > <prereqs>
                              > <size>
                              > <limit>minimum</limit>
                              > <value>Large</value>
                              > </size>
                              > </prereqs>
                              > </wprof>
                              > <wprof>
                              > <type>Exotic</type>
                              > <prereqs>
                              > <handseq>1</handseq>
                              > </prereqs>
                              > </wprof>
                              > </equip>

                              Sorry for jumping into this discussion without having followed it from
                              the start; I'm new here. Is there anything, e.g. a "current status
                              document", I should read before making too much of a fool of myself
                              here?

                              I guess the reason for coding the first two "Martial" entries in two
                              separate elements is there is an implicit logical "OR" between each of
                              the <wprof> elements; one has to either qualify for the first (and
                              equip the sword in both hands) *or* for the second (i.e. the character
                              has to be at least of size "Large").

                              However, I don't understand the difference between the <equiphands>
                              and <handseq> elements. Also, I would intuitively feel better about

                              <size_minimum>

                              (or maybe <size_le> or <size_lt>), than your

                              <size><limit>minimum</limit>

                              , as in an <equip> context, I don't understand what one would want a
                              <size> element for besides imposing size limits -- and these are
                              either minimum or maximum limits (possibly with the variations of
                              being inclusive or exclusive).
                              --
                              Harald
                            • S Woodside
                              ... I m not sure either. I looked at the docs in the files section but it seems like it s a work still in progress. ... Ok, I didn t realize that. In that
                              Message 14 of 20 , May 30, 2003
                              • 0 Attachment
                                On Friday, May 30, 2003, at 05:38 AM, Harald Meland wrote:

                                > [sbwoodside]
                                >
                                >> How about this:
                                >> <equip id="equip.bastard-sword">
                                >> <name>Bastard Sword</name>
                                >> <wprof>
                                >> <type>Martial</type>
                                >> <prereqs>
                                >> <equiphands>2</equiphands>
                                >> </prereqs>
                                >> </wprof>
                                >> <wprof<
                                >> <type>Martial</type>
                                >> <prereqs>
                                >> <size>
                                >> <limit>minimum</limit>
                                >> <value>Large</value>
                                >> </size>
                                >> </prereqs>
                                >> </wprof>
                                >> <wprof>
                                >> <type>Exotic</type>
                                >> <prereqs>
                                >> <handseq>1</handseq>
                                >> </prereqs>
                                >> </wprof>
                                >> </equip>
                                >
                                > Sorry for jumping into this discussion without having followed it from
                                > the start; I'm new here. Is there anything, e.g. a "current status
                                > document", I should read before making too much of a fool of myself
                                > here?

                                I'm not sure either. I looked at the docs in the files section but it
                                seems like it's a work still in progress.

                                > I guess the reason for coding the first two "Martial" entries in two
                                > separate elements is there is an implicit logical "OR" between each of
                                > the <wprof> elements; one has to either qualify for the first (and
                                > equip the sword in both hands) *or* for the second (i.e. the character
                                > has to be at least of size "Large").

                                Ok, I didn't realize that. In that case, this would be better.

                                <equip id="equip.bastard-sword">
                                <name>Bastard Sword</name>
                                <requires>
                                <choose>
                                <choice>
                                <wprof>
                                <type>Martial</type>
                                <prereqs>
                                <equiphands>2</equiphands>
                                </prereqs>
                                </wprof>
                                </choice>
                                <choice>
                                <wprof>
                                <type>Martial</type>
                                <prereqs>
                                <size>
                                <limit>minimum</limit>
                                <value>Large</value>
                                </size>
                                </prereqs>
                                </wprof>
                                </choice>
                                </choose>
                                <wprof>
                                <type>Exotic</type>
                                <prereqs>
                                <handseq>1</handseq>
                                </prereqs>
                                </wprof>
                                </requires>
                                </equip>

                                After reading some of the ideas about using references, I think that's
                                a good idea. This might work, using <ref> and <define>, where a define
                                can substitute in for a ref.

                                <equip id="equip.bastard-sword">
                                <name>Bastard Sword</name>
                                <requires>
                                <choose>
                                <choice>
                                <ref name="wprof_2handed"/>
                                </choice>
                                <choice>
                                <ref name="wprof_size_min_large"/>
                                </choice>
                                </choose>
                                <ref name="wprof_exotic_handseq_1"/>
                                </requires>
                                </equip>

                                <define name="wprof_2handed">
                                <wprof>
                                <type>Martial</type>
                                <prereqs>
                                <equiphands>2</equiphands>
                                </prereqs>
                                </wprof>
                                </define>
                                <define name="wprof_size_min_large">
                                <wprof>
                                <type>Martial</type>
                                <prereqs>
                                <size>
                                <limit>minimum</limit>
                                <value>Large</value>
                                </size>
                                </prereqs>
                                </wprof>
                                </define>
                                <define name="wprof_exotic_handseq_1">
                                <wprof>
                                <type>Exotic</type>
                                <prereqs>
                                <handseq>1</handseq>
                                </prereqs>
                                </wprof>
                                </define>

                                > However, I don't understand the difference between the <equiphands>
                                > and <handseq> elements. Also, I would intuitively feel better about
                                >
                                > <size_minimum>
                                >
                                > (or maybe <size_le> or <size_lt>), than your
                                >
                                > <size><limit>minimum</limit>
                                >
                                > , as in an <equip> context, I don't understand what one would want a
                                > <size> element for besides imposing size limits -- and these are
                                > either minimum or maximum limits (possibly with the variations of
                                > being inclusive or exclusive).

                                Yeah, I don't see a problem with that.

                                simon

                                > --
                                > Harald
                                >
                                > ------------------------ Yahoo! Groups Sponsor
                                > ---------------------~-->
                                > Get A Free Psychic Reading! Your Online Answer To Life's Important
                                > Questions.
                                > http://us.click.yahoo.com/Lj3uPC/Me7FAA/ySSFAA/2U_rlB/TM
                                > ---------------------------------------------------------------------
                                > ~->
                                >
                                > To unsubscribe from this group, send an email to:
                                > pcgen-xml-unsubscribe@yahoogroups.com
                                >
                                >
                                >
                                > Your use of Yahoo! Groups is subject to
                                > http://docs.yahoo.com/info/terms/
                                >
                                >

                                --
                                anti-spam: do not post this address publicly
                                www.simonwoodside.com -- 99% Devil, 1% Angel
                              • CC Americas 1 Carstensen James
                                How about: Bastard Sword medium exotic
                                Message 15 of 20 , Jun 12, 2003
                                • 0 Attachment
                                  How about:

                                  <equip id="equip.bastard-sword">
                                  <name>Bastard Sword</name>
                                  <size>medium</size>
                                  <case>
                                  <choice>
                                  <prereq>
                                  <wprof>exotic</wprof>
                                  </prereq>
                                  <endchoice />
                                  </choice>
                                  <choice>
                                  <prereq>
                                  <wprof>martial</wprof>
                                  </prereq>
                                  <size>
                                  <wield>large</wield>
                                  </size>
                                  <choice>
                                  <esac>
                                  </equip>

                                  Basicially: If character has exotic wprof, treat as medium (which means
                                  one or two handed wielding by normal rules) and stop evaluating choices
                                  ("<endchoice />"). If character doesn't have exotic weap prof it checks
                                  the next case, which says that is you have martial weapon prof treat as
                                  large size only for wielding (which means medium size characters wield 2
                                  handed, large size characters wield one handed, as per PH). Don't need
                                  anything funky for non-proficient, that would be standard for any weapon
                                  if you don't match.

                                  Cheers,
                                  Blue

                                  -----Original Message-----
                                  From: S Woodside [mailto:sbwoodside@...]
                                  Sent: Friday, May 30, 2003 3:39 PM
                                  To: pcgen-xml@yahoogroups.com
                                  Subject: Re: [pcgen-xml] Re: Opinions?



                                  On Friday, May 30, 2003, at 05:38 AM, Harald Meland wrote:

                                  > [sbwoodside]
                                  >
                                  >> How about this:
                                  >> <equip id="equip.bastard-sword">
                                  >> <name>Bastard Sword</name>
                                  >> <wprof>
                                  >> <type>Martial</type>
                                  >> <prereqs>
                                  >> <equiphands>2</equiphands>
                                  >> </prereqs>
                                  >> </wprof>
                                  >> <wprof<
                                  >> <type>Martial</type>
                                  >> <prereqs>
                                  >> <size>
                                  >> <limit>minimum</limit>
                                  >> <value>Large</value>
                                  >> </size>
                                  >> </prereqs>
                                  >> </wprof>
                                  >> <wprof>
                                  >> <type>Exotic</type>
                                  >> <prereqs>
                                  >> <handseq>1</handseq>
                                  >> </prereqs>
                                  >> </wprof>
                                  >> </equip>
                                  >
                                  > Sorry for jumping into this discussion without having followed it from
                                  > the start; I'm new here. Is there anything, e.g. a "current status
                                  > document", I should read before making too much of a fool of myself
                                  > here?

                                  I'm not sure either. I looked at the docs in the files section but it
                                  seems like it's a work still in progress.

                                  > I guess the reason for coding the first two "Martial" entries in two
                                  > separate elements is there is an implicit logical "OR" between each of
                                  > the <wprof> elements; one has to either qualify for the first (and
                                  > equip the sword in both hands) *or* for the second (i.e. the character
                                  > has to be at least of size "Large").

                                  Ok, I didn't realize that. In that case, this would be better.

                                  <equip id="equip.bastard-sword">
                                  <name>Bastard Sword</name>
                                  <requires>
                                  <choose>
                                  <choice>
                                  <wprof>
                                  <type>Martial</type>
                                  <prereqs>
                                  <equiphands>2</equiphands>
                                  </prereqs>
                                  </wprof>
                                  </choice>
                                  <choice>
                                  <wprof>
                                  <type>Martial</type>
                                  <prereqs>
                                  <size>
                                  <limit>minimum</limit>
                                  <value>Large</value>
                                  </size>
                                  </prereqs>
                                  </wprof>
                                  </choice>
                                  </choose>
                                  <wprof>
                                  <type>Exotic</type>
                                  <prereqs>
                                  <handseq>1</handseq>
                                  </prereqs>
                                  </wprof>
                                  </requires>
                                  </equip>

                                  After reading some of the ideas about using references, I think that's
                                  a good idea. This might work, using <ref> and <define>, where a define
                                  can substitute in for a ref.

                                  <equip id="equip.bastard-sword">
                                  <name>Bastard Sword</name>
                                  <requires>
                                  <choose>
                                  <choice>
                                  <ref name="wprof_2handed"/>
                                  </choice>
                                  <choice>
                                  <ref name="wprof_size_min_large"/>
                                  </choice>
                                  </choose>
                                  <ref name="wprof_exotic_handseq_1"/>
                                  </requires>
                                  </equip>

                                  <define name="wprof_2handed">
                                  <wprof>
                                  <type>Martial</type>
                                  <prereqs>
                                  <equiphands>2</equiphands>
                                  </prereqs>
                                  </wprof>
                                  </define>
                                  <define name="wprof_size_min_large">
                                  <wprof>
                                  <type>Martial</type>
                                  <prereqs>
                                  <size>
                                  <limit>minimum</limit>
                                  <value>Large</value>
                                  </size>
                                  </prereqs>
                                  </wprof>
                                  </define>
                                  <define name="wprof_exotic_handseq_1">
                                  <wprof>
                                  <type>Exotic</type>
                                  <prereqs>
                                  <handseq>1</handseq>
                                  </prereqs>
                                  </wprof>
                                  </define>

                                  > However, I don't understand the difference between the <equiphands>
                                  > and <handseq> elements. Also, I would intuitively feel better about
                                  >
                                  > <size_minimum>
                                  >
                                  > (or maybe <size_le> or <size_lt>), than your
                                  >
                                  > <size><limit>minimum</limit>
                                  >
                                  > , as in an <equip> context, I don't understand what one would want a
                                  > <size> element for besides imposing size limits -- and these are
                                  > either minimum or maximum limits (possibly with the variations of
                                  > being inclusive or exclusive).

                                  Yeah, I don't see a problem with that.

                                  simon

                                  > --
                                  > Harald
                                  >
                                  > ------------------------ Yahoo! Groups Sponsor
                                  > ---------------------~-->
                                  > Get A Free Psychic Reading! Your Online Answer To Life's Important
                                  > Questions.
                                  > http://us.click.yahoo.com/Lj3uPC/Me7FAA/ySSFAA/2U_rlB/TM
                                  > ---------------------------------------------------------------------
                                  > ~->
                                  >
                                  > To unsubscribe from this group, send an email to:
                                  > pcgen-xml-unsubscribe@yahoogroups.com
                                  >
                                  >
                                  >
                                  > Your use of Yahoo! Groups is subject to
                                  > http://docs.yahoo.com/info/terms/
                                  >
                                  >

                                  --
                                  anti-spam: do not post this address publicly
                                  www.simonwoodside.com -- 99% Devil, 1% Angel



                                  To unsubscribe from this group, send an email to:
                                  pcgen-xml-unsubscribe@yahoogroups.com



                                  Your use of Yahoo! Groups is subject to
                                  http://docs.yahoo.com/info/terms/
                                • S Woodside
                                  On Thursday, June 12, 2003, at 02:05 PM, CC Americas 1 Carstensen ... Can you explain why you think this is better? IME, it s better to use a tree-based
                                  Message 16 of 20 , Jun 12, 2003
                                  • 0 Attachment
                                    On Thursday, June 12, 2003, at 02:05 PM, CC Americas 1 Carstensen
                                    James wrote:

                                    > How about:
                                    >
                                    > <equip id="equip.bastard-sword">
                                    > <name>Bastard Sword</name>
                                    > <size>medium</size>
                                    > <case>
                                    > <choice>
                                    > <prereq>
                                    > <wprof>exotic</wprof>
                                    > </prereq>
                                    > <endchoice />
                                    > </choice>
                                    > <choice>
                                    > <prereq>
                                    > <wprof>martial</wprof>
                                    > </prereq>
                                    > <size>
                                    > <wield>large</wield>
                                    > </size>
                                    > <choice>
                                    > <esac>
                                    > </equip>
                                    >
                                    > Basicially: If character has exotic wprof, treat as medium (which
                                    > means
                                    > one or two handed wielding by normal rules) and stop evaluating choices
                                    > ("<endchoice />").

                                    Can you explain why you think this is better?

                                    IME, it's better to use a tree-based structure that can be evaluated
                                    recursively. XSLT, at least, is often written using recursive logic, so
                                    it would add extra complexity in the code to handle that kind of logic.

                                    simon

                                    > If character doesn't have exotic weap prof it checks
                                    > the next case, which says that is you have martial weapon prof treat as
                                    > large size only for wielding (which means medium size characters wield
                                    > 2
                                    > handed, large size characters wield one handed, as per PH). Don't need
                                    > anything funky for non-proficient, that would be standard for any
                                    > weapon
                                    > if you don't match.
                                    >
                                    > Cheers,
                                    > Blue
                                    >
                                    > -----Original Message-----
                                    > From: S Woodside [mailto:sbwoodside@...]
                                    > Sent: Friday, May 30, 2003 3:39 PM
                                    > To: pcgen-xml@yahoogroups.com
                                    > Subject: Re: [pcgen-xml] Re: Opinions?
                                    >
                                    >
                                    >
                                    > On Friday, May 30, 2003, at 05:38 AM, Harald Meland wrote:
                                    >
                                    >> [sbwoodside]
                                    >>
                                    >>> How about this:
                                    >>> <equip id="equip.bastard-sword">
                                    >>> <name>Bastard Sword</name>
                                    >>> <wprof>
                                    >>> <type>Martial</type>
                                    >>> <prereqs>
                                    >>> <equiphands>2</equiphands>
                                    >>> </prereqs>
                                    >>> </wprof>
                                    >>> <wprof<
                                    >>> <type>Martial</type>
                                    >>> <prereqs>
                                    >>> <size>
                                    >>> <limit>minimum</limit>
                                    >>> <value>Large</value>
                                    >>> </size>
                                    >>> </prereqs>
                                    >>> </wprof>
                                    >>> <wprof>
                                    >>> <type>Exotic</type>
                                    >>> <prereqs>
                                    >>> <handseq>1</handseq>
                                    >>> </prereqs>
                                    >>> </wprof>
                                    >>> </equip>
                                    >>
                                    >> Sorry for jumping into this discussion without having followed it from
                                    >> the start; I'm new here. Is there anything, e.g. a "current status
                                    >> document", I should read before making too much of a fool of myself
                                    >> here?
                                    >
                                    > I'm not sure either. I looked at the docs in the files section but it
                                    > seems like it's a work still in progress.
                                    >
                                    >> I guess the reason for coding the first two "Martial" entries in two
                                    >> separate elements is there is an implicit logical "OR" between each of
                                    >> the <wprof> elements; one has to either qualify for the first (and
                                    >> equip the sword in both hands) *or* for the second (i.e. the character
                                    >> has to be at least of size "Large").
                                    >
                                    > Ok, I didn't realize that. In that case, this would be better.
                                    >
                                    > <equip id="equip.bastard-sword">
                                    > <name>Bastard Sword</name>
                                    > <requires>
                                    > <choose>
                                    > <choice>
                                    > <wprof>
                                    > <type>Martial</type>
                                    > <prereqs>
                                    > <equiphands>2</equiphands>
                                    > </prereqs>
                                    > </wprof>
                                    > </choice>
                                    > <choice>
                                    > <wprof>
                                    > <type>Martial</type>
                                    > <prereqs>
                                    > <size>
                                    > <limit>minimum</limit>
                                    > <value>Large</value>
                                    > </size>
                                    > </prereqs>
                                    > </wprof>
                                    > </choice>
                                    > </choose>
                                    > <wprof>
                                    > <type>Exotic</type>
                                    > <prereqs>
                                    > <handseq>1</handseq>
                                    > </prereqs>
                                    > </wprof>
                                    > </requires>
                                    > </equip>
                                    >
                                    > After reading some of the ideas about using references, I think that's
                                    > a good idea. This might work, using <ref> and <define>, where a define
                                    > can substitute in for a ref.
                                    >
                                    > <equip id="equip.bastard-sword">
                                    > <name>Bastard Sword</name>
                                    > <requires>
                                    > <choose>
                                    > <choice>
                                    > <ref name="wprof_2handed"/>
                                    > </choice>
                                    > <choice>
                                    > <ref name="wprof_size_min_large"/>
                                    > </choice>
                                    > </choose>
                                    > <ref name="wprof_exotic_handseq_1"/>
                                    > </requires>
                                    > </equip>
                                    >
                                    > <define name="wprof_2handed">
                                    > <wprof>
                                    > <type>Martial</type>
                                    > <prereqs>
                                    > <equiphands>2</equiphands>
                                    > </prereqs>
                                    > </wprof>
                                    > </define>
                                    > <define name="wprof_size_min_large">
                                    > <wprof>
                                    > <type>Martial</type>
                                    > <prereqs>
                                    > <size>
                                    > <limit>minimum</limit>
                                    > <value>Large</value>
                                    > </size>
                                    > </prereqs>
                                    > </wprof>
                                    > </define>
                                    > <define name="wprof_exotic_handseq_1">
                                    > <wprof>
                                    > <type>Exotic</type>
                                    > <prereqs>
                                    > <handseq>1</handseq>
                                    > </prereqs>
                                    > </wprof>
                                    > </define>
                                    >
                                    >> However, I don't understand the difference between the <equiphands>
                                    >> and <handseq> elements. Also, I would intuitively feel better about
                                    >>
                                    >> <size_minimum>
                                    >>
                                    >> (or maybe <size_le> or <size_lt>), than your
                                    >>
                                    >> <size><limit>minimum</limit>
                                    >>
                                    >> , as in an <equip> context, I don't understand what one would want a
                                    >> <size> element for besides imposing size limits -- and these are
                                    >> either minimum or maximum limits (possibly with the variations of
                                    >> being inclusive or exclusive).
                                    >
                                    > Yeah, I don't see a problem with that.
                                    >
                                    > simon
                                    >
                                    >> --
                                    >> Harald
                                    >>
                                    >> ------------------------ Yahoo! Groups Sponsor
                                    >> ---------------------~-->
                                    >> Get A Free Psychic Reading! Your Online Answer To Life's Important
                                    >> Questions.
                                    >> http://us.click.yahoo.com/Lj3uPC/Me7FAA/ySSFAA/2U_rlB/TM
                                    >> ---------------------------------------------------------------------
                                    >> ~->
                                    >>
                                    >> To unsubscribe from this group, send an email to:
                                    >> pcgen-xml-unsubscribe@yahoogroups.com
                                    >>
                                    >>
                                    >>
                                    >> Your use of Yahoo! Groups is subject to
                                    >> http://docs.yahoo.com/info/terms/
                                    >>
                                    >>
                                    >
                                    > --
                                    > anti-spam: do not post this address publicly
                                    > www.simonwoodside.com -- 99% Devil, 1% Angel
                                    >
                                    >
                                    >
                                    > To unsubscribe from this group, send an email to:
                                    > pcgen-xml-unsubscribe@yahoogroups.com
                                    >
                                    >
                                    >
                                    > Your use of Yahoo! Groups is subject to
                                    > http://docs.yahoo.com/info/terms/
                                    >
                                    >
                                    >
                                    >
                                    >
                                    >
                                    >
                                    > ------------------------ Yahoo! Groups Sponsor
                                    > ---------------------~-->
                                    > Looking for the latest Free IT White Papers?
                                    > Visit SearchNetworking.com to access over 500 white papers.
                                    > Get instant access at SearchNetworking.com Today
                                    > http://us.click.yahoo.com/GgVXVB/OLNGAA/xitMAA/2U_rlB/TM
                                    > ---------------------------------------------------------------------
                                    > ~->
                                    >
                                    > To unsubscribe from this group, send an email to:
                                    > pcgen-xml-unsubscribe@yahoogroups.com
                                    >
                                    >
                                    >
                                    > Your use of Yahoo! Groups is subject to
                                    > http://docs.yahoo.com/info/terms/
                                    >
                                    >

                                    --
                                    anti-spam: do not post this address publicly
                                    www.simonwoodside.com -- 99% Devil, 1% Angel
                                  • Tir Gwaith
                                    It doesn t really matter, so long as the parser knows what it does, and the code can wrap itself around it. Tir Gwaith PCGen Data SB and BoD ... From: S
                                    Message 17 of 20 , Jun 26, 2003
                                    • 0 Attachment
                                      It doesn't really matter, so long as the parser knows what it does, and the code can wrap itself around it.
                                       
                                      Tir Gwaith
                                      PCGen Data SB and BoD
                                      ----- Original Message -----
                                      Sent: Thursday, June 12, 2003 1:23 PM
                                      Subject: Re: [pcgen-xml] Re: Opinions?


                                      On Thursday, June 12, 2003, at 02:05  PM, CC Americas 1 Carstensen 
                                      James wrote:

                                      > How about:
                                      >
                                      > <equip id="equip.bastard-sword">
                                      >   <name>Bastard Sword</name>
                                      >   <size>medium</size>
                                      >   <case>
                                      >     <choice>
                                      >       <prereq>
                                      >         <wprof>exotic</wprof>
                                      >       </prereq>
                                      >       <endchoice />
                                      >     </choice>
                                      >     <choice>
                                      >       <prereq>
                                      >         <wprof>martial</wprof>
                                      >       </prereq>
                                      >       <size>
                                      >          <wield>large</wield>
                                      >       </size>
                                      >     <choice>
                                      >   <esac>
                                      > </equip>
                                      >
                                      > Basicially:  If character has exotic wprof, treat as medium (which 
                                      > means
                                      > one or two handed wielding by normal rules) and stop evaluating choices
                                      > ("<endchoice />").

                                      Can you explain why you think this is better?

                                      IME, it's better to use a tree-based structure that can be evaluated 
                                      recursively. XSLT, at least, is often written using recursive logic, so 
                                      it would add extra complexity in the code to handle that kind of logic.

                                      simon

                                      > If character doesn't have exotic weap prof it checks
                                      > the next case, which says that is you have martial weapon prof treat as
                                      > large size only for wielding (which means medium size characters wield 
                                      > 2
                                      > handed, large size characters wield one handed, as per PH).  Don't need
                                      > anything funky for non-proficient, that would be standard for any 
                                      > weapon
                                      > if you don't match.
                                      >
                                      > Cheers,
                                      > Blue
                                      >
                                      > -----Original Message-----
                                      > From: S Woodside [mailto:sbwoodside@...]
                                      > Sent: Friday, May 30, 2003 3:39 PM
                                      > To: pcgen-xml@yahoogroups.com
                                      > Subject: Re: [pcgen-xml] Re: Opinions?
                                      >
                                      >
                                      >
                                      > On Friday, May 30, 2003, at 05:38  AM, Harald Meland wrote:
                                      >
                                      >> [sbwoodside]
                                      >>
                                      >>> How about this:
                                      >>> <equip id="equip.bastard-sword">
                                      >>>   <name>Bastard Sword</name>
                                      >>>   <wprof>
                                      >>>     <type>Martial</type>
                                      >>>     <prereqs>
                                      >>>       <equiphands>2</equiphands>
                                      >>>     </prereqs>
                                      >>>   </wprof>
                                      >>>   <wprof<
                                      >>>     <type>Martial</type>
                                      >>>     <prereqs>
                                      >>>       <size>
                                      >>>         <limit>minimum</limit>
                                      >>>         <value>Large</value>
                                      >>>       </size>
                                      >>>     </prereqs>
                                      >>>   </wprof>
                                      >>>   <wprof>
                                      >>>     <type>Exotic</type>
                                      >>>     <prereqs>
                                      >>>       <handseq>1</handseq>
                                      >>>     </prereqs>
                                      >>>   </wprof>
                                      >>> </equip>
                                      >>
                                      >> Sorry for jumping into this discussion without having followed it from
                                      >> the start; I'm new here.  Is there anything, e.g. a "current status
                                      >> document", I should read before making too much of a fool of myself
                                      >> here?
                                      >
                                      > I'm not sure either. I looked at the docs in the files section but it
                                      > seems like it's a work still in progress.
                                      >
                                      >> I guess the reason for coding the first two "Martial" entries in two
                                      >> separate elements is there is an implicit logical "OR" between each of
                                      >> the <wprof> elements; one has to either qualify for the first (and
                                      >> equip the sword in both hands) *or* for the second (i.e. the character
                                      >> has to be at least of size "Large").
                                      >
                                      > Ok, I didn't realize that. In that case, this would be better.
                                      >
                                      > <equip id="equip.bastard-sword">
                                      >    <name>Bastard Sword</name>
                                      >    <requires>
                                      >      <choose>
                                      >        <choice>
                                      >          <wprof>
                                      >            <type>Martial</type>
                                      >            <prereqs>
                                      >              <equiphands>2</equiphands>
                                      >            </prereqs>
                                      >          </wprof>
                                      >        </choice>
                                      >        <choice>
                                      >          <wprof>
                                      >            <type>Martial</type>
                                      >            <prereqs>
                                      >              <size>
                                      >                <limit>minimum</limit>
                                      >                <value>Large</value>
                                      >              </size>
                                      >            </prereqs>
                                      >          </wprof>
                                      >        </choice>
                                      >      </choose>
                                      >      <wprof>
                                      >        <type>Exotic</type>
                                      >        <prereqs>
                                      >          <handseq>1</handseq>
                                      >        </prereqs>
                                      >      </wprof>
                                      >    </requires>
                                      > </equip>
                                      >
                                      > After reading some of the ideas about using references, I think that's
                                      > a good idea. This might work, using <ref> and <define>, where a define
                                      > can substitute in for a ref.
                                      >
                                      > <equip id="equip.bastard-sword">
                                      >    <name>Bastard Sword</name>
                                      >    <requires>
                                      >      <choose>
                                      >        <choice>
                                      >          <ref name="wprof_2handed"/>
                                      >        </choice>
                                      >        <choice>
                                      >          <ref name="wprof_size_min_large"/>
                                      >        </choice>
                                      >      </choose>
                                      >      <ref name="wprof_exotic_handseq_1"/>
                                      >    </requires>
                                      > </equip>
                                      >
                                      > <define name="wprof_2handed">
                                      >    <wprof>
                                      >      <type>Martial</type>
                                      >      <prereqs>
                                      >        <equiphands>2</equiphands>
                                      >      </prereqs>
                                      >    </wprof>
                                      > </define>
                                      > <define name="wprof_size_min_large">
                                      >    <wprof>
                                      >      <type>Martial</type>
                                      >      <prereqs>
                                      >        <size>
                                      >          <limit>minimum</limit>
                                      >          <value>Large</value>
                                      >        </size>
                                      >      </prereqs>
                                      >    </wprof>
                                      > </define>
                                      > <define name="wprof_exotic_handseq_1">
                                      >    <wprof>
                                      >      <type>Exotic</type>
                                      >      <prereqs>
                                      >        <handseq>1</handseq>
                                      >      </prereqs>
                                      >    </wprof>
                                      > </define>
                                      >
                                      >> However, I don't understand the difference between the <equiphands>
                                      >> and <handseq> elements.  Also, I would intuitively feel better about
                                      >>
                                      >>   <size_minimum>
                                      >>
                                      >> (or maybe <size_le> or <size_lt>), than your
                                      >>
                                      >>   <size><limit>minimum</limit>
                                      >>
                                      >> , as in an <equip> context, I don't understand what one would want a
                                      >> <size> element for besides imposing size limits -- and these are
                                      >> either minimum or maximum limits (possibly with the variations of
                                      >> being inclusive or exclusive).
                                      >
                                      > Yeah, I don't see a problem with that.
                                      >
                                      > simon
                                      >
                                      >> --  
                                      >> Harald
                                    • S Woodside
                                      It matters if one data format makes for simpler, easier to write, understand, and maintain, code. simon ... ... -- anti-spam: do not post this
                                      Message 18 of 20 , Jun 26, 2003
                                      • 0 Attachment
                                        It matters if one data format makes for simpler, easier to write,
                                        understand, and maintain, code.

                                        simon

                                        On Thursday, June 26, 2003, at 11:48 PM, Tir Gwaith wrote:

                                        > It doesn't really matter, so long as the parser knows what it does,
                                        > and the code can wrap itself around it.
                                        >  
                                        > Tir Gwaith
                                        > PCGen Data SB and BoD
                                        >
                                        > ----- Original Message -----
                                        > From: S Woodside
                                        > To: pcgen-xml@yahoogroups.com
                                        > Sent: Thursday, June 12, 2003 1:23 PM
                                        > Subject: Re: [pcgen-xml] Re: Opinions?
                                        >
                                        >
                                        > On Thursday, June 12, 2003, at 02:05  PM, CC Americas 1 Carstensen 
                                        > James wrote:
                                        >
                                        > > How about:
                                        > >
                                        > > <equip id="equip.bastard-sword">
                                        > >   <name>Bastard Sword</name>
                                        > >   <size>medium</size>
                                        > >   <case>
                                        > >     <choice>
                                        > >       <prereq>
                                        > >         <wprof>exotic</wprof>
                                        > >       </prereq>
                                        > >       <endchoice />
                                        > >     </choice>
                                        > >     <choice>
                                        > >       <prereq>
                                        > >         <wprof>martial</wprof>
                                        > >       </prereq>
                                        > >       <size>
                                        > >          <wield>large</wield>
                                        > >       </size>
                                        > >     <choice>
                                        > >   <esac>
                                        > > </equip>
                                        > >
                                        > > Basicially:  If character has exotic wprof, treat as medium (which 
                                        > > means
                                        > > one or two handed wielding by normal rules) and stop evaluating
                                        > choices
                                        > > ("<endchoice />").
                                        >
                                        > Can you explain why you think this is better?
                                        >
                                        > IME, it's better to use a tree-based structure that can be evaluated 
                                        > recursively. XSLT, at least, is often written using recursive logic,
                                        > so 
                                        > it would add extra complexity in the code to handle that kind of logic.
                                        >
                                        > simon
                                        >
                                        > > If character doesn't have exotic weap prof it checks
                                        > > the next case, which says that is you have martial weapon prof treat
                                        > as
                                        > > large size only for wielding (which means medium size characters
                                        > wield 
                                        > > 2
                                        > > handed, large size characters wield one handed, as per PH).  Don't
                                        > need
                                        > > anything funky for non-proficient, that would be standard for any 
                                        > > weapon
                                        > > if you don't match.
                                        > >
                                        > > Cheers,
                                        > > Blue
                                        > >
                                        > > -----Original Message-----
                                        > > From: S Woodside [mailto:sbwoodside@...]
                                        > > Sent: Friday, May 30, 2003 3:39 PM
                                        > > To: pcgen-xml@yahoogroups.com
                                        > > Subject: Re: [pcgen-xml] Re: Opinions?
                                        > >
                                        > >
                                        > >
                                        > > On Friday, May 30, 2003, at 05:38  AM, Harald Meland wrote:
                                        > >
                                        > >> [sbwoodside]
                                        > >>
                                        > >>> How about this:
                                        > >>> <equip id="equip.bastard-sword">
                                        > >>>   <name>Bastard Sword</name>
                                        > >>>   <wprof>
                                        > >>>     <type>Martial</type>
                                        > >>>     <prereqs>
                                        > >>>       <equiphands>2</equiphands>
                                        > >>>     </prereqs>
                                        > >>>   </wprof>
                                        > >>>   <wprof<
                                        > >>>     <type>Martial</type>
                                        > >>>     <prereqs>
                                        > >>>       <size>
                                        > >>>         <limit>minimum</limit>
                                        > >>>         <value>Large</value>
                                        > >>>       </size>
                                        > >>>     </prereqs>
                                        > >>>   </wprof>
                                        > >>>   <wprof>
                                        > >>>     <type>Exotic</type>
                                        > >>>     <prereqs>
                                        > >>>       <handseq>1</handseq>
                                        > >>>     </prereqs>
                                        > >>>   </wprof>
                                        > >>> </equip>
                                        > >>
                                        > >> Sorry for jumping into this discussion without having followed it
                                        > from
                                        > >> the start; I'm new here.  Is there anything, e.g. a "current status
                                        > >> document", I should read before making too much of a fool of myself
                                        > >> here?
                                        > >
                                        > > I'm not sure either. I looked at the docs in the files section but it
                                        > > seems like it's a work still in progress.
                                        > >
                                        > >> I guess the reason for coding the first two "Martial" entries in two
                                        > >> separate elements is there is an implicit logical "OR" between each
                                        > of
                                        > >> the <wprof> elements; one has to either qualify for the first (and
                                        > >> equip the sword in both hands) *or* for the second (i.e. the
                                        > character
                                        > >> has to be at least of size "Large").
                                        > >
                                        > > Ok, I didn't realize that. In that case, this would be better.
                                        > >
                                        > > <equip id="equip.bastard-sword">
                                        > >    <name>Bastard Sword</name>
                                        > >    <requires>
                                        > >      <choose>
                                        > >        <choice>
                                        > >          <wprof>
                                        > >            <type>Martial</type>
                                        > >            <prereqs>
                                        > >              <equiphands>2</equiphands>
                                        > >            </prereqs>
                                        > >          </wprof>
                                        > >        </choice>
                                        > >        <choice>
                                        > >          <wprof>
                                        > >            <type>Martial</type>
                                        > >            <prereqs>
                                        > >              <size>
                                        > >                <limit>minimum</limit>
                                        > >                <value>Large</value>
                                        > >              </size>
                                        > >            </prereqs>
                                        > >          </wprof>
                                        > >        </choice>
                                        > >      </choose>
                                        > >      <wprof>
                                        > >        <type>Exotic</type>
                                        > >        <prereqs>
                                        > >          <handseq>1</handseq>
                                        > >        </prereqs>
                                        > >      </wprof>
                                        > >    </requires>
                                        > > </equip>
                                        > >
                                        > > After reading some of the ideas about using references, I think
                                        > that's
                                        > > a good idea. This might work, using <ref> and <define>, where a
                                        > define
                                        > > can substitute in for a ref.
                                        > >
                                        > > <equip id="equip.bastard-sword">
                                        > >    <name>Bastard Sword</name>
                                        > >    <requires>
                                        > >      <choose>
                                        > >        <choice>
                                        > >          <ref name="wprof_2handed"/>
                                        > >        </choice>
                                        > >        <choice>
                                        > >          <ref name="wprof_size_min_large"/>
                                        > >        </choice>
                                        > >      </choose>
                                        > >      <ref name="wprof_exotic_handseq_1"/>
                                        > >    </requires>
                                        > > </equip>
                                        > >
                                        > > <define name="wprof_2handed">
                                        > >    <wprof>
                                        > >      <type>Martial</type>
                                        > >      <prereqs>
                                        > >        <equiphands>2</equiphands>
                                        > >      </prereqs>
                                        > >    </wprof>
                                        > > </define>
                                        > > <define name="wprof_size_min_large">
                                        > >    <wprof>
                                        > >      <type>Martial</type>
                                        > >      <prereqs>
                                        > >        <size>
                                        > >          <limit>minimum</limit>
                                        > >          <value>Large</value>
                                        > >        </size>
                                        > >      </prereqs>
                                        > >    </wprof>
                                        > > </define>
                                        > > <define name="wprof_exotic_handseq_1">
                                        > >    <wprof>
                                        > >      <type>Exotic</type>
                                        > >      <prereqs>
                                        > >        <handseq>1</handseq>
                                        > >      </prereqs>
                                        > >    </wprof>
                                        > > </define>
                                        > >
                                        > >> However, I don't understand the difference between the <equiphands>
                                        > >> and <handseq> elements.  Also, I would intuitively feel better about
                                        > >>
                                        > >>   <size_minimum>
                                        > >>
                                        > >> (or maybe <size_le> or <size_lt>), than your
                                        > >>
                                        > >>   <size><limit>minimum</limit>
                                        > >>
                                        > >> , as in an <equip> context, I don't understand what one would want a
                                        > >> <size> element for besides imposing size limits -- and these are
                                        > >> either minimum or maximum limits (possibly with the variations of
                                        > >> being inclusive or exclusive).
                                        > >
                                        > > Yeah, I don't see a problem with that.
                                        > >
                                        > > simon
                                        > >
                                        > >> --  
                                        > >> Harald
                                        >
                                        >
                                        <image.tiff>
                                        >
                                        >
                                        > To unsubscribe from this group, send an email to:
                                        > pcgen-xml-unsubscribe@yahoogroups.com
                                        >
                                        >
                                        >
                                        > Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service.

                                        --
                                        anti-spam: do not post this address publicly
                                        www.simonwoodside.com -- 99% Devil, 1% Angel
                                      • Tir Gwaith
                                        I m more interested in getting a more coherent method of data storage. Most of our users have a difficult time writing data files, and the easier to
                                        Message 19 of 20 , Jun 27, 2003
                                        • 0 Attachment
                                          I'm more interested in getting a more coherent method of data storage. Most
                                          of our users have a difficult time writing data files, and the easier to
                                          understand the better. We have a lot fewer code monkeys. If we are going
                                          to make something easier to understand, it ought to be the data format.
                                          Confusing so only 10 people can do it right so it is easier on 3 code
                                          monkeys isn't of much value. Confusing code for 3 monkeys, and usable by
                                          100's of users, on the otherhand, while a pain, is worth more.

                                          Tir Gwaith
                                          PCGen Data SB and BoD

                                          ----- Original Message -----
                                          From: S Woodside
                                          To: pcgen-xml@yahoogroups.com
                                          Sent: Thursday, June 26, 2003 10:51 PM
                                          Subject: Re: [pcgen-xml] Re: Opinions?


                                          It matters if one data format makes for simpler, easier to write,
                                          understand, and maintain, code.

                                          simon
                                        • S Woodside
                                          That makes sense. simon ... -- anti-spam: do not post this address publicly www.simonwoodside.com -- 99% Devil, 1% Angel
                                          Message 20 of 20 , Jun 27, 2003
                                          • 0 Attachment
                                            That makes sense.

                                            simon

                                            On Friday, June 27, 2003, at 11:21 AM, Tir Gwaith wrote:

                                            > I'm more interested in getting a more coherent method of data storage.
                                            > Most
                                            > of our users have a difficult time writing data files, and the easier
                                            > to
                                            > understand the better. We have a lot fewer code monkeys. If we are
                                            > going
                                            > to make something easier to understand, it ought to be the data format.
                                            > Confusing so only 10 people can do it right so it is easier on 3 code
                                            > monkeys isn't of much value. Confusing code for 3 monkeys, and usable
                                            > by
                                            > 100's of users, on the otherhand, while a pain, is worth more.
                                            >
                                            > Tir Gwaith
                                            > PCGen Data SB and BoD
                                            >
                                            > ----- Original Message -----
                                            > From: S Woodside
                                            > To: pcgen-xml@yahoogroups.com
                                            > Sent: Thursday, June 26, 2003 10:51 PM
                                            > Subject: Re: [pcgen-xml] Re: Opinions?
                                            >
                                            >
                                            > It matters if one data format makes for simpler, easier to write,
                                            > understand, and maintain, code.
                                            >
                                            > simon
                                            >
                                            >
                                            >
                                            >
                                            > ------------------------ Yahoo! Groups Sponsor
                                            > ---------------------~-->
                                            > Looking for the latest Free IT White Papers?
                                            > Visit SearchNetworking.com to access over 500 white papers.
                                            > Get instant access at SearchNetworking.com Today
                                            > http://us.click.yahoo.com/GgVXVB/OLNGAA/xitMAA/2U_rlB/TM
                                            > ---------------------------------------------------------------------
                                            > ~->
                                            >
                                            > To unsubscribe from this group, send an email to:
                                            > pcgen-xml-unsubscribe@yahoogroups.com
                                            >
                                            >
                                            >
                                            > Your use of Yahoo! Groups is subject to
                                            > http://docs.yahoo.com/info/terms/
                                            >
                                            >

                                            --
                                            anti-spam: do not post this address publicly
                                            www.simonwoodside.com -- 99% Devil, 1% Angel
                                          Your message has been successfully submitted and would be delivered to recipients shortly.