• Our friends from AlphaCentauri2.info are in need of technical assistance. If you have experience with the LAMP stack and some hours to spare, please help them out and post here.

Can't make building/unit unique to civ; overrides cause problems

swatmp5

Chieftain
Joined
Sep 6, 2010
Messages
29
Hey guys, I had a problem that I've been trying to solve but I am just unable to do it.

I have one building and one unit that I would like to make unique to one civilization. The problem is that it won't do it.

This is what I have as the overrides:

Code:
<GameData>
	<Civilization_BuildingClassOverrides>
		<Row>
			<CivilizationType>CIVILIZATION_VIRTUCON</CivilizationType>
			<BuildingClassType>BUILDINGCLASS_GLOBAL_HEADQUARTERS</BuildingClassType>
			<BuildingType>BUILDING_GLOBAL_HEADQUARTERS</BuildingType>
		</Row>
	</Civilization_BuildingClassOverrides>
	<Civilization_UnitClassOverrides>
		<Row>
			<CivilizationType>CIVILIZATION_VIRTUCON</CivilizationType>
			<UnitClassType>UNITCLASS_VIRTUCON_HENCHMEN</UnitClassType>
			<UnitType>UNIT_VIRTUCON_HENCHMEN</UnitType>
		</Row>
	</Civilization_UnitClassOverrides>
</GameData>

