xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/ArcElement.java
@@ -1,6 +1,8 @@ package com.ximple.io.dgn7; //~--- non-JDK imports -------------------------------------------------------- import java.nio.ByteOrder; import org.apache.log4j.Logger; import com.vividsolutions.jts.geom.Coordinate; import com.vividsolutions.jts.geom.Geometry; @@ -15,17 +17,16 @@ */ public class ArcElement extends Element implements GeometryConverter { public ArcElement(short[] raw) private static final Logger logger = Logger.getLogger(ArcElement.class); public ArcElement(byte[] raw) { super(raw); } public double getStartAngle() { int angle = (raw[18] << 16 & 0xffff0000); angle |= raw[19] & 0x0000ffff; int angle = (raw[18] & 0x0000ffff) << 16 | (raw[19] & 0x0000ffff); return Utility.converIntToRotation(angle); } @@ -39,9 +40,9 @@ public double getSweepAngle() { int angle = (raw[20] << 16 & 0xffff0000); angle |= raw[21] & 0x0000ffff; int angle = (raw[20] & 0x0000ffff) << 16 | (raw[21] & 0x0000ffff); if (angle < 0) angle = -1 * (angle & 0x7fffffff); return Utility.converIntToRotation(angle); } @@ -49,6 +50,11 @@ public void setSweepAngle(double value) { int angle = Utility.converRotatioToInt(value); if (angle < 0) { angle &= 0x7fffffff; angle |= 0x80000000; } raw[20] = (short) (angle >> 16 & 0x0000ffff); raw[21] = (short) (angle & 0x0000ffff); @@ -56,16 +62,18 @@ public double getPrimary() { short[] primary = new short[4]; System.arraycopy(raw, 22, primary, 0, 4); rawBuffer.position(22 * 2); ByteOrder bo = rawBuffer.order(); rawBuffer.order(ByteOrder.BIG_ENDIAN); byte[] primary = new byte[8]; rawBuffer.get(primary); rawBuffer.order(bo); return Utility.convertDGNToIEEEDouble(primary) / 1000.0; } public void setPrimary(double value) { double temp = value * 1000.0; double temp = value * 1000.0; short[] primary = Utility.convertIEEEDoubleToDGN(temp); System.arraycopy(primary, 0, raw, 22, 4); @@ -73,16 +81,18 @@ public double getSecondary() { short[] secondary = new short[4]; System.arraycopy(raw, 26, secondary, 0, 4); rawBuffer.position(26 * 2); ByteOrder bo = rawBuffer.order(); rawBuffer.order(ByteOrder.BIG_ENDIAN); byte[] secondary = new byte[8]; rawBuffer.get(secondary); rawBuffer.order(bo); return Utility.convertDGNToIEEEDouble(secondary) / 1000.0; } public void setSecondary(double value) { double temp = value * 1000.0; double temp = value * 1000.0; short[] secondary = Utility.convertIEEEDoubleToDGN(temp); System.arraycopy(secondary, 0, raw, 26, 4); @@ -91,7 +101,6 @@ public double getRotationAngle() { int rotation = (raw[30] << 16 & 0xffff0000); rotation |= raw[31] & 0x0000ffff; return Utility.converIntToRotation(rotation); @@ -107,24 +116,26 @@ public Coordinate getOrigin() { short[] x = new short[4]; rawBuffer.position(32 * 2); ByteOrder bo = rawBuffer.order(); rawBuffer.order(ByteOrder.BIG_ENDIAN); byte[] rawValue = new byte[8]; System.arraycopy(raw, 32, x, 0, 4); rawBuffer.get(rawValue); // x double dx = Utility.converUnitToCoord(Utility.convertDGNToIEEEDouble(rawValue)); double dx = Utility.converUnitToCoord((int) Utility.convertDGNToIEEEDouble(x)); short[] y = new short[4]; rawBuffer.get(rawValue); // y double dy = Utility.converUnitToCoord(Utility.convertDGNToIEEEDouble(rawValue)); System.arraycopy(raw, 36, y, 0, 4); double dy = Utility.converUnitToCoord((int) Utility.convertDGNToIEEEDouble(y)); rawBuffer.order(bo); return new Coordinate(dx, dy); } public void setOrigin(Coordinate value) { double temp = Utility.converCoordToUnit(value.x); short[] x = Utility.convertIEEEDoubleToDGN(temp); double temp = Utility.converCoordToUnit(value.x); short[] x = Utility.convertIEEEDoubleToDGN(temp); System.arraycopy(x, 0, raw, 32, 4); temp = Utility.converCoordToUnit(value.y); @@ -136,7 +147,9 @@ public Geometry toGeometry(GeometryFactory factory) { double temp = Math.abs(getStartAngle() - getSweepAngle()); double start = getStartAngle(); double end = getSweepAngle(); double temp = Math.abs(start - end); temp /= 4; int pts = (temp < 3) ? 3 : (int) temp; return factory.createLineString(convertToLineString(pts)); @@ -190,7 +203,7 @@ return instance; } protected Element createElement(short[] raw) protected Element createElement(byte[] raw) { return new ArcElement(raw); } xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/ComplexChainElement.java
@@ -23,7 +23,7 @@ { protected ArrayList list = new ArrayList(); public ComplexChainElement(short[] raw) public ComplexChainElement(byte[] raw) { super(raw); attrOffset = 4; @@ -195,9 +195,11 @@ { list.add(((LineElement) element).toGeometry(factory)); } /* } else if (element instanceof ArcElement) { list.add(((ArcElement) element).toGeometry(factory)); */ } } @@ -240,7 +242,7 @@ return instance; } protected Element createElement(short[] raw) protected Element createElement(byte[] raw) { return new ComplexChainElement(raw); } xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/ComplexShapeElement.java
@@ -23,7 +23,7 @@ { ArrayList list = new ArrayList(); public ComplexShapeElement(short[] raw) public ComplexShapeElement(byte[] raw) { super(raw); } @@ -198,7 +198,7 @@ return instance; } protected Element createElement(short[] raw) protected Element createElement(byte[] raw) { return new ComplexShapeElement(raw); } xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/Element.java
@@ -33,12 +33,17 @@ public static final int PRIMARY_CLASS = 0; public static final int PRIMARY_RULE_CLASS = 0; protected short[] raw; protected byte attrOffset = 0; protected short[] raw; protected byte attrOffset = 0; protected ByteBuffer rawBuffer; public Element(short[] raw) public Element(byte[] raw) { this.raw = raw; // this.raw = raw; this.raw = new short[raw.length / 2]; rawBuffer = ByteBuffer.wrap(raw); rawBuffer.order(ByteOrder.LITTLE_ENDIAN); rawBuffer.asShortBuffer().get(this.raw); } public int getLineStyle() @@ -217,6 +222,10 @@ } } protected static int getOffsetPosition(int offset) { return offset * 2; } public static class ElementHandler implements IElementHandler { @@ -234,23 +243,30 @@ public Object read(ByteBuffer buffer, short signature, int length) { byte[] dst = new byte[length - 4]; byte[] dst = new byte[length]; try { buffer.get(dst, 0, dst.length); buffer.get(dst, 4, dst.length - 4); } catch (BufferUnderflowException exception) { throw exception; } ByteBuffer tmpBuffer = ByteBuffer.wrap(dst); tmpBuffer.order(ByteOrder.LITTLE_ENDIAN); tmpBuffer.position(0); tmpBuffer.putShort(signature); tmpBuffer.putShort((short) ((length / 2) - 2)); /* ShortBuffer sbuffer = tmpBuffer.asShortBuffer(); short[] rawMem = new short[(length / 2)]; sbuffer.get(rawMem, 2, rawMem.length - 2); rawMem[0] = signature; rawMem[1] = (short) ((length / 2) - 2); Element elm = createElement(rawMem); */ Element elm = createElement(dst); return elm; } @@ -264,7 +280,7 @@ return ((Element) element).raw.length; } protected Element createElement(short[] raw) protected Element createElement(byte[] raw) { return new Element(raw); } xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/EllipseElement.java
@@ -1,12 +1,14 @@ package com.ximple.io.dgn7; import java.nio.ByteOrder; import com.vividsolutions.jts.geom.Coordinate; import com.vividsolutions.jts.geom.Geometry; import com.vividsolutions.jts.geom.GeometryFactory; public class EllipseElement extends Element implements GeometryConverter { public EllipseElement(short[] raw) public EllipseElement(byte[] raw) { super(raw); } @@ -31,10 +33,12 @@ public double getPrimary() { short[] primary = new short[4]; System.arraycopy(raw, 18, primary, 0, 4); rawBuffer.position(18 * 2); ByteOrder bo = rawBuffer.order(); rawBuffer.order(ByteOrder.BIG_ENDIAN); byte[] primary = new byte[8]; rawBuffer.get(primary); rawBuffer.order(bo); return Utility.convertDGNToIEEEDouble(primary) / 1000.0; } @@ -48,10 +52,12 @@ public double getSecondary() { short[] secondary = new short[4]; System.arraycopy(raw, 22, secondary, 0, 4); rawBuffer.position(22 * 2); ByteOrder bo = rawBuffer.order(); rawBuffer.order(ByteOrder.BIG_ENDIAN); byte[] secondary = new byte[8]; rawBuffer.get(secondary); rawBuffer.order(bo); return Utility.convertDGNToIEEEDouble(secondary) / 1000.0; } @@ -66,7 +72,6 @@ public double getRotationAngle() { int rotation = (raw[26] << 16 & 0xffff0000); rotation |= raw[27] & 0x0000ffff; return Utility.converIntToRotation(rotation); @@ -82,16 +87,18 @@ public Coordinate getOrigin() { short[] x = new short[4]; rawBuffer.position(28 * 2); ByteOrder bo = rawBuffer.order(); rawBuffer.order(ByteOrder.BIG_ENDIAN); byte[] rawValue = new byte[8]; System.arraycopy(raw, 28, x, 0, 4); rawBuffer.get(rawValue); // x double dx = Utility.converUnitToCoord(Utility.convertDGNToIEEEDouble(rawValue)); double dx = Utility.converUnitToCoord((int) Utility.convertDGNToIEEEDouble(x)); short[] y = new short[4]; rawBuffer.get(rawValue); // y double dy = Utility.converUnitToCoord(Utility.convertDGNToIEEEDouble(rawValue)); System.arraycopy(raw, 32, y, 0, 4); double dy = Utility.converUnitToCoord((int) Utility.convertDGNToIEEEDouble(y)); rawBuffer.order(bo); return new Coordinate(dx, dy); } @@ -165,7 +172,7 @@ return instance; } protected Element createElement(short[] raw) protected Element createElement(byte[] raw) { return new EllipseElement(raw); } xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/LineElement.java
@@ -15,7 +15,7 @@ */ public class LineElement extends Element implements GeometryConverter { public LineElement(short[] raw) public LineElement(byte[] raw) { super(raw); } @@ -27,15 +27,11 @@ public Coordinate getEndPoint() { int endX = (int) ((raw[22] << 16) & 0xffff0000); int endX = ((raw[22] << 16) & 0xffff0000) | (raw[23] & 0x0000ffff); int endY = ((raw[24] << 16) & 0xffff0000) | (raw[25] & 0x0000ffff); endX = endX + (raw[23] & 0x0000ffff); double x = Utility.converUnitToCoord(endX); int endY = (int) ((raw[24] << 16) & 0xffff0000); endY = endY + (raw[25] & 0x0000ffff); double x = Utility.converUnitToCoord(endX); double y = Utility.converUnitToCoord(endY); return new Coordinate(x, y); @@ -53,12 +49,11 @@ public Coordinate getStartPoint() { int startX = (int) ((raw[18] << 16) & 0xffff0000); int startX = ((raw[18] << 16) & 0xffff0000); startX = startX + (raw[19] & 0x0000ffff); double x = Utility.converUnitToCoord(startX); int startY = (int) ((raw[20] << 16) & 0xffff0000); int startY = ((raw[20] << 16) & 0xffff0000); startY = startY + (raw[21] & 0x0000ffff); @@ -121,7 +116,7 @@ return instance; } protected Element createElement(short[] raw) protected Element createElement(byte[] raw) { return new LineElement(raw); } xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/LineStringElement.java
@@ -15,7 +15,7 @@ */ public class LineStringElement extends Element implements GeometryConverter { public LineStringElement(short[] raw) public LineStringElement(byte[] raw) { super(raw); } @@ -158,7 +158,7 @@ return instance; } protected Element createElement(short[] raw) protected Element createElement(byte[] raw) { return new LineStringElement(raw); } xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/ShapeElement.java
@@ -1,10 +1,7 @@ package com.ximple.io.dgn7; //~--- non-JDK imports -------------------------------------------------------- import org.apache.log4j.Logger; import com.vividsolutions.jts.geom.Coordinate; import com.vividsolutions.jts.geom.Geometry; import com.vividsolutions.jts.geom.GeometryFactory; import com.vividsolutions.jts.geom.LinearRing; @@ -20,7 +17,7 @@ { static final Logger logger = Logger.getLogger(ShapeElement.class); public ShapeElement(short[] raw) public ShapeElement(byte[] raw) { super(raw); } @@ -57,7 +54,7 @@ return instance; } protected Element createElement(short[] raw) protected Element createElement(byte[] raw) { return new ShapeElement(raw); } xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/TcbElement.java
@@ -9,7 +9,7 @@ */ public class TcbElement extends Element { public TcbElement(short[] raw) public TcbElement(byte[] raw) { super(raw); } @@ -82,7 +82,7 @@ return instance; } protected Element createElement(short[] raw) protected Element createElement(byte[] raw) { return new TcbElement(raw); } xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/TextElement.java
@@ -18,52 +18,52 @@ { public static final int ED_CENTERJUSTIFICATION = 0; // Enter data field center justification // Enter data field center justification public static final int ED_LEFTJUSTIFICATION = 0; // Enter data field left justification // Enter data field left justification public static final int ED_RIGHTJUSTIFICATION = 0; // Enter data field right justification // Enter data field right justification public static final int TXTJUST_CB = 0; // Center/bottom text justification. // Center/bottom text justification. public static final int TXTJUST_CC = 0; // Center/center text justification. // Center/center text justification. public static final int TXTJUST_CT = 0; // Center/top text justification. // Center/top text justification. public static final int TXTJUST_LB = 0; // Left/bottom text justification. // Left/bottom text justification. public static final int TXTJUST_LC = 0; // Left/center text justification. // Left/center text justification. public static final int TXTJUST_LT = 0; // Left/top text justification. // Left/top text justification. public static final int TXTJUST_RB = 0; // Right/bottom text justification. // Right/bottom text justification. public static final int TXTJUST_RC = 0; // Right/center text justification. // Right/center text justification. public static final int TXTJUST_RT = 0; public TextElement(short[] raw) public TextElement(byte[] raw) { super(raw); } public Coordinate getOrigin() { int x = (int) (raw[25] << 16 & 0xffff0000); int x = (raw[25] << 16 & 0xffff0000); x += raw[26] & 0x0000ffff; double dx = Utility.converUnitToCoord(x); int y = (int) (raw[27] << 16 & 0xffff0000); int y = (raw[27] << 16 & 0xffff0000); y += raw[28] & 0x0000ffff; @@ -75,10 +75,10 @@ public Coordinate getUserOrigin() { Coordinate origin = getOrigin(); double x = origin.x; double weight = getUserSetWeight(); double height = getUserSetHeight(); double angle = Utility.converRotationToRadian(getRotationAngle()); double x = origin.x; double weight = getUserSetWeight(); double height = getUserSetHeight(); double angle = Utility.converRotationToRadian(getRotationAngle()); x += weight * Math.cos(angle) - height * Math.sin(angle); @@ -91,29 +91,29 @@ private double getUserSetWeight() { int just = getJustification(); Envelope range = getRange(); double weight = (range.getWidth()); int just = getJustification(); Envelope range = getRange(); double weight = (range.getWidth()); switch (just) { case 0 : case 1 : case 2 : case 0: case 1: case 2: weight = 0; break; case 6 : case 7 : case 8 : case 6: case 7: case 8: weight = weight / 2; break; case 12 : case 13 : case 14 : case 12: case 13: case 14: break; } @@ -122,28 +122,28 @@ private double getUserSetHeight() { int just = getJustification(); int just = getJustification(); double height = getTextHeight(); switch (just) { case 2 : case 8 : case 14 : // bottom case 2: case 8: case 14: // bottom height = 0; break; case 1 : case 7 : case 13 : // center case 1: case 7: case 13: // center height = height / 2; break; case 0 : case 6 : case 12 : // height case 0: case 6: case 12: // height break; } @@ -182,7 +182,7 @@ public double getTextHeight() { int height = (int) ((raw[21] << 16) & 0xffff0000); int height = ((raw[21] << 16) & 0xffff0000); height += raw[22] & 0x0000ffff; @@ -191,7 +191,7 @@ public double getTextWidth() { int length = (int) (raw[19] << 16 & 0xffff0000); int length = (raw[19] << 16 & 0xffff0000); length += raw[20] & 0x0000ffff; @@ -200,12 +200,12 @@ public int getJustification() { return (int) ((raw[18] >>> 8) & 0x00000000ff); return ((raw[18] >>> 8) & 0x00000000ff); } public double getRotationAngle() { int totation = (int) ((raw[23] << 16) & 0xffff0000); int totation = ((raw[23] << 16) & 0xffff0000); totation += raw[24] & 0x0000ffff; @@ -216,13 +216,7 @@ { int isChinese = raw[30] & 0x0000ffff; if (isChinese == 0xfdff) { return true; } else { return false; } return (isChinese == 0xfdff); } public int getTextLength() @@ -240,8 +234,8 @@ public String getText() { StringBuffer val = new StringBuffer(); char[] temp; int num = getTextLength(); char[] temp; int num = getTextLength(); if (!isChinese()) { @@ -288,7 +282,7 @@ return instance; } protected Element createElement(short[] raw) protected Element createElement(byte[] raw) { return new TextElement(raw); } xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/TextNodeElement.java
@@ -23,7 +23,7 @@ { ArrayList list = new ArrayList(); public TextNodeElement(short[] raw) public TextNodeElement(byte[] raw) { super(raw); } @@ -283,7 +283,7 @@ return instance; } protected Element createElement(short[] raw) protected Element createElement(byte[] raw) { return new TextNodeElement(raw); } xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/Utility.java
@@ -1,5 +1,10 @@ package com.ximple.io.dgn7; import java.nio.ByteBuffer; import java.nio.ByteOrder; import org.apache.log4j.Logger; import com.vividsolutions.jts.geom.Envelope; /** @@ -11,9 +16,10 @@ */ public final class Utility { private static final Logger logger = Logger.getLogger(Utility.class); public static double converIntToDouble(int src) { return (double) ((long) ((src * 6) / 1000.0 + 0.5)) / 1000.0; } @@ -71,6 +77,16 @@ return newVal; } public static double converUnitToCoord(double aValue) { double newVal; newVal = aValue / 1000.0; newVal += 2147483.648; // 2147483.648 = 2 ^ 31 return newVal; } public static int converCoordToUnit(double aValue) { double newVal = aValue; @@ -103,22 +119,29 @@ converCoordToUnit(range.getMinY()), converCoordToUnit(range.getMaxY())); } public static double convertDGNToIEEEDouble(short[] src) public static long convertDGNToRAWIEEEDouble(byte[] org) { ByteBuffer buf = ByteBuffer.allocate(8); buf.order(ByteOrder.LITTLE_ENDIAN); buf.mark(); buf.put(org[2]); buf.put(org[3]); buf.put(org[0]); buf.put(org[1]); buf.put(org[6]); buf.put(org[7]); buf.put(org[4]); buf.put(org[5]); buf.position(0); int[] tmp = new int[2]; long des; int sign; tmp[0] = buf.getInt(); tmp[1] = buf.getInt(); int exponent; int rndbits; if (src == null) { throw new RuntimeException("Source short array is null"); } tmp[0] = ((src[0] << 16) & 0xffff0000) | (src[1] & 0x0000ffff); tmp[1] = ((src[2] << 16) & 0xffff0000) | (src[3] & 0x0000ffff); sign = (tmp[0] & 0x80000000); int sign = (tmp[0] & 0x80000000); exponent = (tmp[0] >>> 23) & 0x000000ff; if (exponent != 0) @@ -126,7 +149,7 @@ exponent = exponent - 129 + 1023; } rndbits = tmp[1] & 0x00000007; int rndbits = tmp[1] & 0x00000007; tmp[1] = tmp[1] >>> 3; tmp[1] = (tmp[1] & 0x1fffffff) | (tmp[0] << 29); @@ -137,10 +160,28 @@ tmp[0] = (tmp[0] >>> 3) & 0x000fffff; tmp[0] = tmp[0] | (exponent << 20) | sign; des = (((long) tmp[0] << 32)); des = des | (long) tmp[1]; return Double.longBitsToDouble(des); buf.position(0); buf.order(ByteOrder.BIG_ENDIAN); buf.putInt(tmp[0]); buf.putInt(tmp[1]); buf.position(0); byte[] tmpRaw = new byte[8]; buf.get(tmpRaw); buf.position(0); buf.order(ByteOrder.LITTLE_ENDIAN); for (int i = tmpRaw.length; i > 0 ; i--) { buf.put(tmpRaw[i-1]); } buf.position(0); long result = buf.getLong(); return result; } public static double convertDGNToIEEEDouble(byte[] src) { return Double.longBitsToDouble(convertDGNToRAWIEEEDouble(src)); } public static short[] convertIEEEDoubleToDGN(double src) xdgnjobs/ximple-jobcarrier/src/main/resources/quartz_jobs.xml
@@ -46,7 +46,7 @@ </entry> <entry> <key>CONVERTDB</key> <value>true</value> <value>false</value> </entry> <entry> <key>CONVERTFILE</key> xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/GeneralDgnConvertJobContext.java
@@ -336,6 +336,9 @@ } else if (element instanceof ArcElement) { ArcElement arcElement = (ArcElement) element; logger.fatal("" + arcElement.getPrimary() + ":" + arcElement.getSecondary() + "-" + arcElement.getStartAngle() + ":" + arcElement.getSweepAngle() + ":" + arcElement.getRotationAngle() + ":" + arcElement.getOrigin()); convertDecorator.setConverter(arcElement); Geometry geom = convertDecorator.toGeometry(geometryFactory); if (geom != null) xdgnjobs/ximple-spatialjob/src/main/resources/conf/DefaultConvertShpFilter.xml
@@ -11,6 +11,33 @@ </elementCriterion> <LineCreateStrategy/> </TypeCompFilter> <TypeCompFilter name="FSC-106.C-1"> <tid>106</tid> <cid>1</cid> <description>°ªÀ£½u¤Þ½u</description> <elementCriterion> <elementType>7</elementType> </elementCriterion> <LineCreateStrategy/> </TypeCompFilter> <TypeCompFilter name="FSC-106.C-2"> <tid>106</tid> <cid>2</cid> <description>°ªÀ£½u¤Þ½uµù°O</description> <elementCriterion> <elementType>7</elementType> </elementCriterion> <LineCreateStrategy/> </TypeCompFilter> <TypeCompFilter name="FSC-106.C-4"> <tid>106</tid> <cid>4</cid> <description>°ªÀ£½uõX½u¥N¸¹¤Þ½uµù°O</description> <elementCriterion> <elementType>17</elementType> </elementCriterion> <LineCreateStrategy/> </TypeCompFilter> <TypeCompFilter name="FSC-402.C-0"> <tid>402</tid> <cid>0</cid> @@ -26,6 +53,7 @@ <description>Åܹq©Òµù°O</description> <elementCriterion> <elementType>7</elementType> <elementType>17</elementType> </elementCriterion> <TextCreateStrategy/> </TypeCompFilter> @@ -76,6 +104,123 @@ </elementCriterion> <TextCreateStrategy/> </TypeCompFilter> <TypeCompFilter name="FSC-411.C-7"> <tid>411</tid> <cid>7</cid> <description>°t¹q³õ1/600¤Þ¤W¤U²Å¸¹</description> <elementCriterion> <elementType>17</elementType> </elementCriterion> <TextCreateStrategy/> </TypeCompFilter> <TypeCompFilter name="FSC-420.C-0"> <tid>420</tid> <cid>0</cid> <description>ºÞ·¾</description> <elementCriterion> <elementType>6</elementType> </elementCriterion> <TextCreateStrategy/> </TypeCompFilter> <TypeCompFilter name="FSC-420.C-1"> <tid>420</tid> <cid>1</cid> <description>ºÞ·¾µù°O</description> <elementCriterion> <elementType>17</elementType> </elementCriterion> <TextCreateStrategy/> </TypeCompFilter> <TypeCompFilter name="FSC-421.C-0"> <tid>421</tid> <cid>0</cid> <description>¦@¦PºÞ¹D</description> <elementCriterion> <elementType>6</elementType> </elementCriterion> <TextCreateStrategy/> </TypeCompFilter> <TypeCompFilter name="FSC-421.C-1"> <tid>421</tid> <cid>1</cid> <description>¦@¦PºÞ¹Dµù°O</description> <elementCriterion> <elementType>17</elementType> </elementCriterion> <TextCreateStrategy/> </TypeCompFilter> <TypeCompFilter name="FSC-423.C-0"> <tid>423</tid> <cid>0</cid> <description>ºÞ¸ôÂ_±</description> <elementCriterion> <elementType>7</elementType> </elementCriterion> <TextCreateStrategy/> </TypeCompFilter> <TypeCompFilter name="FSC-423.C-1"> <tid>423</tid> <cid>1</cid> <description>ºÞ¸ôÂ_±¤Þ½u</description> <elementCriterion> <elementType>12</elementType> </elementCriterion> <TextCreateStrategy/> </TypeCompFilter> <TypeCompFilter name="FSC-424.C-0"> <tid>424</tid> <cid>0</cid> <description>¯S®í¤uªkºX¼Ð²Å¸¹</description> <elementCriterion> <elementType>17</elementType> </elementCriterion> <TextCreateStrategy/> </TypeCompFilter> <TypeCompFilter name="FSC-501.C-0"> <tid>501</tid> <cid>0</cid> <description>»Ùê³òÆX</description> <elementCriterion> <elementType>6</elementType> </elementCriterion> <TextCreateStrategy/> </TypeCompFilter> <TypeCompFilter name="FSC-501.C-1"> <tid>501</tid> <cid>1</cid> <description>»Ùê³òÆX¤å¦rµù°O</description> <elementCriterion> <elementType>17</elementType> </elementCriterion> <TextCreateStrategy/> </TypeCompFilter> <TypeCompFilter name="FSC-502.C-0"> <tid>502</tid> <cid>0</cid> <description>°ÝÃD³òÆX</description> <elementCriterion> <elementType>6</elementType> </elementCriterion> <TextCreateStrategy/> </TypeCompFilter> <TypeCompFilter name="FSC-502.C-1"> <tid>502</tid> <cid>1</cid> <description>°ÝÃD³òÆX¤å¦rµù°O</description> <elementCriterion> <elementType>17</elementType> </elementCriterion> <TextCreateStrategy/> </TypeCompFilter> <TypeCompFilter name="FSC-503.C-0"> <tid>503</tid> <cid>0</cid> <description>¤å¦rµù°O</description> <elementCriterion> <elementType>17</elementType> </elementCriterion> <TextCreateStrategy/> </TypeCompFilter> <TypeCompFilter name="FSC-407.C-0"> <tid>407</tid> <cid>0</cid> @@ -110,6 +255,51 @@ <description>¹q±ì-1/600µù°O</description> <elementCriterion> <elementType>7</elementType> </elementCriterion> <TextCreateStrategy/> </TypeCompFilter> <TypeCompFilter name="FSC-407.C-7"> <tid>407</tid> <cid>7</cid> <description>1/600¹q±ì¤Þ¤W¤U²Å¸¹</description> <elementCriterion> <elementType>17</elementType> </elementCriterion> <TextCreateStrategy/> </TypeCompFilter> <TypeCompFilter name="FSC-407.C-8"> <tid>407</tid> <cid>8</cid> <description>1/1200¹q±ì¤Þ¤W¤U²Å¸¹</description> <elementCriterion> <elementType>17</elementType> </elementCriterion> <TextCreateStrategy/> </TypeCompFilter> <TypeCompFilter name="FSC-407.C-9"> <tid>407</tid> <cid>9</cid> <description>¹q±ì¤ô¥¤ä½u</description> <elementCriterion> <elementType>17</elementType> </elementCriterion> <TextCreateStrategy/> </TypeCompFilter> <TypeCompFilter name="FSC-407.C-10"> <tid>407</tid> <cid>10</cid> <description>¹q±ì±ì¸¹</description> <elementCriterion> <elementType>17</elementType> </elementCriterion> <TextCreateStrategy/> </TypeCompFilter> <TypeCompFilter name="FSC-407.C-11"> <tid>407</tid> <cid>11</cid> <description>¹q±ì¤ô¥¤ä½u³»»\</description> <elementCriterion> <elementType>17</elementType> </elementCriterion> <TextCreateStrategy/> </TypeCompFilter> @@ -327,6 +517,70 @@ </elementCriterion> <TextCreateStrategy/> </TypeCompFilter> <TypeCompFilter name="FSC-115.C-2"> <tid>115</tid> <cid>2</cid> <description>¸ô¿O¨t²Î¹ÏÅÜÀ£¾¹</description> <elementCriterion> <elementType>17</elementType> </elementCriterion> <TextCreateStrategy/> </TypeCompFilter> <TypeCompFilter name="FSC-115.C-3"> <tid>115</tid> <cid>3</cid> <description>¸ô¿O¨t²Î¹ÏÅÜÀ£¾¹µù°O</description> <elementCriterion> <elementType>17</elementType> </elementCriterion> <TextCreateStrategy/> </TypeCompFilter> <TypeCompFilter name="FSC-115.C-4"> <tid>115</tid> <cid>4</cid> <description>§CÀ£¨t²Î¹ÏÅÜÀ£¾¹</description> <elementCriterion> <elementType>17</elementType> </elementCriterion> <TextCreateStrategy/> </TypeCompFilter> <TypeCompFilter name="FSC-115.C-5"> <tid>115</tid> <cid>5</cid> <description>§CÀ£¨t²Î¹ÏÅÜÀ£¾¹µù°O</description> <elementCriterion> <elementType>7</elementType> </elementCriterion> <TextCreateStrategy/> </TypeCompFilter> <TypeCompFilter name="FSC-115.C-6"> <tid>115</tid> <cid>6</cid> <description>§CÀ£¨t²Î¹Ï-°t¹q«Ç®y¼Ðµù°O</description> <elementCriterion> <elementType>17</elementType> </elementCriterion> <TextCreateStrategy/> </TypeCompFilter> <TypeCompFilter name="FSC-115.C-7"> <tid>115</tid> <cid>7</cid> <description>§CÀ£¨t²Î¹Ï-°t¹q«Ç®y¼Ðµù°O</description> <elementCriterion> <elementType>17</elementType> </elementCriterion> <TextCreateStrategy/> </TypeCompFilter> <TypeCompFilter name="FSC-115.C-8"> <tid>115</tid> <cid>8</cid> <description>¬[ªÅÅÜÀ£¾¹(¦a¤U§CÀ£¥Î)µù°O</description> <elementCriterion> <elementType>7</elementType> </elementCriterion> <TextCreateStrategy/> </TypeCompFilter> <TypeCompFilter name="FSC-118.C-0"> <tid>118</tid> <cid>0</cid> @@ -357,12 +611,49 @@ <TypeCompFilter name="FSC-140.C-0"> <tid>140</tid> <cid>0</cid> <description>°ªÀ£½u¸ô</description> <description>°ªÀ£½u¸ô(½u¸ô¹Ï¥Î)</description> <elementCriterion> <elementType>12</elementType> </elementCriterion> <LineCreateStrategy/> </TypeCompFilter> <TypeCompFilter name="FSC-140.C-1"> <tid>140</tid> <cid>1</cid> <description>¤Þ½u(½u¸ô¹Ï¥Î)</description> <elementCriterion> <elementType>12</elementType> </elementCriterion> <LineCreateStrategy/> </TypeCompFilter> <TypeCompFilter name="FSC-140.C-2"> <tid>140</tid> <cid>2</cid> <description>¾É½uµù°O(½u¸ô¹Ï¥Î)</description> <elementCriterion> <elementType>7</elementType> </elementCriterion> <LineCreateStrategy/> </TypeCompFilter> <TypeCompFilter name="FSC-140.C-3"> <tid>140</tid> <cid>3</cid> <description>õX½u¥N¸¹¤Þ½u(½u¸ô¹Ï¥Î)</description> <elementCriterion> <elementType>12</elementType> </elementCriterion> <LineCreateStrategy/> </TypeCompFilter> <TypeCompFilter name="FSC-140.C-4"> <tid>140</tid> <cid>4</cid> <description>õX½u¥N¸¹µù°O(½u¸ô¹Ï¥Î)</description> <elementCriterion> <elementType>17</elementType> </elementCriterion> <LineCreateStrategy/> </TypeCompFilter> <TypeCompFilter name="FSC-151.C-0"> <tid>150</tid> <cid>0</cid> @@ -388,6 +679,7 @@ <cid>0</cid> <description>±µ¤á½u</description> <elementCriterion> <elementType>12</elementType> <elementType>17</elementType> </elementCriterion> <LineCreateStrategy/> @@ -425,6 +717,7 @@ <description>±µ¤áÂIªùµPµù°O</description> <elementCriterion> <elementType>7</elementType> <elementType>17</elementType> </elementCriterion> <TextCreateStrategy/> </TypeCompFilter> @@ -658,6 +951,33 @@ </elementCriterion> <SymbolCreateStrategy/> </TypeCompFilter> <TypeCompFilter name="FSC-216.C-1"> <tid>216</tid> <cid>1</cid> <description>§CÀ£ºÊµø¾¹µù°O</description> <elementCriterion> <elementType>17</elementType> </elementCriterion> <SymbolCreateStrategy/> </TypeCompFilter> <TypeCompFilter name="FSC-216.C-2"> <tid>216</tid> <cid>2</cid> <description>§CÀ£ºÊµø¾¹ªùµPµù°O</description> <elementCriterion> <elementType>17</elementType> </elementCriterion> <SymbolCreateStrategy/> </TypeCompFilter> <TypeCompFilter name="FSC-217.C-0"> <tid>217</tid> <cid>0</cid> <description>§CÀ£¦a¤U´å¥ð</description> <elementCriterion> <elementType>17</elementType> </elementCriterion> <SymbolCreateStrategy/> </TypeCompFilter> <!-- ¥úÆl --> <TypeCompFilter name="FSC-300.C-0"> <tid>300</tid> @@ -665,6 +985,7 @@ <description>³q°T¥úÆl½u</description> <elementCriterion> <elementType>4</elementType> <elementType>12</elementType> </elementCriterion> <LineCreateStrategy/> </TypeCompFilter> @@ -710,6 +1031,25 @@ <description>¸ô¿O±±¨î½u</description> <elementCriterion> <elementType>4</elementType> <elementType>12</elementType> </elementCriterion> <LineCreateStrategy/> </TypeCompFilter> <TypeCompFilter name="FSC-301.C-1"> <tid>301</tid> <cid>1</cid> <description>¸ô¿O±±¨î½u¤Þ½u²Å¸¹</description> <elementCriterion> <elementType>12</elementType> </elementCriterion> <LineCreateStrategy/> </TypeCompFilter> <TypeCompFilter name="FSC-301.C-3"> <tid>301</tid> <cid>3</cid> <description>¸ô¿O±±¨î½uµù°O</description> <elementCriterion> <elementType>17</elementType> </elementCriterion> <LineCreateStrategy/> </TypeCompFilter> @@ -723,6 +1063,339 @@ </elementCriterion> <TextCreateStrategy/> </TypeCompFilter> <TypeCompFilter name="FSC-113.C-0"> <tid>113</tid> <cid>0</cid> <description>°ªÀ£¦a¤U´å¥ð</description> <elementCriterion> <elementType>17</elementType> </elementCriterion> <LineCreateStrategy/> </TypeCompFilter> <TypeCompFilter name="FSC-403.C-0"> <tid>403</tid> <cid>0</cid> <description>°ª§CÀ£¤H¤â¤Õ</description> <elementCriterion> <elementType>17</elementType> </elementCriterion> <LineCreateStrategy/> </TypeCompFilter> <TypeCompFilter name="FSC-403.C-1"> <tid>403</tid> <cid>1</cid> <description>°ª§CÀ£¤H¤â¤Õ®y¼Ðµù°O</description> <elementCriterion> <elementType>17</elementType> </elementCriterion> <LineCreateStrategy/> </TypeCompFilter> <TypeCompFilter name="FSC-403.C-2"> <tid>403</tid> <cid>2</cid> <description>°ª§CÀ£¤H¤â¤Õ¶ê°é²Å¸¹</description> <elementCriterion> <elementType>17</elementType> </elementCriterion> <LineCreateStrategy/> </TypeCompFilter> <TypeCompFilter name="FSC-403.C-4"> <tid>403</tid> <cid>4</cid> <description>¸ô¿O¤Õ¶ê°é</description> <elementCriterion> <elementType>17</elementType> </elementCriterion> <LineCreateStrategy/> </TypeCompFilter> <TypeCompFilter name="FSC-403.C-5"> <tid>403</tid> <cid>5</cid> <description>¸ô¿O¤Õ®y¼Ðµù°O</description> <elementCriterion> <elementType>17</elementType> </elementCriterion> <LineCreateStrategy/> </TypeCompFilter> <TypeCompFilter name="FSC-403.C-6"> <tid>403</tid> <cid>6</cid> <description>¥úÅÖ¤Õ¶ê°é²Å¸¹</description> <elementCriterion> <elementType>17</elementType> </elementCriterion> <LineCreateStrategy/> </TypeCompFilter> <TypeCompFilter name="FSC-403.C-7"> <tid>403</tid> <cid>7</cid> <description>¥úÆl¤Õ®y¼Ðµù°O(¥úÆl¹Ï¥Î)</description> <elementCriterion> <elementType>17</elementType> </elementCriterion> <LineCreateStrategy/> </TypeCompFilter> <TypeCompFilter name="FSC-401.C-0"> <tid>401</tid> <cid>0</cid> <description>ºÞ¸ô</description> <elementCriterion> <elementType>12</elementType> </elementCriterion> <LineCreateStrategy/> </TypeCompFilter> <TypeCompFilter name="FSC-401.C-1"> <tid>401</tid> <cid>1</cid> <description>ºÞ¸ô¤Þ½u</description> <elementCriterion> <elementType>12</elementType> </elementCriterion> <LineCreateStrategy/> </TypeCompFilter> <TypeCompFilter name="FSC-401.C-2"> <tid>401</tid> <cid>2</cid> <description>ºÞ¸ôºÞ´U</description> <elementCriterion> <elementType>17</elementType> </elementCriterion> <LineCreateStrategy/> </TypeCompFilter> <TypeCompFilter name="FSC-401.C-3"> <tid>401</tid> <cid>3</cid> <description>ºÞ¸ô¤å¦r»¡©úµù°O</description> <elementCriterion> <elementType>7</elementType> </elementCriterion> <LineCreateStrategy/> </TypeCompFilter> <TypeCompFilter name="FSC-401.C-5"> <tid>401</tid> <cid>5</cid> <description>ºÞ¸ôÂ_±°Ï¬q°Ï¹j</description> <elementCriterion> <elementType>17</elementType> </elementCriterion> <LineCreateStrategy/> </TypeCompFilter> <TypeCompFilter name="FSC-302.C-0"> <tid>302</tid> <cid>0</cid> <description>¸ô¿Ot¸ü½u</description> <elementCriterion> <elementType>17</elementType> </elementCriterion> <LineCreateStrategy/> </TypeCompFilter> <TypeCompFilter name="FSC-302.C-1"> <tid>302</tid> <cid>1</cid> <description>¸ô¿Ot¸ü½uµù°O</description> <elementCriterion> <elementType>17</elementType> </elementCriterion> <LineCreateStrategy/> </TypeCompFilter> <TypeCompFilter name="FSC-303.C-0"> <tid>303</tid> <cid>0</cid> <description>¸ô¿O¾Þ§@½u</description> <elementCriterion> <elementType>12</elementType> </elementCriterion> <LineCreateStrategy/> </TypeCompFilter> <TypeCompFilter name="FSC-303.C-1"> <tid>303</tid> <cid>1</cid> <description>¸ô¿O¾Þ§@½u¤Þ½u</description> <elementCriterion> <elementType>12</elementType> </elementCriterion> <LineCreateStrategy/> </TypeCompFilter> <TypeCompFilter name="FSC-303.C-3"> <tid>303</tid> <cid>3</cid> <description>¸ô¿O¾Þ§@½uµù°O</description> <elementCriterion> <elementType>17</elementType> </elementCriterion> <LineCreateStrategy/> </TypeCompFilter> <TypeCompFilter name="FSC-305.C-0"> <tid>305</tid> <cid>0</cid> <description>¸ô¿OÂI·À¾¹</description> <elementCriterion> <elementType>17</elementType> </elementCriterion> <LineCreateStrategy/> </TypeCompFilter> <TypeCompFilter name="FSC-306.C-0"> <tid>306</tid> <cid>0</cid> <description>¸ô¿O®É±±¶}Ãö</description> <elementCriterion> <elementType>17</elementType> </elementCriterion> <LineCreateStrategy/> </TypeCompFilter> <TypeCompFilter name="FSC-307.C-0"> <tid>307</tid> <cid>0</cid> <description>¸ô¿O¤Àª[ÂI</description> <elementCriterion> <elementType>17</elementType> </elementCriterion> <LineCreateStrategy/> </TypeCompFilter> <TypeCompFilter name="FSC-308.C-0"> <tid>308</tid> <cid>0</cid> <description>¸ô¿O²×ºÝ</description> <elementCriterion> <elementType>17</elementType> </elementCriterion> <LineCreateStrategy/> </TypeCompFilter> <TypeCompFilter name="FSC-311.C-0"> <tid>311</tid> <cid>0</cid> <description>¸ô¿O¥x±b</description> <elementCriterion> <elementType>17</elementType> </elementCriterion> <LineCreateStrategy/> </TypeCompFilter> <TypeCompFilter name="FSC-311.C-1"> <tid>311</tid> <cid>1</cid> <description>¸ô¿O¥x±b¹Ï¸¹(®e¶q.·ø¼Æ)µù°O</description> <elementCriterion> <elementType>7</elementType> </elementCriterion> <LineCreateStrategy/> </TypeCompFilter> <TypeCompFilter name="FSC-314.C-0"> <tid>314</tid> <cid>0</cid> <description>¬[ªÅ¸ô¿Ot¸ü½u</description> <elementCriterion> <elementType>12</elementType> </elementCriterion> <LineCreateStrategy/> </TypeCompFilter> <TypeCompFilter name="FSC-314.C-1"> <tid>314</tid> <cid>1</cid> <description>¬[ªÅ¸ô¿Ot¸ü½uµù°O</description> <elementCriterion> <elementType>7</elementType> </elementCriterion> <LineCreateStrategy/> </TypeCompFilter> <TypeCompFilter name="FSC-315.C-0"> <tid>315</tid> <cid>0</cid> <description>¬[ªÅ¸ô¿O±±¨î½u</description> <elementCriterion> <elementType>12</elementType> </elementCriterion> <LineCreateStrategy/> </TypeCompFilter> <TypeCompFilter name="FSC-315.C-1"> <tid>315</tid> <cid>1</cid> <description>¬[ªÅ¸ô¿O±±¨î½u</description> <elementCriterion> <elementType>7</elementType> </elementCriterion> <LineCreateStrategy/> </TypeCompFilter> <TypeCompFilter name="FSC-316.C-0"> <tid>316</tid> <cid>0</cid> <description>¸ô¿Oª½¸ô</description> <elementCriterion> <elementType>17</elementType> </elementCriterion> <LineCreateStrategy/> </TypeCompFilter> <TypeCompFilter name="FSC-317.C-0"> <tid>317</tid> <cid>0</cid> <description>¸ô¿O±±¨î¶}Ãö</description> <elementCriterion> <elementType>17</elementType> </elementCriterion> <LineCreateStrategy/> </TypeCompFilter> <TypeCompFilter name="FSC-317.C-1"> <tid>317</tid> <cid>1</cid> <description>¸ô¿O±±¨î¶}Ãöµù°O</description> <elementCriterion> <elementType>17</elementType> </elementCriterion> <LineCreateStrategy/> </TypeCompFilter> <TypeCompFilter name="FSC-318.C-0"> <tid>318</tid> <cid>0</cid> <description>¸ô¿O¶×¬y±Æ</description> <elementCriterion> <elementType>12</elementType> </elementCriterion> <LineCreateStrategy/> </TypeCompFilter> <TypeCompFilter name="FSC-319.C-0"> <tid>319</tid> <cid>0</cid> <description>¥úÅÖ¦¬®e</description> <elementCriterion> <elementType>17</elementType> </elementCriterion> <LineCreateStrategy/> </TypeCompFilter> <TypeCompFilter name="FSC-320.C-0"> <tid>320</tid> <cid>0</cid> <description>¥úÅÖ³q°T±µÀY</description> <elementCriterion> <elementType>17</elementType> </elementCriterion> <LineCreateStrategy/> </TypeCompFilter> <TypeCompFilter name="FSC-323.C-0"> <tid>323</tid> <cid>0</cid> <description>¥ú¹qÂà´«¾¹</description> <elementCriterion> <elementType>17</elementType> </elementCriterion> <LineCreateStrategy/> </TypeCompFilter> <TypeCompFilter name="FSC-324.C-0"> <tid>324</tid> <cid>0</cid> <description>¦Û°Ê¤Æ»»±±¾¹</description> <elementCriterion> <elementType>17</elementType> </elementCriterion> <LineCreateStrategy/> </TypeCompFilter> <TypeCompFilter name="FSC-324.C-1"> <tid>324</tid> <cid>1</cid> <description>¦Û°Ê¤Æ»»±±¾¹µù°O</description> <elementCriterion> <elementType>17</elementType> </elementCriterion> <LineCreateStrategy/> </TypeCompFilter> <!-- Dummy <TypeCompLevelFilter name="DemoFeature3"> <tid>999</tid>