久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

<small id='mVcDT'></small><noframes id='mVcDT'>

    <legend id='mVcDT'><style id='mVcDT'><dir id='mVcDT'><q id='mVcDT'></q></dir></style></legend>
  1. <tfoot id='mVcDT'></tfoot>

    • <bdo id='mVcDT'></bdo><ul id='mVcDT'></ul>
  2. <i id='mVcDT'><tr id='mVcDT'><dt id='mVcDT'><q id='mVcDT'><span id='mVcDT'><b id='mVcDT'><form id='mVcDT'><ins id='mVcDT'></ins><ul id='mVcDT'></ul><sub id='mVcDT'></sub></form><legend id='mVcDT'></legend><bdo id='mVcDT'><pre id='mVcDT'><center id='mVcDT'></center></pre></bdo></b><th id='mVcDT'></th></span></q></dt></tr></i><div class="qwawimqqmiuu" id='mVcDT'><tfoot id='mVcDT'></tfoot><dl id='mVcDT'><fieldset id='mVcDT'></fieldset></dl></div>

    1. 從 XML 文件推斷的 XmlSchema - 如何遍歷 XSD 中的所有

      XmlSchema inferred from an XML file - how to iterate through all the elements in the XSD?(從 XML 文件推斷的 XmlSchema - 如何遍歷 XSD 中的所有元素?)
      <legend id='w01Hv'><style id='w01Hv'><dir id='w01Hv'><q id='w01Hv'></q></dir></style></legend>

      • <bdo id='w01Hv'></bdo><ul id='w01Hv'></ul>
        1. <i id='w01Hv'><tr id='w01Hv'><dt id='w01Hv'><q id='w01Hv'><span id='w01Hv'><b id='w01Hv'><form id='w01Hv'><ins id='w01Hv'></ins><ul id='w01Hv'></ul><sub id='w01Hv'></sub></form><legend id='w01Hv'></legend><bdo id='w01Hv'><pre id='w01Hv'><center id='w01Hv'></center></pre></bdo></b><th id='w01Hv'></th></span></q></dt></tr></i><div class="qwawimqqmiuu" id='w01Hv'><tfoot id='w01Hv'></tfoot><dl id='w01Hv'><fieldset id='w01Hv'></fieldset></dl></div>

            <small id='w01Hv'></small><noframes id='w01Hv'>

                <tbody id='w01Hv'></tbody>

              <tfoot id='w01Hv'></tfoot>
                本文介紹了從 XML 文件推斷的 XmlSchema - 如何遍歷 XSD 中的所有元素?的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

                問題描述

                限時送ChatGPT賬號..

                我有一個 XML 文件,我正在使用 XmlSchemaInference 類在運行時推斷其 XSD 架構.

                I have an XML file and I'm inferring its XSD schema in run-time, using the XmlSchemaInference class.

                示例文件:

                <products>
                    <product id="1" name="t-shirt">
                        <size name="medium"/>
                        <size name="large"/>
                        <price>
                            <net>10</net>
                            <gross>25</gross>
                        </price>
                    </product>
                    <product id="2" name="computer mouse">  
                        <price>
                            <net>50</net>       
                        </price>
                    </product>
                </products>
                

                它確實有效 - 它很好地推斷了架構:

                It does work - it infers the schema nicely:

                <?xml version="1.0"?>
                <xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
                  <xs:element name="products">
                    <xs:complexType>
                      <xs:sequence>
                        <xs:element maxOccurs="unbounded" name="product">
                          <xs:complexType>
                            <xs:sequence>
                              <xs:element minOccurs="0" maxOccurs="unbounded" name="size">
                                <xs:complexType>
                                  <xs:attribute name="name" type="xs:string" use="required" />
                                </xs:complexType>
                              </xs:element>
                              <xs:element name="price">
                                <xs:complexType>
                                  <xs:sequence>
                                    <xs:element name="net" type="xs:unsignedByte" />
                                    <xs:element minOccurs="0" name="gross" type="xs:unsignedByte" />
                                  </xs:sequence>
                                </xs:complexType>
                              </xs:element>
                            </xs:sequence>
                            <xs:attribute name="id" type="xs:unsignedByte" use="required" />
                            <xs:attribute name="name" type="xs:string" use="required" />
                          </xs:complexType>
                        </xs:element>
                      </xs:sequence>
                    </xs:complexType>
                  </xs:element>
                </xs:schema>
                

                問題是:

                如何迭代(遞歸?)通過此架構中的所有元素?XmlSchemaSet 類如何存儲它們?我需要將它們呈現給用戶,以便他們可以進行一些映射.

                How can I iterate (recursively?) through all the elements from this schema? How are they stored by the XmlSchemaSet class? I need to present them to the user so they can do some mapping.

                我正在從 XmlSchemaSet.Schemas 屬性中檢索 XmlSchema,然后呢?XmlSchema.Elements 只包含一項(products),我找不到任何方法來查找它的子元素是什么.

                I am retrieving an XmlSchema from XmlSchemaSet.Schemas property, and then what? XmlSchema.Elements only contains one item (products), and I can't find any way to look up what its subelements are.

                推薦答案

                好的!沒有答案,也沒有太大的興趣——我自己想出來的.

                Okay! No answer and not much interest - I figured it out on my own.

                我使用了我在谷歌上搜索的這篇 MSDN 文章中的代碼:遍歷 XML 模式

                I used code from this MSDN article I googled up: Traversing XML Schemas

                我的遞歸解決方案就是以此為基礎的.

                And I based my recursive solution on it.

                void PrintSchema(string xmlFilePath)
                {
                    var schemaSet = new XmlSchemaInference().InferSchema(XmlReader.Create(xmlFilePath));
                    foreach (XmlSchemaElement element in schemaSet
                        .Schemas()
                        .Cast<XmlSchema>()
                        .SelectMany(s => s.Elements.Values.Cast<XmlSchemaElement>()))
                    {
                        Debug.WriteLine(element.Name + " (element)");
                        IterateOverElement(element.Name, element);
                    }
                }
                
                void IterateOverElement(string root, XmlSchemaElement element)
                {
                    var complexType = element.ElementSchemaType as XmlSchemaComplexType;
                    if (complexType == null) 
                    {
                        return;
                    }
                    if (complexType.AttributeUses.Count > 0)
                    {
                        var enumerator = complexType.AttributeUses.GetEnumerator();
                        while (enumerator.MoveNext())
                        {
                            var attribute = (XmlSchemaAttribute)enumerator.Value;
                            Debug.WriteLine(root + "." + attribute.Name + " (attribute)");
                        }
                    }
                    var sequence = complexType.ContentTypeParticle as XmlSchemaSequence;
                    if (sequence == null) 
                    {
                        return;
                    }
                    foreach (XmlSchemaElement childElement in sequence.Items)
                    {
                        root += String.Concat(".", childElement.Name);
                        Debug.WriteLine(root + " (element)");
                        // recursion
                        IterateOverElement(root, childElement);
                    }
                }
                

                輸出為:

                products (element)
                products.product (element)
                products.product.id (attribute)
                products.product.name (attribute)
                products.product.size (element)
                products.product.size.name (attribute)
                products.product.price (element)
                products.product.price.net (element)
                products.product.price.gross (element)
                

                我讓你來判斷這個 API 的友好程度,特別是考慮到這些特定類的 MSDN 文檔是多么稀缺.感謝您提出任何意見或見解.

                I leave to you to judge how friendly this API is, especially given how scarce is the MSDN documentation on these particular classes. Any comments or insights are appreciated.

                這篇關于從 XML 文件推斷的 XmlSchema - 如何遍歷 XSD 中的所有元素?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

                【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

                相關文檔推薦

                What are good algorithms for vehicle license plate detection?(車牌檢測有哪些好的算法?)
                onClick event for Image in Unity(Unity中圖像的onClick事件)
                Running Total C#(運行總 C#)
                Deleting a directory when clicked on a hyperlink with JAvascript.ASP.NET C#(單擊帶有 JAvascript.ASP.NET C# 的超鏈接時刪除目錄)
                asp.net listview highlight row on click(asp.net listview 在單擊時突出顯示行)
                Calling A Button OnClick from a function(從函數調用按鈕 OnClick)

                  <tbody id='odcRC'></tbody>

                • <tfoot id='odcRC'></tfoot>
                    <legend id='odcRC'><style id='odcRC'><dir id='odcRC'><q id='odcRC'></q></dir></style></legend>
                    • <small id='odcRC'></small><noframes id='odcRC'>

                      1. <i id='odcRC'><tr id='odcRC'><dt id='odcRC'><q id='odcRC'><span id='odcRC'><b id='odcRC'><form id='odcRC'><ins id='odcRC'></ins><ul id='odcRC'></ul><sub id='odcRC'></sub></form><legend id='odcRC'></legend><bdo id='odcRC'><pre id='odcRC'><center id='odcRC'></center></pre></bdo></b><th id='odcRC'></th></span></q></dt></tr></i><div class="qwawimqqmiuu" id='odcRC'><tfoot id='odcRC'></tfoot><dl id='odcRC'><fieldset id='odcRC'></fieldset></dl></div>

                          <bdo id='odcRC'></bdo><ul id='odcRC'></ul>

                          主站蜘蛛池模板: 国产精品久久久久久久久久久久久久 | 亚洲国产成人精品一区二区 | 免费麻豆视频 | 99精品视频一区二区三区 | 蜜桃视频在线观看免费视频网站www | 国产精品久久片 | 国户精品久久久久久久久久久不卡 | 亚洲精彩视频 | 婷婷中文字幕 | 亚洲国产成人精品女人久久久 | 台湾佬成人网 | 日韩精品成人 | 欧美日韩国产欧美 | 亚洲网一区 | 国产成人精品a视频一区www | 国产精品一区二区三 | 黄色国产在线播放 | 国产精品色av | 亚洲女人天堂成人av在线 | 国产一二三区电影 | 国内毛片毛片毛片毛片 | 精品欧美一区二区三区久久久小说 | 狠狠av| 澳门永久av免费网站 | 日韩视频1| 亚洲免费观看 | 中文字幕蜜臀av | 91av视频在线观看 | 免费麻豆视频 | 欧美激情国产日韩精品一区18 | 成人依人 | 国产一区 | 欧美乱大交xxxxx另类电影 | 欧美国产视频 | 国产精品自拍一区 | 欧美成人精品一区二区男人看 | 日本精品视频一区二区三区四区 | 久久久精品 | 国产一区二区免费 | 久久国产精品91 | 日韩精品一二三区 |