Call for Volunteers: Drafting XML standards

If someone wants to volunteer, here’s a task that they can help with:

We need specifications for the format for the rating report data as an XML document. I know a few things about XML, but I’ve never written a standard for one.

Anybody want to take a stab at drafting one, either as a template that I can follow or as a first draft of a complete one for rating reports?

The latest draft of the data dictionary (written mostly in a dBase-compatible form) is at: secure.uschess.org/TD_Affil/fileformat.php

It probably needs to be reworked a bit to make things like opponent, color and result separate data elements within the ‘results’ group. (I suppose those could be attributes within an XML element, opinion on what is a ‘well formed’ XML document varies.)

There may be a few things it is still missing, mostly to deal with FIDE data. (The FIDE requirement for reportiong round dates is problematical, even the author of the FIDE reporting format, Christian Krause, has acknowledged that it may need work in that area.)

Email me the details and I will take a stab at it.

WOOHOO!

Don’t you just love when a plan comes together!!! :wink:
Harry Payne 12705633

I doubt if I will have a chance to see it, sigh. Someone else should volunteer as unless someone else steps in; it will not happen. I will never get that email from Mike.

Were you just wanting an XML schema document? Like this?

<?xml version="1.0" encoding="utf-16"?> <xs:schema xmlns:b="http://schemas.microsoft.com/BizTalk/2003" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="ASEmployee"> <xs:annotation> <xs:appinfo> <b:recordInfo rootTypeName="ASEmployee" xmlns:b="http://schemas.microsoft.com/BizTalk/2003" /> <b:properties> <b:property distinguished="true" xpath="/*[local-name()='ASEmployee' and namespace-uri()='']/*[local-name()='AdUserName' and namespace-uri()='']" /> <b:property distinguished="true" xpath="/*[local-name()='ASEmployee' and namespace-uri()='']/*[local-name()='Email' and namespace-uri()='']" /> </b:properties> </xs:appinfo> </xs:annotation> <xs:complexType> <xs:sequence> <xs:element name="EffectiveDate" type="xs:dateTime" /> <xs:element name="EmployeeGUID" type="xs:string" /> <xs:element name="AdUserName" type="xs:string" /> <xs:element name="FirstName" type="xs:string" /> <xs:element name="MiddleName" type="xs:string" /> <xs:element name="LastName" type="xs:string" /> <xs:element name="Prefix" type="xs:string" /> <xs:element name="Suffix" type="xs:string" /> <xs:element name="Address" type="xs:string" /> <xs:element name="City" type="xs:string" /> <xs:element name="State" type="xs:string" /> <xs:element name="Zip" type="xs:string" /> <xs:element name="HomePhone" type="xs:string" /> <xs:element name="CellPhone" type="xs:string" /> <xs:element name="WorkPhone" type="xs:string" /> <xs:element name="PagerNumber" type="xs:string" /> <xs:element name="Email" type="xs:string" /> <xs:element name="CertificateNumber" type="xs:string" /> <xs:element minOccurs="0" name="SecurityGroups"> <xs:complexType> <xs:sequence> <xs:element minOccurs="0" maxOccurs="unbounded" name="GroupId" type="xs:string" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element minOccurs="0" maxOccurs="1" name="Organizations"> <xs:complexType> <xs:sequence> <xs:element minOccurs="0" maxOccurs="unbounded" name="Organization"> <xs:complexType> <xs:sequence> <xs:element minOccurs="0" maxOccurs="1" name="Jobs"> <xs:complexType> <xs:sequence> <xs:element maxOccurs="unbounded" name="Job"> <xs:complexType> <xs:sequence /> <xs:attribute name="Role" type="xs:string" use="optional" /> <xs:attribute name="Type" type="xs:string" use="optional" /> <xs:attribute name="EffectiveDate" type="xs:dateTime" /> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute name="Code" type="xs:string" /> <xs:attribute name="Name" type="xs:string" /> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute name="Action" type="xs:string" /> </xs:complexType> </xs:element> </xs:schema>

The above is an example of a employee document for a system I work on by the way. I wasn’t actually producing the one you were looking for yet:)

Sorry, I was offline most of yesterday after starting this thread.

What I’m looking for is the SPECIFICATIONS for such an XML document, ie what the element names are, what the hierarchies are, etc., so that other people can generate XML documents that will contain the proper elements in the right sequence. (If I understand XML correctly, there can be multiple ways of putting together those segments to represent the same data.)

I’m not sure what details Gregory is looking for beyond what is on the link that I posted, which has the draft standard in a dBase-like format.

The dBase format would need to be reworked to make it more XML-like, for example by having some kind of ‘round data’ level so that each result in every round is reported separately rather than the dBase way of having a round1 field for player 1, a round2 field for player 1, etc.

