Jump to content

schema for complicated file


sandeman

Recommended Posts

So I have this xml file that is parsed by a program. (I posted his in the xslt forum... this is the same one.)Here is the xml in question:

<?xml version="1.0" encoding="iso-8859-1"?><root version="1.05">	<node name="charsheet">		<node name="TestforET">			<intvalue name="ac">0</intvalue>			<intvalue name="acarmorbonus">0</intvalue>			<intvalue name="acbasehelper">0</intvalue>			<intvalue name="acdexbonus">0</intvalue>			<intvalue name="acmiscbonus">0</intvalue>			<stringvalue name="acmisctitle"></stringvalue>			<intvalue name="acshieldbonus">0</intvalue>			<intvalue name="acsizebonus">0</intvalue>			<stringvalue name="age"></stringvalue>			<stringvalue name="alignment"></stringvalue>			<stringvalue name="appearance"></stringvalue>			<intvalue name="appraisemisc">0</intvalue>			<intvalue name="appraiseranks">0</intvalue>			<intvalue name="appraisestat">0</intvalue>			<intvalue name="appraisestate">0</intvalue>			<intvalue name="appraisetotal">0</intvalue>			<intvalue name="armorcheckpenalty">0</intvalue>			<intvalue name="armorcheckpenaltydbl">0</intvalue>			<intvalue name="balancemisc">0</intvalue>			<intvalue name="balanceranks">0</intvalue>			<intvalue name="balancestat">0</intvalue>			<intvalue name="balancestate">0</intvalue>			<intvalue name="balancetotal">0</intvalue>			<intvalue name="baseattackbonus">0</intvalue>			<intvalue name="bluffmisc">0</intvalue>			<intvalue name="bluffranks">0</intvalue>			<intvalue name="bluffstat">0</intvalue>			<intvalue name="bluffstate">0</intvalue>			<intvalue name="blufftotal">0</intvalue>			<intvalue name="charisma">0</intvalue>			<intvalue name="charismabonus">0</intvalue>			<intvalue name="charismadamage">0</intvalue>			<intvalue name="charismatotal">0</intvalue>			<stringvalue name="class1"></stringvalue>			<stringvalue name="class2"></stringvalue>			<stringvalue name="class3"></stringvalue>			<intvalue name="climbmisc">0</intvalue>			<intvalue name="climbranks">0</intvalue>			<intvalue name="climbstat">0</intvalue>			<intvalue name="climbstate">1</intvalue>			<intvalue name="climbtotal">0</intvalue>			<intvalue name="coinamount1">0</intvalue>			<intvalue name="coinamount2">0</intvalue>			<intvalue name="coinamount3">0</intvalue>			<intvalue name="coinamount4">0</intvalue>			<intvalue name="coinamount5">0</intvalue>			<intvalue name="coinamount6">0</intvalue>			<stringvalue name="coinname1">herebeplatnum</stringvalue>			<stringvalue name="coinname2"></stringvalue>			<stringvalue name="coinname3"></stringvalue>			<stringvalue name="coinname4"></stringvalue>			<stringvalue name="coinname5"></stringvalue>			<stringvalue name="coinname6"></stringvalue>			<stringvalue name="coinother">Other Test</stringvalue>			<intvalue name="concentrationmisc">0</intvalue>			<intvalue name="concentrationranks">0</intvalue>			<intvalue name="concentrationstat">0</intvalue>			<intvalue name="concentrationstate">0</intvalue>			<intvalue name="concentrationtotal">0</intvalue>			<intvalue name="constitution">0</intvalue>			<intvalue name="constitutionbonus">0</intvalue>			<intvalue name="constitutiondamage">0</intvalue>			<intvalue name="constitutiontotal">0</intvalue>			<intvalue name="craftmisc1">0</intvalue>			<intvalue name="craftmisc2">0</intvalue>			<stringvalue name="craftname1"></stringvalue>			<stringvalue name="craftname2"></stringvalue>			<intvalue name="craftranks1">0</intvalue>			<intvalue name="craftranks2">0</intvalue>			<intvalue name="craftstat">0</intvalue>			<intvalue name="craftstate">0</intvalue>			<intvalue name="crafttotal1">0</intvalue>			<intvalue name="crafttotal2">0</intvalue>			<intvalue name="decipherscriptmisc">0</intvalue>			<intvalue name="decipherscriptranks">0</intvalue>			<intvalue name="decipherscriptstat">0</intvalue>			<intvalue name="decipherscriptstate">2</intvalue>			<intvalue name="decipherscripttotal">0</intvalue>			<intvalue name="dexterity">0</intvalue>			<intvalue name="dexteritybonus">0</intvalue>			<intvalue name="dexteritydamage">0</intvalue>			<intvalue name="dexteritytotal">0</intvalue>			<intvalue name="diplomacymisc">0</intvalue>			<intvalue name="diplomacyranks">0</intvalue>			<intvalue name="diplomacystat">0</intvalue>			<intvalue name="diplomacystate">0</intvalue>			<intvalue name="diplomacytotal">0</intvalue>			<intvalue name="disabledevicemisc">0</intvalue>			<intvalue name="disabledeviceranks">0</intvalue>			<intvalue name="disabledevicestat">0</intvalue>			<intvalue name="disabledevicestate">0</intvalue>			<intvalue name="disabledevicetotal">0</intvalue>			<intvalue name="disguisemisc">0</intvalue>			<intvalue name="disguiseranks">0</intvalue>			<intvalue name="disguisestat">0</intvalue>			<intvalue name="disguisestate">0</intvalue>			<intvalue name="disguisetotal">0</intvalue>			<intvalue name="encumbranceheavyload">0</intvalue>			<intvalue name="encumbranceliftoffground">0</intvalue>			<intvalue name="encumbranceliftoverhead">0</intvalue>			<intvalue name="encumbrancelightload">0</intvalue>			<intvalue name="encumbranceload">1</intvalue>			<intvalue name="encumbrancemediumload">0</intvalue>			<intvalue name="encumbrancepushordrag">0</intvalue>			<stringvalue name="equippedinventory">test equiped\rtest line 2\rwhy return?</stringvalue>			<intvalue name="escapeartistmisc">0</intvalue>			<intvalue name="escapeartistranks">0</intvalue>			<intvalue name="escapeartiststat">0</intvalue>			<intvalue name="escapeartiststate">0</intvalue>			<intvalue name="escapeartisttotal">0</intvalue>			<intvalue name="exp">0</intvalue>			<intvalue name="expneeded">0</intvalue>			<stringvalue name="feats">one\rtwo</stringvalue>			<intvalue name="forgerymisc">0</intvalue>			<intvalue name="forgeryranks">0</intvalue>			<intvalue name="forgerystat">0</intvalue>			<intvalue name="forgerystate">0</intvalue>			<intvalue name="forgerytotal">0</intvalue>			<intvalue name="fortitudesave">0</intvalue>			<intvalue name="fortitudesavebase">0</intvalue>			<intvalue name="fortitudesavemisc">0</intvalue>			<intvalue name="fortitudesavestatbonus">0</intvalue>			<intvalue name="gatherinformationmisc">0</intvalue>			<intvalue name="gatherinformationranks">0</intvalue>			<intvalue name="gatherinformationstat">0</intvalue>			<intvalue name="gatherinformationstate">0</intvalue>			<intvalue name="gatherinformationtotal">0</intvalue>			<stringvalue name="gender"></stringvalue>			<intvalue name="handleanimalmisc">0</intvalue>			<intvalue name="handleanimalranks">0</intvalue>			<intvalue name="handleanimalstat">0</intvalue>			<intvalue name="handleanimalstate">0</intvalue>			<intvalue name="handleanimaltotal">0</intvalue>			<intvalue name="healmisc">0</intvalue>			<intvalue name="healranks">0</intvalue>			<intvalue name="healstat">0</intvalue>			<intvalue name="healstate">0</intvalue>			<intvalue name="healtotal">0</intvalue>			<stringvalue name="height"></stringvalue>			<intvalue name="hidemisc">0</intvalue>			<intvalue name="hideranks">0</intvalue>			<intvalue name="hidestat">0</intvalue>			<intvalue name="hidestate">0</intvalue>			<intvalue name="hidetotal">0</intvalue>			<intvalue name="hp">0</intvalue>			<intvalue name="initiative">0</intvalue>			<intvalue name="initiativedexbonus">0</intvalue>			<intvalue name="initiativemiscbonus">0</intvalue>			<intvalue name="intelligence">0</intvalue>			<intvalue name="intelligencebonus">0</intvalue>			<intvalue name="intelligencedamage">0</intvalue>			<intvalue name="intelligencetotal">0</intvalue>			<intvalue name="intimidatemisc">0</intvalue>			<intvalue name="intimidateranks">0</intvalue>			<intvalue name="intimidatestat">0</intvalue>			<intvalue name="intimidatestate">0</intvalue>			<intvalue name="intimidatetotal">0</intvalue>			<stringvalue name="inventory">test inventory\rtest line 2</stringvalue>			<intvalue name="jumpmisc">0</intvalue>			<intvalue name="jumpranks">0</intvalue>			<intvalue name="jumpstat">0</intvalue>			<intvalue name="jumpstate">0</intvalue>			<intvalue name="jumptotal">0</intvalue>			<intvalue name="knowledgearcanamisc">0</intvalue>			<intvalue name="knowledgearcanaranks">0</intvalue>			<intvalue name="knowledgearcanastat">0</intvalue>			<intvalue name="knowledgearcanastate">0</intvalue>			<intvalue name="knowledgearcanatotal">0</intvalue>			<intvalue name="knowledgedungeoneeringmisc">0</intvalue>			<intvalue name="knowledgedungeoneeringranks">0</intvalue>			<intvalue name="knowledgedungeoneeringstat">0</intvalue>			<intvalue name="knowledgedungeoneeringstate">0</intvalue>			<intvalue name="knowledgedungeoneeringtotal">0</intvalue>			<intvalue name="knowledgeengineeringmisc">0</intvalue>			<intvalue name="knowledgeengineeringranks">0</intvalue>			<intvalue name="knowledgeengineeringstat">0</intvalue>			<intvalue name="knowledgeengineeringstate">0</intvalue>			<intvalue name="knowledgeengineeringtotal">0</intvalue>			<intvalue name="knowledgegeographymisc">0</intvalue>			<intvalue name="knowledgegeographyranks">0</intvalue>			<intvalue name="knowledgegeographystat">0</intvalue>			<intvalue name="knowledgegeographystate">0</intvalue>			<intvalue name="knowledgegeographytotal">0</intvalue>			<intvalue name="knowledgehistorymisc">0</intvalue>			<intvalue name="knowledgehistoryranks">0</intvalue>			<intvalue name="knowledgehistorystat">0</intvalue>			<intvalue name="knowledgehistorystate">0</intvalue>			<intvalue name="knowledgehistorytotal">0</intvalue>			<intvalue name="knowledgelocalmisc">0</intvalue>			<intvalue name="knowledgelocalranks">0</intvalue>			<intvalue name="knowledgelocalstat">0</intvalue>			<intvalue name="knowledgelocalstate">0</intvalue>			<intvalue name="knowledgelocaltotal">0</intvalue>			<intvalue name="knowledgenaturemisc">0</intvalue>			<intvalue name="knowledgenatureranks">0</intvalue>			<intvalue name="knowledgenaturestat">0</intvalue>			<intvalue name="knowledgenaturestate">0</intvalue>			<intvalue name="knowledgenaturetotal">0</intvalue>			<intvalue name="knowledgenobilitymisc">0</intvalue>			<intvalue name="knowledgenobilityranks">0</intvalue>			<intvalue name="knowledgenobilitystat">0</intvalue>			<intvalue name="knowledgenobilitystate">0</intvalue>			<intvalue name="knowledgenobilitytotal">0</intvalue>			<intvalue name="knowledgereligionmisc">0</intvalue>			<intvalue name="knowledgereligionranks">0</intvalue>			<intvalue name="knowledgereligionstat">0</intvalue>			<intvalue name="knowledgereligionstate">0</intvalue>			<intvalue name="knowledgereligiontotal">0</intvalue>			<intvalue name="knowledgetheplanesmisc">0</intvalue>			<intvalue name="knowledgetheplanesranks">0</intvalue>			<intvalue name="knowledgetheplanesstat">0</intvalue>			<intvalue name="knowledgetheplanesstate">0</intvalue>			<intvalue name="knowledgetheplanestotal">0</intvalue>			<intvalue name="level1">0</intvalue>			<intvalue name="level2">0</intvalue>			<intvalue name="level3">0</intvalue>			<intvalue name="listenmisc">0</intvalue>			<intvalue name="listenranks">0</intvalue>			<intvalue name="listenstat">0</intvalue>			<intvalue name="listenstate">0</intvalue>			<intvalue name="listentotal">0</intvalue>			<intvalue name="meleeattackbasemod">0</intvalue>			<intvalue name="meleeattackbonus">0</intvalue>			<intvalue name="meleeattackstrmod">0</intvalue>			<intvalue name="movesilentlymisc">0</intvalue>			<intvalue name="movesilentlyranks">0</intvalue>			<intvalue name="movesilentlystat">0</intvalue>			<intvalue name="movesilentlystate">0</intvalue>			<intvalue name="movesilentlytotal">0</intvalue>			<stringvalue name="name">TestforET</stringvalue>			<intvalue name="openlockmisc">0</intvalue>			<intvalue name="openlockranks">0</intvalue>			<intvalue name="openlockstat">0</intvalue>			<intvalue name="openlockstate">0</intvalue>			<intvalue name="openlocktotal">0</intvalue>			<stringvalue name="otherresists"></stringvalue>			<intvalue name="performmisc1">0</intvalue>			<intvalue name="performmisc2">0</intvalue>			<stringvalue name="performname1"></stringvalue>			<stringvalue name="performname2"></stringvalue>			<intvalue name="performranks1">0</intvalue>			<intvalue name="performranks2">0</intvalue>			<intvalue name="performstat">0</intvalue>			<intvalue name="performstate">0</intvalue>			<intvalue name="performtotal1">0</intvalue>			<intvalue name="performtotal2">0</intvalue>			<intvalue name="professionmisc1">0</intvalue>			<intvalue name="professionmisc2">0</intvalue>			<stringvalue name="professionname1"></stringvalue>			<stringvalue name="professionname2"></stringvalue>			<intvalue name="professionranks1">0</intvalue>			<intvalue name="professionranks2">0</intvalue>			<intvalue name="professionstat">0</intvalue>			<intvalue name="professionstate">0</intvalue>			<intvalue name="professiontotal1">0</intvalue>			<intvalue name="professiontotal2">0</intvalue>			<stringvalue name="race"></stringvalue>			<intvalue name="rangeattackbasemod">0</intvalue>			<intvalue name="rangeattackbonus">0</intvalue>			<intvalue name="rangeattackdexmod">0</intvalue>			<intvalue name="readlipsmisc">0</intvalue>			<intvalue name="readlipsranks">0</intvalue>			<intvalue name="readlipsstat">0</intvalue>			<intvalue name="readlipsstate">0</intvalue>			<intvalue name="readlipstotal">0</intvalue>			<intvalue name="reflexsave">0</intvalue>			<intvalue name="reflexsavebase">0</intvalue>			<intvalue name="reflexsavemisc">0</intvalue>			<intvalue name="reflexsavestatbonus">0</intvalue>			<intvalue name="ridemisc">0</intvalue>			<intvalue name="rideranks">0</intvalue>			<intvalue name="ridestat">0</intvalue>			<intvalue name="ridestate">0</intvalue>			<intvalue name="ridetotal">0</intvalue>			<intvalue name="searchmisc">0</intvalue>			<intvalue name="searchranks">0</intvalue>			<intvalue name="searchstat">0</intvalue>			<intvalue name="searchstate">0</intvalue>			<intvalue name="searchtotal">0</intvalue>			<intvalue name="sensemotivemisc">0</intvalue>			<intvalue name="sensemotiveranks">0</intvalue>			<intvalue name="sensemotivestat">0</intvalue>			<intvalue name="sensemotivestate">0</intvalue>			<intvalue name="sensemotivetotal">0</intvalue>			<stringvalue name="size"></stringvalue>			<intvalue name="sleightofhandmisc">0</intvalue>			<intvalue name="sleightofhandranks">0</intvalue>			<intvalue name="sleightofhandstat">0</intvalue>			<intvalue name="sleightofhandstate">0</intvalue>			<intvalue name="sleightofhandtotal">0</intvalue>			<intvalue name="speaklanguageranks">0</intvalue>			<intvalue name="speaklanguagestate">0</intvalue>			<stringvalue name="specialabilities"></stringvalue>			<node name="spell">				<node name="00001">					<intvalue name="level">0</intvalue>					<stringvalue name="name"></stringvalue>					<intvalue name="prepared">0</intvalue>					<stringvalue name="shortdescription"></stringvalue>				</node>				<node name="00002">					<intvalue name="level">0</intvalue>					<stringvalue name="name">Detect Poison</stringvalue>					<intvalue name="prepared">0</intvalue>					<stringvalue name="shortdescription">Detects poison in one creature or object.</stringvalue>				</node>			</node>			<intvalue name="spellcraftmisc">0</intvalue>			<intvalue name="spellcraftranks">0</intvalue>			<intvalue name="spellcraftstat">0</intvalue>			<intvalue name="spellcraftstate">0</intvalue>			<intvalue name="spellcrafttotal">0</intvalue>			<intvalue name="spelldclevel0">0</intvalue>			<intvalue name="spelldclevel1">0</intvalue>			<intvalue name="spelldclevel2">0</intvalue>			<intvalue name="spelldclevel3">0</intvalue>			<intvalue name="spelldclevel4">0</intvalue>			<intvalue name="spelldclevel5">0</intvalue>			<intvalue name="spelldclevel6">0</intvalue>			<intvalue name="spelldclevel7">0</intvalue>			<intvalue name="spelldclevel8">0</intvalue>			<intvalue name="spelldclevel9">0</intvalue>			<stringvalue name="spellmisclabel">MiscTest</stringvalue>			<intvalue name="spellmisclevel0">1</intvalue>			<intvalue name="spellmisclevel1">0</intvalue>			<intvalue name="spellmisclevel2">0</intvalue>			<intvalue name="spellmisclevel3">0</intvalue>			<intvalue name="spellmisclevel4">0</intvalue>			<intvalue name="spellmisclevel5">0</intvalue>			<intvalue name="spellmisclevel6">0</intvalue>			<intvalue name="spellmisclevel7">0</intvalue>			<intvalue name="spellmisclevel8">0</intvalue>			<intvalue name="spellmisclevel9">0</intvalue>			<intvalue name="spellsperdaylevel0">1</intvalue>			<intvalue name="spellsperdaylevel1">0</intvalue>			<intvalue name="spellsperdaylevel2">0</intvalue>			<intvalue name="spellsperdaylevel3">0</intvalue>			<intvalue name="spellsperdaylevel4">0</intvalue>			<intvalue name="spellsperdaylevel5">0</intvalue>			<intvalue name="spellsperdaylevel6">0</intvalue>			<intvalue name="spellsperdaylevel7">0</intvalue>			<intvalue name="spellsperdaylevel8">0</intvalue>			<intvalue name="spellsperdaylevel9">0</intvalue>			<intvalue name="spotmisc">0</intvalue>			<intvalue name="spotranks">0</intvalue>			<intvalue name="spotstat">0</intvalue>			<intvalue name="spotstate">0</intvalue>			<intvalue name="spottotal">0</intvalue>			<intvalue name="strength">19</intvalue>			<intvalue name="strengthbonus">0</intvalue>			<intvalue name="strengthdamage">0</intvalue>			<intvalue name="strengthtotal">0</intvalue>			<intvalue name="subdual">0</intvalue>			<intvalue name="survivalmisc">0</intvalue>			<intvalue name="survivalranks">0</intvalue>			<intvalue name="survivalstat">0</intvalue>			<intvalue name="survivalstate">0</intvalue>			<intvalue name="survivaltotal">0</intvalue>			<intvalue name="swimmisc">0</intvalue>			<intvalue name="swimranks">0</intvalue>			<intvalue name="swimstat">0</intvalue>			<intvalue name="swimstate">0</intvalue>			<intvalue name="swimtotal">0</intvalue>			<intvalue name="tumblemisc">0</intvalue>			<intvalue name="tumbleranks">0</intvalue>			<intvalue name="tumblestat">0</intvalue>			<intvalue name="tumblestate">0</intvalue>			<intvalue name="tumbletotal">0</intvalue>			<intvalue name="usemagicdevicemisc">0</intvalue>			<intvalue name="usemagicdeviceranks">0</intvalue>			<intvalue name="usemagicdevicestat">0</intvalue>			<intvalue name="usemagicdevicestate">0</intvalue>			<intvalue name="usemagicdevicetotal">0</intvalue>			<intvalue name="useropemisc">0</intvalue>			<intvalue name="useroperanks">0</intvalue>			<intvalue name="useropestat">0</intvalue>			<intvalue name="useropestate">0</intvalue>			<intvalue name="useropetotal">0</intvalue>			<stringvalue name="weapon1">one</stringvalue>			<intvalue name="weapon1attackbonus">0</intvalue>			<intvalue name="weapon1attackbonus2">0</intvalue>			<intvalue name="weapon1attackbonus3">0</intvalue>			<intvalue name="weapon1attackbonus4">0</intvalue>			<stringvalue name="weapon1critical"></stringvalue>			<stringvalue name="weapon1damage"></stringvalue>			<stringvalue name="weapon2">two</stringvalue>			<intvalue name="weapon2attackbonus">0</intvalue>			<intvalue name="weapon2attackbonus2">0</intvalue>			<intvalue name="weapon2attackbonus3">0</intvalue>			<intvalue name="weapon2attackbonus4">0</intvalue>			<stringvalue name="weapon2critical"></stringvalue>			<stringvalue name="weapon2damage"></stringvalue>			<stringvalue name="weapon3">three</stringvalue>			<intvalue name="weapon3attackbonus">0</intvalue>			<intvalue name="weapon3attackbonus2">0</intvalue>			<intvalue name="weapon3attackbonus3">0</intvalue>			<intvalue name="weapon3attackbonus4">0</intvalue>			<stringvalue name="weapon3critical"></stringvalue>			<stringvalue name="weapon3damage"></stringvalue>			<stringvalue name="weapon4">four</stringvalue>			<intvalue name="weapon4attackbonus">0</intvalue>			<intvalue name="weapon4attackbonus2">0</intvalue>			<intvalue name="weapon4attackbonus3">0</intvalue>			<intvalue name="weapon4attackbonus4">0</intvalue>			<stringvalue name="weapon4critical"></stringvalue>			<stringvalue name="weapon4damage"></stringvalue>			<stringvalue name="weight"></stringvalue>			<intvalue name="willsave">0</intvalue>			<intvalue name="willsavebase">0</intvalue>			<intvalue name="willsavemisc">0</intvalue>			<intvalue name="willsavestatbonus">0</intvalue>			<intvalue name="wisdom">0</intvalue>			<intvalue name="wisdombonus">0</intvalue>			<intvalue name="wisdomdamage">0</intvalue>			<intvalue name="wisdomtotal">0</intvalue>			<intvalue name="wounds">0</intvalue>		</node>	</node>	</root>

This repeats from the <node name="TestforET"> to represent characters.The problem that I am having is to make an schema for this, but there are tons of <intvalue> and <stringvalue> elements, all with the "name" attribute.How does one go making a schema for this? I can see how to make the <intvalue> and <stringvalue> repeat, but the attributes are all the same! is there a way to do this in a schema?Sandeman

Link to comment
Share on other sites

Can a person use something like this?

<xs:group name="charsheet"> <xs:sequence>  <xs:element name="intvalue" />      <xs:attribute name="ac" type="xs:string"/>      >xs:attribute name="acarmourbonus" type="xs:string"/>  <xs:element name="stringvalue" />       <xs:attribute name="race" type="xs:string"/>  <xs:element name="node" type="xs:string" default="spells"/>       <xs:element name="stringvalue"/>           <xs:attribute name="name" value="xs:string"/> </xs:sequence></xs:group>

The problem that I have is representing

<stringvalue name="treasure" value=""/>

in schema format.Sandeman

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...