XmlReader를 사용하여 파일을 구문 분석하고 각 요소의 특성을 reader.GetAttribute ("atrribute_name")을 사용하여 변수로 설정하려고했지만 요소에 실제로 해당 특성이 있거나 없을 수 있습니다. 그래서 일부 요소는 내게 오류를 준다 ... 나는 속성이 존재하지 않을 때 null을 반환 할 것이라고 예상했을 것이다. 대신에 오류를 던진다.XmlReader 특성의 DTD 유효성 검사 오류
여기에 전체 예외입니다 :
System.Xml.Schema.XmlSchemaException: The 'opacity' attribute is not declared.
at System.Xml.XmlValidatingReaderImpl.InternalValidationCallback(Object sender, ValidationEventArgs e)
at System.Xml.Schema.BaseValidator.SendValidationEvent(XmlSchemaException e, XmlSeverityType severity)
at System.Xml.Schema.BaseValidator.SendValidationEvent(XmlSchemaException e)
at System.Xml.Schema.DtdValidator.ValidateStartElement()
at System.Xml.Schema.DtdValidator.ProcessElement()
at System.Xml.Schema.DtdValidator.ValidateElement()
at System.Xml.Schema.DtdValidator.Validate()
at System.Xml.XmlValidatingReaderImpl.ProcessCoreReaderEvent()
at System.Xml.XmlValidatingReaderImpl.Read()
at Squared.Tiled.Map.Load(String filename, ContentManager content) in C:\Users\Stephen\Documents\Visual Studio 2008\Projects\Tiled\Tiled.cs:line 650
여기에 XML 컨텐츠의 :
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE map SYSTEM "http://mapeditor.org/dtd/1.0/map.dtd">
<map version="1.0" orientation="orthogonal" width="32" height="32" tilewidth="32" tileheight="32">
<tileset name="Untitled" firstgid="1" tilewidth="32" tileheight="32">
<image source="tiles.png"/>
</tileset>
<layer name="" width="32" height="32" opacity="0.72">
<data encoding="base64" compression="gzip">
H4sIAAAAAAAAAO3DAQkAAAwEofv+pddjKLhqqqqq6usHHB1pSAAQAAA=
</data>
</layer>
<layer name="Layer 1" width="32" height="32">
<properties>
<property name="layermeta" value="layervalue"/>
</properties>
<data encoding="base64" compression="gzip">
H4sIAAAAAAAAAO2UUQrAMAhD+7P7X3nsbwydibrJRh6UQloatbZrzbMZI9KZc5g4EB3dx9Lhn8m707+C5cP2ReX+p7ByuK55WlQz1P9u9vZFOkrVJ6pXxR/pM/TcjD+in9e/1vsHXtzV/Cfqn+GJ+2f9u+qfgX3Pf/v/hRBCiLfZAUDgXx4AEAAA
</data>
</layer>
</map>
불투명도 또는 여러 가지 다른 속성과 함께, 각 계층에 존재하지 않을 수 있습니다.
더 구체적으로 - "그런 식으로 뭔가를"우리가 추측을 남겨주세요. 정확한 오류와 일부 코드를 제공하여 추측하기보다는 문제를 식별 할 수 있도록하십시오. 감사. –
Stephen, 구문 분석하려는 XML을 게시하고 전체 예외를 게시합니다 ("오류"가 아님). 예외를 잡은 다음 ex.ToString()을 게시하십시오. –
스티븐, 조금씩 조금씩 더 많은 정보가 나올 것입니다. 그 과정을 앞두고 몇 분이 걸릴 수도 있습니다. 다음 질문은 XML을 읽는 코드 (실패한 유효성 검사를 설정하는 코드)입니다. 코드를 게시 한 후 잠시 시간을내어 우리에게 말하지 않은 것을 알 수 있습니다. –