(I've kept the UnitClassType and UnitType pretty similar as you can see.)

Now, in my unit.xml and building.xml (which contain my unit and my building), I have left the
Code:
<DefaultBuilding>BUILDING_GLOBAL_HEADQUARTERS</DefaultBuilding>
and
Code:
<DefaultUnit>UNIT_VIRTUCON_HENCHMEN</DefaultUnit>
Now, as I understand it, the <DefaultBuilding> tag means that this building/unit will be available for all civilizations (The opposite of what I want).

"So why don't you just remove the <defaultbuilding> or <defaultunit> tag since that is precisely what is keeping said building/unit from being unique to said civilization?"

I have. And when I do, the building/unit DOES become unique to the civilization that I want to have it unique to (i.e. it solves the problem that I've put forth to you).

"Then what seems to be the problem?" The problem is if I do that (remove the <defaultbuilding> or <defaultunit> tag), suddenly (and magically I've come to think), all the text on the respective building/unit page goes blank. There is no writing or headers, nothing. So, with the <defaultbuilding> or <defaultunit> tag removed, if I were to head over to, say, the GLOBAL_HEADQUARTERS page, I would be facing a blank page (there would be the cost/the picture/requirements/[the things on the left hand side] but nothing on the right hand side). Even though such writings and civopedia entries come out perfectly when I leave the <defaultbuilding> or <defaultunit> tag on (but if said tags on, then the building/unit won't be unique to the civilization).

So I was hoping someone would know how to fix this? Kind of a weird problem and it has been making me really confused. I have attached my mod.

Here is the building.xml (not all of it, just the part that is relevant I assume)

Code:
<GameData>
	<BuildingClasses>
		<Row>
			<Type>BUILDINGCLASS_GLOBAL_HEADQUARTERS</Type>
			<!-- DEFAULTBUILDING tag apparently makes it so that everyone gets the building. but if you take it out, then magically all the text on the civelopida page goes blank... -->
			<DefaultBuilding>BUILDING_GLOBAL_HEADQUARTERS</DefaultBuilding>
			<Description>TXT_KEY_BUILDING_GLOBAL_HEADQUARTERS_HELP</Description>
			<MaxPlayerInstances>1</MaxPlayerInstances>
		</Row>
	</BuildingClasses>
	<Buildings>
		<Row>
			<Type>BUILDING_GLOBAL_HEADQUARTERS</Type>
			<BuildingClass>BUILDINGCLASS_GLOBAL_HEADQUARTERS</BuildingClass>
			<Description>TXT_KEY_BUILDING_GLOBAL_HEADQUARTERS_DESC</Description>
			<Civilopedia>TXT_KEY_CIV5_BUILDING_GLOBAL_HEADQUARTERS_PEDIA</Civilopedia>
			<Strategy>TXT_KEY_BUILDING_GLOBAL_HEADQUARTERS_STRATEGY</Strategy>
			<Help>TXT_KEY_BUILDING_GLOBAL_HEADQUARTERS_HELP</Help>
			<Quote></Quote>
			<GoldMaintenance>0</GoldMaintenance>
			<MutuallyExclusiveGroup>-1</MutuallyExclusiveGroup>

and units.xml (also just the relevant parts)
Code:
<GameData>
	<UnitClasses>
		<Row>
			<Type>UNITCLASS_VIRTUCON_HENCHMEN</Type>
			<Description>TXT_KEY_UNIT_VIRTUCON_HENCHMEN</Description>
			<DefaultUnit>UNIT_VIRTUCON_HENCHMEN</DefaultUnit>
		</Row>
	</UnitClasses>
	<Units>
		<Row>
			<Class>UNITCLASS_VIRTUCON_HENCHMEN</Class>
			<Type>UNIT_VIRTUCON_HENCHMEN</Type>
			<Description>TXT_KEY_UNIT_VIRTUCON_HENCHMEN</Description>
			<Civilopedia>TXT_KEY_CIVILOPEDIA_UNITS_MODERN_VIRTUCON_HENCHMEN_TEXT</Civilopedia>
			<Strategy>TXT_KEY_UNIT_VIRTUCON_HENCHMEN_STRATEGY</Strategy>
			<Help>TXT_KEY_UNIT_HELP_VIRTUCON_HENCHMEN</Help>
			<Requirements></Requirements>
			<Combat>25</Combat>
			<RangedCombat>0</RangedCombat>
			<Cost>250</Cost>
The GameData tag and other tags are there I'm just posting the relevant parts.

~~
As a side note: Special Thanks to e-clipze-ea from whose "The Frisian Kingdom (Friesland)" mod I used as a general civilization template. Also here is the link to the mod if you prefer to download it that way
 

Attachments

The way overrides work, it requires you to override generic buildings or units. So the issue is that there can't be a BuildingClass or UnitClass without an actual default...

This means you shouldn't need to create a new UnitClass, only make an UnitType override an existing UnitClass

Code:
<Civilization_BuildingClassOverrides>
		<Row>
			<CivilizationType>CIVILIZATION_VIRTUCON</CivilizationType>
			<BuildingClassType>BUILDINGCLASS_PALACE</BuildingClassType>
			<BuildingType>BUILDING_GLOBAL_HEADQUARTERS</BuildingType>
		</Row>
	</Civilization_BuildingClassOverrides>

For example...

Of course, this means that your civ won't be able of building the replaced building, but... That's sort of the point of overrides right?
 
Thanks for the reply Leugi. Yes, I have trouble understanding how overrides work (and how classes work espeically lol). I've tried made these adjustments in accordance to your advice (I hope I did it correctly but I don't think I did):

In Civilizations.xml
Code:
	<Civilization_BuildingClassOverrides>
		<Row>
			<CivilizationType>CIVILIZATION_VIRTUCON</CivilizationType>
			<BuildingClassType>BUILDINGCLASS_PALACE</BuildingClassType>
			<BuildingType>BUILDING_GLOBAL_HEADQUARTERS</BuildingType>
		</Row>
	</Civilization_BuildingClassOverrides>
	<Civilization_UnitClassOverrides>
		<Row>
			<CivilizationType>CIVILIZATION_VIRTUCON</CivilizationType>
			<UnitClassType>UNITCLASS_GREAT_WAR_INFANTRY</UnitClassType>
			<UnitType>UNIT_VIRTUCON_HENCHMEN</UnitType>
		</Row>
	</Civilization_UnitClassOverrides>

Buildings.xml:
Code:
	<BuildingClasses>
		<Row>
			<Type>BUILDINGCLASS_PALACE</Type>
			<DefaultBuilding>BUILDING_GLOBAL_HEADQUARTERS</DefaultBuilding>
			<Description>TXT_KEY_BUILDING_GLOBAL_HEADQUARTERS_HELP</Description>
			<MaxPlayerInstances>1</MaxPlayerInstances>
		</Row>
	</BuildingClasses>
	<Buildings>
		<Row>
			<Type>BUILDING_GLOBAL_HEADQUARTERS</Type>
			<BuildingClass>BUILDINGCLASS_PALACE</BuildingClass>
			<Description>TXT_KEY_BUILDING_GLOBAL_HEADQUARTERS_DESC</Description>
			<Civilopedia>TXT_KEY_CIV5_BUILDING_GLOBAL_HEADQUARTERS_PEDIA</Civilopedia>
			<Strategy>TXT_KEY_BUILDING_GLOBAL_HEADQUARTERS_STRATEGY</Strategy>
			<Help>TXT_KEY_BUILDING_GLOBAL_HEADQUARTERS_HELP</Help>
			<Quote></Quote>
			<GoldMaintenance>0</GoldMaintenance>
			<MutuallyExclusiveGroup>-1</MutuallyExclusiveGroup>
.. ETC

Unit.xml
Code:
	<UnitClasses>
		<Row>
			<Type>UNITCLASS_GREAT_WAR_INFANTRY</Type>
			<Description>TXT_KEY_UNIT_VIRTUCON_HENCHMEN</Description>
			<DefaultUnit>UNIT_VIRTUCON_HENCHMEN</DefaultUnit>
		</Row>
	</UnitClasses>
	<Units>
		<Row>
			<Class>UNITCLASS_GREAT_WAR_INFANTRY</Class>
			<Type>UNIT_VIRTUCON_HENCHMEN</Type>
			<Description>TXT_KEY_UNIT_VIRTUCON_HENCHMEN</Description>
			<Civilopedia>TXT_KEY_CIVILOPEDIA_UNITS_MODERN_VIRTUCON_HENCHMEN_TEXT</Civilopedia>
			<Strategy>TXT_KEY_UNIT_VIRTUCON_HENCHMEN_STRATEGY</Strategy>
			<Help>TXT_KEY_UNIT_HELP_VIRTUCON_HENCHMEN</Help>
			<Requirements></Requirements>
			<Combat>25</Combat>
			<RangedCombat>0</RangedCombat>
			<Cost>250</Cost>
... ETC

Unfortunately, it still doesn't work (the buildings don't even show up anymore..) I know I'm doing something wrong; what is it exactly and how can I specifically fix it? Or what parts of my xml above did I get wrong? Thanks again.
 
