Что плохого в этом файле Format.ps1xml? «Узел отсутствует в TableControl, ListControl, WideControl, CustomControl» - PullRequest
0 голосов
/ 30 апреля 2018

Я пытался написать файл Format.ps1xml, но при загрузке я получаю очень неопределенное сообщение об ошибке:

Import-Module : Errors occurred while loading the format data file:
Test.Format.ps1xml, Error at XPath /Configuration/ViewDefinitions/View[1] in file Test.Format.ps1xml: A node is missing from TableControl, ListControl, WideControl, CustomControl.
At line:1 char:1
+ Import-Module ./PSSourcegraph.psd1 -Force
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : InvalidOperation: (:) [Import-Module], RuntimeException
+ FullyQualifiedErrorId : FormatXmlUpdateException,Microsoft.PowerShell.Commands.ImportModuleCommand

Я прочитал документацию каждого узла несколько раз, и я не вижу, какой узел отсутствует. В частности, документация для ListControl гласит:

Этот элемент должен содержать только один дочерний элемент.

Странно, ошибка исчезнет, ​​если я уберу тег EntrySelectedBy.

Вот файл Format.ps1xml:

<?xml version="1.0" encoding="utf-8" ?>
<Configuration>
    <ViewDefinitions>
        <View>
            <Name>MyType</Name>
            <ViewSelectedBy>
                <TypeName>MyTypeName1</TypeName>
                <TypeName>MyTypeName2</TypeName>
            </ViewSelectedBy>
            <ListControl>
                <ListEntries>
                    <ListEntry>
                        <EntrySelectedBy>
                            <TypeName>MyTypeName1</TypeName>
                        </EntrySelectedBy>
                        <ListItems>
                            <ListItem>
                                <PropertyName>myProp</PropertyName>
                            </ListItem>
                        </ListItems>
                    </ListEntry>
                </ListEntries>
            </ListControl>
        </View>
    </ViewDefinitions>
</Configuration>

1 Ответ

0 голосов
/ 30 апреля 2018

Я не фанат xml, и это слишком долго, чтобы быть комментарием. Если это не поможет, я удалю себя.

Редактировать Пропустил процесс выбора. Редактировать на основе комментариев. Я думаю, что вам не хватает узлов <SelectionSets> & <SelectionSet>. Затем вы можете выбрать selectionset, затем выберите вашу запись с помощью <EntrySelectedBy>.

<?xml version="1.0" encoding="utf-8" ?>
<Configuration>
    <SelectionSets>
        <SelectionSet>
            <Name>MyTypes</Name>
            <Types>
                <TypeName>MyTypeName1</TypeName>
                <TypeName>MyTypeName2</TypeName>
            </Types>
        </SelectionSet>
    </SelectionSets>
    <ViewDefinitions>
        <View>
            <Name>children</Name>
            <ViewSelectedBy>
                <SelectionSetName>MyTypes</SelectionSetName>
            </ViewSelectedBy>
            <ListControl>
                <ListEntries>
                    <ListEntry>
                        <EntrySelectedBy>
                            <TypeName>MyTypeName1</TypeName>
                        </EntrySelectedBy>
                        <ListItems>
                            <ListItem>
                                <PropertyName>myProp</PropertyName>
                            </ListItem>
                        </ListItems>
                    </ListEntry>
                </ListEntries>
            </ListControl>
        </View>
    </ViewDefinitions>
</Configuration>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...