문제

를 알고 싶은 것에 대한 최선의 방법이 이 문제를 해결하기:나를 만들고 싶은 빈 템플릿 xml 에서는 xml 스키마.모든 필요한 요소 및 특성을 것을 만들고 자신의 값은 모두 빈 문자열입니다.

다음 단계는 어떻게 결정되는 아이 xml 노드의 특정 노드를 가지고 있을 수 있었다.예를 들어.내가 노드를 선택하는가 minoccurs 특성="0",십시오="무한한"하나의 아이들이다.나는 것을 확인할 수 있는 모든 것에 대한 아이의 특성,이름,해당 값을 입력,등등.

게 더 많은 컨텍스트 상황에,내가 일하는 도구 사용자가 편집할 수 있는 xml 파일에서 더 많은 사용자 친절한 설정입니다.예를 들어,그들이 할 수 있는 새로운 계정을 계정에 db'노드 및 그들은 볼만 사용할 수 있는 노드 계정 노드입니다.다음 때,그들은 그들을 추가하려고 어린이들이 계정 노드를 선택하는 것 노드 이름(필수),비밀번호 노드(필수),설정 노드(옵션),등등.나는 어떻게 결정하는 프로그래밍 방식으로 무엇을 어린이 계정 노드가 사용할 수 있고 어떤 특성 및 설정에서 그 아이가?

이것은 C#2.0 니다.NET2.0.

요약하자면,어떤 클래스 사용을 읽으키고 분석하는데 도움을 줄 수 있는 정보를 얻을 수 있을 만들기 위한 xml?내 천진 희망이 있었기 때문 xsd 었 xml 은 자체가 될 것이 어떤 종류의 DOM 모델할 수 있는 시간들을 보냈.

나는 이에 국한되 내 프로그램 그래서 사용의 외부 도구와 같은 OxygenXml,VS,xsd.exe 니다,등등.

도움이 되었습니까?

해결책

그것은 소리처럼 당신이 원하는 무엇이에 복제의 기능을 뒤 XML intellisense 에서 가장 좋은 XML 편집기입니다.ie 읽 xml 스키마와 작업하는 요소 및 특성을 올 수 있음.

우리는 매우 비슷한 프로젝트에서는 일에서 몇 시간 전에.무언가를 생산하는 대부분의 시간이 많이 작동,제품 작동하는 무언가가 모든 시간은 작업의 부하!

기본적으로 로드할 필요가 XSD(XmlSchema 개체.순이 이 작업을 수행할 수 있).하지만 SOM 객체 모델의 노출은 매우 raw,그래서 당신이 할 필요가 매우 많은 일을 해석을 한다.는 경우에 당신은 무시하는 개념 같은 대체 그룹,complexType 확장,카멜레온 스키마와 namesapces,당신은 탐색 할 수있는 SOM 합리적으로 쉽습니다.

당신은 다음을 알아낼 필요가 어디에 있는 XML 문서와 관련하여 당신의 스키마.일단 당신이 알았다고 당신은에서 SOM 할 수 있습니다 다음 작업을 시작 사용할 수 있는 옵션이 있습니다.

이렇게 하려면 제대로 1,000'라인의 코드와 4-12 사람이 주의 작동합니다.할 수 있습을 얻을 수 있게 기본적인 뭔가를 함께서는 몇 주가?

다른 팁

나는 MSDN 문서로 눈을 피우고 있었고 나는 향기를 집어 들었다고 생각합니다. xmlschema를 사용하여 스키마를로드하고 읽고 컴파일하십시오. 요소 속성에는 '최상위 레벨'요소 모음이 포함됩니다. 루트 요소의 자격을 갖춘 이름을 하드 코딩해야합니다. 그게 다야. 주어진 스키마 요소에서 '내용'을 찾는 방법을 찾지 못했습니다.

편집 : 갈 길은 더 발견되었지만 여전히 명확하지 않습니다. xmlschemaelements에는 스키마 유형 속성이 있습니다. 이것은 단순하거나 복잡합니다. XML 스키마의 복잡한 유형은 속성, 시퀀스, 그룹 등을 가질 수 있습니다. 시퀀스에는 요소가 될 수있는 입자라는 속성이 있습니다. 그리고 사이클이 반복됩니다. 그러나 구현의 어려운 부분은 가능한 모든 사례 (간단한 유형, 속성이있는 복잡한 유형, 속성 및 요소가있는 복잡한 유형, 확장, 전체 Shebang)를 다루는 것입니다.

편집 : xmlschema 객체의 요소 속성을 사용하여 xmlschemaelement를 얻으십시오. XmlSchemaelement의 스키마 타입 속성을 사용하여 단순하거나 복잡한 유형을 얻으십시오. XMLSCHEMACOMPLEXTYPE의 속성 속성을 사용하여 '간단한 컨텐츠'/'복잡한 컨텐츠'또는 입자를 얻으려면 속성 또는 ContentModel을 가져 오십시오. '시퀀스'/'choice'/'all'을 얻으십시오. 기본적으로 많은 여행 속성과 왼쪽과 오른쪽으로 객체를 확인하고 XSD 객체의 가능한 모든 배열을 확인합니다. 라이브러리를 만들려면 길고 번거롭고 오류가 발생하기 쉽습니다. 그리고 이것은 XML Schemas와 함께, DTDS와 함께 생각을 시작하고 싶지도 않습니다. 와우, XML 스키마가 필요하지만 왜 그렇게 사악해야합니까?

XMLSPY와 같은 타사 도구를 사용할 수 있습니다.링크). XSD에서 더미 XML을 만들거나 그 반대도 마찬가지입니다.

컴퓨터에 존재하는 .NET 도구로 할 수있는 정말로 원형 교차로 (무료) 방법은 xsd.exe를 사용하는 것입니다.링크) 스키마가 다음을 사용하여 정의하는 엔티티 객체를 생성하려면 다음을 생성합니다.

xsd /classes /language:CS XSDSchemaFile.xsd

그런 다음 객체가 있으면 프로젝트에로드하여 직렬화하십시오. 더미 데이터를 추가하려는 경우 속성을 채울 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top