The log files (specifically database.log) will tell you the answers to those questions - see http://forums.civfanatics.com/showthread.php?t=487482

My log file [based on the xmls in my previous post above yours]:

Code:
Prepared Statements:
Current:		30
------------------------------
[7999.185] no such column: Type
[7999.185] In Query - select * from Natural_Wonder_Placement where Type = ? LIMIT 1
[8074.798] no such table: ContentPackage.LocalizedText
[8081.194] no such table: ContentPackage.LocalizedText
[8084.346] no such table: ContentPackage.LocalizedText
[8086.374] constraint failed
[8086.374] While executing - 'insert into BuildingClasses('Type', 'DefaultBuilding', 'Description', 'MaxPlayerInstances') values (?, ?, ?, ?);'
[8086.374] In XMLSerializer while inserting row into table insert into BuildingClasses('Type', 'DefaultBuilding', 'Description', 'MaxPlayerInstances') with  values (BUILDINGCLASS_PALACE, BUILDING_GLOBAL_HEADQUARTERS, TXT_KEY_BUILDING_GLOBAL_HEADQUARTERS_HELP, 1, ).
[8086.374] In XMLSerializer while updating table BuildingClasses from file XML/Buildings.xml.
[8086.374] column Type is not unique
[8086.623] constraint failed
[8086.623] While executing - 'insert into UnitClasses('Type', 'Description', 'DefaultUnit') values (?, ?, ?);'
[8086.623] In XMLSerializer while inserting row into table insert into UnitClasses('Type', 'Description', 'DefaultUnit') with  values (UNITCLASS_GREAT_WAR_INFANTRY, TXT_KEY_UNIT_VIRTUCON_HENCHMEN, UNIT_VIRTUCON_HENCHMEN, ).
[8086.623] In XMLSerializer while updating table UnitClasses from file XML/Unit.xml.
[8086.623] column Type is not unique
[8100.117] Validating Foreign Key Constraints...
[8100.507] Invalid Reference on Civilization_BuildingClassOverrides.BuildingType - "BUILDING_GLOBAL_HEADQUARTERS" does not exist in Buildings
[8100.554] Invalid Reference on Civilization_CityNames.CityName - "TXT_KEY_CITY_NAME_ST_JOHNS" does not exist in Language_en_US
[8100.554] Invalid Reference on Civilization_CityNames.CityName - "TXT_KEY_CITY_NAME_VIRTUCON" does not exist in Language_en_US
[8100.601] Invalid Reference on Civilization_UnitClassOverrides.UnitType - "UNIT_VIRTUCON_HENCHMEN" does not exist in Units
[8100.866] Invalid Reference on Leader_MinorCivApproachBiases.LeaderType - "LEADER_HARALD" does not exist in Leaders
[8100.866] Invalid Reference on Leader_MinorCivApproachBiases.LeaderType - "LEADER_KAMEHAMEHA" does not exist in Leaders
[8100.866] Invalid Reference on Leader_MinorCivApproachBiases.LeaderType - "LEADER_PACHACUTI" does not exist in Leaders
[8100.866] Invalid Reference on Leader_MinorCivApproachBiases.LeaderType - "LEADER_SEJONG" does not exist in Leaders
[8100.866] Invalid Reference on Leader_MinorCivApproachBiases.LeaderType - "LEADER_NEBUCHADNEZZAR" does not exist in Leaders
[8100.866] Invalid Reference on Leader_Flavors.LeaderType - "LEADER_HARALD" does not exist in Leaders
[8100.866] Invalid Reference on Leader_Flavors.LeaderType - "LEADER_HARALD" does not exist in Leaders
[8100.866] Invalid Reference on Leader_Flavors.LeaderType - "LEADER_HARALD" does not exist in Leaders
[8100.866] Invalid Reference on Leader_Flavors.LeaderType - "LEADER_HARALD" does not exist in Leaders
[8100.866] Invalid Reference on Leader_Flavors.LeaderType - "LEADER_KAMEHAMEHA" does not exist in Leaders
[8100.866] Invalid Reference on Leader_Flavors.LeaderType - "LEADER_KAMEHAMEHA" does not exist in Leaders
[8100.866] Invalid Reference on Leader_Flavors.LeaderType - "LEADER_KAMEHAMEHA" does not exist in Leaders
[8100.866] Invalid Reference on Leader_Flavors.LeaderType - "LEADER_KAMEHAMEHA" does not exist in Leaders
[8100.866] Invalid Reference on Leader_Flavors.LeaderType - "LEADER_KAMEHAMEHA" does not exist in Leaders
[8100.866] Invalid Reference on Leader_Flavors.LeaderType - "LEADER_KAMEHAMEHA" does not exist in Leaders
[8100.866] Invalid Reference on Leader_Flavors.LeaderType - "LEADER_KAMEHAMEHA" does not exist in Leaders
[8100.866] Invalid Reference on Leader_Flavors.LeaderType - "LEADER_PACHACUTI" does not exist in Leaders
[8100.866] Invalid Reference on Leader_Flavors.LeaderType - "LEADER_PACHACUTI" does not exist in Leaders
[8100.866] Invalid Reference on Leader_Flavors.LeaderType - "LEADER_PACHACUTI" does not exist in Leaders
[8100.866] Invalid Reference on Leader_Flavors.LeaderType - "LEADER_PACHACUTI" does not exist in Leaders
[8100.866] Invalid Reference on Leader_Flavors.LeaderType - "LEADER_SEJONG" does not exist in Leaders
[8100.866] Invalid Reference on Leader_Flavors.LeaderType - "LEADER_SEJONG" does not exist in Leaders
[8100.866] Invalid Reference on Leader_Flavors.LeaderType - "LEADER_SEJONG" does not exist in Leaders
[8100.866] Invalid Reference on Leader_Flavors.LeaderType - "LEADER_SEJONG" does not exist in Leaders
[8100.866] Invalid Reference on Leader_Flavors.LeaderType - "LEADER_NEBUCHADNEZZAR" does not exist in Leaders
[8100.866] Invalid Reference on Leader_Flavors.LeaderType - "LEADER_NEBUCHADNEZZAR" does not exist in Leaders
[8100.866] Invalid Reference on Leader_Flavors.LeaderType - "LEADER_NEBUCHADNEZZAR" does not exist in Leaders
[8100.866] Invalid Reference on Leader_Flavors.LeaderType - "LEADER_NEBUCHADNEZZAR" does not exist in Leaders
[8100.866] Invalid Reference on Leader_Flavors.LeaderType - "LEADER_NEBUCHADNEZZAR" does not exist in Leaders
[8101.350] Invalid Reference on UnitPromotions.PediaEntry - "TXT_KEY_PROMOTION_WITHDRAW_BEFORE_MELEE" does not exist in Language_en_US
[8101.397] Invalid Reference on UnitPromotions.Help - "TXT_KEY_PROMOTION_WITHDRAW_BEFORE_MELEE_HELP" does not exist in Language_en_US
[8101.443] Invalid Reference on UnitPromotions.Description - "TXT_KEY_PROMOTION_WITHDRAW_BEFORE_MELEE" does not exist in Language_en_US
[8101.443] Failed Validation.
[8102.021] 
-- SQLite Memory Statistics --
Memory Usage:
		[Cur]		[Max]