To complicate matters a bit, there needs to be some way of denoting cross-round results, eg, where a game is in round 1 for player A but in another round (probably but not necessarily round 2) for his opponent, so that I know the data is consistent when parsed.

Similarly, there probably needs to be a way to deal with results that are inconsistent with each other to deal with situations such as one where both players get a win for ratings purposes. Personally, I’ve never found a reason to make such a ruling as a chief TD, but other TDs do them, and the ratings system is programmed to permit them.

However, I think those are tweaks, what I’m looking for at this point is a structure, not a final specification.

I received something from another Forums user late last night on this, but haven’t had a chance to look at it yet today.

The XSD format that Jerry proposed would allow certain development tools to generate useful code. And the XSD format is the standard for exchanging data/messages across the internet.

Mike, would you like someone to post a proposed XSD to this thread? It would allow other members to critique the proposal…

Mike,

I should have all of this done with the old data parsing that I did. Would you be interested in it now?

I think the XML was dynamically created from the supplements.

It probably makes more sense to do the first draft or two via email, if only to keep this topic manageable. (I think the specs are likely to be fairly lengthy.)

I’m not sure if what Jerry posted is what I’m looking for or not, would others be able to use that to program their computers to write a well-formed XML file? (In other words, is it sufficiently human readable?)

What I showed there alone doesn’t do much. Without getting too geeky I’ll just say it’s usually something that you can load into a tool that generates xml. Once it’s loaded into the tool, it can potentially generate an entry form for the user to enter data. Once the user enters data, based off the schema, a XML document is generated that can be sent to other applications.

It forces the xml to be in the proposed format. All the xml will be well formed automatically.

I’m a SQL geek, I’m not really into XML (yet), what kind of tool would one use with the sample document you gave?

I think there needs to be a hierarchy associated with rating report data, ie sections within an event, players within a section, etc. If there’s a hierarchy associated with the sample you posted, it isn’t jumping out at me, that may just be my lack of familiarity with XML schemas.

I will be happy to post any proposals on my blog, and all interested parties would be able to post comments as part of a peer review process.

Peter Piper picked a peck…

In the alternative, Mike, you could gather inbox addresses from experienced hands like Jerry, Gregory, thunderchicken and me and we could peer review any proposals in an email thread.

How would you prefer to proceed?

Infopath is an option. I’m sure there are plenty of tutorials out there for it.

I personally am a BizTalk developer, but that is too much for what you are asking.

You can take a sample DB and dump it into something like Visual Studio to produce it for you, but I’d probably recommend starting from scratch and generate your own schema.

I can’t commit to anything unfortunately, but I can certianly answer questions or give advice.

I dunno, Chris, I’m open to suggestions.

Gregory’s idea of a technical ‘peer review’ committee is a good one, but Board-appointed USCF committes tend to get political in too many ways (both in deciding who gets on the committee–and who doesn’t–and then what the committee does, even the choice of a committee chair is laden with politics), so maybe this is best done outside of the Board’s purview, since the idea is to assist ME rather than to advise the Board. (I suppose we could have the ED create or sanction it when he returns from Sacramento tomorrow, if it needs some official standing.)

For a while I maintained an e-mail list of people who were interested in my membership and other statistical analysis reports, but I already get way too much email. (So much so that I probably miss imporant messages, some of them because they get into the ‘possible spam’ folder.)

Thank-you Michael for looking at this idea.

I am writing this quickly as I am at work.

I recommend starting a committee right away to deal with the XML issue and see what we can put together. I am extremely impressed with Thunderchickens work, and he would be perfect to lead an XML project. Furthermore, Michael and I have some friction, so if Thunder is willing, I nominate him to be a Chair. He can report to Michael alone in order to filter out the noise. Sorry for pulling you in Thunder, I have always respected your work. I think that Jerry and Chris would be valuable too.

We can look at thunders work, help him code, offer suggestions and improvments, and add a few comments, etc. We also might be able to write code in other languages as an example to instantiate the webservice and post it online somewhere. We need to find a savvy php programmer, I don’t have this particular skill set. Does anyone mentioned program in php to make things easier on Michael? After we agree on a standard, I think that having a sample template ready to go to serve the web-service would be great.

Thunder, et-al,

Would you be willing to form an ad-hoc committee with Thunder reporting to Mike for this XML project? If so, could you email me? My email address is gregory@tatiana.net. Lets get together and take this conversation off-line.

I think the best way forward is to have an informal group, not a formal committee, as proposed by Gregory. I have forwarded my info to him, and I urge others who are interested in helping to do the same.

We’ll need a name. How about “Mike’s Minions”? :laughing: