<?xml version="1.0" encoding="ISO-8859-1"?>
<!ENTITY % lUnit "lengthUnit (mm|cm|m|in|ft|yd) #REQUIRED">
<!ENTITY % wUnit "weightUnit (g|kg|oz|lb) #REQUIRED">
<!ENTITY % cUnit "countUnit (tex|Nm|NeC|NeW|Np|Ny|NeL|NeS|Td|Run|dtex) #REQUIRED">
<!ENTITY % wlUnit "weightPerLengthUnit (gPERm|ozPERyd) #REQUIRED">
<!ENTITY % wl2Unit "weightPerSquareLengthUnit (gPERm2|ozPERyd2) #REQUIRED">
	<!ELEMENT ArahneFabric (Header, Warp, Weft, Dobby?, Jacquard?)>

	<!ELEMENT Header (Division, Name, Code, Design, Version, Saison, Customer, Status, InStock, DerivedFrom, Cut, NumFabrics, Type, TypeBits, Designer, Notes, Day, Month, Year, Operator, ReedWidth,
	ReedWidthWithSelvedge, RawWidth, FinishedWidth, ReedNumber, WarpLength, Warp2Length, FabricLengthRaw, FabricLengthFinished,
	SelvedgeDenting, TotalWarpThreads, TotalWarpThreadsWithSelvedge, TotalDents, TotalDentsWithSelvedge, Take-up, Take-up2, WasteWarp,
	WasteWeft, WeavingShrinkage, FinishingShrinkage, FinishingWeightChange, FilCoupe, FinishingBits, Finishing, Denting, DentingCode, Regulator, DentingRepeatThreads, DentingRepeatDents, RegulatorRepeatThreads,
	RegulatorRepeatAdvances, RepeatSizeX, RepeatSizeY, WeaveName, WeaveNotes, WeaveRepeatX, WeaveRepeatY, SelvedgeWeaveName,
	WarpDensity, WeftDensity, WeftDensityRaw, WeftDensityFinished, Consumption, ConsumptionWarpWithSelvedges,
	ConsumptionWarpNoSelvedges, ConsumptionWeft, RawWeightPerLength, RawWeightPerSquareLength, FinishedWeightPerLength, FinishedWeightPerSquareLength,
	FabricFibre?)>

	<!ELEMENT Division (#PCDATA)>
	<!ELEMENT Name (#PCDATA)>
	<!ELEMENT Code (#PCDATA)>
	<!ELEMENT Design (#PCDATA)>
	<!ELEMENT Version (#PCDATA)>
	<!ELEMENT Saison (#PCDATA)>
	<!ELEMENT Customer (#PCDATA)>
	<!ELEMENT Status (#PCDATA)>
	<!ELEMENT InStock (#PCDATA)>
	<!ELEMENT DerivedFrom (#PCDATA)>
	<!ELEMENT Cut (#PCDATA)>
	<!ELEMENT NumFabrics (#PCDATA)>
	<!ELEMENT Type (#PCDATA)>
	<!ELEMENT TypeBits (#PCDATA)>
	<!ELEMENT Designer (#PCDATA)>
	<!ELEMENT Notes (#PCDATA)>
	<!ELEMENT Day (#PCDATA)>
	<!ELEMENT Month (#PCDATA)>
	<!ELEMENT Year (#PCDATA)>
	<!ELEMENT Operator (#PCDATA)>
	<!ELEMENT ReedWidth (#PCDATA)>
	<!ATTLIST ReedWidth %lUnit; >
	<!ELEMENT ReedWidthWithSelvedge (#PCDATA)>
	<!ATTLIST ReedWidthWithSelvedge %lUnit; >
	<!ELEMENT RawWidth (#PCDATA)>
	<!ATTLIST RawWidth %lUnit; >
	<!ELEMENT FinishedWidth (#PCDATA)>
	<!ATTLIST FinishedWidth %lUnit; >

	<!ELEMENT ReedNumber (#PCDATA)>
	<!ATTLIST ReedNumber %lUnit; >
	<!ELEMENT WarpLength (#PCDATA)>
	<!ATTLIST WarpLength %lUnit; >
	<!ELEMENT Warp2Length (#PCDATA)>
	<!ATTLIST Warp2Length %lUnit; >
	<!ELEMENT FabricLengthRaw (#PCDATA)>
	<!ATTLIST FabricLengthRaw %lUnit; >
	<!ELEMENT FabricLengthFinished (#PCDATA)>
	<!ATTLIST FabricLengthFinished %lUnit; >
	<!ELEMENT SelvedgeDenting (#PCDATA)>
	<!ELEMENT TotalWarpThreads (#PCDATA)>
	<!ELEMENT TotalWarpThreadsWithSelvedge (#PCDATA)>
	<!ELEMENT TotalDents (#PCDATA)>
	<!ELEMENT TotalDentsWithSelvedge (#PCDATA)>

	<!ELEMENT Take-up (#PCDATA)>
	<!ELEMENT Take-up2 (#PCDATA)>
	<!ELEMENT WasteWarp (#PCDATA)>
	<!ELEMENT WasteWeft (#PCDATA)>
	<!ELEMENT WeavingShrinkage (#PCDATA)>
	<!ELEMENT FinishingShrinkage (#PCDATA)>
	<!ELEMENT FinishingWeightChange (#PCDATA)>
	<!ELEMENT FilCoupe (#PCDATA)>
	<!ELEMENT Finishing (#PCDATA)>
	<!ELEMENT FinishingBits (#PCDATA)>
	<!ELEMENT Denting (#PCDATA)>
	<!ELEMENT DentingCode (#PCDATA)>
	<!ELEMENT Regulator (#PCDATA)>
	<!ELEMENT DentingRepeatThreads (#PCDATA)>
	<!ELEMENT DentingRepeatDents (#PCDATA)>
	<!ELEMENT RegulatorRepeatThreads (#PCDATA)>
	<!ELEMENT RegulatorRepeatAdvances (#PCDATA)>

	<!ELEMENT RepeatSizeX (#PCDATA)>
	<!ATTLIST RepeatSizeX %lUnit; >
	<!ELEMENT RepeatSizeY (#PCDATA)>
	<!ATTLIST RepeatSizeY %lUnit; >

	<!ELEMENT WeaveName (#PCDATA)>
	<!ELEMENT WeaveNotes (#PCDATA)>
	<!ELEMENT WeaveRepeatX (#PCDATA)>
	<!ELEMENT WeaveRepeatY (#PCDATA)>
	<!ELEMENT SelvedgeWeaveName (#PCDATA)>
	<!ELEMENT WarpDensity (#PCDATA)>
	<!ATTLIST WarpDensity %lUnit; >
	<!ELEMENT WeftDensity (#PCDATA)>
	<!ATTLIST WeftDensity %lUnit; >
	<!ELEMENT WeftDensityRaw (#PCDATA)>
	<!ATTLIST WeftDensityRaw %lUnit; >
	<!ELEMENT WeftDensityFinished (#PCDATA)>
	<!ATTLIST WeftDensityFinished %lUnit; >
	<!ELEMENT Consumption (#PCDATA)>
	<!ATTLIST Consumption %wUnit; >
	<!ELEMENT ConsumptionWarpWithSelvedges (#PCDATA)>
	<!ATTLIST ConsumptionWarpWithSelvedges %wUnit; >
	<!ELEMENT ConsumptionWarpNoSelvedges (#PCDATA)>
	<!ATTLIST ConsumptionWarpNoSelvedges %wUnit; >
	<!ELEMENT ConsumptionWeft (#PCDATA)>
	<!ATTLIST ConsumptionWeft %wUnit; >
	<!ELEMENT RawWeightPerLength (#PCDATA)>
	<!ATTLIST RawWeightPerLength %wlUnit; >
	<!ELEMENT RawWeightPerSquareLength (#PCDATA)>
	<!ATTLIST RawWeightPerSquareLength %wl2Unit; >
	<!ELEMENT FinishedWeightPerLength (#PCDATA)>
	<!ATTLIST FinishedWeightPerLength %wlUnit; >
	<!ELEMENT FinishedWeightPerSquareLength (#PCDATA)>
	<!ATTLIST FinishedWeightPerSquareLength %wl2Unit; >
	<!ELEMENT FabricFibre (#PCDATA)>
	<!ATTLIST FabricFibre percentage CDATA #REQUIRED >

	<!ELEMENT Warp (WarpCode, WarpNotes, WarpReedNumber, WarpDenting, WarpBeamWidth, WarpingWidthSelvedges, WarpSource, Warp2Source?,
		WarpPatternCode, WarpPattern, WarpPatternExpanded, WarpPatternLeftover?,
		WarpPattern1?, WarpPattern1Expanded?, WarpPattern2?, WarpPattern2Expanded?, SelvedgePattern?, WarpLeftover, WarpRepeat,
		NumWarpRepeats, LeftoverThreads, TotalSelvedgeThreads, NumUsedYarns, NumWarpingSections, WarpBlankets, WarpUsage*, Yarn*)>
		<!ELEMENT WarpCode (#PCDATA)>
		<!ELEMENT WarpNotes (#PCDATA)>
		<!ELEMENT WarpReedNumber (#PCDATA) >
		<!ATTLIST WarpReedNumber %lUnit; >
		<!ELEMENT WarpDenting (#PCDATA)>
		<!ELEMENT WarpBeamWidth (#PCDATA) >
		<!ATTLIST WarpBeamWidth %lUnit; >
		<!ELEMENT WarpingWidthSelvedges (#PCDATA) >
		<!ELEMENT WarpSource (#PCDATA)>
		<!ELEMENT Warp2Source (#PCDATA)>
		<!ELEMENT WarpPatternCode (#PCDATA)>
		<!ELEMENT WarpPattern (#PCDATA)>
		<!ELEMENT WarpPatternExpanded (#PCDATA)>
		<!ELEMENT WarpPatternLeftover (#PCDATA)>
		<!ELEMENT WarpPattern1 (#PCDATA)>
		<!ELEMENT WarpPattern1Expanded (#PCDATA)>
		<!ELEMENT WarpPattern2 (#PCDATA)>
		<!ELEMENT WarpPattern2Expanded (#PCDATA)>
		<!ELEMENT SelvedgePattern (#PCDATA)>
		<!ELEMENT WarpRepeat (#PCDATA)>
		<!ELEMENT NumWarpRepeats (#PCDATA)>
		<!ELEMENT LeftoverThreads (#PCDATA)>
		<!ELEMENT TotalSelvedgeThreads (#PCDATA)>
		<!ELEMENT NumUsedYarns (#PCDATA)>
		<!ELEMENT NumWarpingSections (#PCDATA)>
		<!ELEMENT WarpBlankets (#PCDATA)>

	<!ELEMENT Weft (WeftPatternCode, WeftPattern, WeftPatternExpanded, WeftRepeat, WeftRepeatDouble?, NumUsedYarns, WeftBlankets, WeftUsage*, Yarn*)>
		<!ELEMENT WeftPatternCode (#PCDATA)>
		<!ELEMENT WeftPattern (#PCDATA)>
		<!ELEMENT WeftPatternExpanded (#PCDATA)>
		<!ELEMENT WeftRepeat (#PCDATA)>
		<!ELEMENT WeftRepeatDouble (#PCDATA)>
		<!ELEMENT NumUsedYarns (#PCDATA)>
		<!ELEMENT WeftBlankets (#PCDATA)>

	<!ELEMENT Dobby (NumShafts, SelvedgeShafts?, Drafting, DraftingCode, SelvedgeDrafting?, Shaft*)>
		<!ELEMENT NumShafts (#PCDATA)>
		<!ELEMENT NumSelvedgeShafts (#PCDATA)>
		<!ELEMENT Drafting (#PCDATA)>
		<!ELEMENT DraftingCode (#PCDATA)>
		<!ELEMENT SelvedgeDrafting (#PCDATA)>
		<!ELEMENT Shaft (#PCDATA)>
		<!ATTLIST Shaft No CDATA #REQUIRED >
		<!ATTLIST Shaft Threads CDATA #REQUIRED >

	<!ELEMENT Jacqaurd (NumHooks, WeftBytes, NumWefts, LoomLayout, WeftLayout, FormatName, CardName)>
		<!ELEMENT NumHooks (#PCDATA)>
		<!ELEMENT WeftBytes (#PCDATA)>
		<!ELEMENT NumWefts (#PCDATA)>
		<!ELEMENT LoomLayout (#PCDATA)>
		<!ELEMENT WeftLayout (#PCDATA)>
		<!ELEMENT FormatName (#PCDATA)>
		<!ELEMENT CardName (#PCDATA)>

	<!ELEMENT WarpUsage (BlanketCodes, RepeatThreads, SelvedgeThreads, TotalThreads, SelvedgeWeight, TotalWeight, NumberOfCones?)>
	<!ATTLIST WarpUsage letterID CDATA #REQUIRED >
		<!ELEMENT BlanketCodes (#PCDATA)>
		<!ELEMENT RepeatThreads (#PCDATA)>
		<!ATTLIST RepeatThreads percentage CDATA #REQUIRED >
		<!ELEMENT SelvedgeThreads (#PCDATA)>
		<!ELEMENT TotalThreads (#PCDATA)>
		<!ELEMENT SelvedgeWeight (#PCDATA)>
		<!ATTLIST SelvedgeWeight %wUnit; >
		<!ELEMENT TotalWeight (#PCDATA)>
		<!ATTLIST TotalWeight %wUnit; >
		<!ATTLIST TotalWeight percentage CDATA #REQUIRED >
		<!ELEMENT NumberOfCones (#PCDATA)>
		<!ATTLIST NumberOfCones coneSections CDATA #REQUIRED >

	<!ELEMENT WeftUsage (BlanketCodes, RepeatThreads, RepeatThreadsDouble?, TotalWeight)>
	<!ATTLIST WeftUsage letterID CDATA #REQUIRED >
		<!ELEMENT RepeatThreadsDouble (#PCDATA)>
		<!ATTLIST RepeatThreadsDouble percentage CDATA #REQUIRED >

	<!ELEMENT Yarn (YCode, YName, YColorCode, YColorName, Count, Ply, Twists, TwistContraction, TwistSense, Color*, Fibre?)>
	<!ATTLIST Yarn letterID CDATA #REQUIRED >
		<!ELEMENT YCode (#PCDATA)>
		<!ELEMENT YName (#PCDATA)>
		<!ELEMENT YColorCode (#PCDATA)>
		<!ELEMENT YColorName (#PCDATA)>
		<!ELEMENT Count (#PCDATA)>
		<!ATTLIST Count  %cUnit; >
		<!ELEMENT Ply (#PCDATA)>
		<!ELEMENT Twists (#PCDATA)>
		<!ATTLIST Twists %lUnit; >
		<!ELEMENT TwistContraction (#PCDATA)>
		<!ELEMENT TwistSense (#PCDATA)>

	<!ELEMENT Color (#PCDATA)>
	<!ATTLIST Color percentage CDATA #REQUIRED >
	<!ATTLIST Color CIE_L CDATA #IMPLIED >
	<!ATTLIST Color CIE_a CDATA #IMPLIED >
	<!ATTLIST Color CIE_b CDATA #IMPLIED >
	<!ATTLIST Color R CDATA #REQUIRED >
	<!ATTLIST Color G CDATA #REQUIRED >
	<!ATTLIST Color B CDATA #REQUIRED >
	<!ATTLIST Color Cname CDATA #REQUIRED >

	<!ELEMENT Fibre (#PCDATA)>
	<!ATTLIST Fibre percentage CDATA #REQUIRED >