Malloc:		548656		26518312
PageCache:	4317		4982
LookAside:	0		0
Scratch:	0		1

Static Buffer Overflows:
		[TooLarge]	[NoSpace]
PageCache:	0		22472680
Scratch:	0		0

Largest Allocations:
Malloc:		131072
PageCache:	1160
Scratch:	6664

Prepared Statements:
Current:		29
------------------------------
[8102.177] no such column: Type
[8102.177] In Query - select * from Natural_Wonder_Placement where Type = ? LIMIT 1

Aside from the DLC stuff, I can see that there is things wrong with the buildingclasses. I'll try to figure out what they mean.
 
One BuildingClass with a default Building
One (default) Building with that BuildingClass
Many civ specific (UB) Buildings of the same BuildngClass that over-ride for the civ the default Building

So when you are creating civ specific variants of buildings/units you must not (attempt to) redefine the BuildingClass

So, in your XML delete the <BuildingClasses> and <UnitClasses> tags and all their contents
 
One BuildingClass with a default Building
One (default) Building with that BuildingClass
Many civ specific (UB) Buildings of the same BuildngClass that over-ride for the civ the default Building

So when you are creating civ specific variants of buildings/units you must not (attempt to) redefine the BuildingClass

So, in your XML delete the <BuildingClasses> and <UnitClasses> tags and all their contents

I did that and it worked perfectly. Thanks a lot! :D (just as a side note: where should I put my <MaxPlayerInstances>1</MaxPlayerInstances> for the GLOBAL_HEADQUARTERS building?; I tried putting it under <buildings> and <Civilization_BuildingClassOverrides> but those screwed stuff up..)

The Virtucon Henchmen does replace the Great War Infantry, as evidenced by the xml. If I wanted to make it so the Virtucon Henchmen unit doesn't replace anything, i.e. it is just basically a standalone unit that is unique to the Virtucon civilization, how would I do that? I'm still a bit confused regarding that. Would I just remove the <defaultbuilding> tag or would I have to make a new buildingclass (but I shouldn't build a new buildingclass..?) Thanks again.
 
If it's a unit in it's own right, it would need it's own UnitClass, and the default for that UnitClass would be the Virtucon Henchmen unit (building classes don't come into it)

To make it unique to the civ is possible, but without using SQL painful

Code:
<Civilization_UnitClassOverrides>
  <Row>
    <CivilizationType>CIVILIZATION_AMERICA</CivilizationType>
    <UnitClassType>UNITCLASS_VIRTUCON_HENCHMEN</UnitClassType>
    [COLOR="Red"]<UnitType></UnitType>[/COLOR]
  </Row>
  <Row>
    <CivilizationType>CIVILIZATION_ARABIA</CivilizationType>
    <UnitClassType>UNITCLASS_VIRTUCON_HENCHMEN</UnitClassType>
    [COLOR="red"]<UnitType></UnitType>[/COLOR]
  </Row>
  ... etc, for EVERY major civ, and don't forget the Barbs and Minor civs (see other units, eg subs and aircraft carriers, for an example)
</Civilization_UnitClassOverrides>

The empty <UnitType> tag means "cannot build this"
 
<MaxPlayerInstances>1</MaxPlayerInstances> for the GLOBAL_HEADQUARTERS building?

You don't. The HQ is a variation of the Palace building class, each player may only construct one building of the class - doesn't matter if its a HQ building or a Palace building
 
If it's a unit in it's own right, it would need it's own UnitClass, and the default for that UnitClass would be the Virtucon Henchmen unit (building classes don't come into it)

To make it unique to the civ is possible, but without using SQL painful

Code:
<Civilization_UnitClassOverrides>
  <Row>
    <CivilizationType>CIVILIZATION_AMERICA</CivilizationType>
    <UnitClassType>UNITCLASS_VIRTUCON_HENCHMEN</UnitClassType>
    [COLOR="Red"]<UnitType></UnitType>[/COLOR]
  </Row>
  <Row>
    <CivilizationType>CIVILIZATION_ARABIA</CivilizationType>
    <UnitClassType>UNITCLASS_VIRTUCON_HENCHMEN</UnitClassType>
    [COLOR="red"]<UnitType></UnitType>[/COLOR]
  </Row>
  ... etc, for EVERY major civ, and don't forget the Barbs and Minor civs (see other units, eg subs and aircraft carriers, for an example)
</Civilization_UnitClassOverrides>

The empty <UnitType> tag means "cannot build this"

I see. It sounds a bit time consuming but doable! (whoops, just realized that if people are using other civilization mods those civilizations would be able to use, as I can't block all known civilization mods. Might just keep it like you said earlier then lol)

You don't. The HQ is a variation of the Palace building class, each player may only construct one building of the class - doesn't matter if its a HQ building or a Palace building

Ah, I see. That makes sense.

Thanks a lot for all the help and answering all my questions! I learned a lot. Thanks also to Leugi for his tips.
 
as I can't block all known civilization mods.
Unless you use SQL (which still relies on you mod loading last) or Lua (via the CityCanTrain() test all)
 
That's what whoward does, I think none of my mods would even exist were it not for his answering almost every quetion on earth.

The empty <UnitType> tag means "cannot build this"

That's something interesting, a fake override... Will find a fancy use of it.
 
Unless you use SQL (which still relies on you mod loading last) or Lua (via the CityCanTrain() test all)

Will definitely keep that in mind for the future, once I get used to XMLs lol.

That's what whoward does, I think none of my mods would even exist were it not for his answering almost every quetion on earth.


That's something interesting, a fake override... Will find a fancy use of it.

Indeed.:cool:
 
That's something interesting, a fake override... Will find a fancy use of it.

It's mainly used for stopping Barbs and City States building Missile Cruisers, Subs, Carriers, Nukes, GDR, etc
 
Code:
<Civilization_UnitClassOverrides>
  <Row>
    <CivilizationType>CIVILIZATION_AMERICA</CivilizationType>
    <UnitClassType>UNITCLASS_VIRTUCON_HENCHMEN</UnitClassType>
    [COLOR="Red"]<UnitType></UnitType>[/COLOR]
  </Row>
  <Row>
    <CivilizationType>CIVILIZATION_ARABIA</CivilizationType>
    <UnitClassType>UNITCLASS_VIRTUCON_HENCHMEN</UnitClassType>
    [COLOR="red"]<UnitType></UnitType>[/COLOR]
  </Row>
</Civilization_UnitClassOverrides>

The empty <UnitType> tag means "cannot build this"

Isn't <UnitType/> the more "proper" way to disable a unit build than <UnitType></UnitType>? I assume either one will work and both will generate a NULL value for UnitType, but I've been using <UnitType/> based on the way Firaxis did the barbarian overrides. I would think there might be some cases where <UnitType></UnitType> would cause an error because it expects a value to be there, whereas </UnitType> tells it to ignore that value. Just curious.
 
Semantically they are identical. I intentionally put <xyz></xyz> to emphasise the emptyness of the tag, but personally I prefer <xyz/>.

From an instructional point of view they are as bad as each other. If you put <xyz/> someone will point out that you didn't close the tag (sic) and someone else will just type <xyz> and get a parsing error. If you put <xyz></xyz> someone will point out that you could have done <xyz/> ;) and someone else will type <xyz> </xyz> (there's a space in there) and get a different error. So it's pretty much "damned if you do and damned if you don't" :crazyeye:
 
If you put <xyz></xyz> someone will point out that you could have done <xyz/> ;)

:lol: Touche! I suppose I see an advantage to using <xyz></xyz> if you think you may want to go back later and put in an actual value. Otherwise, I guess it's better to just delete the whole line, assuming it's an optional tag.

EDIT: Of course in this case (just to be clear for fellow noobs), deleting the row isn't optional, you have to pick one syntax or the other, just be sure to get it right.

So it's pretty much "damned if you do and damned if you don't"

I'm starting to see why the more advanced people use SQL instead of XML.:) I could learn to do SQL again, having used it a lot for work years ago, but I'm too lazy to dust off those brain cells. XML is just easier for me to wrap my brain around.
 
Back
Top Bottom